task-pipeline-skill 1.61.0 → 1.62.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 +29 -0
- package/SKILL-CARD.md +1 -1
- package/package.json +1 -1
- package/plugins/task-pipeline/.claude-plugin/plugin.json +1 -1
- package/plugins/task-pipeline/skills/task-pipeline/references/backlog.md +37 -0
- package/plugins/task-pipeline/skills/task-pipeline/templates/backlog.md +1 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,34 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## v1.62.0 — a board row that says work exists names where it lives
|
|
4
|
+
|
|
5
|
+
**`open` claims nothing exists. `parked` claims something does — and now has to say
|
|
6
|
+
where.** B-58: a row read as ready-to-merge for two days while its artifacts had already
|
|
7
|
+
been deleted. It said *"built and parked … held at `scratchpad/b29-exposure/`"*, a
|
|
8
|
+
session-scoped temp directory, and when a run finally went to land it nothing on disk, in
|
|
9
|
+
git history, in a stash or in a dangling object held any of it. **A board cannot tell a
|
|
10
|
+
claim about a filesystem from a claim about a repository**, and that row was the first
|
|
11
|
+
kind while reading like the second.
|
|
12
|
+
|
|
13
|
+
The status cell of a parked row now carries a branch or a commit, and two rules gate it:
|
|
14
|
+
an open row may not home its work in a per-session directory, and a `parked` status
|
|
15
|
+
without a ref is refused.
|
|
16
|
+
|
|
17
|
+
**A prose detector was written first and thrown away.** Matching *"parked"*, *"is built"*,
|
|
18
|
+
*"ready to merge"* in the description cell fired on **three rows out of 187 and every one
|
|
19
|
+
was false** — two closed rows narrating this incident and the row that asked for the rule.
|
|
20
|
+
A check whose every current hit is wrong teaches evasion; what ships reads the status
|
|
21
|
+
cell, which is never prose, and both rules measured **zero** across 191 rows including the
|
|
22
|
+
templates.
|
|
23
|
+
|
|
24
|
+
The first draft of the guard read `cells[-2]`, which is the status in an eight-column
|
|
25
|
+
board and the *Home* column in the ten-column template — so the parked rule examined the
|
|
26
|
+
wrong cell and reported nothing, fifty lines below the comment explaining why positional
|
|
27
|
+
reads fail on this corpus. It is position-free now, and the plant that was silently
|
|
28
|
+
passing is the one that proved it.
|
|
29
|
+
|
|
30
|
+
Guards: 347 → **349**. Property checks: 9 → 9.
|
|
31
|
+
|
|
3
32
|
## v1.61.0 — the command that was built, parked, and lost
|
|
4
33
|
|
|
5
34
|
**The exposure command lands, two days after it was declared built.** B-43 recorded
|
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.
|
|
15
|
+
| **Version** | 1.62.0 |
|
|
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.
|
|
3
|
+
"version": "1.62.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 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.
|
|
5
|
+
"version": "1.62.0",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "ssheleg",
|
|
8
8
|
"url": "https://x.com/sshlg93"
|
|
@@ -18,6 +18,7 @@ exactly one seam, and that seam already existed as a dangling pointer.
|
|
|
18
18
|
|
|
19
19
|
- The seam the ledger left open
|
|
20
20
|
- Seeded or picked up
|
|
21
|
+
- A row that says work exists names where it lives
|
|
21
22
|
- Priority is computed, not assigned
|
|
22
23
|
- What a loop iteration does with it
|
|
23
24
|
- Rationalizations
|
|
@@ -60,6 +61,42 @@ work on, and only one of them can be appended to.
|
|
|
60
61
|
at the top of the run, not from what the last run's report said — the previous run is
|
|
61
62
|
precisely what invalidated that number ([`learned.md`](learned.md) rule 16).
|
|
62
63
|
|
|
64
|
+
## A row that says work exists names where it lives
|
|
65
|
+
|
|
66
|
+
**`open` claims nothing exists yet. `parked` claims something does — and then has to say
|
|
67
|
+
where.** The status cell of a parked row carries a branch or a commit:
|
|
68
|
+
|
|
69
|
+
```
|
|
70
|
+
| B-043 | The exposure command … | 2026-08-14 run | 1 | 0 | 1 | 1.0 | parked — feat/exposure |
|
|
71
|
+
| B-044 | The migration script … | 2026-08-15 run | 2 | 0 | 2 | 1.5 | parked — a1b2c3d |
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
The rule exists because a row read as ready-to-merge for two days while its artifacts had
|
|
75
|
+
already been deleted. It said *"built and parked … held at `scratchpad/b29-exposure/`"* —
|
|
76
|
+
a session-scoped temp directory. When a run finally went to land it, nothing on disk, in
|
|
77
|
+
git history, in a stash or in a dangling object held any of it. **A board cannot tell a
|
|
78
|
+
claim about a filesystem from a claim about a repository**, and that row was the first
|
|
79
|
+
kind while reading like the second.
|
|
80
|
+
|
|
81
|
+
So:
|
|
82
|
+
|
|
83
|
+
- **A scratchpad, `/tmp`, or any per-session directory is not a home.** Work that lives
|
|
84
|
+
only there is not parked, it is unwritten — say `open` and describe what is wanted, not
|
|
85
|
+
what supposedly exists.
|
|
86
|
+
- **Uncommitted work in a working tree is not parked either.** Another agent's checkout,
|
|
87
|
+
a stash, an unpushed branch on one machine: none of them survives the question *"can
|
|
88
|
+
somebody else pick this up?"*, which is the only question the board is answering.
|
|
89
|
+
- **The ref is checkable and that is the point.** `git rev-parse` either resolves it or it
|
|
90
|
+
does not, so a row that has quietly expired can be found before somebody plans around
|
|
91
|
+
it.
|
|
92
|
+
|
|
93
|
+
**A prose detector was tried first and discarded.** Matching *"parked"*, *"is built"*,
|
|
94
|
+
*"ready to merge"* in the description cell fired on **three rows out of 187 and all three
|
|
95
|
+
were false** — two closed rows narrating this very incident and the row that asked for
|
|
96
|
+
this rule. A check whose every current hit is wrong teaches evasion, and this repository
|
|
97
|
+
throws that shape away rather than tuning it. What is gated is the **status cell**, which
|
|
98
|
+
is never prose.
|
|
99
|
+
|
|
63
100
|
## Priority is computed, not assigned
|
|
64
101
|
|
|
65
102
|
```
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
| B-001 | `export.ts` has no size guard on the write path | `2026-07-28-export` / 5 Review | S | 2 | 1 | 12 | **2** | open | — |
|
|
15
15
|
| B-002 | XLSX export path | `2026-07-28-export` / 5 Dev | M | 1 | 2 | 12 | 2 | open | LIN-483 |
|
|
16
16
|
| B-003 | REQ-007 bulk export | `2026-07-28-export` / 2 Brainstorm | L | 1 | 1 | 12 | 1 | dropped | operator 2026-07-28 |
|
|
17
|
+
| B-004 | Retry/backoff on the upload path | `2026-07-28-export` / 5 Dev | M | 2 | 2 | 4 | **4** | parked — feat/upload-retry | — |
|
|
17
18
|
|
|
18
19
|
## Columns
|
|
19
20
|
|