task-pipeline-skill 0.17.1 → 1.0.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 +161 -0
- package/README.md +261 -135
- package/cursor/rules/task-pipeline.mdc +40 -8
- package/package.json +7 -3
- package/plugins/task-pipeline/.claude-plugin/plugin.json +2 -2
- package/plugins/task-pipeline/commands/task-pipeline.md +15 -5
- package/plugins/task-pipeline/skills/task-pipeline/SKILL.md +32 -6
- package/plugins/task-pipeline/skills/task-pipeline/pipeline.example.json +7 -3
- package/plugins/task-pipeline/skills/task-pipeline/references/acceptance.md +3 -2
- package/plugins/task-pipeline/skills/task-pipeline/references/artifacts.md +22 -11
- package/plugins/task-pipeline/skills/task-pipeline/references/brainstorm.md +6 -4
- package/plugins/task-pipeline/skills/task-pipeline/references/build.md +2 -1
- package/plugins/task-pipeline/skills/task-pipeline/references/companion-skills.md +11 -2
- package/plugins/task-pipeline/skills/task-pipeline/references/conventions.md +17 -3
- package/plugins/task-pipeline/skills/task-pipeline/references/grill.md +37 -4
- package/plugins/task-pipeline/skills/task-pipeline/references/knowledge-sources.md +159 -0
- package/plugins/task-pipeline/skills/task-pipeline/references/planning.md +5 -3
- package/plugins/task-pipeline/skills/task-pipeline/references/review.md +2 -1
- package/plugins/task-pipeline/skills/task-pipeline/references/stages.md +39 -9
- package/plugins/task-pipeline/skills/task-pipeline/templates/brief.md +24 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,166 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## v1.0.0 — 2026-07-28
|
|
4
|
+
|
|
5
|
+
**1.0.** Eighteen releases in ten days added a stage, a requirement spine, a
|
|
6
|
+
decomposition pass and a loop guard; this one adds nothing and instead makes the
|
|
7
|
+
whole thing coherent enough to depend on. Every file was read against every other
|
|
8
|
+
file, the contradictions between them are fixed, and the repo now carries the
|
|
9
|
+
surface a stranger needs before they trust it.
|
|
10
|
+
|
|
11
|
+
What 1.0 promises: the stage flow (0 intake + 1→10), `pipeline.schema.json`, the
|
|
12
|
+
artifact layout in `references/artifacts.md`, and the two install paths are stable.
|
|
13
|
+
Breaking any of them means a 2.0.
|
|
14
|
+
|
|
15
|
+
### Fixed — contradictions between doctrine files
|
|
16
|
+
- **Two names for one idea.** `brainstorm.md` told the agent to split an oversized
|
|
17
|
+
task into "sub-projects", each with its own spec→plan→build cycle;
|
|
18
|
+
`decomposition.md` — the file that actually owns the procedure — calls them
|
|
19
|
+
**modules**, cuts them at the end of stage 2, and runs stages 3→10 per module
|
|
20
|
+
against a committed module map. An agent that read the first file ran a
|
|
21
|
+
decomposition the second file's gate could not check. Brainstorm now hands off to
|
|
22
|
+
`decomposition.md` by name.
|
|
23
|
+
- **The same split, invented twice.** `planning.md` independently told stage 4 to
|
|
24
|
+
"split the spec into one plan per subsystem" — a second, unrecorded decomposition
|
|
25
|
+
two stages after the one with the gate and the map. A plan now covers exactly one
|
|
26
|
+
spec; a multi-subsystem spec arriving at stage 4 is a missed stage-2
|
|
27
|
+
decomposition and goes back there.
|
|
28
|
+
- **A hardcoded `main`.** `build.md` and `review.md` both built the final
|
|
29
|
+
whole-branch review package with `git merge-base main HEAD`, in a pipeline whose
|
|
30
|
+
stage-0 brief records the base branch precisely because it is not always `main`.
|
|
31
|
+
On any repo with a `master`, a `develop` or a stacked base, the final review saw
|
|
32
|
+
the wrong diff. Both now read the brief's base.
|
|
33
|
+
- **A five-status set that claimed to have four.** `acceptance.md` listed four
|
|
34
|
+
statuses, declared "there is no fifth status", then named `unknown` in the next
|
|
35
|
+
clause. Reworded so the mechanism is legible: four ways to close, and anything
|
|
36
|
+
that fits none of them is `unknown`, which fails the gate.
|
|
37
|
+
- **A version pin on someone else's contract.** The README and `stages.md` both
|
|
38
|
+
pinned super-ux's scenario format at "ux-contract v4" — the exact cross-repo
|
|
39
|
+
version skew this project ported its own doctrine in-house to avoid. Both now
|
|
40
|
+
point at the contract super-ux itself ships, with no version named here.
|
|
41
|
+
- **A blockquote where a sentence should be.** In `knowledge-sources.md` the
|
|
42
|
+
precedence chain `code > host docs and ADRs > the wiki > memory` wrapped so the
|
|
43
|
+
second line *began* with `>`, which Markdown renders as a block quote —
|
|
44
|
+
the rule about which source wins was visually broken in the file that defines it.
|
|
45
|
+
- **`skills[]` entries that resolve to nothing.** `pipeline.example.json` names
|
|
46
|
+
`task-pipeline:grill` and `host:lint` beside real skills, with no key anywhere for
|
|
47
|
+
the two prefixes. A host copying the example had no way to tell a notional label
|
|
48
|
+
from an installable skill. The convention is now stated in the config and in
|
|
49
|
+
`SKILL.md`: `task-pipeline:<name>` is this skill's own `references/<name>.md`,
|
|
50
|
+
`host:<name>` is the host project's command per `conventions.md`, everything else
|
|
51
|
+
is a real skill. Stage 3 also gained the `/ux` entry point and `/ux-lint`, which
|
|
52
|
+
the doctrine mandates and the config had omitted.
|
|
53
|
+
- **A repo tree that had drifted.** `references/artifacts.md`'s map of this
|
|
54
|
+
repository listed `templates/` outside the tree and missed several files.
|
|
55
|
+
- A broken ordered list in the Cursor rule (`3a.` is not a list marker) and a
|
|
56
|
+
`references/` index in `SKILL.md` that never mentioned `templates/`.
|
|
57
|
+
|
|
58
|
+
### Added — the open-source surface
|
|
59
|
+
- `CONTRIBUTING.md` — dev setup, the repository layout, and **the nine invariants**
|
|
60
|
+
written out with the failure each one prevents: four-way version sync, the stage
|
|
61
|
+
list living on three machine-checked surfaces, every human-facing description
|
|
62
|
+
having to name the flow's final stage last, no hardcoded vendor model ids, no
|
|
63
|
+
unreachable reference file, no external provider in the default flow, stage 0 and
|
|
64
|
+
stage 10 staying manual, the frontmatter budget, and resolving links.
|
|
65
|
+
- `SECURITY.md` — what the executable surface actually is (two installers, a
|
|
66
|
+
validator, two workflows), private reporting with a 72-hour acknowledgement, and
|
|
67
|
+
an explicit scope: doctrine that would lead an agent to exfiltrate secrets, push
|
|
68
|
+
to an unnamed repo or deploy without a go **is** a security bug here.
|
|
69
|
+
- `CODE_OF_CONDUCT.md`, GitHub issue forms (bug / doctrine change, with routing to
|
|
70
|
+
super-ux and obsidian-wiki), and a pull-request template whose checklist is the
|
|
71
|
+
list of surfaces that drift.
|
|
72
|
+
- `CLAUDE.md` — house rules for any agent working in this repo, which is also what
|
|
73
|
+
this pipeline's own stage-0 harvest reads first: the commands, the branch and
|
|
74
|
+
commit policy, the invariants, and the docs that must be updated in the same
|
|
75
|
+
change. The project now dogfoods the convention it asks of every host.
|
|
76
|
+
- **Two validator guards, each with a CI negative self-test:** the open-source root
|
|
77
|
+
files must exist, and `npm test` must actually run the validator. A documented
|
|
78
|
+
check nobody can run is a check nobody runs.
|
|
79
|
+
|
|
80
|
+
### Changed
|
|
81
|
+
- **README rewritten.** Same substance, ordered so it can be read: a one-paragraph
|
|
82
|
+
statement of the problem, a Mermaid diagram of the flow with gate types coloured,
|
|
83
|
+
the gate table, *what you get*, then a quickstart — before the deep sections.
|
|
84
|
+
Configuration, install/update and a documentation map now live in their own
|
|
85
|
+
places instead of interleaved with doctrine.
|
|
86
|
+
- Package, marketplace and plugin descriptions rewritten — shorter, and all three
|
|
87
|
+
now say the same thing about the same ten stages.
|
|
88
|
+
- npm metadata: a `test` script (`npm test`), a `bugs` URL, `homepage` at the README.
|
|
89
|
+
- `.worktrees/` is git-ignored — stage 5 creates them.
|
|
90
|
+
|
|
91
|
+
> The open-source surface above shipped in v0.18.1, hours earlier the same day;
|
|
92
|
+
> it is restated here because it is part of what 1.0 means.
|
|
93
|
+
|
|
94
|
+
## v0.18.1 — 2026-07-28
|
|
95
|
+
|
|
96
|
+
Open-source hygiene pass — the repo is public, so the files a first-time
|
|
97
|
+
contributor looks for now exist, and the validator keeps them there.
|
|
98
|
+
|
|
99
|
+
### Added
|
|
100
|
+
- `CONTRIBUTING.md`, `SECURITY.md`, `CODE_OF_CONDUCT.md`, issue forms and a
|
|
101
|
+
pull-request template.
|
|
102
|
+
- `CLAUDE.md` — house rules for any agent working in this repo: the commands, the
|
|
103
|
+
branch and commit policy, and the invariants that drift most often.
|
|
104
|
+
- The validator now requires the open-source root files, with a CI negative
|
|
105
|
+
self-test that deletes `CONTRIBUTING.md` and proves the check fails.
|
|
106
|
+
|
|
107
|
+
### Changed
|
|
108
|
+
- npm metadata: a `test` script, a `bugs` URL, and `homepage` pointing at the
|
|
109
|
+
README. Package, marketplace and plugin descriptions rewritten so all three say
|
|
110
|
+
the same thing about the ten stages.
|
|
111
|
+
- `.worktrees/` is ignored — the pipeline creates them during stage 5.
|
|
112
|
+
|
|
113
|
+
## v0.18.0 — 2026-07-28
|
|
114
|
+
|
|
115
|
+
The grill stops opening cold. Stage 0 now reads what the project already knows
|
|
116
|
+
about the task **before** the first question, checks every answer against it, and
|
|
117
|
+
stage 9 updates the same list at the end — the loop the pipeline was missing.
|
|
118
|
+
|
|
119
|
+
### Added
|
|
120
|
+
- **Stage 0 phase 1: the knowledge harvest** (`references/knowledge-sources.md`).
|
|
121
|
+
Before question one, query what the project already knows about *this* task —
|
|
122
|
+
the code, `CLAUDE.md`/`AGENTS.md`, `CONTEXT.md` + `docs/adr/`, `docs/` and
|
|
123
|
+
`docs/ux/`, previous pipeline briefs and their carry-over ledgers, **the
|
|
124
|
+
knowledge wiki when one is installed**, and **any other repository or hosted doc
|
|
125
|
+
system the project names as its docs**. It is retrieval scoped by the task's own
|
|
126
|
+
nouns, not a read of everything: query, follow one hop, stop when the terms
|
|
127
|
+
return nothing new. Nothing is ever fetched on a guess — a doc repo is in scope
|
|
128
|
+
because the project names it.
|
|
129
|
+
- **The source ledger** — a required `## Knowledge sources` section in the brief
|
|
130
|
+
(source, what it says about this task, freshness, authority, "stale after this
|
|
131
|
+
run?"). `none found` is a valid, useful row: it tells the next run the search
|
|
132
|
+
happened and came back empty. Silence doesn't.
|
|
133
|
+
- **Answers are validated against the harvest** (`grill.md` → *Domain awareness*).
|
|
134
|
+
The cheap win is not re-asking what an ADR already answers. The one that matters:
|
|
135
|
+
**an answer nobody can check is a recollection** — people answer from memory
|
|
136
|
+
about systems they wrote a year ago, and a false premise adopted at stage 0 makes
|
|
137
|
+
every later gate pass honestly on it. So the grill quotes the source instead:
|
|
138
|
+
*"the March ADR says X, you just described Y — has it changed?"* The operator
|
|
139
|
+
**outranks every document, but only out loud** — an override quoted against its
|
|
140
|
+
source is a recorded decision, an unquoted one is an undetected divergence.
|
|
141
|
+
Precedence when sources disagree: **code > host docs/ADRs > wiki > memory.**
|
|
142
|
+
- **obsidian-wiki is the recommended knowledge base**
|
|
143
|
+
(https://github.com/ar9av/obsidian-wiki — Karpathy's LLM-wiki pattern), detected
|
|
144
|
+
via `~/.obsidian-wiki/config` or a resolving `wiki-query`/`wiki-update`.
|
|
145
|
+
Installed → queried in the harvest, synced with `wiki-update` at stage 9. Absent
|
|
146
|
+
→ the preflight prints `pip install obsidian-wiki` / `obsidian-wiki setup --vault
|
|
147
|
+
<path>` **once** and the run continues. A recommendation, never a gate; a project
|
|
148
|
+
whose `CLAUDE.md` names a different knowledge base wins.
|
|
149
|
+
- **Stage 9 closes the loop:** the stage-0 ledger *is* its work list. Every source
|
|
150
|
+
the harvest read gets updated if this run changed or disproved it — including the
|
|
151
|
+
docs the grill already proved stale, which is why those conflicts are logged in
|
|
152
|
+
phase 2 instead of only being settled out loud. Docs living in **another
|
|
153
|
+
repository** are outward: propose the edit and get an explicit go, or carry it
|
|
154
|
+
over with the exact change written down. Never a direct push to a repo the task
|
|
155
|
+
didn't name.
|
|
156
|
+
- **Autonomy-sweep row** for doc sources beyond this repo, and whether stage 9 may
|
|
157
|
+
write to them — decided at intake, like every other outward action.
|
|
158
|
+
- **Three validator guards, each with a CI negative self-test:** the brief template
|
|
159
|
+
must keep its `## Knowledge sources` section; the stage-0 gate must require the
|
|
160
|
+
harvest *and* its ledger before the interview; the stage-9 gate must name that
|
|
161
|
+
ledger as its work list. A harvest with nowhere to land degrades silently back
|
|
162
|
+
into asking from memory, which is precisely the failure it exists to stop.
|
|
163
|
+
|
|
3
164
|
## v0.17.1 — 2026-07-28
|
|
4
165
|
|
|
5
166
|
A full-repo consistency audit. v0.16.0 added a third review verdict and a tenth
|