task-pipeline-skill 1.87.0 → 1.87.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,3 +1,31 @@
1
+ ## v1.87.1 — the SessionEnd timeout no host gave
2
+
3
+ Codex 0.157 prints `clamping SessionEnd hook timeout to 3s in …/task-pipeline/…/hooks.json`
4
+ at every session start. `hooks.json` declared 10 s for `run-lifecycle.sh`; Codex clamps a
5
+ SessionEnd handler to 3 s, and Claude Code sizes its SessionEnd wait from the largest
6
+ handler timeout. The script already fitted: it appends one line, and its own header states
7
+ the 1.5-second budget. So the number was the only defect, and a warning on every Codex
8
+ start the only cost.
9
+
10
+ Guards: 429 → **430**.
11
+
12
+ - **`hooks/hooks.json` declares `timeout: 3`** for SessionEnd. `test/validate.py` now reads
13
+ the plugin's OWN hooks file, which it never checked before (only the template), and holds
14
+ it and `templates/hooks.example.json` to a 3 s SessionEnd cap. The new negative step
15
+ plants the shipped 10 through `test/plant_sessionend_timeout.py`, which asserts that the
16
+ plant landed.
17
+ - **`validate.yml` gets room again, 512 419 → 506 050 bytes.** The new step on its own
18
+ pushed the workflow past GitHub's 512 000-byte limit, where it stays `active` and never
19
+ runs. The largest inline plant (*a release MENTIONED but not declared*, 7.9 kB) moved
20
+ verbatim into `test/plant_gap_mention.py`, with the same exit-9 skip. It is watched
21
+ rejecting its planted defect through `test/negatives.py -k MENTIONED`.
22
+ - **The dormancy guard reads the script a step calls.** Moving that plant took its `SKIP:`
23
+ branch out of the step text, and `anchors.py` read only the step. So it stopped calling
24
+ the step skip-capable, and deleting its `# dormant-when:` passed. `test:all` caught this
25
+ through *a plant that can decline to run and never says when*. `Step.skip_capable` now
26
+ also follows `python3 test/plant_*.py` into the file. A new `anchors_test.py` case is red
27
+ without the fix.
28
+
1
29
  ## v1.87.0 — stage 4 stops handing over a plan the next agent cannot execute
2
30
 
3
31
  The operator's finding, 2026-09-13: **agents change between sessions, and whatever a
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.87.0 |
15
+ | **Version** | 1.87.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, and **one of two browser channels** — `playwright` (CLI or MCP) or `chrome-devtools` (MCP); either satisfies the browser step and neither is required. 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.87.0",
3
+ "version": "1.87.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"
@@ -3,7 +3,7 @@
3
3
  "name": "task-pipeline",
4
4
  "displayName": "Task Pipeline",
5
5
  "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/judgment/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.",
6
- "version": "1.87.0",
6
+ "version": "1.87.1",
7
7
  "author": {
8
8
  "name": "ssheleg",
9
9
  "url": "https://x.com/sshlg93"
@@ -83,7 +83,7 @@
83
83
  "type": "command",
84
84
  "shell": "bash",
85
85
  "command": "\"${CLAUDE_PLUGIN_ROOT}/hooks/run-lifecycle.sh\"",
86
- "timeout": 10
86
+ "timeout": 3
87
87
  }
88
88
  ]
89
89
  }