task-pipeline-skill 1.10.2 → 1.10.3

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,44 @@
1
1
  # Changelog
2
2
 
3
+ ## v1.10.3 — 2026-08-03
4
+
5
+ ### Fixed — the cause behind five audits, rather than a sixth symptom
6
+
7
+ Five audit passes produced roughly thirty findings. Grouped by shape, **nine of them
8
+ were one missing row**: this repository ships a propagation matrix to every project it
9
+ touches and its own had no row for *adding a document*.
10
+
11
+ `adoption.md`, `setup.md`, `portability.md` and `learned.md` never reached the README
12
+ map · the manifest covered 14 of 26 references · the Cursor rule ran two releases
13
+ stale · `CONTRIBUTING.md` ran eight guards behind · `agent-sync` was doctrine in four
14
+ files and absent from the companion matrix · `templates/README.md` went stale. One
15
+ cause, nine symptoms, five audits — and **every check was green throughout**, because
16
+ a check can only walk the list it was given.
17
+
18
+ **The meta-row.** The most frequent change in any documented project is adding a
19
+ document, and it is the row nobody writes — so the matrix ends up unable to catch the
20
+ class it will meet most often. It is now:
21
+
22
+ - **step 0** of the matrix-building procedure in `references/documentation.md`, with
23
+ the measurement attached;
24
+ - a row in this repository's own `docs/DOCMAP.md`, first;
25
+ - a row in the seeded `templates/docmap.md`, guarded — a seeded matrix without it
26
+ fails the build;
27
+ - pass 4 of the entry audit in `references/setup.md`;
28
+ - a named step before the tag in `CONTRIBUTING.md` → *Releasing*, where the one cell
29
+ that is `review` — the Cursor rule — is called out, because no check can decide
30
+ whether a change alters how an agent behaves in a **foreign** project. That cell was
31
+ skipped twice, and the rule shipped two versions stale.
32
+
33
+ ### The two causes no row can fix, stated rather than left implied
34
+
35
+ **Guards are written after a finding.** The doctrine's own rule — a class seen twice
36
+ becomes a script — is by construction one instance late, and twice a fix was scoped to
37
+ its instance rather than its class.
38
+
39
+ **Author and reviewer are the same person**, which `SKILL-CARD.md` already discloses.
40
+ Five audits are what a review would have been.
41
+
3
42
  ## v1.10.2 — 2026-08-03
4
43
 
5
44
  ### Fixed — the list of invariants was eight guards behind, and now checks itself
package/CONTRIBUTING.md CHANGED
@@ -206,6 +206,14 @@ quote straddling a line-continuation is a citation nothing can find.
206
206
 
207
207
  ## Releasing (maintainers)
208
208
 
209
+ **Before the tag, walk `docs/DOCMAP.md`'s propagation matrix — starting at its first
210
+ row.** The guards cover most of it; the one cell that is `review` is
211
+ `cursor/rules/task-pipeline.mdc`, because no check can decide whether a change alters
212
+ how an agent behaves in a *foreign* project. That cell was skipped for two releases
213
+ and the rule shipped two versions stale. If the change would make an agent act
214
+ differently somewhere else, the Cursor rule is part of the change.
215
+
216
+
209
217
  1. Bump the version in **all four** places (see invariant 1) and write the
210
218
  `CHANGELOG.md` section — what changed and *why it mattered*, not a diff summary.
211
219
  2. `npm test` green, commit, push.
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.10.2 |
15
+ | **Version** | 1.10.3 |
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` — 62 guards, each with a negative self-test that plants a
41
+ 3. Run `npm run test:all` — 63 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.** 62 structural guards prove
57
+ - **Behavioural evidence is missing, not merely thin.** 63 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.
@@ -465,3 +465,17 @@ contradict it.
465
465
  decision about what this project decided belongs in the project. The test for a rule
466
466
  you are about to write down: does it name a path, a command or a person? If not, it is
467
467
  the pipeline's, and leaving it in one repository is a fork nobody named.
468
+
469
+ ## Writing a propagation matrix — start with the row nobody writes
470
+
471
+ The most frequent change in any documented project is **adding a document**, and that
472
+ is the row people leave out — so the matrix ends up unable to catch the class it will
473
+ meet most often. Write it first, before the change types you can think of:
474
+
475
+ > **A new document or rule** → every surface that must *learn it exists*: the index a
476
+ > reader opens, the map, any manifest, the agent-facing rules file. Checked by:
477
+ > whatever check can resolve those, or `review` with the reason none can.
478
+
479
+ Measured on the project this pipeline comes from: nine findings across five audits
480
+ were that one missing row, with every check green throughout — a check only walks the
481
+ list it was given.
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 62 structural guards that check the
40
+ Everything else in this repository is proven by 63 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 "62 of 62 green" is never read as "the skill is
42
+ not been run yet. Printed here so "63 of 63 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.10.2",
3
+ "version": "1.10.3",
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.10.2",
5
+ "version": "1.10.3",
6
6
  "author": {
7
7
  "name": "ssheleg",
8
8
  "url": "https://x.com/sshlg93"
@@ -195,6 +195,14 @@ nobody read is exactly the document nobody updated.
195
195
 
196
196
  **Build it in five steps** (stage 0; extend it whenever a new doc class appears):
197
197
 
198
+ 0. **Write the meta-row first: *a new document or rule*.** The most frequent change
199
+ in any documented project is adding a document, and it is the row nobody writes —
200
+ so the matrix ends up unable to catch the class it will meet most often. Its
201
+ *Update these* column is every surface that must **learn the thing exists**: the
202
+ index a reader opens, the map, any manifest, the agent-facing rules file.
203
+ Measured on the project this practice comes from: **nine findings across five
204
+ audits were that one missing row**, and the checks were green throughout, because
205
+ a check can only walk the list it was given.
198
206
  1. List the project's doc classes — one line each: what is this the home of?
199
207
  2. For each **change type** the project can undergo, name every document that must
200
208
  move.
@@ -43,7 +43,9 @@ Seven passes, cheapest first. Each either reports `ok`, a finding, or **`skipped
43
43
  3. **Propagation.** Every document named in an entry's `Consequences / affects:` line
44
44
  cites that entry — ratcheted, so history is a printed number and not a wall of
45
45
  failures ([`adoption.md`](adoption.md) → *Baseline the ratchets*).
46
- 4. **The matrix.** Every row has a *Checked by* cell a check, or `review` **with the
46
+ 4. **The matrix.** It contains the **meta-row** *a new document or rule* without
47
+ which it cannot catch the change type the project makes most often. Every row has
48
+ a *Checked by* cell — a check, or `review` **with the
47
49
  reason no check can decide it**. An empty cell is a finding, not a blank.
48
50
  5. **Terms.** Every term the doc map declares resolves to exactly one definition, and
49
51
  the definition's home actually contains it. **Only declared terms are checked** —
@@ -62,6 +62,7 @@ column is a finding, not a blank.
62
62
 
63
63
  | Change type | Update these | Checked by |
64
64
  |---|---|---|
65
+ | **A new document or rule** — start with this row | every surface that must *learn* it exists: the index a reader opens, the map, any manifest, the agent-facing rules file | `<the check, or `review` with its reason>` |
65
66
  | New/changed **decision** | `docs/DECISIONS.md` + every doc in its `Consequences / affects:` line | gate §5 propagation |
66
67
  | Question **resolved** | `docs/OPEN_QUESTIONS.md` → `Resolved→DEC-####`, the owning topic doc | gate §2 ids · gate §8 status vocabulary |
67
68
  | **Scope** change | `<roadmap>`, `<mvp>`, the register | review — scope is a judgement, not a shape |
@@ -69,6 +70,9 @@ column is a finding, not a blank.
69
70
  | `<user-facing behaviour>` | `<scenarios>` + `<flows>` + `<screens>`, same change | `<ux linter>` |
70
71
  | `<fill me>` | … | … |
71
72
 
73
+
74
+ **Start with the row above.** The most frequent change in any documented project is *adding a document*, and it is the row nobody writes — so the matrix ends up unable to catch the class it will meet most. On the project this practice comes from, nine findings across five audits were that one missing row.
75
+
72
76
  ## Gates
73
77
 
74
78
  | Gate | Command | When | Blocking? |