task-pipeline-skill 0.5.0 → 0.9.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 CHANGED
@@ -1,5 +1,129 @@
1
1
  # Changelog
2
2
 
3
+ ## v0.9.0 — 2026-07-23
4
+
5
+ Full structural parity with the sibling `super-ux` per the ssheleg skill canon
6
+ (make-skill): the Cursor channel and a templates dir were the last gaps.
7
+
8
+ - **Cursor channel.** New `cursor/rules/task-pipeline.mdc` — a self-contained,
9
+ agent-requested rule (`alwaysApply: false` + a trigger `description`, no external
10
+ links so it survives being copied into any project) that carries the full
11
+ intake-grill + 9-stage discipline and the super-ux recommendation. Install
12
+ globally via `npx skills add ssheleg/task-pipeline --agent cursor --global`, or
13
+ copy per project into `.cursor/rules/`.
14
+ - **Templates dir.** New `templates/brief.md` — the stage-0 intake-brief skeleton
15
+ this plugin seeds into `docs/superpowers/specs/…-brief.md` (create-if-absent,
16
+ never overwrite), plus `templates/README.md` mapping template → destination →
17
+ stage. Spec/plan and `docs/ux/*` skeletons remain owned by superpowers / super-ux.
18
+ - **Validator + packaging.** The validator now checks every `cursor/rules/*.mdc`
19
+ has `description` + `alwaysApply` frontmatter and that `templates/brief.md`
20
+ exists; `package.json` `files` ships `cursor` and `templates`. All prior gates
21
+ (four-way version sync, config conformance, gate types, release shape, links)
22
+ retained.
23
+ - **Docs.** README gains a Cursor install block and an "Updating everywhere" table
24
+ (one channel per agent — the plugin+plain duplicate caveat spelled out);
25
+ `references/artifacts.md` and stage 0 reference the brief template.
26
+
27
+ ## v0.8.1 — 2026-07-23
28
+
29
+ - Docs consistency: the SKILL.md super-ux intro now lists the full current chain
30
+ (`/ux`, `ux-foundation`, `ux-flows`, `ux-scenarios`, `/ux-lint`) instead of the
31
+ pre-flows subset, matching the stage-3 table and `companion-skills.md`. Wiki
32
+ synced to the current architecture.
33
+
34
+ ## v0.8.0 — 2026-07-23
35
+
36
+ Project-configurable release automation, super-ux embedding refreshed to its
37
+ current chain, a locked artifact structure, a companion-skills preflight, and a
38
+ full contradiction sweep.
39
+
40
+ - **Release automation — project-configurable & individually toggleable.** New
41
+ optional `release` block in `pipeline.schema.json` (master `enabled` toggle,
42
+ `trigger`, project-defined `steps`, `verify` smoke-checks) with the repo's own
43
+ config in `pipeline.example.json`. Reference implementation
44
+ `.github/workflows/release.yml` is **off unless armed** per repo via the
45
+ `RELEASE_ENABLED` variable; when on it validates the tag ↔ manifest version,
46
+ cuts a GitHub release from the CHANGELOG, and smoke-tests `npx` from a clean
47
+ checkout — closing the previously-manual post-deploy gap. Validator shape-checks
48
+ the block and enforces that `enabled:true` ships the workflow.
49
+ - **super-ux embedding updated to super-ux's current chain.** The stage-3 UX
50
+ track now walks `/ux` → `ux-foundation` (WHY) → `ux-flows` (flows + `screens.md`,
51
+ Figma frames) → `ux-scenarios` (WHAT) → **`/ux-lint`** (`docs/ux/lint.py`, must
52
+ pass), reflecting super-ux ≥0.17 (flows/screens layers, linter, Figma). The
53
+ linter is wired into stage 7 (lint) and stage 9 (same-change), and stage-4 DoD
54
+ now carries `SCR-` screens alongside scenario IDs.
55
+ - **Entry-from-super-ux short-circuit.** When launched *from* super-ux (its `/ux`
56
+ hand-off, UX chain already built), stage 0 detects the existing validated
57
+ chain/plan and **skips the grill + UX rebuild** — it verifies (`/ux-lint`
58
+ green), confirms scope in one line, and resumes at the first stage with real
59
+ work. super-ux skills are treated as idempotent (reuse, never rebuild).
60
+ - **Companion-skills preflight.** New `references/companion-skills.md`: a matrix
61
+ of what powers each stage (superpowers, super-ux, grill-me, context7,
62
+ wiki-update) with install lines and a preflight recommendation block emitted
63
+ before stage 0, so the operator can arm the full flow up front. super-ux install
64
+ lines are surfaced the moment a UI task is detected.
65
+ - **Locked artifact structure.** New `references/artifacts.md` fixes the canonical
66
+ `docs/superpowers/{specs,plans}` + `docs/ux/*` layout, the stage→artifact map,
67
+ and this repo's own structure — so every stage writes to the same place.
68
+ - **Contradiction sweep.** Manifest descriptions (marketplace/plugin/package) and
69
+ the "9 stages" wording in README + SKILL.md now account for stage 0; the v0.1.0
70
+ spec/plan carry *historical snapshot* banners; model tiering marks 0–4 Fable;
71
+ `conventions.md` covers the super-ux linter and the release block.
72
+
73
+ ## v0.7.0 — 2026-07-23
74
+
75
+ Front-loaded **intake grill** (stage 0) + super-ux promoted to a recommended,
76
+ auto-detected workflow for any user-facing task.
77
+
78
+ - **New stage 0 — Intake grill (Fable, manual gate).** Before any technical work,
79
+ the pipeline interviews the operator relentlessly — one question per turn, a
80
+ recommended answer with each, exploring the codebase/docs before asking — until
81
+ every decision branch is resolved and locked into a committed **task brief**
82
+ (`docs/superpowers/specs/…-brief.md`). This expands a one-line request into a
83
+ complete input so stages 1→9 run autonomously (only the built-in gates pause).
84
+ Inspired by [Matt Pocock's grill-me](https://github.com/mattpocock/skills);
85
+ uses the `grill-me` / `grilling` skill if it resolves, else a built-in grill
86
+ loop (no hard dependency). The 5 grill rules + stopping condition are embedded
87
+ in `references/stages.md`.
88
+ - **super-ux recommended for ANY user-facing task.** The stage-0 grill detects a
89
+ UI surface (web/mobile/CLI/TUI) early and surfaces super-ux immediately: **use
90
+ it if installed**, otherwise print the install line on the spot
91
+ (`/plugin marketplace add ssheleg/super-ux` → `/plugin install super-ux@super-ux`,
92
+ or `npx skills add ssheleg/super-ux`). The stage-3 UX track (`/ux` →
93
+ `ux-foundation` CJM → `ux-scenarios`) is unchanged; the spec gate still requires
94
+ it for UI tasks.
95
+ - **Docs synced:** SKILL.md gains the intake overview, a strengthened super-ux
96
+ block (recommended / use-if-installed / install-now) and an optional grill-me
97
+ note; stages table + `pipeline.example.json` gain stage 0; model tiering marks
98
+ 0–4 as Fable; the `/task-pipeline` command and README (EN + RU) describe the
99
+ grill-first flow.
100
+
101
+ ## v0.6.0 — 2026-07-23
102
+
103
+ Typed gates + generic pipeline contract (merged the good ideas from the `os`
104
+ branch onto main, **keeping** the v0.5.0 UX track, the npm installer, and CI).
105
+
106
+ - **Typed gates:** every gate is now tagged `auto` (the orchestrator verifies the
107
+ check itself, pass/fail) or `manual` (wait for the operator's explicit go).
108
+ SKILL.md gained a **Type** column; `stages.md` tags each gate; SKILL.md's
109
+ *How to run* spells out honoring the type (an auto gate never substitutes for a
110
+ required manual approval). Default assignment: 2/3/7 manual, the rest auto.
111
+ - **Generic config contract:** new **`pipeline.schema.json`** (universal contract —
112
+ ordered `stages[]`, each with `skills[]` + `gate{type,check}`; no fixed stage
113
+ count, no baked-in skills) and **`pipeline.example.json`** (this plugin's own
114
+ 9-stage flow as config, UX track included). New *Bring your own skills* section:
115
+ a host project copies the example to `pipeline.json` and rewrites it with its
116
+ own stages/agents/gate-types.
117
+ - **Validator:** checks the schema is well-formed and the example conforms — a
118
+ dependency-free shape check (states unique, `skills[]` non-empty, `gate.type` in
119
+ {auto,manual}, `gate.check` present) plus a full `jsonschema` pass when the
120
+ library is available. All prior checks (four-way version sync, command
121
+ frontmatter, relative links, npm bin) retained.
122
+ - **Retained from main (not regressed by the merge):** the super-ux UX track
123
+ (stage-2 UI detection, stage-3 `/ux`→`ux-foundation` CJM→`ux-scenarios`,
124
+ scenario IDs in stage-4 DoD), `bin/task-pipeline.js` + `package.json`, and the
125
+ CI workflow with its negative self-test.
126
+
3
127
  ## v0.5.0 — 2026-07-20
4
128
 
5
129
  UX track: scenario-first design for user-facing tasks, built on
package/README.md CHANGED
@@ -1,37 +1,63 @@
1
1
  # task-pipeline
2
2
 
3
3
  Full-cycle task delivery pipeline orchestrator for **Claude Code**. One skill that
4
- runs any substantial task through **9 gated stages** — built on the
5
- [superpowers](https://github.com/obra/superpowers) skills.
4
+ runs any substantial task through an up-front **intake grill** + **9 gated stages** —
5
+ built on the [superpowers](https://github.com/obra/superpowers) skills.
6
6
 
7
7
  ## What it does
8
8
 
9
- `docs study → brainstorm → spec → plan → subagent build → tests → lint/deploy →
10
- post-deploy log check → docs/wiki sync`
11
-
12
- Each stage gates the next; each names the model to use.
13
-
14
- | # | Stage | Model | Gate |
15
- |---|---|---|---|
16
- | 1 | Docs study | Fable | contracts grounded on current docs |
17
- | 2 | Brainstorm | Fable | design approved; UI verdict recorded |
18
- | 3 | Spec | Fable | committed + reviewed; UI: scenarios + CJM traced |
19
- | 4 | Plan | Fable | parallel-ready, DoD per task |
20
- | 5 | Dev | Opus | tasks DONE, TDD green per task |
21
- | 6 | Tests | Opus | full suite green, new code covered |
22
- | 7 | Lint + deploy | host | lint clean + suite green before deploy |
23
- | 8 | Post-deploy | host | clean boot / honest degradation |
24
- | 9 | Docs + wiki | host | docs + wiki synced |
25
-
26
- ## UX track (user-facing tasks)
27
-
28
- When a task touches any user-facing surface (web / mobile / CLI / TUI), the spec
29
- stage runs the [super-ux](https://github.com/ssheleg/super-ux) skills **before any
30
- plan is written**: `/ux` (setup check) → `ux-foundation` (personas, JTBD,
31
- **customer journey maps**, user stories)`ux-scenarios` (usage scenarios
32
- validated against the base, ux-contract v2). The spec then embeds the UX layer —
33
- scenario IDs, CJM stages served, applicable UX patterns — and the plan's
34
- UI tasks carry scenario IDs in their DoD. Scenarios come before interface.
9
+ `intake grill → docs study → brainstorm → spec → plan → subagent build → tests →
10
+ lint/deploy → post-deploy log check → docs/wiki sync`
11
+
12
+ It **grills you first**: a one-line task ("make me feature X") is expanded, one
13
+ question at a time, into a locked brief — so the remaining stages run to the end
14
+ without mid-flight questions. Each stage gates the next; each names the model to
15
+ use. Every gate is typed — **auto** (the orchestrator verifies it, pass/fail) or
16
+ **manual** (waits for your go).
17
+
18
+ | # | Stage | Model | Gate | Type |
19
+ |---|---|---|---|---|
20
+ | 0 | Intake grill | Fable | shared understanding reached; brief locked | manual |
21
+ | 1 | Docs study | Fable | contracts grounded on current docs | auto |
22
+ | 2 | Brainstorm | Fable | design approved; UI verdict recorded | manual |
23
+ | 3 | Spec | Fable | committed + reviewed; UI: scenarios + CJM traced | manual |
24
+ | 4 | Plan | Fable | parallel-ready, DoD per task | auto |
25
+ | 5 | Dev | Opus | tasks DONE, TDD green per task | auto |
26
+ | 6 | Tests | Opus | full suite green, new code covered | auto |
27
+ | 7 | Lint + deploy | host | lint clean + suite green before deploy | manual |
28
+ | 8 | Post-deploy | host | clean boot / honest degradation | auto |
29
+ | 9 | Docs + wiki | host | docs + wiki synced | auto |
30
+
31
+ These stages (0 intake + 19) are the plugin's **example** flow. It's a machine-readable config
32
+ ([`pipeline.example.json`](plugins/task-pipeline/skills/task-pipeline/pipeline.example.json))
33
+ against a universal contract
34
+ ([`pipeline.schema.json`](plugins/task-pipeline/skills/task-pipeline/pipeline.schema.json)):
35
+ a host project copies the example to `pipeline.json` and rewrites it with its own
36
+ stages (any count), its own `skills[]`, and its own `auto`/`manual` gate types —
37
+ "bring your own skills". The framework bakes in no fixed stages.
38
+
39
+ ## Intake grill (stage 0)
40
+
41
+ Inspired by [Matt Pocock's grill-me](https://github.com/mattpocock/skills). Before
42
+ any technical work, task-pipeline interviews you relentlessly — one question per
43
+ turn, each with a recommended answer, exploring the codebase before asking — until
44
+ every decision branch is resolved and locked into a **task brief**. That front-loads
45
+ all the human input so stages 1→9 run autonomously (only the built-in gates pause).
46
+ Uses the `grill-me` / `grilling` skill if installed; otherwise runs a built-in grill
47
+ loop (no hard dependency).
48
+
49
+ ## UX track (user-facing tasks) — super-ux recommended
50
+
51
+ The moment a task touches any user-facing surface (web / mobile / CLI / TUI — a
52
+ screen, command, or visible behavior), [super-ux](https://github.com/ssheleg/super-ux)
53
+ is the **recommended** workflow, detected early in the stage-0 grill. If it's
54
+ installed, task-pipeline uses it; if not, it gives you the install line on the spot.
55
+ The spec stage runs it **before any plan is written**: `/ux` (setup check) →
56
+ `ux-foundation` (personas, JTBD, **customer journey maps**, user stories) →
57
+ `ux-scenarios` (usage scenarios validated against the base, ux-contract v2). The
58
+ spec then embeds the UX layer — scenario IDs, CJM stages served, applicable UX
59
+ patterns — and the plan's UI tasks carry scenario IDs in their DoD. Scenarios come
60
+ before interface.
35
61
 
36
62
  ## Prerequisites
37
63
 
@@ -71,6 +97,15 @@ npx task-pipeline-skill # from the npm registry
71
97
  on npm; installs the same skill + `/task-pipeline` command into `~/.claude`,
72
98
  idempotent, `--force` to overwrite)
73
99
 
100
+ **Cursor:**
101
+ ```
102
+ npx skills add ssheleg/task-pipeline --agent cursor --global # global, or…
103
+ ```
104
+ …or per project, copy `cursor/rules/task-pipeline.mdc` into the repo's
105
+ `.cursor/rules/`. Cursor has no global rules directory — use the skills CLI for a
106
+ global install, the `.mdc` for per-project, or paste it into Cursor Settings →
107
+ Rules. The rule is self-contained (no external links), so it works copied anywhere.
108
+
74
109
  **Plain skill:**
75
110
  ```
76
111
  git clone https://github.com/ssheleg/task-pipeline
@@ -80,6 +115,19 @@ cd task-pipeline && ./install.sh
80
115
  command into `~/.claude/commands/`; idempotent — rerun skips existing installs,
81
116
  `./install.sh --force` overwrites)
82
117
 
118
+ ## Updating everywhere
119
+
120
+ Pick **one** channel per agent (running the plugin and the plain/skills-CLI copy
121
+ on the same Claude Code install yields a duplicate skill).
122
+
123
+ | Agent / channel | Update |
124
+ |---|---|
125
+ | Claude Code (plugin) | `claude plugin marketplace update task-pipeline` → `claude plugin update task-pipeline@task-pipeline` → restart |
126
+ | Any agent (skills CLI) | `npx skills add ssheleg/task-pipeline --agent <name> --global` (re-run overwrites); `--agent '*'` for all |
127
+ | Cursor | skills CLI (above) with `--agent cursor`, or re-copy the `.mdc` per project |
128
+ | npm | `npx task-pipeline-skill@latest` / `npx github:ssheleg/task-pipeline` (ephemeral — always latest) |
129
+ | Plain skill | `git pull && ./install.sh --force` |
130
+
83
131
  ## Use
84
132
 
85
133
  Say *"run this through the pipeline"* / *"полный цикл"* / *"прогони по конвейеру"*,
@@ -87,31 +135,62 @@ or `/task-pipeline`. The skill creates a per-stage TaskList and walks the gates.
87
135
 
88
136
  ## Model tiering
89
137
 
90
- Stages 1–4 → Fable, stages 5–6 → Opus, 7–9 → inherit. **Reminders only** — a skill
138
+ Stages 0–4 → Fable, stages 5–6 → Opus, 7–9 → inherit. **Reminders only** — a skill
91
139
  can't switch the main-loop model; `/model` is the operator's. Stage-5 subagents are
92
140
  pinned to Opus automatically.
93
141
 
142
+ ## Release automation (project-configurable, toggleable)
143
+
144
+ A pipeline config may declare an optional `release` block (see
145
+ [`pipeline.schema.json`](plugins/task-pipeline/skills/task-pipeline/pipeline.schema.json)):
146
+ a master `enabled` toggle, a `trigger`, project-defined `steps`, and `verify`
147
+ smoke-checks. It's **off unless a project turns it on**, and every project
148
+ configures its own. This repo's own instance is
149
+ [`.github/workflows/release.yml`](.github/workflows/release.yml) — armed per repo
150
+ by the `RELEASE_ENABLED` variable (unset = off), it validates the tag against the
151
+ manifests, cuts a GitHub release from the CHANGELOG, and smoke-tests `npx` from a
152
+ clean checkout. Copy and adapt it per project; nothing is hardcoded.
153
+
154
+ ## Companion skills
155
+
156
+ `references/companion-skills.md` lists what powers each stage and how to install
157
+ it: **superpowers** (required), **super-ux** (required for user-facing tasks —
158
+ install line surfaced on the spot), **grill-me** (optional, enhances the stage-0
159
+ grill), **context7** (docs stage), **wiki-update** (stage 9). A preflight prints
160
+ which are ready and which to install so you can arm the full flow before work.
161
+
94
162
  ## Portability
95
163
 
96
164
  Stages 6–9 read the host project's `CLAUDE.md` conventions (tests / lint / deploy /
97
- docs / wiki) with detection fallbacks, so the skill works in any repo.
165
+ docs / wiki) with detection fallbacks, so the skill works in any repo. The
166
+ canonical artifact layout each stage writes to is fixed in
167
+ [`references/artifacts.md`](plugins/task-pipeline/skills/task-pipeline/references/artifacts.md).
98
168
 
99
169
  ## По-русски
100
170
 
101
171
  **task-pipeline** — оркестратор полного цикла доставки задачи для Claude Code:
102
- один скилл проводит любую существенную задачу через **9 гейтованных стадий**
103
- (изучение доков → брейншторм → спека → план → сборка сабагентами → тесты →
104
- линт/деплой → пост-деплой проверка логов → синк доков/вики), построенных на
105
- скиллах [superpowers](https://github.com/obra/superpowers).
106
-
172
+ один скилл проводит любую существенную задачу через **интейк-грил + 9 гейтованных
173
+ стадий** (изучение доков → брейншторм → спека → план → сборка сабагентами →
174
+ тесты → линт/деплой → пост-деплой проверка логов → синк доков/вики), построенных
175
+ на скиллах [superpowers](https://github.com/obra/superpowers).
176
+
177
+ - **Грил на входе (стадия 0):** одна строка задачи («сделай фичу X») недостаточна
178
+ для автономной работы. Пайплайн сначала «допрашивает» оператора — по одному
179
+ вопросу за ход, с рекомендованным ответом, изучив код до вопроса — пока все
180
+ ветки решений не закрыты и не зафиксированы в брифе. Это выносит весь ввод
181
+ человека вперёд, дальше стадии 1→9 идут автономно. Идея взята из
182
+ [grill-me Мэтта Покока](https://github.com/mattpocock/skills); использует скилл
183
+ `grill-me`/`grilling` если установлен, иначе — встроенный грил-цикл.
107
184
  - Ни одна стадия не стартует, пока не пройден гейт предыдущей; деплой требует
108
185
  зелёного полного прогона тестов и явного «go» оператора.
109
- - **UX-трек:** для user-facing задач стадия спеки сначала гоняет скиллы
110
- [super-ux](https://github.com/ssheleg/super-ux) (`/ux` → `ux-foundation`:
111
- персоны, JTBD, CJM `ux-scenarios`: сценарии использования по контракту
112
- ux-contract v2)до написания плана; спека включает ID сценариев, стадии
113
- CJM и применённые UX-паттерны. Сценарии до интерфейса.
114
- - Каждая стадия напоминает, какую модель включить (`/model`): 1–4 Fable,
186
+ - **UX-трек (super-ux рекомендуется):** как только задача трогает интерфейс
187
+ (web/mobile/CLI/TUI), [super-ux](https://github.com/ssheleg/super-ux)
188
+ рекомендуемый воркфлоу, детектится ещё на гриле; если установлен — используется,
189
+ если нетсразу даётся строка установки. Стадия спеки гоняет `/ux` →
190
+ `ux-foundation` (персоны, JTBD, CJM) `ux-scenarios` (сценарии по ux-contract
191
+ v2) до написания плана; спека включает ID сценариев, стадии CJM и UX-паттерны.
192
+ Сценарии — до интерфейса.
193
+ - Каждая стадия напоминает, какую модель включить (`/model`): 0–4 — Fable,
115
194
  5–6 — Opus, 7–9 — наследуется. Это только напоминание — модель переключает
116
195
  оператор.
117
196
  - Стадии 6–9 читают конвенции хост-проекта из `CLAUDE.md` (тесты / линт /
@@ -0,0 +1,56 @@
1
+ ---
2
+ description: "task-pipeline: run a substantial task through a disciplined, gated delivery cycle — an intake grill that expands the request, then docs→brainstorm→spec→plan→build→tests→lint/deploy→post-deploy→docs. Apply when the user asks to run a task through the pipeline, the full cycle / полный цикл / прогони по конвейеру, or starts any substantial feature/fix/build."
3
+ alwaysApply: false
4
+ ---
5
+
6
+ # task-pipeline — gated delivery cycle (Cursor)
7
+
8
+ Self-contained rule (Cursor copies this file into projects — no external links).
9
+ Run a substantial task through an up-front **intake grill + 9 gated stages**. No
10
+ stage advances until its **gate** passes. Each gate is `auto` (verify it yourself,
11
+ pass/fail) or `manual` (wait for the user's explicit go).
12
+
13
+ ## Stage 0 — intake grill (do this FIRST)
14
+
15
+ A one-line task ("build feature X") is not enough to finish autonomously. Grill the
16
+ user up front, then run the rest without mid-flight questions:
17
+ 1. One question per turn — never bundle.
18
+ 2. Give a recommended answer with every question (+ one-line rationale).
19
+ 3. Explore the codebase before asking — if a search/read answers it, do that.
20
+ 4. Walk the decision tree depth-first; ask prerequisite decisions first.
21
+ 5. Reconcile contradictions; chase dodges ("decide later" → "latest you can decide
22
+ and still ship?").
23
+ Stop when shared understanding is reached (every branch answered or explicitly
24
+ deferred) and lock the answers into a short brief the user confirms. Only then start.
25
+
26
+ ## Stages 1→9
27
+
28
+ 1. **Docs study** (auto) — ground every external lib/API on current docs, not recall.
29
+ 2. **Brainstorm** (manual) — 2–3 approaches + a recommendation; design approved.
30
+ Record whether the task touches a user-facing surface (UI verdict).
31
+ 3. **Spec** (manual) — write and commit the design; lock shared contracts. For UI
32
+ tasks, run the UX chain FIRST (see super-ux below) and embed it.
33
+ 4. **Plan** (auto) — zero-context tasks, exact paths, TDD steps, DoD each,
34
+ dependency graph + parallel groups, non-overlapping file ownership.
35
+ 5. **Dev** (auto) — isolate (worktree), TDD per task (failing test → minimal impl →
36
+ green → commit); two-stage review (spec compliance, then code quality).
37
+ 6. **Tests** (auto) — full suite green (not just new tests); new/changed code
38
+ covered; no skip/xfail hiding red.
39
+ 7. **Lint + deploy** (manual) — lint clean AND suite green before deploy; deploy is
40
+ outward → explicit user go.
41
+ 8. **Post-deploy** (auto) — tail logs / health-check; clean boot or an honest
42
+ degradation report (never silent success).
43
+ 9. **Docs** (auto) — update module docs/runbooks in the SAME change.
44
+
45
+ Cross-cutting: track tasks, conventional commits, honest degradation (never claim a
46
+ failed/skipped step succeeded), and get explicit go before any outward/irreversible
47
+ action (deploy, publish, repo create).
48
+
49
+ ## super-ux for user-facing tasks (recommended)
50
+
51
+ If the task touches any UI (web/mobile/CLI/TUI), the WHY→UI→scenario chain comes
52
+ BEFORE interface code. If super-ux is available, use it: foundation (personas,
53
+ JTBD, customer journey maps, user stories) → flows + screens → scenarios (the
54
+ source of truth) → run its linter. Otherwise still design that chain, get it
55
+ approved, and trace every user-facing requirement to a scenario before building.
56
+ Install (Cursor/Claude/others): `npx skills add ssheleg/super-ux`.
package/package.json CHANGED
@@ -1,13 +1,15 @@
1
1
  {
2
2
  "name": "task-pipeline-skill",
3
- "version": "0.5.0",
4
- "description": "Full-cycle task delivery pipeline orchestrator skill for Claude Code — 9 gated stages (docs, brainstorm, spec, plan, build, tests, deploy, post-deploy, docs/wiki) built on the superpowers skills. This package is the installer CLI.",
3
+ "version": "0.9.0",
4
+ "description": "Full-cycle task delivery pipeline orchestrator skill for Claude Code — an intake grill + 9 gated stages (docs, brainstorm, spec, plan, build, tests, deploy, post-deploy, docs/wiki) built on the superpowers skills, with a super-ux UX track for user-facing tasks and toggleable release automation. This package is the installer CLI.",
5
5
  "bin": {
6
6
  "task-pipeline": "bin/task-pipeline.js"
7
7
  },
8
8
  "files": [
9
9
  "bin",
10
10
  "plugins",
11
+ "cursor",
12
+ "templates",
11
13
  "README.md",
12
14
  "LICENSE",
13
15
  "CHANGELOG.md"
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "task-pipeline",
3
- "description": "Thin orchestrator that runs a task through the full delivery pipeline: docs study, brainstorm, spec, plan, subagent build, test suite, lint/deploy, post-deploy log check, docs/wiki sync. Built on the superpowers skills; per-stage model reminders; generic-portable.",
4
- "version": "0.5.0",
3
+ "description": "Thin orchestrator: an intake grill expands the task, then docs study, brainstorm, spec, plan, subagent build, tests, lint/deploy, post-deploy log check, docs/wiki sync typed auto/manual gates, per-stage model reminders, a super-ux UX track for user-facing tasks, and toggleable project-configurable release automation. Built on the superpowers skills; generic-portable.",
4
+ "version": "0.9.0",
5
5
  "author": { "name": "ssheleg" },
6
6
  "homepage": "https://github.com/ssheleg/task-pipeline",
7
7
  "repository": "https://github.com/ssheleg/task-pipeline",
@@ -1,17 +1,21 @@
1
1
  ---
2
- description: Run a task through the full 9-stage task-pipeline (docs → brainstorm → spec → plan → build → tests → deploy → post-deploy → docs/wiki).
2
+ description: Run a task through task-pipeline — an intake grill that expands the request, then docs → brainstorm → spec → plan → build → tests → deploy → post-deploy → docs/wiki.
3
3
  argument-hint: <one-line task description>
4
4
  ---
5
- Use the `task-pipeline` skill to run the task below through all **nine gated
6
- stages** docs study → brainstorm → spec → plan → subagent build → tests →
7
- lint/deploy → post-deploy → docs/wiki. Honor every stage gate (never advance a
8
- red gate) and emit the per-stage model reminder when the recommended model
9
- differs from the current one.
5
+ Use the `task-pipeline` skill to run the task below through all gated stages —
6
+ **stage 0 intake grill** → docs study → brainstorm → spec → plan → subagent
7
+ build → tests → lint/deploy → post-deploy → docs/wiki. Start with the **intake
8
+ grill**: interview the operator one question at a time (with a recommended answer
9
+ each, exploring the codebase before asking) until every decision branch is
10
+ resolved and the brief is locked — so the rest runs autonomously. For any
11
+ user-facing task, recommend/use **super-ux**. Honor every stage gate by its type
12
+ (`auto` = verify yourself; `manual` = wait for explicit go) and emit the
13
+ per-stage model reminder when the recommended model differs from the current one.
10
14
 
11
15
  Task: $ARGUMENTS
12
16
 
13
17
  Idempotent entry — inspect state first, never restart blindly:
14
18
  - If a pipeline TaskList from a previous run already exists for this task,
15
19
  **resume** from the first incomplete stage instead of starting over.
16
- - Otherwise, if no task is given above, ask the operator for the task in one
17
- line before starting stage 1.
20
+ - Otherwise, begin at stage 0 (intake grill). If no task is given above, the
21
+ grill's first question asks the operator for the task in one line.
@@ -1,14 +1,33 @@
1
1
  ---
2
2
  name: task-pipeline
3
- description: "Orchestrates a task through the full end-to-end delivery pipeline — docs study, brainstorm, spec, plan, subagent-driven build, test suite, lint/deploy, post-deploy log check, and docs/wiki sync — as nine gated stages built on the superpowers skills. Use when the user wants to run a task through the pipeline, asks for the full cycle / полный цикл / прогони по конвейеру, invokes /task-pipeline, or starts any substantial feature, fix, or build that should follow the disciplined cycle rather than ad-hoc coding. Reminds which model to switch to per stage; reads host-project conventions for deploy/docs/wiki so it stays project-agnostic."
3
+ description: "Orchestrates a task through the full end-to-end delivery pipeline — an up-front intake grill that expands the request into a complete brief, then docs study, brainstorm, spec, plan, subagent-driven build, test suite, lint/deploy, post-deploy log check, and docs/wiki sync — as gated stages built on the superpowers skills. Use when the user wants to run a task through the pipeline, asks for the full cycle / полный цикл / прогони по конвейеру, invokes /task-pipeline, or starts any substantial feature, fix, or build that should follow the disciplined cycle rather than ad-hoc coding. Grills the operator first so the rest runs autonomously; recommends super-ux for any user-facing task; reminds which model to switch to per stage; reads host-project conventions for deploy/docs/wiki so it stays project-agnostic."
4
4
  ---
5
5
 
6
6
  # task-pipeline
7
7
 
8
- Thin orchestrator. Runs a task through **9 gated stages**, each built on an
8
+ Thin orchestrator. Runs a task through **gated stages**, each built on an
9
9
  existing skill. Keeps the main thread disciplined: no stage advances until its
10
10
  gate passes; each stage names the model to use.
11
11
 
12
+ **Grill first, then run autonomously.** A one-line task ("make me feature X") is
13
+ never enough to finish without a human in the loop. Stage 0 **grills the operator
14
+ up front** — a relentless, one-question-at-a-time interview that resolves every
15
+ decision branch — and locks the answers into a brief. That front-loads all the
16
+ human input so stages 1→9 can run to the end with only the built-in gate
17
+ approvals, not mid-flight discovery.
18
+
19
+ **Config contract: [`pipeline.schema.json`](pipeline.schema.json).** A pipeline is
20
+ a machine-readable config — an ordered list of stages, each with `skills[]` (the
21
+ skills/agents that run it) and a `gate {type, check}`. The schema is the universal
22
+ contract; it imposes **no** specific stages, skills, or gate assignments.
23
+ [`pipeline.example.json`](pipeline.example.json) is a **copy-and-rewrite example**
24
+ that encodes this plugin's own default flow (stage 0 intake + the 1→9 stages
25
+ tabled below) and an optional, toggleable `release` block. Any project replaces it
26
+ wholesale — any number of stages, run by its own skills/agents, with its own gate
27
+ types (see *Bring your own skills*). Each gate has a **type**: `auto` (the
28
+ orchestrator verifies the `check` itself, pass/fail) or `manual` (wait for an
29
+ explicit operator go); which stages are manual is the operator's call.
30
+
12
31
  ## Prerequisite
13
32
 
14
33
  Requires the **superpowers** skills. Preflight: confirm `superpowers:brainstorming`,
@@ -18,36 +37,71 @@ If missing → tell the operator to install from **https://github.com/obra/super
18
37
  (`/plugin marketplace add obra/superpowers` → `/plugin install superpowers@superpowers`)
19
38
  and stop.
20
39
 
21
- For **user-facing tasks** (web/mobile/CLI/TUI) the spec stage additionally requires
22
- the **super-ux** skills (`ux-foundation`, `ux-scenarios`, `/ux`)
23
- **https://github.com/ssheleg/super-ux**. Check only when stage 2 flags UI; if
24
- missing then → tell the operator to install and stop.
40
+ **super-ux — recommended for ANY user-facing task.** The moment a task implies a
41
+ user interface (web / mobile / CLI / TUI a screen, a command, a visible
42
+ behavior; the stage-0 grill detects this early), super-ux is the recommended
43
+ workflow for the WHY→UI→scenario chain (`/ux`, `ux-foundation`, `ux-flows`,
44
+ `ux-scenarios`, `/ux-lint`).
45
+ - **Already installed?** (does `/ux` or `super-ux:ux-foundation` resolve) → **use
46
+ it**: `/ux` at intake, then the stage-3 UX track walks its traced chain —
47
+ `ux-foundation` (personas, JTBD, CJM, stories) → `ux-flows` (user flows +
48
+ `screens.md`, Figma frames when on) → `ux-scenarios` (traced scenarios) → the
49
+ `/ux-lint` linter (`docs/ux/lint.py`) must pass. Wire that linter into the host
50
+ CI/pre-commit so UX drift can't merge.
51
+ - **Not installed?** → recommend it and give the install line right away:
52
+ ```
53
+ /plugin marketplace add ssheleg/super-ux
54
+ /plugin install super-ux@super-ux
55
+ ```
56
+ (or `npx skills add ssheleg/super-ux`). For UI tasks the spec gate **requires**
57
+ it — install before stage 3, otherwise stop and ask the operator to install.
58
+
59
+ **grill-me (optional, enhances stage 0).** If the `grill-me` / `grilling` skill
60
+ resolves, stage 0 uses it; otherwise stage 0 runs its own built-in grill loop —
61
+ no hard dependency. Install (optional): `npx skills add mattpocock/skills` or the
62
+ engineering-advanced-skills marketplace.
25
63
 
26
64
  ## How to run
27
65
 
28
- 1. Restate the task in one line. Create a **TaskList: one task per stage** (survives
29
- context loss; lets you resume).
30
- 2. Walk stages 1→9. Before each: **model check** (see `references/model-tiering.md`)
66
+ 1. Restate the task in one line. Create a **TaskList: one task per stage, starting
67
+ with stage 0** (survives context loss; lets you resume). Then run the
68
+ **companion preflight** (`references/companion-skills.md`): detect which
69
+ companion skills resolve and emit the recommendation block — install the
70
+ required/recommended ones (superpowers always; super-ux for UI tasks) before
71
+ proceeding.
72
+ 2. **Run stage 0 (Intake grill) first** — grill the operator until shared
73
+ understanding is reached and the brief is locked (`references/stages.md` → 0).
74
+ Do not touch stage 1 before the brief is confirmed. **Entered from super-ux?**
75
+ (a validated `docs/ux/` chain and/or a `docs/ux/plans/…` fix plan already
76
+ exists — super-ux's `/ux` hands off here) → don't re-grill or rebuild the UX
77
+ chain: just check it's OK (`/ux-lint` green), confirm scope in one line, and
78
+ skip ahead to the first stage with real work (see `references/stages.md` → 0).
79
+ 3. Walk stages 1→9. Before each: **model check** (see `references/model-tiering.md`) —
31
80
  if recommended ≠ current, emit the reminder block and wait for the operator to `/model`.
32
- 3. Do **not** advance until the stage **gate** passes (`references/stages.md`).
33
- 4. Cross-cutting, every stage: task tracker + conventional commits per host
81
+ 4. Do **not** advance until the stage **gate** passes (`references/stages.md`).
82
+ Honor the gate **type**: for `auto`, verify the gate's `check` yourself and
83
+ stop/return on fail; for `manual`, present the result and **wait for the
84
+ operator's explicit "continue"/go** — an auto gate never substitutes for a
85
+ required manual approval.
86
+ 5. Cross-cutting, every stage: task tracker + conventional commits per host
34
87
  conventions; worktree isolation for the build; honest degradation (never claim a
35
88
  failed/skipped step succeeded); outward/irreversible actions (deploy, publish,
36
89
  repo create) need explicit operator go.
37
90
 
38
91
  ## Stages (detail in `references/stages.md`)
39
92
 
40
- | # | Stage | Model | Invoke | Gate |
41
- |---|---|---|---|---|
42
- | 1 | Docs study | Fable | `context7` (resolve-library-id get-library-docs) / `context7-docs` | contracts grounded on fetched docs |
43
- | 2 | Brainstorm | Fable | `superpowers:brainstorming` + **UI detection** | design approved; UI verdict recorded |
44
- | 3 | Spec | Fable | **UI → super-ux first** (`/ux``ux-foundation` CJM `ux-scenarios`), then spec `docs/superpowers/specs/…-design.md` | committed + reviewed; UI: scenarios validated + CJM traced |
45
- | 4 | Plan | Fable | `superpowers:writing-plans` → `docs/superpowers/plans/…md` | parallel-ready, DoD per task |
46
- | 5 | Dev | **Opus** | `superpowers:using-git-worktrees` + `superpowers:subagent-driven-development` (TDD) | tasks DONE, TDD green per task |
47
- | 6 | Tests | **Opus** | host test runner + `superpowers:test-driven-development` | full suite green; new/changed code covered |
48
- | 7 | Lint + deploy | host | host lint deploy per host convention | lint clean + suite green before deploy; deploy needs go |
49
- | 8 | Post-deploy | host | tail deploy logs / health-check | clean boot or honest degradation report |
50
- | 9 | Docs + wiki | host | host module docs/runbook rules → `wiki-update` | docs synced, wiki synced |
93
+ | # | Stage | Model | Invoke | Gate | Type |
94
+ |---|---|---|---|---|---|
95
+ | 0 | Intake grill | Fable | `grill-me` / `grilling` if present, else built-in grill loop | shared understanding reached; brief locked + confirmed | manual |
96
+ | 1 | Docs study | Fable | `context7` (resolve-library-id get-library-docs) / `context7-docs` | contracts grounded on fetched docs | auto |
97
+ | 2 | Brainstorm | Fable | `superpowers:brainstorming` + **UI detection** | design approved; UI verdict recorded | manual |
98
+ | 3 | Spec | Fable | **UI → super-ux chain first** (`/ux` → `ux-foundation` CJM → `ux-flows` screens → `ux-scenarios` → `/ux-lint`), then spec `docs/superpowers/specs/…-design.md` | committed + reviewed; UI: chain validated, linter green, scenarios/`SCR-` traced | manual |
99
+ | 4 | Plan | Fable | `superpowers:writing-plans` `docs/superpowers/plans/…md` | parallel-ready, DoD per task | auto |
100
+ | 5 | Dev | **Opus** | `superpowers:using-git-worktrees` + `superpowers:subagent-driven-development` (TDD) | tasks DONE, TDD green per task | auto |
101
+ | 6 | Tests | **Opus** | host test runner + `superpowers:test-driven-development` | full suite green; new/changed code covered | auto |
102
+ | 7 | Lint + deploy | host | host lint → deploy per host convention | lint clean + suite green before deploy; deploy needs go | manual |
103
+ | 8 | Post-deploy | host | tail deploy logs / health-check | clean boot or honest degradation report | auto |
104
+ | 9 | Docs + wiki | host | host module docs/runbook rules → `wiki-update` | docs synced, wiki synced | auto |
51
105
 
52
106
  ## Model reminder (emit at a boundary when recommended ≠ current)
53
107
 
@@ -55,8 +109,23 @@ missing then → tell the operator to install and stop.
55
109
  > Switch: `/model <id>` — then say "continue". *(Reminder only — override if you
56
110
  > don't have that model.)*
57
111
 
112
+ ## Bring your own skills
113
+
114
+ The stages above (stage 0 intake + 1→9) are the **example** flow (grill +
115
+ superpowers + a super-ux UX track for user-facing tasks + host conventions). A
116
+ host project owns its pipeline: copy `pipeline.example.json` → `pipeline.json`,
117
+ then define its **own** stages (any count), point each stage's `skills[]` at the
118
+ skills/agents its environment resolves, set each `gate.type` (`auto`/`manual`) to
119
+ fit its process, and configure/toggle its own `release` block. The framework ships
120
+ no fixed stage count and no opinion on which gates are manual or whether release
121
+ automation is on — `pipeline.schema.json` is the only contract.
122
+
58
123
  ## References
59
124
 
60
- - `references/stages.md` — per-stage detail + exact gate criteria
125
+ - `pipeline.schema.json` — the universal pipeline config contract (stages + release)
126
+ - `pipeline.example.json` — this plugin's default flow (stage 0 + 1→9) + release, as config
127
+ - `references/stages.md` — per-stage detail + exact gate criteria + gate types
61
128
  - `references/model-tiering.md` — model map, ids, the `/model` reminder mechanic, override
62
129
  - `references/conventions.md` — how stages 6–9 read the host project's CLAUDE.md
130
+ - `references/companion-skills.md` — companion skills, install lines, preflight recommendation
131
+ - `references/artifacts.md` — the canonical document/artifact layout per stage
@@ -0,0 +1,130 @@
1
+ {
2
+ "$schema": "./pipeline.schema.json",
3
+ "version": 1,
4
+ "_note": "EXAMPLE ONLY — copy this file, rename to pipeline.json in your project, and rewrite it. This particular example encodes the plugin's own default flow (an up-front intake grill + superpowers + a super-ux UX track for user-facing tasks); it is NOT a fixed contract. Your project defines its own stages (any count), each executed by your own skills/agents, with your own gate types. The universal contract is pipeline.schema.json; test/validate.py checks this example against it. gate.type: auto = orchestrator verifies the check itself (pass/fail); manual = wait for an explicit operator go. Which stages are manual vs auto is the operator's decision, not the plugin's.",
5
+ "stages": [
6
+ {
7
+ "id": 0,
8
+ "state": "intake",
9
+ "name": "Intake grill",
10
+ "model": "claude-fable-5",
11
+ "skills": ["grill-me", "grilling"],
12
+ "gate": {
13
+ "type": "manual",
14
+ "check": "grill the operator one question at a time (recommended answer per question; explore codebase/docs before asking) until shared understanding is reached — every decision branch has a recorded answer or explicit deferral, no open contradictions; UI verdict recorded (arms super-ux); decisions locked into a committed task brief the operator confirms before stage 1"
15
+ }
16
+ },
17
+ {
18
+ "id": 1,
19
+ "state": "docs-study",
20
+ "name": "Docs study",
21
+ "model": "claude-fable-5",
22
+ "skills": ["context7", "context7-docs"],
23
+ "gate": {
24
+ "type": "auto",
25
+ "check": "every contract the design will lock is grounded in fetched docs, not recall; unresolvable libraries are flagged in the spec"
26
+ }
27
+ },
28
+ {
29
+ "id": 2,
30
+ "state": "brainstorm",
31
+ "name": "Brainstorm",
32
+ "model": "claude-fable-5",
33
+ "skills": ["superpowers:brainstorming"],
34
+ "gate": {
35
+ "type": "manual",
36
+ "check": "the user approves the design AND the UI verdict is recorded (does the task touch a user-facing surface — web/mobile/CLI/TUI? this arms the stage-3 UX track)"
37
+ }
38
+ },
39
+ {
40
+ "id": 3,
41
+ "state": "spec",
42
+ "name": "Spec",
43
+ "model": "claude-fable-5",
44
+ "skills": ["super-ux:ux-foundation", "super-ux:ux-scenarios", "superpowers:brainstorming"],
45
+ "gate": {
46
+ "type": "manual",
47
+ "check": "spec committed and user-reviewed with all shared contracts locked; for UI tasks additionally: UX track ran FIRST (/ux -> ux-foundation CJM -> ux-scenarios), scenarios validated in docs/ux/scenarios.md, CJM/foundation coverage present, and every user-facing spec requirement traces to a scenario ID — scenarios come BEFORE interface"
48
+ }
49
+ },
50
+ {
51
+ "id": 4,
52
+ "state": "plan",
53
+ "name": "Plan",
54
+ "model": "claude-fable-5",
55
+ "skills": ["superpowers:writing-plans"],
56
+ "gate": {
57
+ "type": "auto",
58
+ "check": "every spec requirement maps to a task; no placeholders; parallel-group tasks share no files; for UI tasks each user-facing task names the scenario ID(s) it implements and its DoD includes satisfying them"
59
+ }
60
+ },
61
+ {
62
+ "id": 5,
63
+ "state": "dev",
64
+ "name": "Dev",
65
+ "model": "claude-opus-4-8",
66
+ "skills": ["superpowers:using-git-worktrees", "superpowers:subagent-driven-development"],
67
+ "gate": {
68
+ "type": "auto",
69
+ "check": "all plan tasks DONE (two-stage review: spec compliance, then code quality); full test suite green"
70
+ }
71
+ },
72
+ {
73
+ "id": 6,
74
+ "state": "tests",
75
+ "name": "Tests",
76
+ "model": "claude-opus-4-8",
77
+ "skills": ["superpowers:test-driven-development"],
78
+ "gate": {
79
+ "type": "auto",
80
+ "check": "full suite green (not just new tests); new/changed code covered; no skip/xfail smuggling a red suite past the gate"
81
+ }
82
+ },
83
+ {
84
+ "id": 7,
85
+ "state": "lint-deploy",
86
+ "name": "Lint + deploy",
87
+ "model": "inherit",
88
+ "skills": ["host:lint", "host:deploy"],
89
+ "gate": {
90
+ "type": "manual",
91
+ "check": "lint clean and full suite green before deploy; deploy is outward and needs explicit operator go"
92
+ }
93
+ },
94
+ {
95
+ "id": 8,
96
+ "state": "post-deploy",
97
+ "name": "Post-deploy",
98
+ "model": "inherit",
99
+ "skills": ["host:health-check"],
100
+ "gate": {
101
+ "type": "auto",
102
+ "check": "clean boot confirmed (no error spike, live subsystems healthy), or an honest degradation report with next steps"
103
+ }
104
+ },
105
+ {
106
+ "id": 9,
107
+ "state": "docs-wiki",
108
+ "name": "Docs + wiki",
109
+ "model": "inherit",
110
+ "skills": ["host:module-docs", "wiki-update"],
111
+ "gate": {
112
+ "type": "auto",
113
+ "check": "docs in sync with code in the same change; wiki synced; dangling links fixed"
114
+ }
115
+ }
116
+ ],
117
+ "release": {
118
+ "enabled": true,
119
+ "trigger": "tag",
120
+ "steps": [
121
+ "create a GitHub release from the matching CHANGELOG section",
122
+ "npm publish (task-pipeline-skill) — human 2FA step, not automated"
123
+ ],
124
+ "verify": [
125
+ "CI green on the tagged commit",
126
+ "npx github:ssheleg/task-pipeline#<tag> from a clean cwd installs the skill + command",
127
+ "after npm publish: npm view task-pipeline-skill version == <tag>"
128
+ ]
129
+ }
130
+ }
@@ -0,0 +1,71 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "https://github.com/ssheleg/task-pipeline/pipeline.schema.json",
4
+ "title": "task-pipeline config",
5
+ "description": "Generic contract for a pipeline config. An ordered list of stages; each stage is run by the host project's own skills/agents and guarded by a typed gate. The framework imposes no specific stages, skills, or gate assignments — those are entirely the host project's config. Copy pipeline.example.json and rewrite it to match your project.",
6
+ "type": "object",
7
+ "required": ["stages"],
8
+ "additionalProperties": true,
9
+ "properties": {
10
+ "version": { "type": "integer", "minimum": 1 },
11
+ "stages": {
12
+ "type": "array",
13
+ "minItems": 1,
14
+ "description": "The pipeline stages, in order. Any number, any names — your project's real stages.",
15
+ "items": { "$ref": "#/definitions/stage" }
16
+ },
17
+ "release": { "$ref": "#/definitions/release" }
18
+ },
19
+ "definitions": {
20
+ "release": {
21
+ "type": "object",
22
+ "additionalProperties": true,
23
+ "description": "Optional release automation, entirely project-defined and INDIVIDUALLY TOGGLEABLE. Omit the whole object, or set enabled:false, to turn release automation off for this project. The framework ships an example workflow (.github/workflows/release.yml) whose job is gated on a repo variable so each project arms it on its own; this block is the declarative counterpart the orchestrator reads.",
24
+ "required": ["enabled"],
25
+ "properties": {
26
+ "enabled": { "type": "boolean", "description": "Master on/off toggle. false (or the object omitted) = no release automation for this project." },
27
+ "trigger": { "enum": ["tag", "manual", "push", "none"], "description": "What kicks off a release (e.g. a pushed vX.Y.Z tag, manual dispatch)." },
28
+ "steps": {
29
+ "type": "array",
30
+ "items": { "type": "string", "minLength": 1 },
31
+ "description": "Ordered release actions, in prose — project-specific (e.g. create a GitHub release, npm publish). Human-only steps (2FA publish) are named as such."
32
+ },
33
+ "verify": {
34
+ "type": "array",
35
+ "items": { "type": "string", "minLength": 1 },
36
+ "description": "Post-release smoke checks that must pass after a release — this is the release's own post-deploy gate (stage 8 applied to shipping the package itself)."
37
+ }
38
+ }
39
+ },
40
+ "stage": {
41
+ "type": "object",
42
+ "required": ["state", "skills", "gate"],
43
+ "additionalProperties": true,
44
+ "properties": {
45
+ "id": { "type": "integer", "description": "Optional ordinal." },
46
+ "state": { "type": "string", "minLength": 1, "description": "Unique stable key for the stage." },
47
+ "name": { "type": "string", "description": "Optional human label." },
48
+ "model": { "type": "string", "description": "Optional recommended model id for the stage." },
49
+ "skills": {
50
+ "type": "array",
51
+ "minItems": 1,
52
+ "description": "The skill(s)/agent(s) that execute this stage. Any names your environment resolves — this is where you plug in your OWN skills.",
53
+ "items": { "type": "string", "minLength": 1 }
54
+ },
55
+ "gate": {
56
+ "type": "object",
57
+ "required": ["type", "check"],
58
+ "additionalProperties": true,
59
+ "description": "Condition that must pass before advancing to the next stage.",
60
+ "properties": {
61
+ "type": {
62
+ "enum": ["auto", "manual"],
63
+ "description": "auto = the orchestrator verifies `check` itself (pass/fail); manual = wait for the operator's explicit go."
64
+ },
65
+ "check": { "type": "string", "minLength": 1, "description": "The gate condition, in prose." }
66
+ }
67
+ }
68
+ }
69
+ }
70
+ }
71
+ }
@@ -0,0 +1,64 @@
1
+ # Artifact structure — the canonical layout
2
+
3
+ Every stage that produces a durable artifact writes it to the **same** place, so
4
+ a resumed or handed-off run always knows where to look. This is the recommended
5
+ structure; a host project may relocate roots via its `CLAUDE.md`, but keep the
6
+ shape.
7
+
8
+ ## In the host project
9
+
10
+ ```
11
+ docs/
12
+ superpowers/
13
+ specs/
14
+ YYYY-MM-DD-<topic>-brief.md # stage 0 — locked intake brief (grill output)
15
+ YYYY-MM-DD-<topic>-design.md # stage 3 — the spec (locks shared contracts)
16
+ plans/
17
+ YYYY-MM-DD-<topic>.md # stage 4 — the implementation plan
18
+ ux/ # super-ux, UI tasks only (see companion-skills.md)
19
+ foundation.md # WHY: personas, JTBD, CJM, stories
20
+ flows.md # HOW: task analysis + user-flow diagrams
21
+ screens.md # UI map: screens + states, wireframes, Figma frames
22
+ scenarios.md # WHAT: scenarios (source of truth for behavior)
23
+ audits/YYYY-MM-DD-<scope>.md # ux-audit reports
24
+ plans/YYYY-MM-DD-<scope>.md # super-ux fix plans (may hand off to this pipeline)
25
+ lint.py, README.md # seeded by super-ux
26
+ ```
27
+
28
+ Naming: date-prefixed `YYYY-MM-DD-<topic>` slugs, one topic per file, kebab-case.
29
+ The three superpowers artifacts share the **same `<topic>` slug** so brief →
30
+ design → plan is traceable at a glance.
31
+
32
+ ## Stage → artifact map
33
+
34
+ | Stage | Writes | Consumed by |
35
+ |---|---|---|
36
+ | 0 Intake | `specs/<topic>-brief.md` (seed from `templates/brief.md`) | stages 2–4 |
37
+ | 3 Spec | `specs/<topic>-design.md` (+ links `docs/ux/*` for UI) | stage 4 |
38
+ | 4 Plan | `plans/<topic>.md` | stage 5 |
39
+ | 3 UX track | `docs/ux/{foundation,flows,screens,scenarios}.md` | stages 4–9 + `/ux-lint` |
40
+ | 8 Post-deploy | log/health notes (in the run, not a committed file) | stage 9 |
41
+ | 9 Docs+wiki | host module docs + wiki pages | — |
42
+
43
+ ## This repo (task-pipeline itself), for reference
44
+
45
+ ```
46
+ .claude-plugin/marketplace.json # marketplace manifest
47
+ plugins/task-pipeline/
48
+ .claude-plugin/plugin.json
49
+ commands/task-pipeline.md # /task-pipeline
50
+ skills/task-pipeline/
51
+ SKILL.md
52
+ pipeline.schema.json # generic pipeline contract
53
+ pipeline.example.json # this plugin's own flow, as config
54
+ references/{stages,model-tiering,conventions,artifacts,companion-skills}.md
55
+ cursor/rules/task-pipeline.mdc # Cursor channel (self-contained rule)
56
+ templates/brief.md # skeleton seeded at stage 0
57
+ bin/task-pipeline.js # npx installer (package task-pipeline-skill)
58
+ package.json
59
+ install.sh # POSIX installer
60
+ test/validate.py # structural validator
61
+ .github/workflows/{validate,release}.yml # CI + toggleable release
62
+ README.md CHANGELOG.md LICENSE
63
+ docs/superpowers/{specs,plans}/ # this repo's own design history
64
+ ```
@@ -0,0 +1,46 @@
1
+ # Companion skills — what powers each stage, how to install, what to run
2
+
3
+ task-pipeline is a thin orchestrator; the actual work is done by companion
4
+ skills. Preflight-detect each one; if a needed skill doesn't resolve, **give the
5
+ operator the install line immediately** and (for required ones) stop until it's
6
+ installed. Never silently degrade a required capability.
7
+
8
+ ## The matrix
9
+
10
+ | Skill / tool | Needed for | Required? | Install |
11
+ |---|---|---|---|
12
+ | **superpowers** (`brainstorming`, `writing-plans`, `subagent-driven-development`, `using-git-worktrees`, `test-driven-development`) | stages 2, 4, 5, 6 | **Required** (always) | `/plugin marketplace add obra/superpowers` → `/plugin install superpowers@superpowers` |
13
+ | **super-ux** (`ux-foundation`, `ux-flows`, `ux-scenarios`, `ux-audit`, `/ux`, `/ux-lint`) | stage 3 UX track | **Required for any user-facing task** | `/plugin marketplace add ssheleg/super-ux` → `/plugin install super-ux@super-ux` (or `npx skills add ssheleg/super-ux`) |
14
+ | **grill-me** / **grilling** | stage 0 intake grill | Optional (built-in grill loop is the fallback) | `npx skills add mattpocock/skills`, or the engineering-advanced-skills marketplace |
15
+ | **context7** (MCP) | stage 1 docs study | Recommended (web-search fallback) | connect the context7 MCP server |
16
+ | **wiki-update** | stage 9 wiki sync | Optional (skip wiki if absent) | user's wiki skill set |
17
+
18
+ ## Preflight recommendation (emit before stage 0)
19
+
20
+ At the very start, detect which of the above resolve and print ONE recommendation
21
+ block so the operator can arm the full flow before work begins. Example:
22
+
23
+ ```
24
+ Pipeline companions:
25
+ ✓ superpowers — ready
26
+ ✗ super-ux — this task looks user-facing; recommended. Install:
27
+ /plugin marketplace add ssheleg/super-ux
28
+ /plugin install super-ux@super-ux
29
+ ✓ context7 — ready
30
+ ✗ grill-me — optional; falling back to the built-in grill loop
31
+ ✓ wiki-update — ready
32
+ Recommend installing the ✗ items marked recommended, then say "continue".
33
+ ```
34
+
35
+ Rules:
36
+ - Only flag **super-ux** as recommended when the task implies a UI (the stage-0
37
+ grill decides this; when unsure, flag it — a false positive costs one install).
38
+ - **superpowers** missing → stop; it's required for the core stages.
39
+ - Optional tools missing → state the fallback, don't block.
40
+ - Re-detect after the operator installs; don't assume.
41
+
42
+ ## Hand-off the other direction
43
+
44
+ super-ux's `/ux` menu can hand off *to* this pipeline (its "execute
45
+ autonomously" action). When entered that way the UX chain already exists — see
46
+ `stages.md` → 0 *Entry-from-super-ux short-circuit*: verify, don't rebuild.
@@ -9,12 +9,21 @@ found, surface it and **ask** rather than guessing.
9
9
  - `CLAUDE.md` usually names the commands. Else detect: `package.json` scripts
10
10
  (`npm test` / `npm run lint`), `pyproject.toml` / `ruff` (`ruff check`), `pytest`,
11
11
  `Makefile` targets, `.golangci.yml`, `cargo test`.
12
+ - **UI projects:** the super-ux linter (`python3 docs/ux/lint.py` / `/ux-lint`) is
13
+ part of lint — run it too; it must pass (no UX drift).
12
14
 
13
- ## Deploy
15
+ ## Deploy / release
14
16
  - `CLAUDE.md` deploy section (e.g. deploy-from-main rule, Heroku auto-deploy on
15
17
  push, `Procfile`). Else detect: `Procfile` / heroku remote, `Dockerfile`,
16
18
  `.github/workflows/*.yml`, Vercel / Netlify config. **Never invent a deploy
17
19
  path** — if none is discoverable, ask.
20
+ - **Release automation is project-configurable and individually toggleable.** If
21
+ the project declares a `release` block (see `pipeline.schema.json`; this repo's
22
+ own is in `pipeline.example.json`) with `enabled: true`, that block's `steps`
23
+ are the deploy, and its `verify` list is the stage-8 post-deploy check. Off (or
24
+ omitted) → no release automation; deploy by the host convention above. This
25
+ repo's reference implementation is `.github/workflows/release.yml`, armed per
26
+ repo via the `RELEASE_ENABLED` variable — copy and adapt it, don't assume it.
18
27
 
19
28
  ## Post-deploy logs
20
29
  - Heroku: `heroku logs -a <app>`. Docker / k8s: `docker logs` / `kubectl logs`.
@@ -5,7 +5,7 @@ lack one, keep your current model; the pipeline still runs.
5
5
 
6
6
  | Stages | Recommended | id |
7
7
  |---|---|---|
8
- | 1–4 (docs, brainstorm, spec, plan) | Fable 5 | `claude-fable-5` |
8
+ | 0–4 (intake grill, docs, brainstorm, spec, plan) | Fable 5 | `claude-fable-5` |
9
9
  | 5–6 (subagent dev, tests) | Opus 4.8 | `claude-opus-4-8` |
10
10
  | 7–9 (lint/deploy, logs, docs) | inherit current | — |
11
11
 
@@ -20,7 +20,8 @@ At each stage boundary compare recommended vs current. If they differ, emit:
20
20
 
21
21
  A skill runs inside the current context; it **cannot change the main-loop model**.
22
22
  Only the operator can, via `/model` (or `/fast`). The stages that most benefit from
23
- Fable (1–4) are interactive anyway, so the operator is present to switch.
23
+ Fable (0–4) are interactive anyway (stage 0 is a live grill), so the operator is
24
+ present to switch.
24
25
 
25
26
  Stage 5 spawns subagents; those **are** pinned to Opus by the orchestrator via the
26
27
  `Agent` / `Workflow` model override — no operator action needed for subagents.
@@ -1,7 +1,58 @@
1
1
  # Stages — detail & gates
2
2
 
3
3
  For each stage: what it does, what to invoke, artifacts, and the **GATE** that
4
- must pass before advancing.
4
+ must pass before advancing. Each gate is tagged with its **type** — `auto` (the
5
+ orchestrator verifies the check itself, pass/fail) or `manual` (wait for the
6
+ operator's explicit go). These stages (0 intake + 1→9) are the plugin's
7
+ **example** flow, encoded in `pipeline.example.json` against the universal contract
8
+ `pipeline.schema.json`; a host project replaces it with its own
9
+ stages/agents/types (see SKILL.md → *Bring your own skills*).
10
+
11
+ ## 0 — Intake grill (Fable)
12
+ - **Entry-from-super-ux short-circuit (check FIRST).** task-pipeline is often
13
+ launched *from* super-ux — its `/ux` action menu offers "execute autonomously
14
+ via the task-pipeline plugin" once the UX chain (and often a
15
+ `docs/ux/plans/…` fix plan) is already built. Before grilling, detect that:
16
+ if `docs/ux/` already holds a validated chain (foundation → flows → screens →
17
+ scenarios) and/or a fresh fix plan, **do not re-run the grill or the stage-3
18
+ UX track from scratch.** Instead: (1) run a quick check — `/ux-lint`
19
+ (`docs/ux/lint.py`) green, chain present, plan (if any) readable; (2) confirm
20
+ the scope with the operator in ONE line; (3) skip to the first stage that
21
+ still has real work (usually stage 4 Plan if a UX fix plan already exists, or
22
+ stage 3 Spec to formalize it). Record what was adopted vs skipped. If the
23
+ check finds drift/gaps, fall back to the normal flow for the missing parts
24
+ only.
25
+ - **What (normal entry):** the operator's one-line task is almost never enough to
26
+ run autonomously. Before anything else, **grill the operator** to expand that
27
+ one line into a complete, unambiguous brief — resolve every decision branch
28
+ up front so stages 1→9 need no further human input beyond the manual gates.
29
+ This is input expansion, not design: turn "make me feature X" into locked
30
+ answers for scope, users, constraints, data, edge cases, done-criteria.
31
+ - **Invoke:** prefer the `grill-me` / `grilling` skill if it resolves; otherwise
32
+ run the built-in grill loop:
33
+ 1. **One question per turn** — never bundle.
34
+ 2. **Give a recommended answer with every question** (+ 1-line rationale);
35
+ "what do you think?" is lazy.
36
+ 3. **Explore the codebase/docs before asking** — if `grep`/`Read`/context7
37
+ answers it, do that instead of spending a turn.
38
+ 4. **Walk the decision tree depth-first**; finish a branch before opening
39
+ another; ask prerequisite decisions first.
40
+ 5. **Reconcile contradictions** immediately; chase dodges ("we'll decide
41
+ later" → "what's the latest you can decide and still ship?").
42
+ - **UI early-detect:** one branch of the grill is always "does this touch a
43
+ user-facing surface (web/mobile/CLI/TUI)?". If yes → surface **super-ux**
44
+ now (use it if installed; otherwise give the install line — see SKILL.md
45
+ *Prerequisites*); this arms the stage-3 UX track.
46
+ - **Artifact:** lock the resolved decisions into a **task brief** committed at
47
+ `docs/superpowers/specs/YYYY-MM-DD-<topic>-brief.md` (scope, users/UI verdict,
48
+ constraints, assumptions, explicitly-deferred items, done-criteria). Seed it from
49
+ the plugin's `templates/brief.md` skeleton — but only when absent, never
50
+ overwrite an existing brief. Stages 2–4 build on this brief.
51
+ - **GATE (manual):** shared understanding reached — every detected branch has a
52
+ recorded answer or an explicit deferral, no open contradictions, and the
53
+ operator confirms the brief. Stop when a re-scan surfaces no new branches
54
+ (don't grill past diminishing returns; reversible calls can be deferred with a
55
+ note). Only then start stage 1.
5
56
 
6
57
  ## 1 — Docs study (Fable)
7
58
  - **What:** ground every external library / API / SDK the task touches on the
@@ -9,8 +60,8 @@ must pass before advancing.
9
60
  - **Invoke:** `context7` MCP (`resolve-library-id` → `get-library-docs`, scope by
10
61
  `topic`) or the `context7-docs` skill. Web-search fallback for libs context7
11
62
  can't resolve.
12
- - **GATE:** every contract the design will lock is grounded in fetched docs, not
13
- recall. Unresolvable libraries are flagged in the spec.
63
+ - **GATE (auto):** every contract the design will lock is grounded in fetched docs,
64
+ not recall. Unresolvable libraries are flagged in the spec.
14
65
 
15
66
  ## 2 — Brainstorm (Fable)
16
67
  - **Invoke:** `superpowers:brainstorming`. One question at a time; 2–3 approaches +
@@ -19,47 +70,63 @@ must pass before advancing.
19
70
  user-facing surface (web, mobile, CLI, TUI — new feature, new screen/command,
20
71
  or a change to user-visible behavior). Record the verdict; it arms the UX
21
72
  track in stage 3.
22
- - **GATE:** the user approves the design **and** the UI verdict is recorded.
73
+ - **GATE (manual):** the user approves the design **and** the UI verdict is recorded.
23
74
 
24
75
  ## 3 — Spec (Fable) — with UX track for user-facing tasks
25
76
  - **UX track (runs FIRST when stage 2 flagged UI; skip entirely otherwise).**
26
- Requires the **super-ux** skills (`/plugin marketplace add ssheleg/super-ux`
27
- `/plugin install super-ux@super-ux`, or `npx skills add ssheleg/super-ux`);
28
- if missing on a UI task tell the operator to install and stop.
29
- 1. `/ux` (super-ux entry) inspects/repairs `docs/ux/` setup in the host project.
30
- 2. `ux-foundation` — the WHY layer: personas, Jobs to Be Done, **customer
31
- journey maps (CJM)**, user stories with Given/When/Then acceptance
32
- criteria. Create if missing; update if the feature shifts who/why.
33
- 3. `ux-scenarios` draft the feature's usage scenarios and validate them
34
- against the existing base per the super-ux format contract
35
- (`scenario-format.md`, ux-contract v2): IDs, statuses, `Traces:` to
36
- foundation stories/journey stages, edge/error states enumerated.
77
+ Requires the **super-ux** skills. If missing on a UI task give the install
78
+ line and stop (see SKILL.md *Prerequisites*: `/plugin marketplace add
79
+ ssheleg/super-ux``/plugin install super-ux@super-ux`, or `npx skills add
80
+ ssheleg/super-ux`). super-ux builds a traced chain walk it top-down (see its
81
+ `system-map.md`):
82
+ 1. `/ux` (the only super-ux entry) reports which `docs/ux/` layers exist,
83
+ repairs the skeleton, records the Figma on/off choice, recommends the next
84
+ action. Never make the operator pick skills.
85
+ 2. `ux-foundation` `docs/ux/foundation.md` the **WHY**: personas, Jobs to
86
+ Be Done, **customer journey maps (CJM)**, user stories (Given/When/Then).
87
+ 3. `ux-flows` → `docs/ux/flows.md` + `docs/ux/screens.md` the **HOW + UI
88
+ map**: task analysis, user-flow diagrams (branches, error paths), every
89
+ screen + state with wireframe and (Figma on) a Figma frame link.
90
+ 4. `ux-scenarios` → `docs/ux/scenarios.md` — the **WHAT** (source of truth for
91
+ behavior): scenarios validated per the format contract (`scenario-format.md`,
92
+ ux-contract v2) — IDs, statuses, `Traces:` to stories/journey stages/flows,
93
+ edge/error states enumerated.
94
+ 5. **Run the super-ux linter** (`/ux-lint` or `python3 docs/ux/lint.py`) — it
95
+ must pass: no drift, no orphans, no broken traces or stale Figma links.
96
+ These skills are **idempotent** — reuse and extend existing `docs/ux/` layers,
97
+ never rebuild from scratch. If the chain already exists and is validated (e.g.
98
+ the task entered from super-ux), just verify (linter green) and embed it into
99
+ the spec; only build the parts that are missing.
37
100
  - **Spec:** brainstorming writes the design to
38
101
  `docs/superpowers/specs/YYYY-MM-DD-<topic>-design.md` and commits it. Lock all
39
102
  shared contracts (types, schemas, signatures, file layout). For UI tasks the
40
- spec **embeds the UX layer**: links the validated scenario IDs and the CJM
41
- stages the feature serves, and states which UX patterns/guides from super-ux
42
- apply (per-scenario quality bars, error/empty/loading states, traceability).
43
- - **GATE:** spec committed **and** user-reviewed; for UI tasks additionally:
44
- scenarios validated in `docs/ux/scenarios.md`, CJM/foundation coverage in
45
- `docs/ux/foundation.md` (or explicit v1-mode/tiny-project waiver by the
46
- operator), and every user-facing spec requirement traces to a scenario ID.
47
- No plan (stage 4) starts before this scenarios come BEFORE interface.
103
+ spec **embeds the UX layer**: links the validated scenario IDs, the flows and
104
+ `SCR-` screens, the CJM stages the feature serves, and the UX
105
+ patterns/principles from super-ux that apply (`best-practices.md`,
106
+ `ux-design-principles.md`, `component-guidelines.md`).
107
+ - **GATE (manual):** spec committed **and** user-reviewed; for UI tasks
108
+ additionally: the super-ux chain (foundation flows screens → scenarios) is
109
+ designed, validated and approved; scenarios validated in `docs/ux/scenarios.md`;
110
+ the linter passes; every user-facing spec requirement traces to a scenario ID
111
+ (or an explicit v1-mode/tiny-project waiver by the operator). No plan (stage 4)
112
+ starts before this — the chain comes BEFORE interface.
48
113
 
49
114
  ## 4 — Plan (Fable)
50
115
  - **Invoke:** `superpowers:writing-plans` →
51
116
  `docs/superpowers/plans/YYYY-MM-DD-<feature>.md`. Zero-context tasks, exact
52
117
  paths, TDD steps, DoD each, dependency graph + parallel groups, non-overlapping
53
118
  file ownership.
54
- - **GATE:** every spec requirement maps to a task; no placeholders; parallel-group
119
+ - **GATE (auto):** every spec requirement maps to a task; no placeholders; parallel-group
55
120
  tasks share no files. For UI tasks: every task building user-facing behavior
56
- names the scenario ID(s) it implements, and its DoD includes satisfying them.
121
+ names the scenario ID(s) and `SCR-` screen(s) it implements, and its DoD
122
+ includes satisfying them **and** updating the affected super-ux layers in the
123
+ same change (super-ux *same-change* rule).
57
124
 
58
125
  ## 5 — Dev (Opus)
59
126
  - **Invoke:** `superpowers:using-git-worktrees` (isolate) →
60
127
  `superpowers:subagent-driven-development` (or `superpowers:executing-plans`).
61
128
  TDD per task (failing test → minimal impl → green → commit). Pin subagents to Opus.
62
- - **GATE:** all plan tasks DONE (two-stage review: spec compliance, then code
129
+ - **GATE (auto):** all plan tasks DONE (two-stage review: spec compliance, then code
63
130
  quality); full test suite green.
64
131
 
65
132
  ## 6 — Tests (Opus)
@@ -68,24 +135,31 @@ must pass before advancing.
68
135
  change touched, and add edge-case + failure-path tests per DoD.
69
136
  - **Invoke:** the host test runner (see `conventions.md` → *Lint + test*);
70
137
  `superpowers:test-driven-development` for any uncovered gap.
71
- - **GATE:** the **full** suite is green (not just the new tests); new/changed code
138
+ - **GATE (auto):** the **full** suite is green (not just the new tests); new/changed code
72
139
  is covered; no `skip`/`xfail` smuggling a red suite past the gate. Never advance
73
140
  to deploy on a red or partial run.
74
141
 
75
142
  ## 7 — Lint + deploy (host model)
76
143
  - Read host conventions (`conventions.md`): run the linter; fix failures. The suite
77
- is already green from stage 6 — re-run it if code changed since. Then deploy per
78
- the project's convention.
79
- - **GATE:** lint clean **and** suite green **before** deploy. Deploy is outward
80
- explicit operator go. Respect deploy-from-main rules if the project mandates them.
144
+ is already green from stage 6 — re-run it if code changed since. For UI projects,
145
+ the **super-ux linter** (`python3 docs/ux/lint.py` / `/ux-lint`) is part of lint —
146
+ it must pass too (no UX drift merges). Then deploy per the project's convention;
147
+ if the project defines release automation (`pipeline.json` `release`, toggle
148
+ on), that is what "deploy" runs here.
149
+ - **GATE (manual):** lint clean (host linter **and**, for UI projects, the super-ux
150
+ linter) **and** suite green **before** deploy. Deploy is outward → explicit
151
+ operator go. Respect deploy-from-main rules if the project mandates them.
81
152
 
82
153
  ## 8 — Post-deploy (host model)
83
154
  - Tail deploy logs / health-check per conventions. Confirm clean boot, no error
84
155
  spike, live subsystems healthy.
85
- - **GATE:** clean boot confirmed, or an **honest degradation report** with next
156
+ - **GATE (auto):** clean boot confirmed, or an **honest degradation report** with next
86
157
  steps — never silent success.
87
158
 
88
159
  ## 9 — Docs + wiki (host model)
89
160
  - Update host module docs / runbooks per the project's self-update rules, in the
90
- **same change**. Then sync knowledge to the wiki (`wiki-update` skill).
91
- - **GATE:** docs in sync with code; wiki synced; dangling links fixed.
161
+ **same change**. For UI tasks, confirm the super-ux layers were updated in this
162
+ change and the linter is green (super-ux *same-change* + *no-drift* rules). Then
163
+ sync knowledge to the wiki (`wiki-update` skill).
164
+ - **GATE (auto):** docs in sync with code; UI: super-ux layers current + linter
165
+ green; wiki synced; dangling links fixed.
@@ -0,0 +1,12 @@
1
+ # templates
2
+
3
+ Skeletons task-pipeline seeds into a host project. Only the **brief** is owned by
4
+ this plugin (it is the stage-0 intake artifact); the spec and plan skeletons come
5
+ from the `superpowers` skills, and the `docs/ux/*` skeletons from `super-ux`.
6
+
7
+ | Template | Seeded to | Stage |
8
+ |---|---|---|
9
+ | `brief.md` | `docs/superpowers/specs/YYYY-MM-DD-<topic>-brief.md` | 0 — intake grill |
10
+
11
+ Seeding rule (per the ssheleg canon): create a template copy **only when the
12
+ target is absent**; never overwrite an existing brief.
@@ -0,0 +1,35 @@
1
+ # Task brief — <topic>
2
+
3
+ > Stage-0 intake artifact. The grill fills this in and the operator confirms it
4
+ > before stage 1. Copy to `docs/superpowers/specs/YYYY-MM-DD-<topic>-brief.md`.
5
+ > Every field is a resolved decision or an explicit deferral — no open unknowns.
6
+
7
+ - **Date:** YYYY-MM-DD
8
+ - **Task (one line):** <what the operator asked for, restated>
9
+ - **UI verdict:** yes / no — does this touch a user-facing surface (web/mobile/CLI/TUI)?
10
+ If yes, the stage-3 super-ux UX track is armed.
11
+
12
+ ## Scope
13
+
14
+ - **In scope:** …
15
+ - **Out of scope / explicitly deferred:** … (with the reason and, for deferrals,
16
+ the latest moment the decision can still be made)
17
+
18
+ ## Users & context
19
+
20
+ - **Who / for what:** … (personas, the job being done)
21
+ - **Where it runs / constraints:** platform, runtime, data, integrations, limits
22
+
23
+ ## Decisions locked (the grill's output)
24
+
25
+ | # | Decision | Chosen | Rationale |
26
+ |---|---|---|---|
27
+ | 1 | … | … | … |
28
+
29
+ ## Done-criteria
30
+
31
+ - Observable, verifiable conditions that mean "this task is finished".
32
+
33
+ ## Open assumptions / risks
34
+
35
+ - Assumption → how it's validated (or flagged risky-untested).