task-pipeline-skill 1.9.0 → 1.9.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
CHANGED
|
@@ -1,5 +1,33 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## v1.9.1 — 2026-08-03
|
|
4
|
+
|
|
5
|
+
### Added — the direction of the artifact map that was missing
|
|
6
|
+
|
|
7
|
+
`references/artifacts.md` mapped **stage → what it writes → who consumes it** and
|
|
8
|
+
nothing the other way. What an agent actually needs at runtime is **what each stage
|
|
9
|
+
reads, and from where** — and that direction had been absent since the file was
|
|
10
|
+
written. It is `references/learned.md` rule 2 (*compute the mapping in both
|
|
11
|
+
directions*) left unapplied to this file itself: the direction that feels redundant
|
|
12
|
+
is the one that finds things.
|
|
13
|
+
|
|
14
|
+
Two tables now sit above the old one:
|
|
15
|
+
|
|
16
|
+
- **Stage → input map** — per stage, the exact inputs and their origin. Stage 9's row
|
|
17
|
+
is the one worth reading twice: it takes **two different lists**, the stage-0 source
|
|
18
|
+
ledger (what the run *read*) and the doc map's propagation matrix (what the run
|
|
19
|
+
*owes*), and the gap between them is where documentation rots.
|
|
20
|
+
- **Project-saved rules, and where each one binds** — the eight files a host project
|
|
21
|
+
owns that change how a run behaves, each with where it is read and where it is
|
|
22
|
+
enforced: `CLAUDE.md`/`AGENTS.md`, `docs/DOCMAP.md`, the retro's standing
|
|
23
|
+
instructions, the brief's autonomy section, the carry-over ledger,
|
|
24
|
+
`docs/ux/scenarios.md`, `.claude/agent-sync.json`, and the operator's global config
|
|
25
|
+
that decides whether a task routes here at all. Plus the precedence rule: for *what
|
|
26
|
+
is*, code wins; for *what should be*, the register wins, and the gap is a finding
|
|
27
|
+
rather than a tie-break.
|
|
28
|
+
|
|
29
|
+
A guard holds all three maps present, with a negative self-test watched failing.
|
|
30
|
+
|
|
3
31
|
## v1.9.0 — 2026-08-03
|
|
4
32
|
|
|
5
33
|
### Added — the adoption track, and default-on inside a stated boundary
|
package/SKILL-CARD.md
CHANGED
|
@@ -12,7 +12,7 @@ harmless.
|
|
|
12
12
|
|---|---|
|
|
13
13
|
| **Purpose** | Runs a substantial task through ten gated delivery stages — intake grill, docs study, brainstorm, spec, plan, subagent build, tests, lint/deploy, post-deploy, docs+registers, acceptance — refusing to advance until each gate passes |
|
|
14
14
|
| **Owner** | ssheleg ([github.com/ssheleg/task-pipeline](https://github.com/ssheleg/task-pipeline)) |
|
|
15
|
-
| **Version** | 1.9.
|
|
15
|
+
| **Version** | 1.9.1 |
|
|
16
16
|
| **Surface** | Claude Code (filesystem skill + plugin) and the vercel `skills` CLI. **Not** uploaded to the Skills API; custom Skills do not sync across surfaces |
|
|
17
17
|
| **Dependencies** | None required. Optional: `context7` (MCP), `figma` (MCP), super-ux, agent-sync, graphify, obsidian-wiki. Every stage's doctrine ships in-repo; the one conditional requirement is super-ux for the stage-3 UX track on a user-facing task |
|
|
18
18
|
| **Evaluation status** | Suite authored (15 evals, 5 categories). **Never executed** — see [`evals/RESULTS.md`](evals/RESULTS.md) |
|
|
@@ -38,7 +38,7 @@ apply.
|
|
|
38
38
|
instruction surface, and every one is linked directly from `SKILL.md`.
|
|
39
39
|
2. Read `templates/docgate.sh` before seeding it; it is the only shipped script a
|
|
40
40
|
host project will run on its own repository.
|
|
41
|
-
3. Run `npm run test:all` —
|
|
41
|
+
3. Run `npm run test:all` — 56 guards, each with a negative self-test that plants a
|
|
42
42
|
defect and requires rejection.
|
|
43
43
|
4. Run `python3 evals/run.py` for the behavioural protocol, and read
|
|
44
44
|
`evals/RESULTS.md` for what has actually been observed.
|
|
@@ -54,7 +54,7 @@ apply.
|
|
|
54
54
|
- **Versions are pinned by git tag** and mirrored into `sshlg-skills`'s catalogue.
|
|
55
55
|
Rollback is `git checkout v<previous>` or pinning the previous plugin version;
|
|
56
56
|
the previous version is never deleted.
|
|
57
|
-
- **Behavioural evidence is missing, not merely thin.**
|
|
57
|
+
- **Behavioural evidence is missing, not merely thin.** 56 structural guards prove
|
|
58
58
|
the skill is well-formed. Until `evals/RESULTS.md` carries a dated run, nothing in
|
|
59
59
|
this repository proves it *behaves* — triggers correctly, stays quiet on a
|
|
60
60
|
question, or performs the steps it documents.
|
package/evals/RESULTS.md
CHANGED
|
@@ -37,9 +37,9 @@ or it belongs in a check.
|
|
|
37
37
|
| Dated runs recorded | **0** | 2026-08-03 |
|
|
38
38
|
|
|
39
39
|
The bottom two numbers are the honest state of this skill's behavioural evidence.
|
|
40
|
-
Everything else in this repository is proven by
|
|
40
|
+
Everything else in this repository is proven by 56 structural guards that check the
|
|
41
41
|
*form*; these are the only checks that would speak to the *behaviour*, and they have
|
|
42
|
-
not been run yet. Printed here so "
|
|
42
|
+
not been run yet. Printed here so "56 of 56 green" is never read as "the skill is
|
|
43
43
|
known to work".
|
|
44
44
|
|
|
45
45
|
## Runs
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "task-pipeline-skill",
|
|
3
|
-
"version": "1.9.
|
|
3
|
+
"version": "1.9.1",
|
|
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.9.
|
|
5
|
+
"version": "1.9.1",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "ssheleg",
|
|
8
8
|
"url": "https://x.com/sshlg93"
|
|
@@ -8,6 +8,7 @@ shape.
|
|
|
8
8
|
## Contents
|
|
9
9
|
|
|
10
10
|
- In the host project
|
|
11
|
+
- Stage → input map — where each stage's information comes from
|
|
11
12
|
- Stage → artifact map
|
|
12
13
|
- This repo (task-pipeline itself), for reference
|
|
13
14
|
|
|
@@ -65,6 +66,52 @@ Stage 5 also creates a **git-ignored** scratch workspace per plan at
|
|
|
65
66
|
review packages. It is deleted when the final review is clean; git history is the
|
|
66
67
|
record (see `build.md`).
|
|
67
68
|
|
|
69
|
+
## Stage → input map — where each stage's information comes from
|
|
70
|
+
|
|
71
|
+
The map below this one answers *what a stage writes*. This one answers *what it
|
|
72
|
+
reads, and from where* — the direction that was missing, which is
|
|
73
|
+
[`learned.md`](learned.md) rule 2 (*compute the mapping in both directions*) applied
|
|
74
|
+
to this file itself. A stage whose inputs are unnamed is a stage that will read
|
|
75
|
+
whatever the context happens to hold.
|
|
76
|
+
|
|
77
|
+
| Stage | Reads | From where |
|
|
78
|
+
|---|---|---|
|
|
79
|
+
| **0 Harvest** | the project's own knowledge about this task | code · the code graph (`graphify-out/`) · `CLAUDE.md`/`AGENTS.md` · `CONTEXT.md`/`docs/adr/` · `docs/` + `docs/ux/` · past briefs and carry-over ledgers · the retro's standing instructions **in full** · the wiki · any doc repo or hosted system the project names |
|
|
80
|
+
| **0 Inventory (1b)** | the documentation regime | `docs/DOCMAP.md` — registers, single homes, propagation matrix, gate commands, ratchet floors. Absent ⇒ seeded ([`adoption.md`](adoption.md)) |
|
|
81
|
+
| **0 Reconcile (1c)** | intent vs as-built | git (how it *should* be) against the run record (how it *turned out*) |
|
|
82
|
+
| **0 Grill** | the operator | the interview — every answer checked against the harvest, which is what makes it checkable rather than confident |
|
|
83
|
+
| **1 Docs study** | external library/API contracts | `context7:resolve-library-id` → `context7:query-docs`; web search where it cannot resolve. **Never from recall** |
|
|
84
|
+
| **2 Brainstorm** | what is already settled | the brief (scope, constraints, done-criteria) + the codebase. Re-asking what the grill answered is this stage's most common waste |
|
|
85
|
+
| **3 Spec** | the approved design + the UX chain | stage-2 design · `docs/ux/{foundation,flows,screens,scenarios}.md` (UI only) · the Figma canonical record in `docs/ux/foundation.md` → *Design tooling* · `DOCMAP.md` for where a settled contract is recorded |
|
|
86
|
+
| **4 Plan** | the spec and the frozen list | the spec's locked contracts and **Global Constraints** · the brief's REQ ids (the gate is a set comparison against them) |
|
|
87
|
+
| **5 Dev** | one task at a time | the plan task · the spec's Global Constraints, copied verbatim · host test/lint commands · the brief's branch policy. **A subagent reads only its own file-based brief** — that is the whole of its context |
|
|
88
|
+
| **6 Tests** | the host's runner | `CLAUDE.md`/`AGENTS.md` → *Lint + test*, else detection ([`conventions.md`](conventions.md)) |
|
|
89
|
+
| **7 Lint + deploy** | the host's lint and deploy path, and the authorization | host conventions · the brief's autonomy sweep, where a standing go must name target **and** preconditions |
|
|
90
|
+
| **8 Post-deploy** | where health lives | the brief's autonomy sweep (app name, endpoint, workflow) |
|
|
91
|
+
| **9 Docs + registers** | two different lists | the stage-0 **source ledger** (what this run *read*) **and** `DOCMAP.md`'s **propagation matrix** (what this run *owes*). They are not the same list, and the gap between them is where documentation rots |
|
|
92
|
+
| **10 Acceptance** | everything the run produced | the brief's REQ table · the carry-over ledger **in full** · plan task statuses · `git log` · the final suite output · stage-8 notes · stage-9 changes · `docs/ux/scenarios.md` + `/ux-lint` for UI |
|
|
93
|
+
|
|
94
|
+
### Project-saved rules, and where each one binds
|
|
95
|
+
|
|
96
|
+
These are the files a **host project** owns that change how a run behaves. An agent
|
|
97
|
+
that has not read them is running the pipeline's defaults, not this project's.
|
|
98
|
+
|
|
99
|
+
| Rule file | What it binds | Read at | Enforced at |
|
|
100
|
+
|---|---|---|---|
|
|
101
|
+
| `CLAUDE.md` / `AGENTS.md` | commands, deploy path, house rules, which docs exist and where | 0 | 6–10 |
|
|
102
|
+
| `docs/DOCMAP.md` | the decision home, each fact's single home, the propagation matrix, the gate and its ratchet floors | 0 (1b) | 9 |
|
|
103
|
+
| `docs/superpowers/retro.md` | standing instructions — the rules no check can decide. Capped at ten, **read in full**, stamped the moment one fires | 0 | pruned at 10 |
|
|
104
|
+
| `specs/<topic>-brief.md` → *Autonomy* | every pre-resolved decision; stages 1→10 **answer from it instead of asking** | 0 | 1–10 |
|
|
105
|
+
| `specs/<topic>-carryover.md` | everything deferred, parked or half-done; appended the moment it is said | all | read in full at 10 |
|
|
106
|
+
| `docs/ux/scenarios.md` | the source of truth for user-facing behaviour (super-ux) | 3 | 3, 7, 9, 10 |
|
|
107
|
+
| `.claude/agent-sync.json` | which registers are guarded, and by whose lease | 0 | every guarded write |
|
|
108
|
+
| the operator's global `CLAUDE.md` | whether a task routes here at all, and the opt-out phrase | before stage 0 | — |
|
|
109
|
+
|
|
110
|
+
**Precedence when two of them disagree.** For *what is*: code, then host docs and
|
|
111
|
+
ADRs, then the wiki, then memory. For *what should be*: the register outranks the
|
|
112
|
+
code, because a decision not yet built is still the decision — and the gap between
|
|
113
|
+
them is a finding, not a tie-break ([`knowledge-sources.md`](knowledge-sources.md)).
|
|
114
|
+
|
|
68
115
|
## Stage → artifact map
|
|
69
116
|
|
|
70
117
|
| Stage | Writes | Consumed by |
|