task-pipeline-skill 1.15.0 → 1.16.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 +44 -0
- package/CONTRIBUTING.md +9 -1
- package/README.md +1 -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/evidence-docs/SKILL.md +68 -0
- package/plugins/task-pipeline/skills/task-pipeline/SKILL.md +1 -0
- package/plugins/task-pipeline/skills/task-pipeline/references/portability.md +1 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,49 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## v1.16.1 — 2026-08-06
|
|
4
|
+
|
|
5
|
+
### Fixed — frontmatter that a regex called valid and a YAML parser silently dropped
|
|
6
|
+
|
|
7
|
+
`evidence-docs`'s description contained *"read as true: a decision record"*. A
|
|
8
|
+
colon-space inside a plain YAML scalar makes the value a nested mapping, so the official
|
|
9
|
+
plugin validator reported the skill **loads with empty metadata — every frontmatter field
|
|
10
|
+
silently dropped**, which for a skill means it never triggers. v1.16.0 published in that
|
|
11
|
+
state.
|
|
12
|
+
|
|
13
|
+
The guard that was supposed to catch it checked the frontmatter with a regular
|
|
14
|
+
expression and passed: a check proving less than it claims, shipped in the release that
|
|
15
|
+
publishes canon 6. It now rejects a plain scalar carrying a colon-space, across **every**
|
|
16
|
+
`SKILL.md` in the plugin rather than only the new one — the class, not the instance.
|
|
17
|
+
Guards 112 → 113.
|
|
18
|
+
|
|
19
|
+
## v1.16.0 — 2026-08-06
|
|
20
|
+
|
|
21
|
+
### Added — `evidence-docs`: a second skill in this plugin, and the router row it fills
|
|
22
|
+
|
|
23
|
+
The canons landed in v1.15.0 with no way to reach them except through the pipeline. The
|
|
24
|
+
global router already reserved a name for the question *"what is this proved by?"* —
|
|
25
|
+
`evidence-docs` — and nothing resolved it. A routed name that resolves to nothing is the
|
|
26
|
+
shape `learned.md` rule 14 forbids, in the routing table itself.
|
|
27
|
+
|
|
28
|
+
`skills/evidence-docs/SKILL.md` is a **navigator, not a second copy**: the ten canons as
|
|
29
|
+
a one-line index, a pointer to their one home in `documentation.md` → *The canons*, and a
|
|
30
|
+
table of where to go next — set docs up from nothing, record a decision, avoid orphaning
|
|
31
|
+
docs on a change, build a check that cannot lie, trust a mechanism that reports success,
|
|
32
|
+
audit docs a project already has, seed a gate. It states its own boundary ("it will be
|
|
33
|
+
read as true"), what is explicitly out (drafts, chat, commit messages, code comments) and
|
|
34
|
+
its refusal phrase.
|
|
35
|
+
|
|
36
|
+
Shipping it as a second skill **in the same plugin** rather than a separate repository is
|
|
37
|
+
what keeps SSOT: one set of files, one release, and no copy to drift. `super-ux` already
|
|
38
|
+
ships six skills from one plugin, so the shape is the family's own.
|
|
39
|
+
|
|
40
|
+
### Guards — 108 → 112
|
|
41
|
+
|
|
42
|
+
The index is held to the doctrine's own canon list, the pointer to the one home is
|
|
43
|
+
required, the frontmatter is checked against the Agent Skills spec, and every relative
|
|
44
|
+
link is resolved **from the navigator's own directory** — it sits one level over from
|
|
45
|
+
everything it names, which is canon 4 enforced in the file that publishes canon 4.
|
|
46
|
+
|
|
3
47
|
## v1.15.0 — 2026-08-06
|
|
4
48
|
|
|
5
49
|
### Added — the ten canons: what makes a document evidence
|
package/CONTRIBUTING.md
CHANGED
|
@@ -235,7 +235,15 @@ commands and all three signal states — with a state missing, a graph that coul
|
|
|
235
235
|
be measured prints like a fresh one.
|
|
236
236
|
*(guard: `never requires it — a run passes intake quoting a`)*
|
|
237
237
|
|
|
238
|
-
**31.
|
|
238
|
+
**31. The evidence-docs navigator indexes the canons and never copies them.**
|
|
239
|
+
`skills/evidence-docs/SKILL.md` is a second skill in the same plugin: the ten canons as
|
|
240
|
+
a one-line index, a pointer to their one home, and a table of where to go next. The
|
|
241
|
+
guard holds the index to the doctrine's own list, requires the pointer, and resolves
|
|
242
|
+
every relative link **from the navigator's directory** — it sits one level over from
|
|
243
|
+
everything it names, which is canon 4 in the file that publishes canon 4.
|
|
244
|
+
*(guard: `index that has drifted from its doctrine`)*
|
|
245
|
+
|
|
246
|
+
**32. Every invariant above names the guard that enforces it, and that guard exists.**
|
|
239
247
|
This list claims to be *what the validator enforces*; it was eight guards behind when
|
|
240
248
|
an audit measured it. A claim of enforcement is now checked like any other claim.
|
|
241
249
|
*(guard: `whose message does not appear in`)* — and a cited literal must lie inside
|
package/README.md
CHANGED
|
@@ -116,6 +116,7 @@ until it is installed.
|
|
|
116
116
|
|
|
117
117
|
| Stage | Built-in doctrine |
|
|
118
118
|
|---|---|
|
|
119
|
+
| **any claim read as true** | [`evidence-docs`](plugins/task-pipeline/skills/evidence-docs/SKILL.md) — **a second skill in this plugin**: the ten canons as an index, and where each is defined, enforced and seeded |
|
|
119
120
|
| 0 Knowledge harvest | [`knowledge-sources.md`](plugins/task-pipeline/skills/task-pipeline/references/knowledge-sources.md) — source list, the wiki, the ledger, the stage-9 loop-back |
|
|
120
121
|
| 0 Intake grill | [`grill.md`](plugins/task-pipeline/skills/task-pipeline/references/grill.md) — interview loop, domain awareness, autonomy sweep |
|
|
121
122
|
| 2 Brainstorm | [`brainstorm.md`](plugins/task-pipeline/skills/task-pipeline/references/brainstorm.md) — approaches, YAGNI, the no-code-before-approval gate |
|
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.16.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) |
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "task-pipeline-skill",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.16.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.
|
|
5
|
+
"version": "1.16.1",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "ssheleg",
|
|
8
8
|
"url": "https://x.com/sshlg93"
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: evidence-docs
|
|
3
|
+
description: Applies the ten canons of evidence-backed documentation — what makes a claim documentation rather than an assertion — and routes to the doctrine that enforces each one. Use when writing or reviewing anything that will be read as true — a decision record, a README, an acceptance report, a runbook, a changelog entry, an audit finding, or any claim that something was verified. Also use when a project needs a documentation gate, a decision register, a propagation matrix, or a retrospective that outlives its author. Not for drafts, chat answers, commit messages or code comments.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Evidence-backed documentation
|
|
7
|
+
|
|
8
|
+
**A claim is documentation only when it carries the means to check it.** This skill is
|
|
9
|
+
the standard and the map: ten canons, and where each is defined, enforced and seeded.
|
|
10
|
+
|
|
11
|
+
It is a **navigator, not a second copy**. Every law below has exactly one home — that is
|
|
12
|
+
canon 3, and a navigator that restated the doctrine would break the rule it is indexing.
|
|
13
|
+
The full statement of each canon, its rationale and its enforcement live in
|
|
14
|
+
[`documentation.md`](../task-pipeline/references/documentation.md) → *The canons*.
|
|
15
|
+
|
|
16
|
+
## The ten canons
|
|
17
|
+
|
|
18
|
+
1. **A claim carries its address** — `file:line`, a command with its output, a test name; a lesson names its commit.
|
|
19
|
+
2. **Numbers are computed, never restated.**
|
|
20
|
+
3. **Every fact has exactly one home** — others link, never restate.
|
|
21
|
+
4. **A reference resolves from where the document is read** — not from where it lives.
|
|
22
|
+
5. **Green nobody watched turn red is not evidence.**
|
|
23
|
+
6. **A check proves its scope and nothing beyond it.**
|
|
24
|
+
7. **Silence is not a pass** — ask what a mechanism prints when it did not look.
|
|
25
|
+
8. **An estimate is never announced as a measurement** — a rule states its evidence condition.
|
|
26
|
+
9. **What was not checked is printed beside what was.**
|
|
27
|
+
10. **The document ships in the change that made it true** — and a correction is appended, never written over.
|
|
28
|
+
|
|
29
|
+
They are **epistemic**: what makes a claim documentation. The operational layer — what to
|
|
30
|
+
do at a given trigger, with a check and an exit criterion — is
|
|
31
|
+
[`learned.md`](../task-pipeline/references/learned.md). When the two seem to say the same
|
|
32
|
+
thing, the canon is the *why* and the rule is the *how*.
|
|
33
|
+
|
|
34
|
+
## Where next
|
|
35
|
+
|
|
36
|
+
| You are about to… | Read | Because |
|
|
37
|
+
|---|---|---|
|
|
38
|
+
| set a project's documentation up from nothing | [`documentation.md`](../task-pipeline/references/documentation.md) → *The inventory* | four questions answered before the first line of work |
|
|
39
|
+
| record a decision so it survives its author | *Registers and ids* + [`templates/decisions.md`](../task-pipeline/templates/decisions.md) | append-only ids, edge markers, one decision home |
|
|
40
|
+
| change something and not orphan the docs | *The Doc Loop* + *The propagation matrix* | which documents a change owes, starting with the meta-row |
|
|
41
|
+
| decide where a fact belongs | *Single source of truth* | two homes disagree the day one of them is updated |
|
|
42
|
+
| build a check that cannot lie | [`gates.md`](../task-pipeline/references/gates.md) | three axes, the enforcement ladder, progressive arming, probing |
|
|
43
|
+
| trust a mechanism that reports success | [`gates.md`](../task-pipeline/references/gates.md) → *False success* | the failure that removes the reason to look |
|
|
44
|
+
| wire a check into the agent's own tooling | [`hooks.md`](../task-pipeline/references/hooks.md) | the hook contract, and why a crashed guard **allows** the action |
|
|
45
|
+
| audit documentation a project already has | [`setup.md`](../task-pipeline/references/setup.md) | seven passes, cheapest first, output is a fix plan |
|
|
46
|
+
| carry a lesson to the next run | [`retrospective.md`](../task-pipeline/references/retrospective.md) | prune first, cap of ten, every lesson names its commit |
|
|
47
|
+
| seed a gate into a host project | [`templates/docgate.sh`](../task-pipeline/templates/docgate.sh) | it seeds **green**: dormant where there is no input yet |
|
|
48
|
+
| take a whole change through to acceptance | [`task-pipeline`](../task-pipeline/SKILL.md) | this skill is the standard; that one is how a change reaches the repository |
|
|
49
|
+
|
|
50
|
+
## When this applies
|
|
51
|
+
|
|
52
|
+
**The boundary is "it will be read as true."** A decision record, a README, an acceptance
|
|
53
|
+
report, a runbook, a changelog for users, an audit finding, a claim that something was
|
|
54
|
+
verified.
|
|
55
|
+
|
|
56
|
+
**Not through this skill:** a draft, thinking out loud, an answer in chat, a commit
|
|
57
|
+
message, a code comment. Demanding a `file:line` for "let me check that" is the fastest
|
|
58
|
+
way to teach an agent to route around the rule where it actually protects something.
|
|
59
|
+
|
|
60
|
+
**Refusal phrase — "без доков" / "on my word".** It works on a task that would otherwise
|
|
61
|
+
pass through here: do it directly and **say out loud** that the claim is unbacked, rather
|
|
62
|
+
than presenting an estimate as a measurement (canon 8).
|
|
63
|
+
|
|
64
|
+
## The one test
|
|
65
|
+
|
|
66
|
+
Before a document ships, read it for the sentence that would embarrass you if someone
|
|
67
|
+
asked *"how do you know?"* — and either give that sentence its address, or delete it.
|
|
68
|
+
Everything above is that question, made mechanical.
|
|
@@ -47,6 +47,7 @@ gate stops until it is installed.
|
|
|
47
47
|
| Stage | Built-in doctrine |
|
|
48
48
|
|---|---|
|
|
49
49
|
| 0 + 9 + any settled decision · The documentation system | [`references/documentation.md`](references/documentation.md) |
|
|
50
|
+
| any claim that will be read as true · The canons, and where each is enforced | [`evidence-docs`](../evidence-docs/SKILL.md) — the sibling skill in this plugin |
|
|
50
51
|
| 6–10 + any check you write · Gates | [`references/gates.md`](references/gates.md) |
|
|
51
52
|
| any agent-time enforcement · Hooks | [`references/hooks.md`](references/hooks.md) |
|
|
52
53
|
| 0 Knowledge harvest (pre-grill) | [`references/knowledge-sources.md`](references/knowledge-sources.md) |
|
|
@@ -67,6 +67,7 @@ a row pointing outside the bundle is the defect this file exists to catch.
|
|
|
67
67
|
| Workspace isolation, the subagent loop, who may write the register | `references/build.md` |
|
|
68
68
|
| The review rubric, diff packages, the three verdicts | `references/review.md` |
|
|
69
69
|
| **False success** — the class, its known shapes and its two rules | `references/gates.md` |
|
|
70
|
+
| **The canons** — what makes a claim documentation, and the index that routes to each | `references/documentation.md`, `../evidence-docs/SKILL.md` |
|
|
70
71
|
| **Effect verification** — the `verified-by:` contract and the rubric item that blocks | `references/build.md`, `references/review.md` |
|
|
71
72
|
| The TDD iron law and the suite gate | `references/tdd.md` |
|
|
72
73
|
| The REQ coverage table, evidence rules, the closing question | `references/acceptance.md` |
|