task-pipeline-skill 1.7.2 → 1.8.1
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 +118 -0
- package/CODE_OF_CONDUCT.md +38 -0
- package/CONTRIBUTING.md +215 -0
- package/README.md +29 -1
- package/SECURITY.md +67 -0
- package/SKILL-CARD.md +60 -0
- package/bin/task-pipeline.js +23 -0
- package/evals/RESULTS.md +47 -0
- package/evals/__pycache__/run.cpython-314.pyc +0 -0
- package/evals/run.py +130 -0
- package/evals/task-pipeline.evals.json +166 -0
- package/package.json +7 -2
- package/plugins/task-pipeline/.claude-plugin/plugin.json +1 -1
- package/plugins/task-pipeline/skills/task-pipeline/SKILL.md +1 -1
- package/plugins/task-pipeline/skills/task-pipeline/references/acceptance.md +13 -0
- package/plugins/task-pipeline/skills/task-pipeline/references/artifacts.md +6 -0
- package/plugins/task-pipeline/skills/task-pipeline/references/audit.md +11 -0
- package/plugins/task-pipeline/skills/task-pipeline/references/brainstorm.md +12 -0
- package/plugins/task-pipeline/skills/task-pipeline/references/build.md +12 -1
- package/plugins/task-pipeline/skills/task-pipeline/references/companion-skills.md +10 -1
- package/plugins/task-pipeline/skills/task-pipeline/references/decomposition.md +9 -0
- package/plugins/task-pipeline/skills/task-pipeline/references/documentation.md +15 -1
- package/plugins/task-pipeline/skills/task-pipeline/references/gates.md +63 -0
- package/plugins/task-pipeline/skills/task-pipeline/references/grill.md +10 -0
- package/plugins/task-pipeline/skills/task-pipeline/references/hooks.md +16 -0
- package/plugins/task-pipeline/skills/task-pipeline/references/knowledge-graph.md +8 -0
- package/plugins/task-pipeline/skills/task-pipeline/references/knowledge-sources.md +13 -0
- package/plugins/task-pipeline/skills/task-pipeline/references/learned.md +8 -0
- package/plugins/task-pipeline/skills/task-pipeline/references/loop-guard.md +8 -0
- package/plugins/task-pipeline/skills/task-pipeline/references/planning.md +12 -0
- package/plugins/task-pipeline/skills/task-pipeline/references/retrospective.md +12 -1
- package/plugins/task-pipeline/skills/task-pipeline/references/review.md +11 -1
- package/plugins/task-pipeline/skills/task-pipeline/references/spec.md +10 -0
- package/plugins/task-pipeline/skills/task-pipeline/references/stages.md +57 -2
- package/plugins/task-pipeline/skills/task-pipeline/references/tdd.md +10 -0
- package/plugins/task-pipeline/skills/task-pipeline/templates/docgate.sh +3 -1
|
@@ -8,6 +8,19 @@ The same source list closes the loop at **stage 9**: what was read at the start
|
|
|
8
8
|
what gets updated at the end. A source good enough to answer a question is a source
|
|
9
9
|
that goes stale when the answer changes.
|
|
10
10
|
|
|
11
|
+
## Contents
|
|
12
|
+
|
|
13
|
+
- Why this is a phase and not "explore a bit first"
|
|
14
|
+
- The sources, in the order to try them
|
|
15
|
+
- The retro's standing instructions — an instruction source, not background
|
|
16
|
+
- The code graph — recommended
|
|
17
|
+
- The knowledge wiki — recommended
|
|
18
|
+
- How to harvest — retrieval, not reading
|
|
19
|
+
- Record it — the source ledger
|
|
20
|
+
- Phase 2 — validate the answers against the harvest
|
|
21
|
+
- Close the loop — stage 9 updates what stage 0 read
|
|
22
|
+
- Rationalizations
|
|
23
|
+
|
|
11
24
|
## Why this is a phase and not "explore a bit first"
|
|
12
25
|
|
|
13
26
|
An agent that starts asking without harvesting spends the operator's turns on
|
|
@@ -13,6 +13,14 @@ to be enforced and is not is the same failure as a gate that prints `FAIL` and e
|
|
|
13
13
|
|
|
14
14
|
---
|
|
15
15
|
|
|
16
|
+
## Contents
|
|
17
|
+
|
|
18
|
+
- The table — trigger · check · exit criterion
|
|
19
|
+
- The incidents, so the rules are not abstract
|
|
20
|
+
- The two that are not in the table, and why
|
|
21
|
+
- The one instruction that would have prevented the most
|
|
22
|
+
- Where these bind in the pipeline
|
|
23
|
+
|
|
16
24
|
## The table — trigger · check · exit criterion
|
|
17
25
|
|
|
18
26
|
| # | Rule | Trigger | The check | Exit criterion |
|
|
@@ -18,6 +18,14 @@ axis, don't push harder): [`audit.md`](audit.md) → *Every pass changes the axi
|
|
|
18
18
|
Both can bind one run. Use this file's trips for edits, that file's crossover for
|
|
19
19
|
searches.
|
|
20
20
|
|
|
21
|
+
## Contents
|
|
22
|
+
|
|
23
|
+
- Bookkeeping — the thing that makes detection mechanical
|
|
24
|
+
- Detection — any one of these trips the guard
|
|
25
|
+
- The break protocol
|
|
26
|
+
- When to stop and hand back
|
|
27
|
+
- Rationalizations
|
|
28
|
+
|
|
21
29
|
## Bookkeeping — the thing that makes detection mechanical
|
|
22
30
|
|
|
23
31
|
You cannot detect churn from memory, especially after compaction. Every repeating
|
|
@@ -9,6 +9,18 @@ Built into this skill; nothing to install.
|
|
|
9
9
|
> *Third-party*), extended with the dependency graph, parallel groups and
|
|
10
10
|
> file-ownership rules this pipeline's stage-5 subagent build depends on.
|
|
11
11
|
|
|
12
|
+
## Contents
|
|
13
|
+
|
|
14
|
+
- Audience
|
|
15
|
+
- Before writing tasks
|
|
16
|
+
- Task right-sizing
|
|
17
|
+
- Plan header — required
|
|
18
|
+
- Task structure — required
|
|
19
|
+
- No placeholders
|
|
20
|
+
- Self-review — before handing off
|
|
21
|
+
- This stage settles nothing — and that is a rule, not an omission
|
|
22
|
+
- GATE (auto)
|
|
23
|
+
|
|
12
24
|
## Audience
|
|
13
25
|
|
|
14
26
|
Assume a skilled developer who knows nothing about this codebase, this domain or
|
|
@@ -20,6 +20,17 @@ Every run writes a **stamp** and runs the **prune**. Only a run that *diverged*
|
|
|
20
20
|
writes an entry. A retro that is empty after a messy run is the exact failure this
|
|
21
21
|
file exists to stop.
|
|
22
22
|
|
|
23
|
+
## Contents
|
|
24
|
+
|
|
25
|
+
- Write the entry only for a divergence — and name the layer that owned it
|
|
26
|
+
- Every lesson carries its commit
|
|
27
|
+
- Rotation — the archive is how pruning stops losing things
|
|
28
|
+
- Three grades of fix — take the highest one that can work
|
|
29
|
+
- The prune — mandatory, and it runs BEFORE the new entry is written
|
|
30
|
+
- The loop closes at stage 0
|
|
31
|
+
- Where a lesson goes when it is not about this project
|
|
32
|
+
- Rationalizations
|
|
33
|
+
|
|
23
34
|
## Write the entry only for a divergence — and name the layer that owned it
|
|
24
35
|
|
|
25
36
|
An entry is owed when the run did not go as planned: a gate reopened, a stage was
|
|
@@ -114,7 +125,7 @@ and the commit. Silent deletion is forbidden: the record is what survives, the
|
|
|
114
125
|
instruction is what leaves.
|
|
115
126
|
|
|
116
127
|
**Print the counts beside the gate verdict**, the same way the carry-over ledger
|
|
117
|
-
does ([`audit.md`](audit.md) → *ratchet, never TODO*):
|
|
128
|
+
does ([`audit.md`](audit.md) → *What can't be fixed now becomes a ratchet, never a TODO*):
|
|
118
129
|
|
|
119
130
|
```
|
|
120
131
|
GATE 10 acceptance: PASS — 14/14 REQ verified
|
|
@@ -10,6 +10,16 @@ install.
|
|
|
10
10
|
> external helper scripts replaced by plain git commands so the doctrine works on
|
|
11
11
|
> any agent.
|
|
12
12
|
|
|
13
|
+
## Contents
|
|
14
|
+
|
|
15
|
+
- The diff package
|
|
16
|
+
- Reviewer inputs
|
|
17
|
+
- Controller rules
|
|
18
|
+
- The rubric
|
|
19
|
+
- Prompt — task review
|
|
20
|
+
- Prompt — scoped re-review
|
|
21
|
+
- Prompt — final whole-branch review
|
|
22
|
+
|
|
13
23
|
## The diff package
|
|
14
24
|
|
|
15
25
|
A reviewer never re-derives the diff with a dozen git calls, and the diff never
|
|
@@ -172,7 +182,7 @@ exactly the sentence a future reader will hit in the code and re-litigate, so a
|
|
|
172
182
|
ruling that outlives the run goes through the **Doc Loop**
|
|
173
183
|
([`documentation.md`](documentation.md)) — via the report and the ledger, written by
|
|
174
184
|
the orchestrator after integration, never by a subagent
|
|
175
|
-
([`build.md`](build.md) →
|
|
185
|
+
([`build.md`](build.md) → *4.1a Decisions settled inside a task*).
|
|
176
186
|
|
|
177
187
|
Run the final review on the **run's confirmed model** like everything else
|
|
178
188
|
([`model-tiering.md`](model-tiering.md)). It is the one review that sees the whole
|
|
@@ -9,6 +9,16 @@ Writing the approved design down so a zero-context implementer — human or suba
|
|
|
9
9
|
> *Third-party*), extended here with the UX track and the Global Constraints block
|
|
10
10
|
> that stages 4–5 depend on.
|
|
11
11
|
|
|
12
|
+
## Contents
|
|
13
|
+
|
|
14
|
+
- Order of operations
|
|
15
|
+
- UX track (user-facing tasks only)
|
|
16
|
+
- Write the spec
|
|
17
|
+
- Module dossier — when the run is one brick of a platform
|
|
18
|
+
- Self-review — before showing it
|
|
19
|
+
- Locked contracts are decisions — the register, not only the spec
|
|
20
|
+
- GATE (manual)
|
|
21
|
+
|
|
12
22
|
## Order of operations
|
|
13
23
|
|
|
14
24
|
For a **user-facing task** (stage-2 UI verdict = yes) the UX chain runs **first** —
|
|
@@ -8,7 +8,52 @@ operator's explicit go). These stages (0 intake + 1→10) are the plugin's
|
|
|
8
8
|
`pipeline.schema.json`; a host project replaces it with its own
|
|
9
9
|
stages/agents/types (see SKILL.md → *Bring your own skills*).
|
|
10
10
|
|
|
11
|
+
## The run checklist — copy it, tick it
|
|
12
|
+
|
|
13
|
+
Complex workflows lose steps silently. Copy this into your response at the start of
|
|
14
|
+
a run and check items off as they close; it is the cheapest guard against the one
|
|
15
|
+
failure this pipeline keeps paying for — a stage that *looks* done because nothing
|
|
16
|
+
printed.
|
|
17
|
+
|
|
18
|
+
```
|
|
19
|
+
Pipeline progress
|
|
20
|
+
- [ ] 0 Intake — harvest + doc inventory + reconcile, grill, REQ table, brief locked
|
|
21
|
+
- [ ] 1 Docs study — every contract grounded on fetched docs, not recall
|
|
22
|
+
- [ ] 2 Brainstorm — design approved, UI verdict recorded, every REQ answered
|
|
23
|
+
- [ ] 3 Spec — committed, reviewed, every section covers: REQ-…
|
|
24
|
+
- [ ] 4 Plan — REQ set equality holds, no placeholders, groups share no files
|
|
25
|
+
- [ ] 5 Dev — tasks DONE, three verdicts each, suite green, branch integrated
|
|
26
|
+
- [ ] 6 Tests — full suite green, new checks probed both ways
|
|
27
|
+
- [ ] 7 Lint + deploy — clean, and the deploy authorization is specific
|
|
28
|
+
- [ ] 8 Post-deploy — clean boot, or an honest degradation report
|
|
29
|
+
- [ ] 9 Docs — matrix walked, registers written, docs gate green with ratchets printed
|
|
30
|
+
- [ ] 10 Acceptance — ladder walk first, every REQ with evidence, retro written last
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Each line is a **gate**, not a task: an unchecked box means the gate did not pass,
|
|
34
|
+
never that the work was skipped quietly.
|
|
35
|
+
|
|
36
|
+
## Contents
|
|
37
|
+
|
|
38
|
+
- The run checklist — copy it, tick it
|
|
39
|
+
- 0 — Intake grill — MANDATORY
|
|
40
|
+
- 1 — Docs study
|
|
41
|
+
- 2 — Brainstorm + decompose
|
|
42
|
+
- 3 — Spec — with UX track for user-facing tasks
|
|
43
|
+
- 4 — Plan
|
|
44
|
+
- 5 — Dev
|
|
45
|
+
- 6 — Tests
|
|
46
|
+
- 7 — Lint + deploy
|
|
47
|
+
- 8 — Post-deploy
|
|
48
|
+
- 9 — Docs + wiki
|
|
49
|
+
- 10 — Acceptance
|
|
50
|
+
- The program loop — a platform, one brick at a time
|
|
51
|
+
- Cross-cutting — the Doc Loop
|
|
52
|
+
- Cross-cutting — the loop guard
|
|
53
|
+
- Cross-cutting — the audit
|
|
54
|
+
|
|
11
55
|
## 0 — Intake grill — MANDATORY
|
|
56
|
+
- **Freedom: medium** — the interview adapts to the answers; its two phases and their order do not ([`gates.md`](gates.md) → *Axis C*).
|
|
12
57
|
- **Stage 0 is not optional and not skippable.** There is no "small enough task"
|
|
13
58
|
exemption, no "the request was already clear" exemption, no starting stage 1
|
|
14
59
|
"while the operator thinks". The only sanctioned bypass is the
|
|
@@ -109,15 +154,17 @@ stages/agents/types (see SKILL.md → *Bring your own skills*).
|
|
|
109
154
|
reversible calls can be deferred with a note). Only then start stage 1.
|
|
110
155
|
|
|
111
156
|
## 1 — Docs study
|
|
157
|
+
- **Freedom: medium** — which sources to fetch is judgement; grounding contracts on fetched docs is not ([`gates.md`](gates.md) → *Axis C*).
|
|
112
158
|
- **What:** ground every external library / API / SDK the task touches on the
|
|
113
159
|
*current* docs, before locking any contract.
|
|
114
|
-
- **Invoke:** `context7` MCP
|
|
115
|
-
|
|
160
|
+
- **Invoke:** the `context7` MCP — `context7:resolve-library-id` → `context7:query-docs`,
|
|
161
|
+
scoped by topic or the `context7-docs` skill. Web-search fallback for libs context7
|
|
116
162
|
can't resolve.
|
|
117
163
|
- **GATE (auto):** every contract the design will lock is grounded in fetched docs,
|
|
118
164
|
not recall. Unresolvable libraries are flagged in the spec.
|
|
119
165
|
|
|
120
166
|
## 2 — Brainstorm + decompose
|
|
167
|
+
- **Freedom: high** — many designs are valid — this is the open field, and the only fixed thing is the gate ([`gates.md`](gates.md) → *Axis C*).
|
|
121
168
|
- **How it runs: [`brainstorm.md`](brainstorm.md)** — built into this skill. Read
|
|
122
169
|
the brief first (stage 0 already answered scope/constraints/done-criteria), then
|
|
123
170
|
explore the codebase, scope-check for decomposition, one question at a time, 2–3
|
|
@@ -147,6 +194,7 @@ stages/agents/types (see SKILL.md → *Bring your own skills*).
|
|
|
147
194
|
contracts named with their owner.
|
|
148
195
|
|
|
149
196
|
## 3 — Spec — with UX track for user-facing tasks
|
|
197
|
+
- **Freedom: medium** — what the contract says is judgement; which contracts must be locked is a list ([`gates.md`](gates.md) → *Axis C*).
|
|
150
198
|
- **How it runs: [`spec.md`](spec.md)** — built into this skill: the UX-track order,
|
|
151
199
|
what the spec must lock (types, schemas, signatures, file layout, the **Global
|
|
152
200
|
Constraints** block stages 4–5 depend on), the self-review pass and the operator
|
|
@@ -202,6 +250,7 @@ stages/agents/types (see SKILL.md → *Bring your own skills*).
|
|
|
202
250
|
starts before this — the chain comes BEFORE interface.
|
|
203
251
|
|
|
204
252
|
## 4 — Plan
|
|
253
|
+
- **Freedom: low** — the task format is prescribed and the REQ set-comparison is mechanical ([`gates.md`](gates.md) → *Axis C*).
|
|
205
254
|
- **How it runs: [`planning.md`](planning.md)** — built into this skill →
|
|
206
255
|
`docs/superpowers/plans/YYYY-MM-DD-<topic>.md` (same slug as the brief and the
|
|
207
256
|
spec). Zero-context tasks, exact
|
|
@@ -220,6 +269,7 @@ stages/agents/types (see SKILL.md → *Bring your own skills*).
|
|
|
220
269
|
same change (super-ux *same-change* rule).
|
|
221
270
|
|
|
222
271
|
## 5 — Dev
|
|
272
|
+
- **Freedom: low** — TDD order, worktree isolation and 'a subagent never writes the register' are the narrow bridge ([`gates.md`](gates.md) → *Axis C*).
|
|
223
273
|
- **How it runs: [`build.md`](build.md)** — built into this skill: isolate the
|
|
224
274
|
workspace (native worktree tool first, git fallback, baseline tests), keep a
|
|
225
275
|
ledger under `.task-pipeline/build/<plan>/` so a compacted context can resume,
|
|
@@ -241,6 +291,7 @@ stages/agents/types (see SKILL.md → *Bring your own skills*).
|
|
|
241
291
|
"leave it" recorded).
|
|
242
292
|
|
|
243
293
|
## 6 — Tests
|
|
294
|
+
- **Freedom: low** — green means the full suite, and no skip smuggles a red one past ([`gates.md`](gates.md) → *Axis C*).
|
|
244
295
|
- **What:** consolidate test coverage for the change: confirm new functionality
|
|
245
296
|
has tests (written test-first in stage 5), update/repair existing tests the
|
|
246
297
|
change touched, and add edge-case + failure-path tests per DoD.
|
|
@@ -254,6 +305,7 @@ stages/agents/types (see SKILL.md → *Bring your own skills*).
|
|
|
254
305
|
([`audit.md`](audit.md)).
|
|
255
306
|
|
|
256
307
|
## 7 — Lint + deploy
|
|
308
|
+
- **Freedom: low** — outward and irreversible — the authorization floor is exact or the stage stops ([`gates.md`](gates.md) → *Axis C*).
|
|
257
309
|
- Read host conventions (`conventions.md`): run the linter; fix failures. The suite
|
|
258
310
|
is already green from stage 6 — re-run it if code changed since. For UI projects,
|
|
259
311
|
the **super-ux linter** (`python3 docs/ux/lint.py` / `/ux-lint`) is part of lint —
|
|
@@ -268,12 +320,14 @@ stages/agents/types (see SKILL.md → *Bring your own skills*).
|
|
|
268
320
|
operator go. Respect deploy-from-main rules if the project mandates them.
|
|
269
321
|
|
|
270
322
|
## 8 — Post-deploy
|
|
323
|
+
- **Freedom: medium** — where the logs live varies; 'clean boot or an honest degradation report' does not ([`gates.md`](gates.md) → *Axis C*).
|
|
271
324
|
- Tail deploy logs / health-check per conventions. Confirm clean boot, no error
|
|
272
325
|
spike, live subsystems healthy.
|
|
273
326
|
- **GATE (auto):** clean boot confirmed, or an **honest degradation report** with next
|
|
274
327
|
steps — never silent success.
|
|
275
328
|
|
|
276
329
|
## 9 — Docs + wiki
|
|
330
|
+
- **Freedom: low** — the matrix walk and the gate are mechanical; what a doc says is not this stage's call ([`gates.md`](gates.md) → *Axis C*).
|
|
277
331
|
- **The propagation sweep runs first** ([`documentation.md`](documentation.md)).
|
|
278
332
|
The ledger below names the documents you **read**; the matrix in `docs/DOCMAP.md`
|
|
279
333
|
names the documents you **owe**. They are not the same list, and the gap between
|
|
@@ -327,6 +381,7 @@ stages/agents/types (see SKILL.md → *Bring your own skills*).
|
|
|
327
381
|
carry-over count printed beside this verdict**.
|
|
328
382
|
|
|
329
383
|
## 10 — Acceptance
|
|
384
|
+
- **Freedom: medium** — the walk and the evidence rule are fixed; whether it is what was asked for is the operator's ([`gates.md`](gates.md) → *Axis C*).
|
|
330
385
|
- **What:** the closing stage — go back to the brief and account for **every**
|
|
331
386
|
requirement. Doctrine: [`acceptance.md`](acceptance.md). Every earlier gate asks
|
|
332
387
|
"is this artifact good?"; none asks "does this still contain everything that was
|
|
@@ -7,6 +7,16 @@ into this skill; nothing to install.
|
|
|
7
7
|
> [obra/superpowers](https://github.com/obra/superpowers) (MIT — see `LICENSE` →
|
|
8
8
|
> *Third-party*), with the stage-6 suite gate added.
|
|
9
9
|
|
|
10
|
+
## Contents
|
|
11
|
+
|
|
12
|
+
- The iron law
|
|
13
|
+
- Red → green → refactor
|
|
14
|
+
- Tests that stay honest
|
|
15
|
+
- Stage 6 — consolidation and the suite gate
|
|
16
|
+
- When stuck
|
|
17
|
+
- Rationalizations
|
|
18
|
+
- Red flags — stop and start over
|
|
19
|
+
|
|
10
20
|
## The iron law
|
|
11
21
|
|
|
12
22
|
```
|
|
@@ -82,7 +82,9 @@ find . -maxdepth 1 -type f -name '*.md' 2>/dev/null | sort >> "$TMP/files" || tr
|
|
|
82
82
|
FILE_COUNT=$(wc -l < "$TMP/files" | tr -d ' ')
|
|
83
83
|
|
|
84
84
|
if [ "$FILE_COUNT" = "0" ]; then
|
|
85
|
-
echo "FAIL: documentation gate — no markdown found
|
|
85
|
+
echo "FAIL: documentation gate — no markdown found in $DOCS_DIR/ or the repository root."
|
|
86
|
+
echo " Seed the doc map and the registers first (task-pipeline stage 0, phase 1b),"
|
|
87
|
+
echo " or point DOCS_DIR at wherever this project keeps its documentation."
|
|
86
88
|
exit 1
|
|
87
89
|
fi
|
|
88
90
|
|