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.
- package/CHANGELOG.md +60 -0
- package/README.md +28 -0
- package/package.json +1 -1
- 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 +11 -0
- 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 +14 -0
- package/plugins/task-pipeline/skills/task-pipeline/references/gates.md +14 -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 +11 -0
- package/plugins/task-pipeline/skills/task-pipeline/references/review.md +10 -0
- 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/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.
|
|
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.
|
|
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: "
|
|
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
|
|
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 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
|
```
|