task-pipeline-skill 1.7.2 → 1.8.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 (26) hide show
  1. package/CHANGELOG.md +60 -0
  2. package/README.md +28 -0
  3. package/package.json +1 -1
  4. package/plugins/task-pipeline/.claude-plugin/plugin.json +1 -1
  5. package/plugins/task-pipeline/skills/task-pipeline/SKILL.md +1 -1
  6. package/plugins/task-pipeline/skills/task-pipeline/references/acceptance.md +13 -0
  7. package/plugins/task-pipeline/skills/task-pipeline/references/artifacts.md +6 -0
  8. package/plugins/task-pipeline/skills/task-pipeline/references/audit.md +11 -0
  9. package/plugins/task-pipeline/skills/task-pipeline/references/brainstorm.md +12 -0
  10. package/plugins/task-pipeline/skills/task-pipeline/references/build.md +11 -0
  11. package/plugins/task-pipeline/skills/task-pipeline/references/companion-skills.md +10 -1
  12. package/plugins/task-pipeline/skills/task-pipeline/references/decomposition.md +9 -0
  13. package/plugins/task-pipeline/skills/task-pipeline/references/documentation.md +14 -0
  14. package/plugins/task-pipeline/skills/task-pipeline/references/gates.md +14 -0
  15. package/plugins/task-pipeline/skills/task-pipeline/references/grill.md +10 -0
  16. package/plugins/task-pipeline/skills/task-pipeline/references/hooks.md +16 -0
  17. package/plugins/task-pipeline/skills/task-pipeline/references/knowledge-graph.md +8 -0
  18. package/plugins/task-pipeline/skills/task-pipeline/references/knowledge-sources.md +13 -0
  19. package/plugins/task-pipeline/skills/task-pipeline/references/learned.md +8 -0
  20. package/plugins/task-pipeline/skills/task-pipeline/references/loop-guard.md +8 -0
  21. package/plugins/task-pipeline/skills/task-pipeline/references/planning.md +12 -0
  22. package/plugins/task-pipeline/skills/task-pipeline/references/retrospective.md +11 -0
  23. package/plugins/task-pipeline/skills/task-pipeline/references/review.md +10 -0
  24. package/plugins/task-pipeline/skills/task-pipeline/references/spec.md +10 -0
  25. package/plugins/task-pipeline/skills/task-pipeline/references/stages.md +57 -2
  26. package/plugins/task-pipeline/skills/task-pipeline/references/tdd.md +10 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,65 @@
1
1
  # Changelog
2
2
 
3
+ ## v1.8.0 — 2026-08-03
4
+
5
+ ### Added — the skill now meets Anthropic's own authoring guidance, measurably
6
+
7
+ Audited against the four Agent Skills pages (overview, best practices, enterprise,
8
+ API guide). Most of the spec already held — `name` 13/64 chars, `description` inside
9
+ 1024, `SKILL.md` 334/500 lines, all 23 references linked **directly** from SKILL.md,
10
+ forward slashes only, 436 KB against a 30 MB ceiling, and the plan-validate-execute
11
+ pattern the guidance describes is exactly the stage 3→4 set-equality check. Five
12
+ things did not.
13
+
14
+ **Every reference over 100 lines now carries a `## Contents` list — 21 files, from
15
+ zero.** The guidance is explicit about why: *"This ensures Claude can see the full
16
+ scope of available information even when previewing with partial reads."* That
17
+ preview is real, and `references/stages.md` is 500 lines — an agent that previewed
18
+ it saw stages 0 and 1 and could not learn stage 9 existed. The list is **compared
19
+ against the file's own headings**, not merely required to be present, because a
20
+ hand-maintained contents list is a second source that goes stale on the next
21
+ heading.
22
+
23
+ **A behavioural evaluation suite, where there was none.** 46 structural guards prove
24
+ the skill is well-*formed*; nothing proved it *behaves*. `evals/` now carries 13
25
+ evaluations across the five dimensions the enterprise page names — should-trigger,
26
+ should-not-trigger, ambiguous, coexistence with super-ux, and instruction-following
27
+ (does phase 1 really run before the first question; does stage 9 walk the matrix and
28
+ print ratchets; does a stage-5 subagent refuse to write the register; does stage 10
29
+ run the ladder walk before the table).
30
+
31
+ `evals/run.py` validates the suite and prints the protocol. **It never reports a
32
+ pass**, because Anthropic ships no runner and a script claiming to have executed a
33
+ model would be the exact failure this repository is written against.
34
+ `evals/RESULTS.md` records the honest state — *authored, zero models exercised, zero
35
+ runs* — as a ratchet, so "46 of 46 green" is never read as "the skill is known to
36
+ work".
37
+
38
+ **A copyable run checklist and a stated degree of freedom per stage.** The guidance
39
+ recommends a checklist Claude copies into its response for complex workflows, and
40
+ matching specificity to fragility — high freedom in the open field, low on the
41
+ narrow bridge. Every stage now declares which it is and why: stage 2 is high (many
42
+ designs are valid), stages 5, 7 and 9 are low (TDD order, an irreversible deploy, a
43
+ mechanical matrix walk).
44
+
45
+ **`SKILL-CARD.md`** — the registry entry the enterprise guidance asks for (purpose,
46
+ owner, version, dependencies, evaluation status) plus an honest pass over its
47
+ risk-tier table. This skill scores **three High indicators** — shipped scripts, MCP
48
+ references, tool invocations — and says so, along with the three things a consumer
49
+ should know rather than discover: author and reviewer are the same person, commits
50
+ are unsigned, and behavioural evidence is missing rather than thin.
51
+
52
+ ### Changed
53
+
54
+ - **The description leads with what the skill does, then the trigger** — the shape
55
+ Anthropic's own examples use. The validator used to *require* the string start with
56
+ "Use when", which enforced the WHEN half and left the WHAT half optional; it now
57
+ checks for both, plus the third-person voice the guidance requires.
58
+ - MCP tools are named fully qualified (`context7:resolve-library-id`), because
59
+ without the server prefix Claude may fail to locate the tool.
60
+
61
+ Four new guards, each with a negative self-test watched failing.
62
+
3
63
  ## v1.7.2 — 2026-08-03
4
64
 
5
65
  ### Fixed — nine findings from a post-release investigation of v1.7.1
package/README.md CHANGED
@@ -464,6 +464,32 @@ Code, and **any exit code other than 2 is non-blocking, so a crashing guard fail
464
464
  open** and stops guarding without announcing it. Elsewhere the run is `ungated` and
465
465
  must say so.
466
466
 
467
+ ### Held to Anthropic's own Skill authoring guidance
468
+
469
+ Audited against the four Agent Skills pages. Most of it already held — `name`
470
+ 13/64 chars, `description` inside 1024, `SKILL.md` 334/500 lines, all 23 references
471
+ linked **directly** from `SKILL.md`, 436 KB against a 30 MB ceiling. What did not,
472
+ now does:
473
+
474
+ - **Every reference over 100 lines carries a `## Contents` list**, and the list is
475
+ *compared against the file's own headings* rather than trusted. The guidance is
476
+ explicit about why: a long file gets previewed with a partial read, and
477
+ `stages.md` is 500 lines.
478
+ - **A behavioural evaluation suite** (`evals/`) — 13 evaluations across the five
479
+ dimensions the enterprise guidance names: should-trigger, should-not-trigger,
480
+ ambiguous, coexistence, instruction-following. `evals/run.py` validates the suite
481
+ and prints the protocol; it **never reports a pass**, because no runner exists
482
+ upstream and a script claiming to have run a model would be the exact failure this
483
+ skill is written against. `evals/RESULTS.md` carries the honest state.
484
+ - **A copyable run checklist** and a **stated degree of freedom per stage** — high
485
+ in the open field (brainstorm), low on the narrow bridge (TDD order, deploy, the
486
+ matrix walk).
487
+ - **[`SKILL-CARD.md`](SKILL-CARD.md)** — the registry entry an enterprise reviewer
488
+ needs, with an honest pass over the risk-tier table. This skill scores three
489
+ *High* indicators and says so, along with what a consumer should know rather than
490
+ discover: author and reviewer are the same person, commits are unsigned, and the
491
+ eval suite has not been executed.
492
+
467
493
  ### The retrospective — the run teaches the next run, and the list stays short
468
494
 
469
495
  Every gate in this flow is good at *this* run and blind across runs. So the same
@@ -717,6 +743,8 @@ recommendation, so you arm the whole run in one exchange. Detail:
717
743
  | [`references/retrospective.md`](plugins/task-pipeline/skills/task-pipeline/references/retrospective.md) | the project retro: the three grades of fix, the mandatory prune, the cap of ten |
718
744
  | [`references/model-tiering.md`](plugins/task-pipeline/skills/task-pipeline/references/model-tiering.md) | model policy, the `/model` reminder, overrides |
719
745
  | [`templates/`](plugins/task-pipeline/skills/task-pipeline/templates/README.md) | brief, carry-over ledger, `CONTEXT.md` and ADR skeletons, the doc map, both registers, the retro and its archive, the seeded `docgate.sh`, a worked hook |
746
+ | [`SKILL-CARD.md`](SKILL-CARD.md) | the registry entry and risk-tier disclosure a reviewer needs before deploying it |
747
+ | [`evals/`](evals/RESULTS.md) | the behavioural evaluation suite, its protocol, and what has actually been observed |
720
748
  | [`CHANGELOG.md`](CHANGELOG.md) | every release, with the reasoning behind it |
721
749
  | [`CONTRIBUTING.md`](CONTRIBUTING.md) | dev setup, the validator, the version-sync rule, release flow |
722
750
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "task-pipeline-skill",
3
- "version": "1.7.2",
3
+ "version": "1.8.0",
4
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"
@@ -2,7 +2,7 @@
2
2
  "name": "task-pipeline",
3
3
  "displayName": "Task Pipeline",
4
4
  "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.",
5
- "version": "1.7.2",
5
+ "version": "1.8.0",
6
6
  "author": {
7
7
  "name": "ssheleg",
8
8
  "url": "https://x.com/sshlg93"
@@ -1,6 +1,6 @@
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, 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."
3
+ description: "Runs a substantial task through a full delivery pipeline: an intake grill that expands the request into a locked brief, then docs study, brainstorm, spec, plan, subagent build, tests, lint/deploy, post-deploy check, docs/wiki sync and acceptance — gated stages whose doctrine ships inside this skill (no required companions). Use when any substantial feature, fix or build should follow the disciplined cycle rather than ad-hoc coding, or on 'run this through the pipeline' / 'прогони по конвейеру', 'the full cycle' / 'полный цикл', /task-pipeline. The grill is mandatory and front-loads every decision, so stages 1→10 run without mid-flight questions; documentation is a deliverable with its own gate; recommends super-ux for user-facing work; confirms one model up front (most capable available, never a hardcoded id); reads host conventions so it stays project-agnostic."
4
4
  license: MIT
5
5
  ---
6
6
 
@@ -7,6 +7,19 @@ None of them asks *"does this still contain everything that was asked for?"*
7
7
  That is this stage's only job: **go back to the brief and account for every
8
8
  requirement.** It is what turns the pipeline from a funnel into a circle.
9
9
 
10
+ ## Contents
11
+
12
+ - Why a stage and not a gate
13
+ - First, the ladder walk — what the list itself is missing
14
+ - Inputs
15
+ - Output — the coverage table
16
+ - Evidence, not assertion
17
+ - Several repositories — a submodule is finished when its parent says so
18
+ - The closing question
19
+ - The retrospective — the run's last act
20
+ - GATE (manual)
21
+ - When the answer is "something's missing"
22
+
10
23
  ## Why a stage and not a gate
11
24
 
12
25
  The loss this catches doesn't happen inside a stage — it happens **on the seams**.
@@ -5,6 +5,12 @@ a resumed or handed-off run always knows where to look. This is the recommended
5
5
  structure; a host project may relocate roots via its `CLAUDE.md`, but keep the
6
6
  shape.
7
7
 
8
+ ## Contents
9
+
10
+ - In the host project
11
+ - Stage → artifact map
12
+ - This repo (task-pipeline itself), for reference
13
+
8
14
  ## In the host project
9
15
 
10
16
  ```
@@ -14,6 +14,17 @@ This file is the method that finds those. It is **cross-cutting**: stage 10 runs
14
14
  before writing the coverage table, the program loop runs it per module, and a task
15
15
  whose whole job is "audit X" runs nothing else.
16
16
 
17
+ ## Contents
18
+
19
+ - Three things that are easy to confuse
20
+ - Why "look again, more carefully" stops working
21
+ - The ladder
22
+ - How one audit pass runs
23
+ - Exit criterion — the part usually skipped
24
+ - The three rules that stop this becoming another loop
25
+ - When this runs
26
+ - Rationalizations
27
+
17
28
  ## Three things that are easy to confuse
18
29
 
19
30
  | File | Runs when | Answers |
@@ -12,6 +12,18 @@ approved design — not at code.
12
12
  > the UI verdict is a required output, and the spec write-up moved to stage 3
13
13
  > ([`spec.md`](spec.md)).
14
14
 
15
+ ## Contents
16
+
17
+ - The hard gate
18
+ - Input: the brief, not a blank page
19
+ - The loop
20
+ - Design for isolation and clarity
21
+ - Working in an existing codebase
22
+ - UI detection — a required output
23
+ - The approved design is a set of decisions — record them
24
+ - GATE (manual)
25
+ - Rationalizations
26
+
15
27
  ## The hard gate
16
28
 
17
29
  **No implementation action before the operator approves a design.** No code, no
@@ -29,6 +29,17 @@ the work; the gates, the artifacts and the review discipline do not. Say plainly
29
29
  that the run is inline, since a self-review is weaker evidence than a fresh
30
30
  reviewer's.
31
31
 
32
+ ## Contents
33
+
34
+ - 1. Isolation
35
+ - 2. Workspace and ledger
36
+ - 3. Models
37
+ - 4. The task loop
38
+ - 5. Final whole-branch review
39
+ - 6. Integrate, then finish
40
+ - GATE (auto)
41
+ - Rationalizations
42
+
32
43
  ## 1. Isolation
33
44
 
34
45
  Work never starts on `main`/`master` without the operator's explicit consent
@@ -8,6 +8,15 @@ something isn't installed.
8
8
  What remains is a short list of **optional** companions that make individual stages
9
9
  better, plus one that is required only for user-facing work.
10
10
 
11
+ ## Contents
12
+
13
+ - Built in — nothing to install
14
+ - The matrix
15
+ - Optional bridge — substituting an external skill set
16
+ - Preflight (emit before stage 0)
17
+ - Credit
18
+ - Hand-off the other direction
19
+
11
20
  ## Built in — nothing to install
12
21
 
13
22
  | Stage | Doctrine |
@@ -34,7 +43,7 @@ better, plus one that is required only for user-facing work.
34
43
  | Skill / tool | Needed for | Required? | Install |
35
44
  |---|---|---|---|
36
45
  | **super-ux** (`ux-foundation`, `ux-flows`, `ux-scenarios`, `ux-audit`, `/ux`, `/ux-lint`) | stage 3 UX track | **Required for any user-facing task** | `/plugin marketplace add ssheleg/super-ux` → `/plugin install super-ux@super-ux` (or `npx skills add ssheleg/super-ux`) |
37
- | **context7** (MCP) | stage 1 docs study | Recommended (web-search fallback) | connect the context7 MCP server |
46
+ | **context7** (MCP — call tools fully qualified: `context7:resolve-library-id`, `context7:query-docs`) | stage 1 docs study | Recommended (web-search fallback) | connect the context7 MCP server |
38
47
  | **Figma** (MCP) | stage 3 UX track, when the project designs visually — super-ux mirrors each `SCR-` screen/state into a frame | Optional, **UI + Figma-on only**. Absent → super-ux degrades to text-only *by itself and never blocks*, so shipping a UI feature with no mockups becomes a silent scope call — which is why the stage-0 sweep decides it | connect the Figma MCP server (`/mcp`, or your claude.ai connectors) |
39
48
  | **[obsidian-wiki](https://github.com/ar9av/obsidian-wiki)** (`wiki-query`, `wiki-update`) | **stage 0 harvest** (query what's already known) **+ stage 9 sync** | **Recommended** — never a gate; absent → harvest runs on repo docs alone | `pip install obsidian-wiki` → `obsidian-wiki setup --vault /path/to/your/vault` |
40
49
  | **[graphify](https://github.com/Graphify-Labs/graphify)** (`/graphify`, `graphify query\|affected\|god-nodes`) | **stage 0 harvest** (reach: what calls this, what breaks if it moves) **+ stage 9 refresh + the graph↔docs divergence check** ([`knowledge-graph.md`](knowledge-graph.md)) | **Recommended** — never a gate; absent → the harvest greps instead, and the divergence axis is unavailable | `uv tool install graphifyy` → `graphify install` → `/graphify .` |
@@ -8,6 +8,15 @@ a time, each brick carrying its own documentation, spec, plan, build and gates.
8
8
  This runs at the end of **stage 2**, on the approved design, before any spec is
9
9
  written. It is skipped — explicitly, in writing — when the work is a single module.
10
10
 
11
+ ## Contents
12
+
13
+ - When it applies
14
+ - How to cut
15
+ - The module map — the artifact
16
+ - GATE (part of stage 2, manual)
17
+ - The program loop — one brick at a time
18
+ - Program done
19
+
11
20
  ## When it applies
12
21
 
13
22
  Decompose when any of these is true:
@@ -16,6 +16,20 @@ being written twice; write it once, here.
16
16
 
17
17
  ---
18
18
 
19
+ ## Contents
20
+
21
+ - The inventory — four questions, answered before the first line of work
22
+ - Registers and ids
23
+ - Single source of truth
24
+ - The Doc Loop
25
+ - Changing your mind
26
+ - The propagation matrix
27
+ - Navigation
28
+ - Intent and as-built
29
+ - Registers are shared state
30
+ - Where this binds in the pipeline
31
+ - Rationalizations
32
+
19
33
  ## The inventory — four questions, answered before the first line of work
20
34
 
21
35
  Stage 0 answers these before the interview, and writes the answers to
@@ -19,6 +19,20 @@ elsewhere and is not restated here:
19
19
 
20
20
  ---
21
21
 
22
+ ## Contents
23
+
24
+ - Axis A — the stage gate type
25
+ - Axis B — the enforcement mechanism
26
+ - Before you run a check
27
+ - Anatomy of a project gate
28
+ - Writing the check itself
29
+ - Probing — plant, run, restore
30
+ - The false-positive budget
31
+ - Ratchets
32
+ - Where a gate runs
33
+ - Adding a check to an existing gate
34
+ - Rationalizations
35
+
22
36
  ## Axis A — the stage gate type
23
37
 
24
38
  From [`../pipeline.schema.json`](../pipeline.schema.json), one per stage:
@@ -12,6 +12,16 @@ coming back to the operator.
12
12
  > half — glossary challenges, `CONTEXT.md`, ADR discipline — comes from there; the
13
13
  > autonomy sweep and the brief are this pipeline's.
14
14
 
15
+ ## Contents
16
+
17
+ - Phase 1 — harvest before you ask
18
+ - Phase 2 — the loop
19
+ - Domain awareness
20
+ - The autonomy sweep
21
+ - The design destination — one file, decided here, never invented later
22
+ - The REQ spine — the grill's other hard output
23
+ - Output
24
+
15
25
  ## Phase 1 — harvest before you ask
16
26
 
17
27
  **Do not open the interview cold.** Stage 0 begins by finding what the project
@@ -4,6 +4,22 @@
4
4
  have.** A hook is rung 5 of [`gates.md`](gates.md)'s ladder — the only mechanism
5
5
  that acts *while the agent is working* rather than after the commit.
6
6
 
7
+ ## Contents
8
+
9
+ - The limit, before the capability
10
+ - The events
11
+ - The `PreToolUse` contract
12
+ - What the hook receives
13
+ - Where it lives
14
+ - Matchers
15
+ - Performance
16
+ - What belongs in a hook, and what does not
17
+ - A worked example
18
+ - Debugging
19
+ - Removing them
20
+ - Leases are not reimplemented here
21
+ - Rationalizations
22
+
7
23
  ## The limit, before the capability
8
24
 
9
25
  **Hooks exist only in Claude Code.** On Cursor, Codex and the other agents a skill
@@ -15,6 +15,14 @@ It is **recommended, never required**. No stage blocks on a missing graph; the
15
15
  harvest simply runs on the sources it has
16
16
  ([`knowledge-sources.md`](knowledge-sources.md)).
17
17
 
18
+ ## Contents
19
+
20
+ - Detect it, and install it once
21
+ - Stage 0 — query the graph before you ask the person
22
+ - Stage 9 — the close-out has three artifacts, not two
23
+ - The divergence check — the graph against the docs
24
+ - Rationalizations
25
+
18
26
  ## Detect it, and install it once
19
27
 
20
28
  Detect, in this order:
@@ -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
@@ -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
@@ -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 B*).
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 B*).
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 (`resolve-library-id` → `get-library-docs`, scope by
115
- `topic`) or the `context7-docs` skill. Web-search fallback for libs context7
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 B*).
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 B*).
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 B*).
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 B*).
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 B*).
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 B*).
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 B*).
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 B*).
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 B*).
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
  ```