refactor(lanes): drop the workflow skills and Superpowers link; pipelines go dormant
The plugin stops shipping its workflow layer: - skills/ship-feature and skills/ship-feature-lane, the 18 stage/ship slash commands (plugin.json keeps agenthub-doctor/update/open), and all four agents/ (qc-local, senior-gate-reviewer, backend-reviewer, frontend-reviewer). - CLI `agenthub skills install`, `agenthub lanes agents install`, `agenthub ship-full|ship-quick`; routes POST /api/skills/install and POST /api/lanes/:id/agents/install; the Settings button, the lane Tools menu item and the Add-lane setup step that called them. - The Superpowers auto-install: server/lib/skill-plugins.js, the bootstrap's autoInstallSkillPlugins / skillPluginsSettled gate and the doctor row. Pipelines are kept but dormant: server/data/pipelines/ is deleted, so no template ships. `default` resolves to EMPTY_PIPELINE (no nodes, progress 0), createLane still accepts it, POST /api/lanes/:id/stage answers 400 ENOPIPELINE, and the Workspace hides the stage timer, pickers, PipelineMap and strip stage chip for a lane with no nodes. A template dropped into DASHBOARD_PIPELINES_DIR turns it all back on. The server suite loads its templates from server/__tests__/fixtures/pipelines/. Docs: CLAUDE.md (marker, retired rules), README(.vi), INSTALL, ARCHITECTURE, docs/LANES|PLUGINS|CLI|API, agenthub-introduction.html.
This commit is contained in:
@@ -242,21 +242,5 @@ describe("plugin marketplace", () => {
|
||||
const listed = new Set(manifest.commands.map((rel) => path.basename(rel)));
|
||||
for (const f of onDisk) assert.ok(listed.has(f), `${f} is not in plugin.json commands`);
|
||||
});
|
||||
|
||||
it("gives every pipeline node of the shipped templates its own slash command", () => {
|
||||
// /intake, /qc, /gate … are how a node is run from inside a session; a
|
||||
// node with no command file can only be reached from a terminal.
|
||||
const { listPipelines } = require("../lib/pipelines");
|
||||
const listed = new Set(manifest.commands.map((rel) => path.basename(rel, ".md")));
|
||||
for (const p of listPipelines().filter((x) => ["default", "ship-feature"].includes(x.id))) {
|
||||
for (const n of p.nodes) {
|
||||
const names = [n.id, ...(n.aliases || [])];
|
||||
assert.ok(
|
||||
names.some((name) => listed.has(name)),
|
||||
`${p.id}/${n.id} has no slash command (tried ${names.join(", ")})`
|
||||
);
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user