task-pipeline-skill 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +64 -0
- package/LICENSE +21 -0
- package/README.md +105 -0
- package/bin/task-pipeline.js +98 -0
- package/package.json +33 -0
- package/plugins/task-pipeline/.claude-plugin/plugin.json +10 -0
- package/plugins/task-pipeline/commands/task-pipeline.md +17 -0
- package/plugins/task-pipeline/skills/task-pipeline/SKILL.md +57 -0
- package/plugins/task-pipeline/skills/task-pipeline/references/conventions.md +26 -0
- package/plugins/task-pipeline/skills/task-pipeline/references/model-tiering.md +31 -0
- package/plugins/task-pipeline/skills/task-pipeline/references/stages.md +67 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## v0.4.0 — 2026-07-19
|
|
4
|
+
|
|
5
|
+
npm installer.
|
|
6
|
+
|
|
7
|
+
- **`bin/task-pipeline.js`** — zero-dependency Node installer CLI (mirrors
|
|
8
|
+
`install.sh`: skill → `~/.claude/skills/task-pipeline`, command →
|
|
9
|
+
`~/.claude/commands/`; idempotent, overwrite only behind `--force`).
|
|
10
|
+
- **`package.json`** — package name **`task-pipeline-skill`** (unscoped
|
|
11
|
+
`task-pipeline` is taken on npm); bin command stays `task-pipeline`;
|
|
12
|
+
`files` whitelist ships `bin` + `plugins`. Works without npm publish via
|
|
13
|
+
`npx github:ssheleg/task-pipeline`; after publish also `npx task-pipeline-skill`.
|
|
14
|
+
- **Version sync is now four-way** (marketplace.json, plugin.json,
|
|
15
|
+
package.json, CHANGELOG top entry) — validator enforces, plus checks the
|
|
16
|
+
bin entry resolves and the files whitelist ships the skill sources.
|
|
17
|
+
- **CI:** `node --check` + a functional install run (fresh → rerun-skip →
|
|
18
|
+
`--force`) against a fake `$HOME`.
|
|
19
|
+
|
|
20
|
+
## v0.3.0 — 2026-07-19
|
|
21
|
+
|
|
22
|
+
Packaging/tooling alignment with the ssheleg skill-repo canon (make-skill).
|
|
23
|
+
|
|
24
|
+
- **CI:** `.github/workflows/validate.yml` runs the structural validator on every
|
|
25
|
+
push/PR, plus a **negative self-test** — corrupts a copy of the repo and expects
|
|
26
|
+
the validator to FAIL (a validator that can't fail is decoration) — and a
|
|
27
|
+
`bash -n` syntax check of `install.sh`.
|
|
28
|
+
- **Validator hardened:** now also enforces command frontmatter
|
|
29
|
+
(`description` + `argument-hint`), **CHANGELOG top-entry version sync** with the
|
|
30
|
+
manifests, and resolution of every relative markdown link in the repo.
|
|
31
|
+
- **`install.sh` is idempotent:** reruns skip already-installed skill/command;
|
|
32
|
+
destructive overwrite only behind `--force` (never silently `rm -rf`s an
|
|
33
|
+
existing install).
|
|
34
|
+
- **`/task-pipeline` is an idempotent entry point:** detects an existing pipeline
|
|
35
|
+
TaskList and resumes from the first incomplete stage instead of restarting.
|
|
36
|
+
- **README:** added the `npx skills add ssheleg/task-pipeline` install path
|
|
37
|
+
(vercel-labs skills CLI, 70+ agents) and a closing Russian section.
|
|
38
|
+
|
|
39
|
+
## v0.2.0 — 2026-07-18
|
|
40
|
+
|
|
41
|
+
- Added a dedicated **Tests** stage (new stage 6, model Opus) between Dev and
|
|
42
|
+
Lint/deploy: writes tests for new functionality, updates/repairs existing tests
|
|
43
|
+
touched by the change, and adds edge-case + failure-path coverage.
|
|
44
|
+
- Hard **full-suite-green gate before deploy** — the deploy stage now requires both
|
|
45
|
+
lint clean and the whole suite green; never advances on a red or partial run.
|
|
46
|
+
- Pipeline grew 8 → 9 stages; deploy/post-deploy/docs renumbered 7/8/9. Model
|
|
47
|
+
tiering: Fable 1–4, Opus 5–6, inherit 7–9. Docs/tables/references synced.
|
|
48
|
+
- Added a real `/task-pipeline` slash command (`commands/task-pipeline.md`);
|
|
49
|
+
`install.sh` now installs it to `~/.claude/commands/` alongside the skill so the
|
|
50
|
+
command works for the plain-skill path too.
|
|
51
|
+
- Validator hardened: enforces marketplace↔plugin.json **version sync** and the
|
|
52
|
+
presence of the command file.
|
|
53
|
+
|
|
54
|
+
## v0.1.0 — 2026-07-18
|
|
55
|
+
|
|
56
|
+
Initial release.
|
|
57
|
+
|
|
58
|
+
- Thin orchestrator skill that runs a task through 8 gated stages (docs study →
|
|
59
|
+
brainstorm → spec → plan → subagent build → lint/deploy → post-deploy log check
|
|
60
|
+
→ docs/wiki sync), built on the [superpowers](https://github.com/obra/superpowers) skills.
|
|
61
|
+
- Hybrid distribution: Claude Code plugin/marketplace + plain `~/.claude/skills` copy.
|
|
62
|
+
- Soft per-stage model tiering (Fable stages 1–4, Opus stage 5, inherit 6–8) — reminder only.
|
|
63
|
+
- Generic-portable: stages 6–8 read the host project's `CLAUDE.md` conventions with detection fallbacks.
|
|
64
|
+
- Structural validator (`test/validate.py`); spec + plan under `docs/superpowers/`.
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 ssheleg
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
# task-pipeline
|
|
2
|
+
|
|
3
|
+
Full-cycle task delivery pipeline orchestrator for **Claude Code**. One skill that
|
|
4
|
+
runs any substantial task through **9 gated stages** — built on the
|
|
5
|
+
[superpowers](https://github.com/obra/superpowers) skills.
|
|
6
|
+
|
|
7
|
+
## What it does
|
|
8
|
+
|
|
9
|
+
`docs study → brainstorm → spec → plan → subagent build → tests → lint/deploy →
|
|
10
|
+
post-deploy log check → docs/wiki sync`
|
|
11
|
+
|
|
12
|
+
Each stage gates the next; each names the model to use.
|
|
13
|
+
|
|
14
|
+
| # | Stage | Model | Gate |
|
|
15
|
+
|---|---|---|---|
|
|
16
|
+
| 1 | Docs study | Fable | contracts grounded on current docs |
|
|
17
|
+
| 2 | Brainstorm | Fable | design approved |
|
|
18
|
+
| 3 | Spec | Fable | committed + reviewed |
|
|
19
|
+
| 4 | Plan | Fable | parallel-ready, DoD per task |
|
|
20
|
+
| 5 | Dev | Opus | tasks DONE, TDD green per task |
|
|
21
|
+
| 6 | Tests | Opus | full suite green, new code covered |
|
|
22
|
+
| 7 | Lint + deploy | host | lint clean + suite green before deploy |
|
|
23
|
+
| 8 | Post-deploy | host | clean boot / honest degradation |
|
|
24
|
+
| 9 | Docs + wiki | host | docs + wiki synced |
|
|
25
|
+
|
|
26
|
+
## Prerequisite
|
|
27
|
+
|
|
28
|
+
**superpowers** — https://github.com/obra/superpowers
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
/plugin marketplace add obra/superpowers
|
|
32
|
+
/plugin install superpowers@superpowers
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Install
|
|
36
|
+
|
|
37
|
+
**Plugin (recommended):**
|
|
38
|
+
```
|
|
39
|
+
/plugin marketplace add ssheleg/task-pipeline
|
|
40
|
+
/plugin install task-pipeline@task-pipeline
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
**Any agent via the skills CLI (Claude Code, Cursor, Codex, 70+ agents):**
|
|
44
|
+
```
|
|
45
|
+
npx skills add ssheleg/task-pipeline
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
**npm installer (no clone needed):**
|
|
49
|
+
```
|
|
50
|
+
npx github:ssheleg/task-pipeline # straight from GitHub
|
|
51
|
+
npx task-pipeline-skill # from the npm registry
|
|
52
|
+
```
|
|
53
|
+
(package is `task-pipeline-skill` — the unscoped `task-pipeline` name is taken
|
|
54
|
+
on npm; installs the same skill + `/task-pipeline` command into `~/.claude`,
|
|
55
|
+
idempotent, `--force` to overwrite)
|
|
56
|
+
|
|
57
|
+
**Plain skill:**
|
|
58
|
+
```
|
|
59
|
+
git clone https://github.com/ssheleg/task-pipeline
|
|
60
|
+
cd task-pipeline && ./install.sh
|
|
61
|
+
```
|
|
62
|
+
(copies the skill into `~/.claude/skills/task-pipeline` and the `/task-pipeline`
|
|
63
|
+
command into `~/.claude/commands/`; idempotent — rerun skips existing installs,
|
|
64
|
+
`./install.sh --force` overwrites)
|
|
65
|
+
|
|
66
|
+
## Use
|
|
67
|
+
|
|
68
|
+
Say *"run this through the pipeline"* / *"полный цикл"* / *"прогони по конвейеру"*,
|
|
69
|
+
or `/task-pipeline`. The skill creates a per-stage TaskList and walks the gates.
|
|
70
|
+
|
|
71
|
+
## Model tiering
|
|
72
|
+
|
|
73
|
+
Stages 1–4 → Fable, stages 5–6 → Opus, 7–9 → inherit. **Reminders only** — a skill
|
|
74
|
+
can't switch the main-loop model; `/model` is the operator's. Stage-5 subagents are
|
|
75
|
+
pinned to Opus automatically.
|
|
76
|
+
|
|
77
|
+
## Portability
|
|
78
|
+
|
|
79
|
+
Stages 6–9 read the host project's `CLAUDE.md` conventions (tests / lint / deploy /
|
|
80
|
+
docs / wiki) with detection fallbacks, so the skill works in any repo.
|
|
81
|
+
|
|
82
|
+
## По-русски
|
|
83
|
+
|
|
84
|
+
**task-pipeline** — оркестратор полного цикла доставки задачи для Claude Code:
|
|
85
|
+
один скилл проводит любую существенную задачу через **9 гейтованных стадий**
|
|
86
|
+
(изучение доков → брейншторм → спека → план → сборка сабагентами → тесты →
|
|
87
|
+
линт/деплой → пост-деплой проверка логов → синк доков/вики), построенных на
|
|
88
|
+
скиллах [superpowers](https://github.com/obra/superpowers).
|
|
89
|
+
|
|
90
|
+
- Ни одна стадия не стартует, пока не пройден гейт предыдущей; деплой требует
|
|
91
|
+
зелёного полного прогона тестов и явного «go» оператора.
|
|
92
|
+
- Каждая стадия напоминает, какую модель включить (`/model`): 1–4 — Fable,
|
|
93
|
+
5–6 — Opus, 7–9 — наследуется. Это только напоминание — модель переключает
|
|
94
|
+
оператор.
|
|
95
|
+
- Стадии 6–9 читают конвенции хост-проекта из `CLAUDE.md` (тесты / линт /
|
|
96
|
+
деплой / доки / вики), поэтому скилл работает в любом репозитории.
|
|
97
|
+
|
|
98
|
+
Запуск: скажите *«полный цикл»* / *«прогони по конвейеру»* или `/task-pipeline
|
|
99
|
+
<задача>`. Установка — см. раздел Install выше (плагин, `npx skills add
|
|
100
|
+
ssheleg/task-pipeline`, `npx task-pipeline-skill` / `npx
|
|
101
|
+
github:ssheleg/task-pipeline` или `./install.sh`).
|
|
102
|
+
|
|
103
|
+
## License
|
|
104
|
+
|
|
105
|
+
MIT © 2026 ssheleg.
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/*
|
|
3
|
+
* task-pipeline installer CLI.
|
|
4
|
+
*
|
|
5
|
+
* Installs the task-pipeline skill into ~/.claude/skills/task-pipeline and
|
|
6
|
+
* the /task-pipeline slash command into ~/.claude/commands/ (same layout as
|
|
7
|
+
* install.sh). Idempotent: existing installs are skipped unless --force.
|
|
8
|
+
*
|
|
9
|
+
* Zero dependencies, non-interactive. For other agents (Cursor, Codex, 70+)
|
|
10
|
+
* use: npx skills add ssheleg/task-pipeline
|
|
11
|
+
*/
|
|
12
|
+
'use strict';
|
|
13
|
+
|
|
14
|
+
const fs = require('fs');
|
|
15
|
+
const path = require('path');
|
|
16
|
+
const os = require('os');
|
|
17
|
+
|
|
18
|
+
const ROOT = path.resolve(__dirname, '..');
|
|
19
|
+
const REPO = 'ssheleg/task-pipeline';
|
|
20
|
+
|
|
21
|
+
function usage() {
|
|
22
|
+
console.log(`task-pipeline installer
|
|
23
|
+
|
|
24
|
+
Usage:
|
|
25
|
+
npx task-pipeline-skill [--force] install skill + /task-pipeline command
|
|
26
|
+
into ~/.claude (skip existing unless --force)
|
|
27
|
+
npx task-pipeline-skill --help
|
|
28
|
+
|
|
29
|
+
Other install paths:
|
|
30
|
+
Claude Code plugin: /plugin marketplace add ${REPO}
|
|
31
|
+
/plugin install task-pipeline@task-pipeline
|
|
32
|
+
Any agent (70+): npx skills add ${REPO}`);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
function copyDir(src, dest) {
|
|
36
|
+
fs.mkdirSync(dest, { recursive: true });
|
|
37
|
+
for (const entry of fs.readdirSync(src, { withFileTypes: true })) {
|
|
38
|
+
const s = path.join(src, entry.name);
|
|
39
|
+
const d = path.join(dest, entry.name);
|
|
40
|
+
if (entry.isDirectory()) copyDir(s, d);
|
|
41
|
+
else fs.copyFileSync(s, d);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
function installOne(label, src, dest, isDir, force) {
|
|
46
|
+
if (fs.existsSync(dest) && !force) {
|
|
47
|
+
console.log(`skip: ${label} already installed at ${dest} (rerun with --force to overwrite)`);
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
fs.rmSync(dest, { recursive: true, force: true });
|
|
51
|
+
fs.mkdirSync(path.dirname(dest), { recursive: true });
|
|
52
|
+
if (isDir) copyDir(src, dest);
|
|
53
|
+
else fs.copyFileSync(src, dest);
|
|
54
|
+
console.log(`Installed ${label} -> ${dest}`);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
function main(argv) {
|
|
58
|
+
const args = argv.slice(2);
|
|
59
|
+
if (args.includes('--help') || args.includes('-h')) {
|
|
60
|
+
usage();
|
|
61
|
+
return 0;
|
|
62
|
+
}
|
|
63
|
+
const force = args.includes('--force');
|
|
64
|
+
const unknown = args.filter((a) => a !== '--force');
|
|
65
|
+
if (unknown.length) {
|
|
66
|
+
console.error(`unknown argument(s): ${unknown.join(' ')}`);
|
|
67
|
+
usage();
|
|
68
|
+
return 2;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
const skillSrc = path.join(ROOT, 'plugins/task-pipeline/skills/task-pipeline');
|
|
72
|
+
const cmdSrc = path.join(ROOT, 'plugins/task-pipeline/commands/task-pipeline.md');
|
|
73
|
+
for (const [p, what] of [[skillSrc, 'skill sources'], [cmdSrc, 'command source']]) {
|
|
74
|
+
if (!fs.existsSync(p)) {
|
|
75
|
+
console.error(`error: ${what} missing at ${p} — corrupted package?`);
|
|
76
|
+
return 1;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
const home = os.homedir(); // respects $HOME on POSIX — tests override via env
|
|
81
|
+
installOne(
|
|
82
|
+
'task-pipeline skill ',
|
|
83
|
+
skillSrc,
|
|
84
|
+
path.join(home, '.claude', 'skills', 'task-pipeline'),
|
|
85
|
+
true,
|
|
86
|
+
force
|
|
87
|
+
);
|
|
88
|
+
installOne(
|
|
89
|
+
'/task-pipeline command',
|
|
90
|
+
cmdSrc,
|
|
91
|
+
path.join(home, '.claude', 'commands', 'task-pipeline.md'),
|
|
92
|
+
false,
|
|
93
|
+
force
|
|
94
|
+
);
|
|
95
|
+
return 0;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
process.exit(main(process.argv));
|
package/package.json
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "task-pipeline-skill",
|
|
3
|
+
"version": "0.4.0",
|
|
4
|
+
"description": "Full-cycle task delivery pipeline orchestrator skill for Claude Code — 9 gated stages (docs, brainstorm, spec, plan, build, tests, deploy, post-deploy, docs/wiki) built on the superpowers skills. This package is the installer CLI.",
|
|
5
|
+
"bin": {
|
|
6
|
+
"task-pipeline": "bin/task-pipeline.js"
|
|
7
|
+
},
|
|
8
|
+
"files": [
|
|
9
|
+
"bin",
|
|
10
|
+
"plugins",
|
|
11
|
+
"README.md",
|
|
12
|
+
"LICENSE",
|
|
13
|
+
"CHANGELOG.md"
|
|
14
|
+
],
|
|
15
|
+
"repository": "github:ssheleg/task-pipeline",
|
|
16
|
+
"homepage": "https://github.com/ssheleg/task-pipeline",
|
|
17
|
+
"license": "MIT",
|
|
18
|
+
"author": "ssheleg",
|
|
19
|
+
"engines": {
|
|
20
|
+
"node": ">=16"
|
|
21
|
+
},
|
|
22
|
+
"keywords": [
|
|
23
|
+
"pipeline",
|
|
24
|
+
"workflow",
|
|
25
|
+
"superpowers",
|
|
26
|
+
"orchestrator",
|
|
27
|
+
"tdd",
|
|
28
|
+
"deploy",
|
|
29
|
+
"spec-driven",
|
|
30
|
+
"claude-code",
|
|
31
|
+
"skill"
|
|
32
|
+
]
|
|
33
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "task-pipeline",
|
|
3
|
+
"description": "Thin orchestrator that runs a task through the full delivery pipeline: docs study, brainstorm, spec, plan, subagent build, test suite, lint/deploy, post-deploy log check, docs/wiki sync. Built on the superpowers skills; per-stage model reminders; generic-portable.",
|
|
4
|
+
"version": "0.4.0",
|
|
5
|
+
"author": { "name": "ssheleg" },
|
|
6
|
+
"homepage": "https://github.com/ssheleg/task-pipeline",
|
|
7
|
+
"repository": "https://github.com/ssheleg/task-pipeline",
|
|
8
|
+
"license": "MIT",
|
|
9
|
+
"keywords": ["pipeline", "workflow", "superpowers", "orchestrator", "tdd", "deploy", "spec-driven", "claude-code"]
|
|
10
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Run a task through the full 9-stage task-pipeline (docs → brainstorm → spec → plan → build → tests → deploy → post-deploy → docs/wiki).
|
|
3
|
+
argument-hint: <one-line task description>
|
|
4
|
+
---
|
|
5
|
+
Use the `task-pipeline` skill to run the task below through all **nine gated
|
|
6
|
+
stages** — docs study → brainstorm → spec → plan → subagent build → tests →
|
|
7
|
+
lint/deploy → post-deploy → docs/wiki. Honor every stage gate (never advance a
|
|
8
|
+
red gate) and emit the per-stage model reminder when the recommended model
|
|
9
|
+
differs from the current one.
|
|
10
|
+
|
|
11
|
+
Task: $ARGUMENTS
|
|
12
|
+
|
|
13
|
+
Idempotent entry — inspect state first, never restart blindly:
|
|
14
|
+
- If a pipeline TaskList from a previous run already exists for this task,
|
|
15
|
+
**resume** from the first incomplete stage instead of starting over.
|
|
16
|
+
- Otherwise, if no task is given above, ask the operator for the task in one
|
|
17
|
+
line before starting stage 1.
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: task-pipeline
|
|
3
|
+
description: "Orchestrates a task through the full end-to-end delivery pipeline — docs study, brainstorm, spec, plan, subagent-driven build, test suite, lint/deploy, post-deploy log check, and docs/wiki sync — as nine gated stages built on the superpowers skills. Use when the user wants to run a task through the pipeline, asks for the full cycle / полный цикл / прогони по конвейеру, invokes /task-pipeline, or starts any substantial feature, fix, or build that should follow the disciplined cycle rather than ad-hoc coding. Reminds which model to switch to per stage; reads host-project conventions for deploy/docs/wiki so it stays project-agnostic."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# task-pipeline
|
|
7
|
+
|
|
8
|
+
Thin orchestrator. Runs a task through **9 gated stages**, each built on an
|
|
9
|
+
existing skill. Keeps the main thread disciplined: no stage advances until its
|
|
10
|
+
gate passes; each stage names the model to use.
|
|
11
|
+
|
|
12
|
+
## Prerequisite
|
|
13
|
+
|
|
14
|
+
Requires the **superpowers** skills. Preflight: confirm `superpowers:brainstorming`,
|
|
15
|
+
`superpowers:writing-plans`, `superpowers:subagent-driven-development`,
|
|
16
|
+
`superpowers:using-git-worktrees`, `superpowers:test-driven-development` resolve.
|
|
17
|
+
If missing → tell the operator to install from **https://github.com/obra/superpowers**
|
|
18
|
+
(`/plugin marketplace add obra/superpowers` → `/plugin install superpowers@superpowers`)
|
|
19
|
+
and stop.
|
|
20
|
+
|
|
21
|
+
## How to run
|
|
22
|
+
|
|
23
|
+
1. Restate the task in one line. Create a **TaskList: one task per stage** (survives
|
|
24
|
+
context loss; lets you resume).
|
|
25
|
+
2. Walk stages 1→8. Before each: **model check** (see `references/model-tiering.md`) —
|
|
26
|
+
if recommended ≠ current, emit the reminder block and wait for the operator to `/model`.
|
|
27
|
+
3. Do **not** advance until the stage **gate** passes (`references/stages.md`).
|
|
28
|
+
4. Cross-cutting, every stage: task tracker + conventional commits per host
|
|
29
|
+
conventions; worktree isolation for the build; honest degradation (never claim a
|
|
30
|
+
failed/skipped step succeeded); outward/irreversible actions (deploy, publish,
|
|
31
|
+
repo create) need explicit operator go.
|
|
32
|
+
|
|
33
|
+
## Stages (detail in `references/stages.md`)
|
|
34
|
+
|
|
35
|
+
| # | Stage | Model | Invoke | Gate |
|
|
36
|
+
|---|---|---|---|---|
|
|
37
|
+
| 1 | Docs study | Fable | `context7` (resolve-library-id → get-library-docs) / `context7-docs` | contracts grounded on fetched docs |
|
|
38
|
+
| 2 | Brainstorm | Fable | `superpowers:brainstorming` | design approved by user |
|
|
39
|
+
| 3 | Spec | Fable | brainstorming writes `docs/superpowers/specs/…-design.md` | committed + user-reviewed |
|
|
40
|
+
| 4 | Plan | Fable | `superpowers:writing-plans` → `docs/superpowers/plans/…md` | parallel-ready, DoD per task |
|
|
41
|
+
| 5 | Dev | **Opus** | `superpowers:using-git-worktrees` + `superpowers:subagent-driven-development` (TDD) | tasks DONE, TDD green per task |
|
|
42
|
+
| 6 | Tests | **Opus** | host test runner + `superpowers:test-driven-development` | full suite green; new/changed code covered |
|
|
43
|
+
| 7 | Lint + deploy | host | host lint → deploy per host convention | lint clean + suite green before deploy; deploy needs go |
|
|
44
|
+
| 8 | Post-deploy | host | tail deploy logs / health-check | clean boot or honest degradation report |
|
|
45
|
+
| 9 | Docs + wiki | host | host module docs/runbook rules → `wiki-update` | docs synced, wiki synced |
|
|
46
|
+
|
|
47
|
+
## Model reminder (emit at a boundary when recommended ≠ current)
|
|
48
|
+
|
|
49
|
+
> ⏸ **Stage N (`<stage>`) recommends `<model>` (`<id>`).** You're on `<current>`.
|
|
50
|
+
> Switch: `/model <id>` — then say "continue". *(Reminder only — override if you
|
|
51
|
+
> don't have that model.)*
|
|
52
|
+
|
|
53
|
+
## References
|
|
54
|
+
|
|
55
|
+
- `references/stages.md` — per-stage detail + exact gate criteria
|
|
56
|
+
- `references/model-tiering.md` — model map, ids, the `/model` reminder mechanic, override
|
|
57
|
+
- `references/conventions.md` — how stages 6–9 read the host project's CLAUDE.md
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# Host conventions (stages 6–9)
|
|
2
|
+
|
|
3
|
+
The orchestrator is project-agnostic. For tests / lint / deploy / docs / wiki it reads the
|
|
4
|
+
**host project's `CLAUDE.md` / `AGENTS.md` first**, then falls back to detection.
|
|
5
|
+
Prefer explicit host instructions over detection; if a step's convention can't be
|
|
6
|
+
found, surface it and **ask** rather than guessing.
|
|
7
|
+
|
|
8
|
+
## Lint + test
|
|
9
|
+
- `CLAUDE.md` usually names the commands. Else detect: `package.json` scripts
|
|
10
|
+
(`npm test` / `npm run lint`), `pyproject.toml` / `ruff` (`ruff check`), `pytest`,
|
|
11
|
+
`Makefile` targets, `.golangci.yml`, `cargo test`.
|
|
12
|
+
|
|
13
|
+
## Deploy
|
|
14
|
+
- `CLAUDE.md` deploy section (e.g. deploy-from-main rule, Heroku auto-deploy on
|
|
15
|
+
push, `Procfile`). Else detect: `Procfile` / heroku remote, `Dockerfile`,
|
|
16
|
+
`.github/workflows/*.yml`, Vercel / Netlify config. **Never invent a deploy
|
|
17
|
+
path** — if none is discoverable, ask.
|
|
18
|
+
|
|
19
|
+
## Post-deploy logs
|
|
20
|
+
- Heroku: `heroku logs -a <app>`. Docker / k8s: `docker logs` / `kubectl logs`.
|
|
21
|
+
CI: the workflow run. Hit the health endpoint if one is defined.
|
|
22
|
+
|
|
23
|
+
## Docs + wiki
|
|
24
|
+
- Host self-update rules (module docs, runbooks, agent-self cards, etc.) — update
|
|
25
|
+
in the same change. Wiki: the `wiki-update` skill (resolves the vault via
|
|
26
|
+
`~/.obsidian-wiki/config`). Fix dangling links.
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Model tiering
|
|
2
|
+
|
|
3
|
+
A **reminder**, not a hard block. Not every environment has every model — if you
|
|
4
|
+
lack one, keep your current model; the pipeline still runs.
|
|
5
|
+
|
|
6
|
+
| Stages | Recommended | id |
|
|
7
|
+
|---|---|---|
|
|
8
|
+
| 1–4 (docs, brainstorm, spec, plan) | Fable 5 | `claude-fable-5` |
|
|
9
|
+
| 5–6 (subagent dev, tests) | Opus 4.8 | `claude-opus-4-8` |
|
|
10
|
+
| 7–9 (lint/deploy, logs, docs) | inherit current | — |
|
|
11
|
+
|
|
12
|
+
## Mechanic
|
|
13
|
+
|
|
14
|
+
At each stage boundary compare recommended vs current. If they differ, emit:
|
|
15
|
+
|
|
16
|
+
> ⏸ **Stage N (`<name>`) recommends `<model>` (`<id>`).** You're on `<current>`.
|
|
17
|
+
> Switch: `/model <id>` — then say "continue". *(Reminder only.)*
|
|
18
|
+
|
|
19
|
+
## Why manual
|
|
20
|
+
|
|
21
|
+
A skill runs inside the current context; it **cannot change the main-loop model**.
|
|
22
|
+
Only the operator can, via `/model` (or `/fast`). The stages that most benefit from
|
|
23
|
+
Fable (1–4) are interactive anyway, so the operator is present to switch.
|
|
24
|
+
|
|
25
|
+
Stage 5 spawns subagents; those **are** pinned to Opus by the orchestrator via the
|
|
26
|
+
`Agent` / `Workflow` model override — no operator action needed for subagents.
|
|
27
|
+
|
|
28
|
+
## Override
|
|
29
|
+
|
|
30
|
+
Set your own map if your task warrants it (e.g. a heavy design needs Opus at
|
|
31
|
+
stage 2). The recommendations are defaults, not rules.
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# Stages — detail & gates
|
|
2
|
+
|
|
3
|
+
For each stage: what it does, what to invoke, artifacts, and the **GATE** that
|
|
4
|
+
must pass before advancing.
|
|
5
|
+
|
|
6
|
+
## 1 — Docs study (Fable)
|
|
7
|
+
- **What:** ground every external library / API / SDK the task touches on the
|
|
8
|
+
*current* docs, before locking any contract.
|
|
9
|
+
- **Invoke:** `context7` MCP (`resolve-library-id` → `get-library-docs`, scope by
|
|
10
|
+
`topic`) or the `context7-docs` skill. Web-search fallback for libs context7
|
|
11
|
+
can't resolve.
|
|
12
|
+
- **GATE:** every contract the design will lock is grounded in fetched docs, not
|
|
13
|
+
recall. Unresolvable libraries are flagged in the spec.
|
|
14
|
+
|
|
15
|
+
## 2 — Brainstorm (Fable)
|
|
16
|
+
- **Invoke:** `superpowers:brainstorming`. One question at a time; 2–3 approaches +
|
|
17
|
+
a recommendation; design presented in sections.
|
|
18
|
+
- **GATE:** the user approves the design.
|
|
19
|
+
|
|
20
|
+
## 3 — Spec (Fable)
|
|
21
|
+
- brainstorming writes the design to
|
|
22
|
+
`docs/superpowers/specs/YYYY-MM-DD-<topic>-design.md` and commits it. Lock all
|
|
23
|
+
shared contracts (types, schemas, signatures, file layout).
|
|
24
|
+
- **GATE:** spec committed **and** user-reviewed.
|
|
25
|
+
|
|
26
|
+
## 4 — Plan (Fable)
|
|
27
|
+
- **Invoke:** `superpowers:writing-plans` →
|
|
28
|
+
`docs/superpowers/plans/YYYY-MM-DD-<feature>.md`. Zero-context tasks, exact
|
|
29
|
+
paths, TDD steps, DoD each, dependency graph + parallel groups, non-overlapping
|
|
30
|
+
file ownership.
|
|
31
|
+
- **GATE:** every spec requirement maps to a task; no placeholders; parallel-group
|
|
32
|
+
tasks share no files.
|
|
33
|
+
|
|
34
|
+
## 5 — Dev (Opus)
|
|
35
|
+
- **Invoke:** `superpowers:using-git-worktrees` (isolate) →
|
|
36
|
+
`superpowers:subagent-driven-development` (or `superpowers:executing-plans`).
|
|
37
|
+
TDD per task (failing test → minimal impl → green → commit). Pin subagents to Opus.
|
|
38
|
+
- **GATE:** all plan tasks DONE (two-stage review: spec compliance, then code
|
|
39
|
+
quality); full test suite green.
|
|
40
|
+
|
|
41
|
+
## 6 — Tests (Opus)
|
|
42
|
+
- **What:** consolidate test coverage for the change: confirm new functionality
|
|
43
|
+
has tests (written test-first in stage 5), update/repair existing tests the
|
|
44
|
+
change touched, and add edge-case + failure-path tests per DoD.
|
|
45
|
+
- **Invoke:** the host test runner (see `conventions.md` → *Lint + test*);
|
|
46
|
+
`superpowers:test-driven-development` for any uncovered gap.
|
|
47
|
+
- **GATE:** the **full** suite is green (not just the new tests); new/changed code
|
|
48
|
+
is covered; no `skip`/`xfail` smuggling a red suite past the gate. Never advance
|
|
49
|
+
to deploy on a red or partial run.
|
|
50
|
+
|
|
51
|
+
## 7 — Lint + deploy (host model)
|
|
52
|
+
- Read host conventions (`conventions.md`): run the linter; fix failures. The suite
|
|
53
|
+
is already green from stage 6 — re-run it if code changed since. Then deploy per
|
|
54
|
+
the project's convention.
|
|
55
|
+
- **GATE:** lint clean **and** suite green **before** deploy. Deploy is outward →
|
|
56
|
+
explicit operator go. Respect deploy-from-main rules if the project mandates them.
|
|
57
|
+
|
|
58
|
+
## 8 — Post-deploy (host model)
|
|
59
|
+
- Tail deploy logs / health-check per conventions. Confirm clean boot, no error
|
|
60
|
+
spike, live subsystems healthy.
|
|
61
|
+
- **GATE:** clean boot confirmed, or an **honest degradation report** with next
|
|
62
|
+
steps — never silent success.
|
|
63
|
+
|
|
64
|
+
## 9 — Docs + wiki (host model)
|
|
65
|
+
- Update host module docs / runbooks per the project's self-update rules, in the
|
|
66
|
+
**same change**. Then sync knowledge to the wiki (`wiki-update` skill).
|
|
67
|
+
- **GATE:** docs in sync with code; wiki synced; dangling links fixed.
|