task-pipeline-skill 1.47.0 → 1.47.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,46 @@
1
1
  # Changelog
2
2
 
3
+ ## v1.47.1 — the fixes a reader found, which three releases shipped without
4
+
5
+ v1.46.0 was tagged and published from a commit that carried this branch's doctrine and
6
+ none of the three commits answering the reviewer. The defects below were already found
7
+ and already fixed when the release went out; this is them arriving.
8
+
9
+ **`docs/DOCMAP.md` forbade the register shipping beside it.** It said, in as many words,
10
+ that no `docs/DECISIONS.md` is created here deliberately — and the release shipped that
11
+ file. The old rule was right about the risk and wrong about the mechanism: `OQ-####`
12
+ closes with `Resolved→DEC-####`, and a CHANGELOG version heading cannot be that target,
13
+ because two decisions in one release collapse to a single pointer. SSOT is kept by
14
+ direction now — the reason lives in `DECISIONS.md`, the CHANGELOG points at the id. The
15
+ reversal is `DEC-0003`, because a register that appears without a decision is exactly
16
+ the fork the old rule feared.
17
+
18
+ **`HOW-IT-WORKS.md` called itself the version it was written under.** Its first line
19
+ promises a rewrite every release and names the banner as the freshness signal; the
20
+ banner read 1.45.0 while every other surface read 1.46.0. Corrected, and the two
21
+ releases that landed from another session are named for what they were, so the gap in
22
+ the version history is explained rather than silent.
23
+
24
+ **An absolute rule keeps every keyword while an appended clause reverses it.** This
25
+ release found that class, guarded it on stage 10's criterion 13, and left `residue.md`'s
26
+ two absolute rules on plain substring presence — *"never released by this run, unless it
27
+ has clearly expired"* passed. Sweeping the fix to its siblings then produced the reason
28
+ to sweep it structurally: the second copy of the carve-out pattern had its escaping
29
+ doubled, so it matched a literal backslash and walked past every inversion while looking
30
+ correct. One home now — `_EXCEPTION_MARKER` and the `_carve_out` helper that reads it —
31
+ with two call sites.
32
+
33
+ **A probe demanded a dependency the harness disclaims.** `res8` required PyYAML to be
34
+ installed; the guard it tests degrades honestly without it. `test:all` was red on any
35
+ machine lacking it. Three branches now: the guard fired, the guard said it could not
36
+ look, or neither — and only the third is an error.
37
+
38
+ Also: the owner-row check went through `_row_cells` instead of a hand-rolled regex, as
39
+ that helper's own docstring asks; and a reflow that fixed a 157-character line had
40
+ orphaned two words onto a five-character one.
41
+
42
+ Guards: 291 → **294**.
43
+
3
44
  ## v1.47.0 — a green suite that cannot speak for an agent
4
45
 
5
46
  The suite gate at stage 6 assumes the thing under test is deterministic: run it twice,
package/HOW-IT-WORKS.md CHANGED
@@ -5,7 +5,7 @@ explains the machine — what routes a request into it, what each stage refuses
5
5
  let past, and what makes any claim it prints believable. The README sells it and
6
6
  tells you how to install it; this file tells you how it thinks.
7
7
 
8
- > **Version 1.45.0.** The "What changed" section at the bottom carries the last
8
+ > **Version 1.47.1.** The "What changed" section at the bottom carries the last
9
9
  > few releases. Everything above it describes the pipeline as it is *now*, not as
10
10
  > it was designed.
11
11
 
@@ -238,7 +238,7 @@ This is the part most pipelines skip, and it is the reason this one is trustwort
238
238
  rather than merely tidy.
239
239
 
240
240
  **Every guard is proven against a planted defect.** `npm run test:all` breaks the
241
- thing each of the **291** checks is about, and requires that check to reject it. A
241
+ thing each of the **294** checks is about, and requires that check to reject it. A
242
242
  guard that has never been watched failing is not a guard; it is a comment.
243
243
 
244
244
  **The neighbour probe.** A check has a *subject* — the rule it is about — and
@@ -291,7 +291,28 @@ a run diverges → retro entry → retro.publish → upstream issue
291
291
 
292
292
  ## What changed, by version
293
293
 
294
- ### v1.45.0what a run leaves running, what "done" costs to say, what a check is for
294
+ ### v1.47.1the fixes a reader found, which three releases shipped without
295
+ Three releases went out from another session while this branch was reviewed, and
296
+ each carried the same defects forward: the doc map forbidding the decisions register
297
+ shipping beside it, this file naming a version two releases stale, two absolute rules
298
+ invertible by an appended clause, a probe demanding PyYAML the harness disclaims, and
299
+ a probe that stopped reproducing its own hazard when its target string was quoted —
300
+ which leaves `main`'s own suite red. Every one was found and fixed before the first
301
+ of those releases; this is them arriving.
302
+
303
+ ### v1.47.0 / v1.46.0 — shipped from another session
304
+ A green suite that cannot speak for an agent; and this branch's residue, completion
305
+ honesty, proportionate verification and improvement-iteration doctrine, which reached
306
+ main through the merge commit rather than through this branch's own release.
307
+
308
+ v1.46.0 was tagged from a commit carrying this branch's doctrine and none of the
309
+ three commits answering its reviewer. The doc map forbade the decisions register
310
+ shipping beside it; this file called itself the version it was written under; two
311
+ absolute rules were guarded by substring alone and inverted by an appended clause;
312
+ and a probe demanded PyYAML the harness disclaims. All four were found and fixed
313
+ before the release went out, and arrived after it.
314
+
315
+ ### v1.46.0 — what a run leaves running, what "done" costs to say, what a check is for
295
316
  Four rules the pipeline had been following by disposition rather than by doctrine.
296
317
  **Residue**: eight classes of thing a run leaves running or leaves behind, enumerated
297
318
  by class and never by one tool — the case that produced it was a task inventory
@@ -304,6 +325,12 @@ the deliverable is the working result and the check is how you know — scaled t
304
325
  issue resolves when behaviour changed and its close names the address; unworked ones
305
326
  accumulate visibly rather than being triaged into silence. Guards: 275 → 291.
306
327
 
328
+ ### v1.45.1 / v1.45.0 — shipped from another session while this branch was paused
329
+ The reference routing existed three times over and was cut to one home; the guard
330
+ count the self-test plants into was restored. Neither is this branch's work — they
331
+ are here because they hold the version numbers this branch was originally built
332
+ under, which is why it ships as 1.46.0.
333
+
307
334
  ### v1.44.0 — six lessons from other projects, and the guards that hold them
308
335
  Six issues published by runs in other repositories were worked into doctrine:
309
336
  seam testing at stage 6, `verified by` names that must resolve, a probe's green
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.47.0 |
15
+ | **Version** | 1.47.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, 5 categories. One recorded run, **self-observed by the author**; **zero blind runs on zero of three models** — the split, and the numbers, live in [`evals/RESULTS.md`](evals/RESULTS.md) and are computed by `evals/run.py` |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "task-pipeline-skill",
3
- "version": "1.47.0",
3
+ "version": "1.47.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 closes with evidence, a work board and a verification ledger that outlive a run, an exposure line naming what shipped unconfirmed, a progress rail computed from the project's own config, a loop guard whose review ceiling measures rather than stops, and stage-3 tracks for what a product does, how it sounds and how it looks. Two modes need no task: `checkup` (what is unverified) and `setup` (audit existing docs). Retro insights can publish upstream as issues, opt-in and redacted.",
5
- "version": "1.47.0",
5
+ "version": "1.47.1",
6
6
  "author": {
7
7
  "name": "ssheleg",
8
8
  "url": "https://x.com/sshlg93"