task-pipeline-skill 0.12.0 → 1.0.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.
Files changed (27) hide show
  1. package/CHANGELOG.md +477 -0
  2. package/LICENSE +47 -0
  3. package/README.md +369 -171
  4. package/cursor/rules/task-pipeline.mdc +125 -20
  5. package/package.json +8 -4
  6. package/plugins/task-pipeline/.claude-plugin/plugin.json +15 -4
  7. package/plugins/task-pipeline/commands/task-pipeline.md +20 -8
  8. package/plugins/task-pipeline/skills/task-pipeline/SKILL.md +112 -39
  9. package/plugins/task-pipeline/skills/task-pipeline/pipeline.example.json +35 -16
  10. package/plugins/task-pipeline/skills/task-pipeline/references/acceptance.md +119 -0
  11. package/plugins/task-pipeline/skills/task-pipeline/references/artifacts.md +47 -14
  12. package/plugins/task-pipeline/skills/task-pipeline/references/brainstorm.md +108 -0
  13. package/plugins/task-pipeline/skills/task-pipeline/references/build.md +365 -0
  14. package/plugins/task-pipeline/skills/task-pipeline/references/companion-skills.md +72 -31
  15. package/plugins/task-pipeline/skills/task-pipeline/references/conventions.md +27 -3
  16. package/plugins/task-pipeline/skills/task-pipeline/references/decomposition.md +139 -0
  17. package/plugins/task-pipeline/skills/task-pipeline/references/grill.md +78 -7
  18. package/plugins/task-pipeline/skills/task-pipeline/references/knowledge-sources.md +159 -0
  19. package/plugins/task-pipeline/skills/task-pipeline/references/loop-guard.md +100 -0
  20. package/plugins/task-pipeline/skills/task-pipeline/references/planning.md +195 -0
  21. package/plugins/task-pipeline/skills/task-pipeline/references/review.md +174 -0
  22. package/plugins/task-pipeline/skills/task-pipeline/references/spec.md +144 -0
  23. package/plugins/task-pipeline/skills/task-pipeline/references/stages.md +190 -35
  24. package/plugins/task-pipeline/skills/task-pipeline/references/tdd.md +110 -0
  25. package/plugins/task-pipeline/skills/task-pipeline/templates/README.md +5 -3
  26. package/plugins/task-pipeline/skills/task-pipeline/templates/brief.md +50 -2
  27. package/plugins/task-pipeline/skills/task-pipeline/templates/carryover.md +36 -0
@@ -1,15 +1,19 @@
1
1
  ---
2
- description: "task-pipeline: run a substantial task through a disciplined, gated delivery cycle — an intake grill that expands the request, then docs→brainstorm→spec→plan→build→tests→lint/deploy→post-deploy→docs. Apply when the user asks to run a task through the pipeline, the full cycle / полный цикл / прогони по конвейеру, or starts any substantial feature/fix/build."
2
+ description: "task-pipeline: run a substantial task through a disciplined, gated delivery cycle — an intake grill that expands the request into a checkable requirement list, then docs→brainstorm→spec→plan→build→tests→lint/deploy→post-deploy→docs/wiki→acceptance. Apply when the user asks to 'run this through the pipeline' / 'прогони по конвейеру', asks for 'the full cycle' / 'полный цикл', or starts any substantial feature/fix/build."
3
3
  alwaysApply: false
4
4
  ---
5
5
 
6
6
  # task-pipeline — gated delivery cycle (Cursor)
7
7
 
8
8
  Self-contained rule (Cursor copies this file into projects — no external links).
9
- Run a substantial task through an up-front **intake grill + 9 gated stages**. No
9
+ Run a substantial task through an up-front **intake grill + 10 gated stages**. No
10
10
  stage advances until its **gate** passes. Each gate is `auto` (verify it yourself,
11
11
  pass/fail) or `manual` (wait for the user's explicit go).
12
12
 
13
+ **No companion skill is required.** Every rule below is the doctrine itself — the
14
+ grill, the design gate, the plan format, the build loop and TDD. Nothing to
15
+ install, nothing to resolve, nothing that breaks when a plugin is missing.
16
+
13
17
  ## Model — decide once, before you start
14
18
 
15
19
  Recommended: **the most capable reasoning model the environment offers** (at time
@@ -24,16 +28,42 @@ recommended tier isn't available, say which one you're using and continue.
24
28
 
25
29
  Never skipped, and nothing to install — the grill is part of this rule. No "the
26
30
  task was already clear" exemption, no starting stage 1 while the user thinks. A
27
- one-line task ("build feature X") is not enough to finish autonomously. Grill the
28
- user up front, then run the rest without mid-flight questions:
31
+ one-line task ("build feature X") is not enough to finish autonomously.
32
+
33
+ **Phase 1 — harvest the sources BEFORE the first question.** Find what the project
34
+ already knows about this task and read it: the code; `CLAUDE.md` / `AGENTS.md`;
35
+ `CONTEXT.md` (or `CONTEXT-MAP.md`) and `docs/adr/`; `docs/` and `docs/ux/`; past
36
+ briefs/plans and their carry-over ledgers; **the knowledge wiki if one is
37
+ installed** — [obsidian-wiki](https://github.com/ar9av/obsidian-wiki), detect
38
+ `~/.obsidian-wiki/config` or a resolving `wiki-query`; and **any other repository
39
+ or hosted doc system the project names as its docs** (read-only, and never a source
40
+ you invented — it counts because the project names it). Query each by *this task's*
41
+ nouns; it is retrieval, not a full read; stop when the terms return nothing new.
42
+ Write a short **source ledger** into the brief — source, what it says about this
43
+ task, how fresh, and whether this run makes it stale. `none found` is a valid row.
44
+ If no wiki is installed, recommend it once and continue:
45
+ `pip install obsidian-wiki` → `obsidian-wiki setup --vault <path>`. It is never a
46
+ gate.
47
+
48
+ **Phase 2 — grill the user against that harvest**, then run the rest without
49
+ mid-flight questions:
29
50
  1. One question per turn — never bundle.
30
51
  2. Give a recommended answer with every question (+ one-line rationale).
31
52
  3. Explore the codebase before asking — if a search/read answers it, do that.
32
- 4. Walk the decision tree depth-first; ask prerequisite decisions first.
33
- 5. Reconcile contradictions; chase dodges ("decide later" "latest you can decide
53
+ 4. **Validate every answer against the harvest.** When what the user says
54
+ contradicts a doc you read, quote the doc and ask which governs: *"the March ADR
55
+ says X, you just described Y — has it changed?"* The user **outranks every
56
+ document, but only out loud** — an override quoted against its source is a
57
+ recorded decision; an unquoted one is an undetected divergence that every later
58
+ gate will pass over. When two sources disagree: code > host docs/ADRs > wiki >
59
+ memory. Whichever side loses, if it's written down somewhere, log it for the
60
+ stage-9 doc update.
61
+ 5. Walk the decision tree depth-first; ask prerequisite decisions first.
62
+ 6. Reconcile contradictions; chase dodges ("decide later" → "latest you can decide
34
63
  and still ship?").
35
- 6. Run the **autonomy sweep** — resolve now whatever would stop stages 1→9 later:
36
- external libs and where their docs live; UI verdict; base branch, branch policy,
64
+ 7. Run the **autonomy sweep** — resolve now whatever would stop stages 1→10 later:
65
+ external libs and where their docs live; **which doc sources beyond this repo are
66
+ in play and whether stage 9 may write to them**; UI verdict; base branch, branch policy,
37
67
  commit convention, task tracker; the test command and what "green" means; the
38
68
  lint command; the deploy target, release toggle and **deploy authorization**;
39
69
  where logs/health live; which docs and runbooks this change updates. Each item
@@ -55,6 +85,19 @@ Offer an ADR (`docs/adr/NNNN-slug.md`, 1–3 sentences is a complete ADR) only w
55
85
  all three hold: hard to reverse, surprising without context, and the result of a
56
86
  real trade-off. Any one missing → skip it.
57
87
 
88
+ **Write the REQ spine before the brief is confirmed.** Turn the request into an
89
+ addressable list — one row per independently verifiable deliverable (not one per
90
+ sentence), each naming **how it is verified**: a test name, a `file:line`, a command
91
+ and its expected output, or a scenario id. *A requirement you can't say how to
92
+ verify is a badly-stated requirement* — split it here. Then freeze the list:
93
+ adding later is free, **removing or narrowing needs the user's explicit
94
+ agreement**. Quietly restating the task in smaller terms is the subtlest way to
95
+ lose it — every later gate then passes honestly on a task that shrank.
96
+
97
+ Seed a **carry-over ledger** next to the brief, append-only. Anything deferred,
98
+ dropped, or left half-done goes in the moment it's said — including implementer
99
+ concerns and non-blocking review findings. **Deferred out loud is forgotten.**
100
+
58
101
  Stop when shared understanding is reached (every branch answered or explicitly
59
102
  deferred) and lock the answers into a short brief the user confirms. Only then
60
103
  start. Later stages read that brief instead of asking again.
@@ -63,31 +106,93 @@ start. Later stages read that brief instead of asking again.
63
106
  specific (named target + named preconditions). A vague "just do everything" does
64
107
  not authorize an outward, irreversible action — stage 7 stops and asks.
65
108
 
66
- ## Stages 1→9
109
+ ## Stages 1→10
67
110
 
68
111
  1. **Docs study** (auto) — ground every external lib/API on current docs, not recall.
69
- 2. **Brainstorm** (manual) — 2–3 approaches + a recommendation; design approved.
70
- Record whether the task touches a user-facing surface (UI verdict).
71
- 3. **Spec** (manual) write and commit the design; lock shared contracts. For UI
72
- tasks, run the UX chain FIRST (see super-ux below) and embed it.
73
- 4. **Plan** (auto) zero-context tasks, exact paths, TDD steps, DoD each,
74
- dependency graph + parallel groups, non-overlapping file ownership.
75
- 5. **Dev** (auto) isolate (worktree), TDD per task (failing test minimal impl
76
- green commit); two-stage review (spec compliance, then code quality).
112
+ 2. **Brainstorm + decompose** (manual) — read the brief, explore the code, then 2–3
113
+ approaches with a recommendation, YAGNI applied, design presented in sections and
114
+ approved. **Hard gate: no code, no scaffolding before that approval** including
115
+ on "obviously simple" tasks. Record whether the task touches a user-facing surface
116
+ (UI verdict). **If the brief is a platform, not a change** several independent
117
+ capabilities or separately shippable surfaces cut it into modules before any
118
+ spec: modules by capability, never by layer; a module qualifies as a brick only if
119
+ it is independently specifiable, buildable and testable, owns its own entities,
120
+ talks to others through declared contracts only, and can land while leaving the
121
+ system working. Commit a module map (module, delivers, entities owned, depends on,
122
+ contracts exposed, UI?, REQs, status) in build order — the **walking skeleton
123
+ first**, then topologically, no cycles (a cycle means the cut is wrong). Every REQ
124
+ maps to exactly one module. Then stages 3→10 run **per module**, one brick at a
125
+ time; stages 0–2 run once, and the map's status column is the resume point. Single
126
+ module → record "single module: <name>" and move on.
127
+ 3. **Spec** (manual) — write and commit the design; lock every shared contract
128
+ (types, schemas, signatures, file layout) plus a **Global Constraints** block of
129
+ exact values every later task inherits. Self-review it for placeholders,
130
+ contradictions, ambiguity and scope before showing it. For UI tasks, run the UX
131
+ chain FIRST (see super-ux below) and embed it.
132
+ 4. **Plan** (auto) — every task names the REQ ids it `Implements:`, and the set of those ids must **equal** the brief's REQ set — a difference is scope lost, print it and fix it. Zero-context tasks: exact paths, complete code in every step,
133
+ the exact command and its expected output, TDD steps, DoD each, dependency graph
134
+ + parallel groups, non-overlapping file ownership. **No placeholders** — no TBD,
135
+ no "add error handling", no "similar to Task N", no undefined types.
136
+ 5. **Dev** (auto) — isolate first (existing worktree? native worktree tool? else
137
+ `git worktree` into an ignored dir), baseline tests green, then one task at a
138
+ time: TDD (failing test → watch it fail → minimal impl → watch it pass →
139
+ commit), then a review with **all three** verdicts — spec compliance, **REQ
140
+ satisfied** (judged against the requirement's own statement, not the task's
141
+ instructions), and code quality. Findings loop back to the implementer (max 5
142
+ rounds, then adjudicate in writing); minor findings are recorded, never blocking. Keep a progress ledger in
143
+ a file so a lost context can resume instead of redoing finished work. Tasks in
144
+ the same parallel group run concurrently **only** if each worker has its own
145
+ worktree — otherwise sequential. Close the stage by integrating: sync with the
146
+ base branch, re-run the full suite on the result, merge (or open a PR — that's
147
+ outward, so ask first), remove the worktree.
77
148
  6. **Tests** (auto) — full suite green (not just new tests); new/changed code
78
- covered; no skip/xfail hiding red.
149
+ covered including failure paths; no skip/xfail hiding red. Tests assert real
150
+ behavior, never mock behavior.
79
151
  7. **Lint + deploy** (manual) — lint clean AND suite green before deploy; deploy is
80
152
  outward → explicit user go, or the specific standing authorization recorded in
81
153
  the stage-0 brief.
82
154
  8. **Post-deploy** (auto) — tail logs / health-check; clean boot or an honest
83
155
  degradation report (never silent success).
84
- 9. **Docs** (auto) — update module docs/runbooks in the SAME change.
156
+ 9. **Docs + wiki** (auto) — **the phase-1 source ledger is the work list**: every
157
+ source the harvest read gets updated if this run changed or disproved it. Module
158
+ docs and runbooks in the SAME change; the knowledge wiki via `wiki-update` when
159
+ [obsidian-wiki](https://github.com/ar9av/obsidian-wiki) is installed (absent →
160
+ recommend once, never block). Docs in **another repository** are outward:
161
+ propose the edit and get an explicit go, or carry it over with the exact change
162
+ written down. A doc that was worth reading at stage 0 and is wrong now is the
163
+ next run's false premise.
164
+ 10. **Acceptance** (manual) — the closing stage: go back to the brief and account
165
+ for **every** REQ. One row each, status `verified` / `partial` / `deferred` /
166
+ `dropped`, and every `verified` carries **evidence** — a passing test name, a
167
+ `file:line`, a command and its output. "Done" without evidence is downgraded to
168
+ `partial`, never upgraded. Then ask out loud, list in hand: *here's what you
169
+ asked for, here's what shipped, here's what's deferred and where it lives —
170
+ what's missing?* Ask it even when the table is green. Gate: no REQ `unknown`,
171
+ no ledger row without a home, user signs off.
85
172
 
86
- Cross-cutting: answer from the brief's autonomy section rather than re-asking, track
173
+ Cross-cutting: answer from the brief's autonomy section rather than re-asking, log every deferral in the ledger, never narrow the task silently, track
87
174
  tasks, conventional commits, honest degradation (never claim a failed/skipped step
88
175
  succeeded), and get explicit go before any outward/irreversible action (deploy,
89
176
  publish, repo create).
90
177
 
178
+ **Loop guard — break churn instead of iterating.** Every repeating pass (a fix
179
+ round, a re-entered stage, the next module) logs one line per touched file: the
180
+ file, the pass, and the reason that forced it — a finding id or a failed gate item.
181
+ "Cleanup" is not a reason. **Stop immediately** when: an edit undoes what an earlier
182
+ pass in this run deliberately did (A→B→A); the same file is edited twice for the
183
+ same reason; a finding already fixed or parked comes back; a stage is entered a
184
+ third time for one artifact; two loops edit one file. Hard caps: 5 fix rounds per
185
+ task, 2 re-entries per stage, 3 passes per module. On a stop: name shape A and shape
186
+ B with their evidence and who asks for each; escalate to the layer that owns the
187
+ conflict (two findings → the review rubric; finding vs plan → the user; plan vs spec
188
+ → back to planning; ambiguous spec → back to spec; two modules claiming one file →
189
+ back to the module map) — **never settle a higher-layer conflict inside a lower
190
+ loop**; then re-plan the check as an ordered checklist, one owner and one
191
+ verification command per item, and go through it one at a time, one commit per item,
192
+ no opportunistic edits. Re-check the list once in the same order at the end. If it
193
+ trips again after a re-planned pass, stop and hand back with both shapes, the
194
+ evidence and your recommendation.
195
+
91
196
  ## super-ux for user-facing tasks (recommended)
92
197
 
93
198
  If the task touches any UI (web/mobile/CLI/TUI), the WHY→UI→scenario chain comes
package/package.json CHANGED
@@ -1,10 +1,13 @@
1
1
  {
2
2
  "name": "task-pipeline-skill",
3
- "version": "0.12.0",
4
- "description": "Full-cycle task delivery pipeline orchestrator skill for Claude Code \u2014 a mandatory built-in intake grill + 9 gated stages (docs, brainstorm, spec, plan, build, tests, deploy, post-deploy, docs/wiki) built on the superpowers skills, with a super-ux UX track for user-facing tasks and toggleable release automation. This package is the installer CLI.",
3
+ "version": "1.0.0",
4
+ "description": "Full-cycle delivery pipeline for coding agents: a mandatory built-in intake grill, then 10 gated stages (docs, brainstorm+decompose, spec, plan, build, tests, lint/deploy, post-deploy, docs/wiki, acceptance). Every stage's doctrine ships inside the skill no companion plugin required. This package is the installer CLI.",
5
5
  "bin": {
6
6
  "task-pipeline": "bin/task-pipeline.js"
7
7
  },
8
+ "scripts": {
9
+ "test": "python3 test/validate.py"
10
+ },
8
11
  "files": [
9
12
  "bin",
10
13
  "plugins",
@@ -14,7 +17,8 @@
14
17
  "CHANGELOG.md"
15
18
  ],
16
19
  "repository": "github:ssheleg/task-pipeline",
17
- "homepage": "https://github.com/ssheleg/task-pipeline",
20
+ "homepage": "https://github.com/ssheleg/task-pipeline#readme",
21
+ "bugs": "https://github.com/ssheleg/task-pipeline/issues",
18
22
  "license": "MIT",
19
23
  "author": "ssheleg",
20
24
  "engines": {
@@ -23,11 +27,11 @@
23
27
  "keywords": [
24
28
  "pipeline",
25
29
  "workflow",
26
- "superpowers",
27
30
  "orchestrator",
28
31
  "tdd",
29
32
  "deploy",
30
33
  "spec-driven",
34
+ "self-contained",
31
35
  "claude-code",
32
36
  "skill"
33
37
  ]
@@ -1,10 +1,21 @@
1
1
  {
2
2
  "name": "task-pipeline",
3
- "description": "Thin orchestrator: a mandatory built-in intake grill expands the task, sharpens its domain language and pre-resolves what would stop later stages, then docs study, brainstorm, spec, plan, subagent build, tests, lint/deploy, post-deploy log check, docs/wiki sync — typed auto/manual gates, one provider-agnostic model confirmed up front, a super-ux UX track for user-facing tasks, and toggleable project-configurable release automation. Built on the superpowers skills; generic-portable.",
4
- "version": "0.12.0",
5
- "author": { "name": "ssheleg" },
3
+ "description": "Runs a substantial task through a mandatory built-in intake grill, then 10 gated stages (docs, brainstorm+decompose, spec, plan, subagent build, tests, lint/deploy, post-deploy, docs/wiki, acceptance). Every stage's doctrine is built into the skill no companion plugin required — with typed auto/manual gates, a frozen requirement spine that must close with evidence, a loop guard that breaks churn, one provider-agnostic model confirmed up front, and an optional super-ux UX track for user-facing work.",
4
+ "version": "1.0.0",
5
+ "author": {
6
+ "name": "ssheleg"
7
+ },
6
8
  "homepage": "https://github.com/ssheleg/task-pipeline",
7
9
  "repository": "https://github.com/ssheleg/task-pipeline",
8
10
  "license": "MIT",
9
- "keywords": ["pipeline", "workflow", "superpowers", "orchestrator", "tdd", "deploy", "spec-driven", "claude-code"]
11
+ "keywords": [
12
+ "pipeline",
13
+ "workflow",
14
+ "orchestrator",
15
+ "tdd",
16
+ "deploy",
17
+ "spec-driven",
18
+ "self-contained",
19
+ "claude-code"
20
+ ]
10
21
  }
@@ -1,19 +1,31 @@
1
1
  ---
2
- description: Run a task through task-pipeline — an intake grill that expands the request, then docs → brainstorm → spec → plan → build → tests → deploy → post-deploy → docs/wiki.
2
+ description: Run a task through task-pipeline — an intake grill that expands the request, then docs → brainstorm → spec → plan → build → tests → deploy → post-deploy → docs/wiki → acceptance.
3
3
  argument-hint: <one-line task description>
4
4
  ---
5
5
  Use the `task-pipeline` skill to run the task below through all gated stages —
6
6
  **stage 0 intake grill** → docs study → brainstorm → spec → plan → subagent
7
- build → tests → lint/deploy → post-deploy → docs/wiki. The **intake grill is
8
- mandatory and built in** (`references/grill.md` — nothing to install): interview the
7
+ build → tests → lint/deploy → post-deploy → docs/wiki **acceptance**. **Every stage's doctrine is
8
+ built into the skill** (`references/{knowledge-sources,grill,brainstorm,decomposition,spec,planning,build,review,tdd,acceptance,loop-guard}.md`)
9
+ — no companion plugin is required for any of them. **Stage 0 opens with the
10
+ knowledge harvest, before the first question** (`references/knowledge-sources.md`):
11
+ pull what the project already knows about this task from the code, `CLAUDE.md`,
12
+ `CONTEXT.md`/ADRs, `docs/` + `docs/ux/`, past pipeline briefs, the **knowledge wiki**
13
+ if one is installed ([obsidian-wiki](https://github.com/ar9av/obsidian-wiki) —
14
+ recommended, never required; detect `~/.obsidian-wiki/config`) and any **other repo
15
+ or hosted doc system the project names as its docs**, then write the **source
16
+ ledger** into the brief. The **intake grill is
17
+ mandatory** (`references/grill.md`): interview the
9
18
  operator one question at a time (with a recommended answer each, exploring the
10
- codebase before asking) until every decision branch is resolved, applying the
19
+ codebase before asking) until every decision branch is resolved, **validating every
20
+ answer against the harvested sources** — the operator outranks any document, but
21
+ only out loud, and a doc the run proves stale is logged for the stage-9 update —
22
+ applying the
11
23
  grill's **domain awareness** (challenge terms against `CONTEXT.md`, sharpen fuzzy
12
24
  language, ADRs for hard-to-reverse calls) and covering the **autonomy sweep** (what
13
- would otherwise stop stages 1→9: docs sources, branch/tracker policy, test and lint
14
- commands, deploy target and authorization, log locations, docs/wiki targets) —
15
- until the brief is locked, so the rest runs autonomously. For any user-facing task, recommend/use
16
- **super-ux**. Honor every stage gate by its type (`auto` = verify yourself;
25
+ would otherwise stop stages 1→10: docs sources incl. doc repos and the wiki, branch/tracker
26
+ policy, test and lint commands, deploy target and authorization, log locations, docs/wiki targets) —
27
+ until the brief is locked — including the **REQ table**, the request as an addressable list where every row names how it is verified — so the rest runs autonomously and the final stage can account for all of it. The list is frozen: adding is free, removing needs the operator's agreement. Anything deferred goes into the carry-over ledger the moment it's said. For any user-facing task, recommend/use
28
+ **super-ux**. **If the brief describes a platform rather than a change**, stage 2 also cuts it into modules (`references/decomposition.md`) — module map committed, walking skeleton first, every REQ in exactly one module — and stages 3→10 then run per module, one brick at a time. **If any loop starts undoing an earlier pass** (same file edited twice for the same reason, a closed finding returning, a third entry into one stage), stop and run the loop guard (`references/loop-guard.md`): name both shapes, escalate to the layer that owns the conflict, re-plan the check as an ordered list, then go item by item. Honor every stage gate by its type (`auto` = verify yourself;
17
29
  `manual` = wait for explicit go). Confirm the **model once at preflight** —
18
30
  recommend the most capable one the environment offers, never a hardcoded id — then
19
31
  run the whole pipeline on it without re-asking.
@@ -1,18 +1,19 @@
1
1
  ---
2
2
  name: task-pipeline
3
- description: "Use when running a substantial task through the full end-to-end delivery pipeline — an up-front intake grill that expands the request into a complete brief, then docs study, brainstorm, spec, plan, subagent-driven build, test suite, lint/deploy, post-deploy log check, and docs/wiki sync — as 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. The intake grill is mandatory it front-loads every decision, including the per-stage autonomy sweep, so stages 1→9 run without mid-flight questions; recommends super-ux for any user-facing task; confirms one model up front (most capable available, never a hardcoded id); reads host-project conventions for deploy/docs/wiki so it stays project-agnostic."
3
+ description: "Use when running a substantial task through the full end-to-end delivery pipeline — an up-front intake grill that expands the request into a complete brief, then docs study, brainstorm, spec, plan, subagent-driven build, tests, lint/deploy, post-deploy log check, docs/wiki sync and acceptance — as gated stages whose doctrine is built entirely into this skill (no required companion skills). Triggers - 'run this through the pipeline' / 'прогони по конвейеру', 'the full cycle' / 'полный цикл', /task-pipeline, or any substantial feature, fix, or build that should follow the disciplined cycle rather than ad-hoc coding. The intake grill is mandatory - it front-loads every decision, including the per-stage autonomy sweep, so stages 1→10 run without mid-flight questions; recommends super-ux for user-facing work; confirms one model up front (most capable available, never a hardcoded id); reads host-project conventions for deploy/docs/wiki so it stays project-agnostic."
4
4
  ---
5
5
 
6
6
  # task-pipeline
7
7
 
8
- Thin orchestrator. Runs a task through **gated stages**, each built on an
9
- existing skill. Keeps the main thread disciplined: no stage advances until its
10
- gate passes; the whole run uses one model, confirmed before it starts.
8
+ Self-contained orchestrator. Runs a task through **gated stages**, each carrying its
9
+ own built-in doctrine no companion plugin required. Keeps the main thread
10
+ disciplined: no stage advances until its gate passes; the whole run uses one model,
11
+ confirmed before it starts.
11
12
 
12
13
  **Grill first, then run autonomously.** A one-line task ("make me feature X") is
13
14
  never enough to finish without a human in the loop. Stage 0 is **mandatory**: a
14
15
  relentless, one-question-at-a-time interview that resolves every decision branch
15
- *and* sweeps stages 1→9 for anything that would stop the run later — then locks
16
+ *and* sweeps stages 1→10 for anything that would stop the run later — then locks
16
17
  the answers into a brief. Autonomy is bought there or not at all; every question
17
18
  skipped at stage 0 comes back as an interruption at stage 6.
18
19
 
@@ -21,21 +22,43 @@ a machine-readable config — an ordered list of stages, each with `skills[]` (t
21
22
  skills/agents that run it) and a `gate {type, check}`. The schema is the universal
22
23
  contract; it imposes **no** specific stages, skills, or gate assignments.
23
24
  [`pipeline.example.json`](pipeline.example.json) is a **copy-and-rewrite example**
24
- that encodes this plugin's own default flow (stage 0 intake + the 1→9 stages
25
+ that encodes this plugin's own default flow (stage 0 intake + the 1→10 stages
25
26
  tabled below) and an optional, toggleable `release` block. Any project replaces it
26
27
  wholesale — any number of stages, run by its own skills/agents, with its own gate
27
28
  types (see *Bring your own skills*). Each gate has a **type**: `auto` (the
28
29
  orchestrator verifies the `check` itself, pass/fail) or `manual` (wait for an
29
- explicit operator go); which stages are manual is the operator's call.
30
-
31
- ## Prerequisite
32
-
33
- Requires the **superpowers** skills. Preflight: confirm `superpowers:brainstorming`,
34
- `superpowers:writing-plans`, `superpowers:subagent-driven-development`,
35
- `superpowers:using-git-worktrees`, `superpowers:test-driven-development` resolve.
36
- If missing → tell the operator to install from **https://github.com/obra/superpowers**
37
- (`/plugin marketplace add obra/superpowers` `/plugin install superpowers@superpowers`)
38
- and stop.
30
+ explicit operator go); which stages are manual is the operator's call. In the
31
+ example's `skills[]`, `task-pipeline:<name>` denotes this skill's own built-in
32
+ doctrine (`references/<name>.md`) and `host:<name>` denotes the host project's own
33
+ command for that job (`references/conventions.md`); everything else is a real skill
34
+ the environment resolves.
35
+
36
+ ## Prerequisites — none required
37
+
38
+ **Every stage's doctrine ships inside this skill.** There is no required companion
39
+ plugin, nothing to resolve at preflight, no version skew with someone else's repo,
40
+ and no stage that can fail because a dependency is missing:
41
+
42
+ | Stage | Built-in doctrine |
43
+ |---|---|
44
+ | 0 Knowledge harvest (pre-grill) | [`references/knowledge-sources.md`](references/knowledge-sources.md) |
45
+ | 0 Intake grill | [`references/grill.md`](references/grill.md) |
46
+ | 2 Brainstorm | [`references/brainstorm.md`](references/brainstorm.md) |
47
+ | 2 Decompose (platforms only) | [`references/decomposition.md`](references/decomposition.md) |
48
+ | 3 Spec | [`references/spec.md`](references/spec.md) |
49
+ | 4 Plan | [`references/planning.md`](references/planning.md) |
50
+ | 5 Build (worktree, subagents, fix loop) | [`references/build.md`](references/build.md) + [`references/review.md`](references/review.md) |
51
+ | 5–6 TDD + suite gate | [`references/tdd.md`](references/tdd.md) |
52
+ | 10 Acceptance (REQ close-out) | [`references/acceptance.md`](references/acceptance.md) |
53
+ | any repeating loop | [`references/loop-guard.md`](references/loop-guard.md) |
54
+
55
+ **Optional bridge.** If the operator already runs an equivalent skill set (e.g.
56
+ `superpowers:brainstorming` / `writing-plans` / `subagent-driven-development` /
57
+ `using-git-worktrees` / `test-driven-development`), it can be mapped onto stages
58
+ 2/4/5/6 in `pipeline.json` → `skills[]`. That is a **substitution, never a
59
+ requirement**: the built-in doctrine is normative, the gates in
60
+ `references/stages.md` still govern, and nothing detects, recommends or waits for
61
+ an external provider.
39
62
 
40
63
  **super-ux — recommended for ANY user-facing task.** The moment a task implies a
41
64
  user interface (web / mobile / CLI / TUI — a screen, a command, a visible
@@ -63,14 +86,31 @@ no "clear enough task" exemption, no starting stage 1 without a committed,
63
86
  operator-confirmed brief. The one sanctioned bypass is the entry-from-super-ux
64
87
  short-circuit, and even that demands a scope confirmation.
65
88
 
66
- Two things the grill does beyond clarifying the request:
89
+ It also produces the **REQ spine**: the request as an addressable list of
90
+ requirements, each naming how it will be verified. Stages 3–5 trace to those ids,
91
+ stage 4's gate is a mechanical set-comparison against them, and **stage 10 accounts
92
+ for every one** — which is what turns the pipeline from a funnel into a circle.
93
+
94
+ **Harvest before you ask.** Stage 0 opens with a **knowledge harvest**
95
+ ([`references/knowledge-sources.md`](references/knowledge-sources.md)), not a
96
+ question: pull what the project already knows about this task from the code,
97
+ `CLAUDE.md`, `CONTEXT.md`/ADRs, `docs/` + `docs/ux/`, past pipeline briefs, the
98
+ **knowledge wiki** if one is installed
99
+ ([obsidian-wiki](https://github.com/ar9av/obsidian-wiki) — recommended, never
100
+ required) and any **other repo or hosted doc system the project names as its
101
+ docs**. Write the source ledger into the brief, then interview *against* it: every
102
+ answer that touches a source is checked against that source, and the operator
103
+ outranks any document — but only out loud, so an override is a recorded decision
104
+ instead of an undetected divergence. The same ledger is stage 9's work list.
105
+
106
+ Three things the grill does beyond clarifying the request:
67
107
  - **Domain awareness.** It reads the project's own `CONTEXT.md` / `docs/adr/` and
68
108
  holds the operator to them — challenging terms that conflict with the glossary,
69
109
  sharpening overloaded words, stress-testing with concrete scenarios, and
70
110
  flagging where the code contradicts what was just said. Resolved terms are
71
111
  written to `CONTEXT.md` as they land; genuinely hard-to-reverse decisions get an
72
112
  ADR.
73
- - **The autonomy sweep.** It pre-resolves what would otherwise stop stages 1→9
113
+ - **The autonomy sweep.** It pre-resolves what would otherwise stop stages 1→10
74
114
  mid-flight (test/lint/deploy commands, branch policy, log locations, docs
75
115
  targets, the model decision, deploy authorization). Autonomy is bought here or
76
116
  not at all — an unasked question is a scheduled interruption.
@@ -79,33 +119,54 @@ Two things the grill does beyond clarifying the request:
79
119
 
80
120
  1. Restate the task in one line. Create a **TaskList: one task per stage, starting
81
121
  with stage 0** (survives context loss; lets you resume). Then run the
82
- **companion preflight** (`references/companion-skills.md`): detect which
83
- companion skills resolve and emit ONE block covering both the companions
84
- install the required/recommended ones (superpowers always; super-ux for UI
85
- tasks) — **and the model decision** (`references/model-tiering.md`): recommend
122
+ **companion preflight** (`references/companion-skills.md`): the stage doctrine
123
+ is built in, so this only checks the *optional* companions (super-ux for UI
124
+ tasks, context7, wiki-update) and emits ONE block covering them
125
+ **and the model decision** (`references/model-tiering.md`): recommend
86
126
  the most capable model available, let the operator confirm or override, record
87
127
  it. Ask once, here.
88
- 2. **Run stage 0 (Intake grill) — always, no exceptions.** Grill until shared
89
- understanding is reached, the autonomy sweep is covered and the brief is locked
128
+ 2. **Run stage 0 — always, no exceptions.** It opens with the **knowledge harvest**
129
+ (`references/knowledge-sources.md`): query the project's own sources repo docs,
130
+ ADRs, `docs/ux/`, past briefs, the wiki if installed, any doc repo the project
131
+ names — for this task's terms, and write the **source ledger** into the brief
132
+ before question one. Then grill until shared
133
+ understanding is reached, **each answer checked against the harvest**, the
134
+ autonomy sweep is covered, **the REQ table is
135
+ written (one row per independently verifiable deliverable, each naming its
136
+ check)** and the brief is locked
90
137
  (`references/stages.md` → 0). Do not touch stage 1 before the brief is
91
138
  committed and confirmed. **Entered from super-ux?**
92
139
  (a validated `docs/ux/` chain and/or a `docs/ux/plans/…` fix plan already
93
140
  exists — super-ux's `/ux` hands off here) → don't re-grill or rebuild the UX
94
141
  chain: just check it's OK (`/ux-lint` green), confirm scope in one line, and
95
142
  skip ahead to the first stage with real work (see `references/stages.md` → 0).
96
- 3. Walk stages 1→9 on the model confirmed at preflight. **Don't re-ask about the
143
+ 3. Walk stages 1→10 on the model confirmed at preflight. **Don't re-ask about the
97
144
  model at every boundary** — only when the operator recorded a per-stage override
98
145
  map and the next stage's entry differs (`references/model-tiering.md`).
146
+ **Is the brief a platform rather than a change?** Then stage 2 also cuts it into
147
+ modules (`references/decomposition.md`) and stages 3→10 run **per module** in
148
+ build order, one brick at a time — stages 0–2 run once, and the module map's
149
+ status column is the resume point (`references/stages.md` → *The program loop*).
99
150
  4. Do **not** advance until the stage **gate** passes (`references/stages.md`).
100
151
  Honor the gate **type**: for `auto`, verify the gate's `check` yourself and
101
152
  stop/return on fail; for `manual`, present the result and **wait for the
102
153
  operator's explicit "continue"/go** — an auto gate never substitutes for a
103
154
  required manual approval.
104
155
  5. Cross-cutting, every stage: **answer from the brief's autonomy section rather
105
- than asking again** — it was grilled precisely so you wouldn't have to; task
156
+ than asking again** — it was grilled precisely so you wouldn't have to;
157
+ **anything deferred, dropped or left half-done goes into the carry-over ledger
158
+ the moment it's said** — deferred out loud is forgotten; **never narrow the task
159
+ silently** — the REQ list is frozen, adding is free, removing needs the
160
+ operator's explicit agreement; **when a loop starts undoing an earlier pass —
161
+ the same file edited twice for the same reason, a closed finding coming back, a
162
+ third entry into one stage — stop and run the loop guard**
163
+ (`references/loop-guard.md`): name the two shapes, escalate to the layer that
164
+ owns the conflict, re-plan the check as an ordered list, then go through it one
165
+ item at a time; task
106
166
  tracker + conventional commits per host conventions; worktree isolation for the
107
- build; honest degradation (never claim a failed/skipped step succeeded);
108
- outward/irreversible actions (deploy, publish, repo create) need explicit
167
+ build, integrated back per the brief's branch policy before stage 7; honest
168
+ degradation (never claim a failed/skipped step succeeded);
169
+ outward/irreversible actions (deploy, publish, repo create, opening a PR) need explicit
109
170
  operator go — or a **specific** standing authorization recorded in the brief
110
171
  (named target + preconditions; a vague "do everything" is not one).
111
172
 
@@ -116,16 +177,17 @@ capable available — see `references/model-tiering.md`).
116
177
 
117
178
  | # | Stage | Invoke | Gate | Type |
118
179
  |---|---|---|---|---|
119
- | 0 | Intake grill — **mandatory** | built in: [`references/grill.md`](references/grill.md) | shared understanding reached; autonomy sweep covered; brief locked + confirmed | manual |
180
+ | 0 | Intake grill — **mandatory** | built in: [`references/knowledge-sources.md`](references/knowledge-sources.md) (harvest) → [`references/grill.md`](references/grill.md) (interview) | source ledger written; shared understanding reached; autonomy sweep covered; brief locked + confirmed | manual |
120
181
  | 1 | Docs study | `context7` (resolve-library-id → get-library-docs) / `context7-docs` | contracts grounded on fetched docs | auto |
121
- | 2 | Brainstorm | `superpowers:brainstorming` + **UI detection** | design approved; UI verdict recorded | manual |
122
- | 3 | Spec | **UI → super-ux chain first** (`/ux` → `ux-foundation` CJM → `ux-flows` screens → `ux-scenarios` → `/ux-lint`), then spec `docs/superpowers/specs/…-design.md` | committed + reviewed; UI: chain validated, linter green, scenarios/`SCR-` traced | manual |
123
- | 4 | Plan | `superpowers:writing-plans` → `docs/superpowers/plans/…md` | parallel-ready, DoD per task | auto |
124
- | 5 | Dev | `superpowers:using-git-worktrees` + `superpowers:subagent-driven-development` (TDD) | tasks DONE, TDD green per task | auto |
125
- | 6 | Tests | host test runner + `superpowers:test-driven-development` | full suite green; new/changed code covered | auto |
182
+ | 2 | Brainstorm + decompose | built in: [`references/brainstorm.md`](references/brainstorm.md) + **UI detection** + [`references/decomposition.md`](references/decomposition.md) for platforms | design approved; UI verdict recorded; every REQ answered; platform: module map approved | manual |
183
+ | 3 | Spec | built in: [`references/spec.md`](references/spec.md) — **UI → super-ux chain first** (`/ux` → `ux-foundation` CJM → `ux-flows` screens → `ux-scenarios` → `/ux-lint`), then spec `docs/superpowers/specs/…-design.md` | committed + reviewed; UI: chain validated, linter green, scenarios/`SCR-` traced | manual |
184
+ | 4 | Plan | built in: [`references/planning.md`](references/planning.md) → `docs/superpowers/plans/…md` | parallel-ready, DoD per task | auto |
185
+ | 5 | Dev | built in: [`references/build.md`](references/build.md) (worktree → subagent per task → review loop → integrate) + [`references/tdd.md`](references/tdd.md) | tasks DONE, TDD green per task, branch integrated per the brief | auto |
186
+ | 6 | Tests | host test runner + built-in [`references/tdd.md`](references/tdd.md) | full suite green; new/changed code covered | auto |
126
187
  | 7 | Lint + deploy | host lint → deploy per host convention | lint clean + suite green before deploy; deploy needs a go (or the brief's specific standing authorization) | manual |
127
188
  | 8 | Post-deploy | tail deploy logs / health-check | clean boot or honest degradation report | auto |
128
- | 9 | Docs + wiki | host module docs/runbook rules → `wiki-update` | docs synced, wiki synced | auto |
189
+ | 9 | Docs + wiki | host module docs/runbook rules → `wiki-update` ([obsidian-wiki](https://github.com/ar9av/obsidian-wiki), recommended) | every stale row of the stage-0 source ledger updated; docs synced; wiki synced | auto |
190
+ | 10 | **Acceptance** | built in: [`references/acceptance.md`](references/acceptance.md) | every REQ accounted for with evidence; ledger has no unresolved row; operator signs off | manual |
129
191
 
130
192
  ## Model — ask once, at preflight
131
193
 
@@ -145,8 +207,8 @@ pinned to the confirmed model automatically. Detail: `references/model-tiering.m
145
207
 
146
208
  ## Bring your own skills
147
209
 
148
- The stages above (stage 0 intake + 1→9) are the **example** flow (grill +
149
- superpowers + a super-ux UX track for user-facing tasks + host conventions). A
210
+ The stages above (stage 0 intake + 1→10) are the **example** flow (this skill's
211
+ built-in doctrine + a super-ux UX track for user-facing tasks + host conventions). A
150
212
  host project owns its pipeline: copy `pipeline.example.json` → `pipeline.json`,
151
213
  then define its **own** stages (any count), point each stage's `skills[]` at the
152
214
  skills/agents its environment resolves, set each `gate.type` (`auto`/`manual`) to
@@ -157,10 +219,21 @@ automation is on — `pipeline.schema.json` is the only contract.
157
219
  ## References
158
220
 
159
221
  - `pipeline.schema.json` — the universal pipeline config contract (stages + release)
160
- - `pipeline.example.json` — this plugin's default flow (stage 0 + 1→9) + release, as config
222
+ - `pipeline.example.json` — this plugin's default flow (stage 0 + 1→10) + release, as config
223
+ - `references/knowledge-sources.md` — stage-0 phase 1: the source list, the wiki, the ledger, the stage-9 loop-back
161
224
  - `references/grill.md` — the built-in stage-0 grill: loop, domain awareness, autonomy sweep
225
+ - `references/acceptance.md` — the built-in stage-10 close-out: REQ coverage, evidence, sign-off
226
+ - `references/brainstorm.md` — stage 2: design dialogue, approaches, UI detection, hard gate
227
+ - `references/spec.md` — stage 3: UX track order, the spec contract, self-review, review gate
228
+ - `references/planning.md` — stage 4: zero-context plan format, parallel groups, no placeholders
229
+ - `references/build.md` — stage 5: isolation, ledger, subagent task loop, fix loop, final review
230
+ - `references/review.md` — the review rubric, diff packages and the three reviewer prompts
231
+ - `references/tdd.md` — stages 5–6: the iron law, red/green/refactor, the suite gate
162
232
  - `references/stages.md` — per-stage detail + exact gate criteria + gate types
163
233
  - `references/model-tiering.md` — model map, ids, the `/model` reminder mechanic, override
164
- - `references/conventions.md` — how stages 6–9 read the host project's CLAUDE.md
234
+ - `references/conventions.md` — how stages 6–10 read the host project's CLAUDE.md
165
235
  - `references/companion-skills.md` — companion skills, install lines, preflight recommendation
166
236
  - `references/artifacts.md` — the canonical document/artifact layout per stage
237
+ - `templates/` — skeletons seeded into the host project: `brief.md` (stage 0),
238
+ `carryover.md` (seeded at 0, appended by every stage, read in full at 10),
239
+ `context.md` and `adr.md` (format references the grill writes lazily)