@nklisch/pi-agile-workflow 0.15.3

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.
Files changed (203) hide show
  1. package/.claude-plugin/plugin.json +10 -0
  2. package/.codex-plugin/plugin.json +28 -0
  3. package/CHANGELOG.md +591 -0
  4. package/README.md +107 -0
  5. package/docs/ARCHITECTURE.md +716 -0
  6. package/docs/MIGRATION.md +419 -0
  7. package/docs/PRINCIPLES.md +464 -0
  8. package/docs/ROADMAP.md +95 -0
  9. package/docs/SPEC.md +855 -0
  10. package/docs/VISION.md +106 -0
  11. package/extensions/agile-workflow.test.ts +419 -0
  12. package/extensions/agile-workflow.ts +467 -0
  13. package/hooks/hooks.json +52 -0
  14. package/hooks/scripts/prompt-context.py +628 -0
  15. package/hooks/scripts/substrate-maintainer.py +359 -0
  16. package/hooks/scripts/test_prompt_context.py +757 -0
  17. package/package.json +30 -0
  18. package/scripts/install-work-view.sh +165 -0
  19. package/scripts/tests/agent-metadata.test.sh +75 -0
  20. package/scripts/tests/bump-version.test.sh +552 -0
  21. package/scripts/tests/channel-parity.test.sh +117 -0
  22. package/scripts/tests/convert-content-integrity.test.sh +246 -0
  23. package/scripts/tests/convert-install-routing.test.sh +159 -0
  24. package/scripts/tests/install-work-view.test.sh +411 -0
  25. package/scripts/tests/pi-package-metadata.test.sh +119 -0
  26. package/scripts/tests/work-board-shim.test.sh +239 -0
  27. package/scripts/tests/work-view-dist-version.test.sh +105 -0
  28. package/scripts/work-board.sh +64 -0
  29. package/scripts/work-view.sh +423 -0
  30. package/skills/autopilot/SKILL.md +330 -0
  31. package/skills/autopilot/agents/openai.yaml +6 -0
  32. package/skills/board/SKILL.md +62 -0
  33. package/skills/board/agents/openai.yaml +6 -0
  34. package/skills/bold-refactor/SKILL.md +244 -0
  35. package/skills/bold-refactor/agents/openai.yaml +6 -0
  36. package/skills/bug-scan/SKILL.md +378 -0
  37. package/skills/bug-scan/agents/openai.yaml +6 -0
  38. package/skills/bug-scan/references/async-promises.md +119 -0
  39. package/skills/bug-scan/references/concurrency-races.md +148 -0
  40. package/skills/bug-scan/references/data-layer.md +167 -0
  41. package/skills/bug-scan/references/error-handling.md +197 -0
  42. package/skills/bug-scan/references/gate-item-template.md +94 -0
  43. package/skills/bug-scan/references/language-footguns.md +219 -0
  44. package/skills/bug-scan/references/parked-item-template.md +103 -0
  45. package/skills/bug-scan/references/report-template.md +115 -0
  46. package/skills/bug-scan/references/resource-leaks.md +199 -0
  47. package/skills/bug-scan/references/state-closures.md +148 -0
  48. package/skills/bug-scan/references/time-numbers.md +158 -0
  49. package/skills/convert/SKILL.md +1463 -0
  50. package/skills/convert/agents/openai.yaml +6 -0
  51. package/skills/convert/references/legacy-overlap-migration.md +179 -0
  52. package/skills/deep-code-scan/SKILL.md +378 -0
  53. package/skills/deep-code-scan/agents/openai.yaml +6 -0
  54. package/skills/deep-code-scan/references/artifact-ledger.md +148 -0
  55. package/skills/deep-code-scan/references/consolidation.md +91 -0
  56. package/skills/deep-code-scan/references/decomposition.md +127 -0
  57. package/skills/deep-code-scan/references/item-templates.md +263 -0
  58. package/skills/deep-code-scan/references/lane-catalog.md +129 -0
  59. package/skills/deep-code-scan/references/review-gauntlet.md +108 -0
  60. package/skills/deep-code-scan/references/scanner-brief.md +152 -0
  61. package/skills/e2e-test-design/SKILL.md +517 -0
  62. package/skills/e2e-test-design/references/anti-tautology.md +261 -0
  63. package/skills/e2e-test-design/references/service-mocks.md +234 -0
  64. package/skills/e2e-test-design/references/test-taxonomy.md +211 -0
  65. package/skills/epic-design/SKILL.md +476 -0
  66. package/skills/epicize/SKILL.md +210 -0
  67. package/skills/epicize/agents/openai.yaml +6 -0
  68. package/skills/feature-design/SKILL.md +472 -0
  69. package/skills/fix/SKILL.md +173 -0
  70. package/skills/gate-cruft/SKILL.md +258 -0
  71. package/skills/gate-docs/SKILL.md +278 -0
  72. package/skills/gate-patterns/SKILL.md +389 -0
  73. package/skills/gate-refactor/SKILL.md +408 -0
  74. package/skills/gate-security/SKILL.md +275 -0
  75. package/skills/gate-tests/SKILL.md +367 -0
  76. package/skills/groom/SKILL.md +162 -0
  77. package/skills/groom/agents/openai.yaml +6 -0
  78. package/skills/ideate/SKILL.md +185 -0
  79. package/skills/ideate/agents/openai.yaml +6 -0
  80. package/skills/implement/SKILL.md +288 -0
  81. package/skills/implement-orchestrator/SKILL.md +604 -0
  82. package/skills/park/SKILL.md +111 -0
  83. package/skills/perf-design/SKILL.md +427 -0
  84. package/skills/perf-scout/SKILL.md +404 -0
  85. package/skills/perf-scout/agents/openai.yaml +6 -0
  86. package/skills/perf-scout/references/algorithmic-and-data-structures.md +126 -0
  87. package/skills/perf-scout/references/approximation-and-precomputation.md +136 -0
  88. package/skills/perf-scout/references/caching-and-memoization.md +123 -0
  89. package/skills/perf-scout/references/compiler-runtime-and-language.md +136 -0
  90. package/skills/perf-scout/references/database-and-storage-internals.md +144 -0
  91. package/skills/perf-scout/references/distributed-systems.md +150 -0
  92. package/skills/perf-scout/references/game-engine-and-realtime.md +136 -0
  93. package/skills/perf-scout/references/gpu-and-accelerators.md +130 -0
  94. package/skills/perf-scout/references/idea-ranking.md +75 -0
  95. package/skills/perf-scout/references/io-and-batching.md +135 -0
  96. package/skills/perf-scout/references/memory-and-data-locality.md +137 -0
  97. package/skills/perf-scout/references/parallelism-and-vectorization.md +126 -0
  98. package/skills/perf-scout/references/parked-item-template.md +117 -0
  99. package/skills/perf-scout/references/peer-review-pass.md +150 -0
  100. package/skills/perf-scout/references/report-template.md +148 -0
  101. package/skills/principles/SKILL.md +678 -0
  102. package/skills/principles/references/models.md +191 -0
  103. package/skills/principles/references/subagents.md +158 -0
  104. package/skills/prose-author/SKILL.md +185 -0
  105. package/skills/refactor-conventions-creator/SKILL.md +359 -0
  106. package/skills/refactor-conventions-creator/agents/openai.yaml +6 -0
  107. package/skills/refactor-conventions-creator/references/common-structures.md +91 -0
  108. package/skills/refactor-conventions-creator/references/common-styles.md +90 -0
  109. package/skills/refactor-design/SKILL.md +384 -0
  110. package/skills/release-deploy/SKILL.md +667 -0
  111. package/skills/release-deploy/agents/openai.yaml +6 -0
  112. package/skills/research/SKILL.md +166 -0
  113. package/skills/research/agents/openai.yaml +6 -0
  114. package/skills/review/SKILL.md +267 -0
  115. package/skills/review/references/deep-review.md +98 -0
  116. package/skills/review/references/review-lenses.md +68 -0
  117. package/skills/review/references/substrate-side-effects.md +161 -0
  118. package/skills/review/references/target-resolution.md +52 -0
  119. package/skills/scope/SKILL.md +486 -0
  120. package/work-view/Cargo.lock +486 -0
  121. package/work-view/Cargo.toml +9 -0
  122. package/work-view/crates/cli/.work-view-version +1 -0
  123. package/work-view/crates/cli/Cargo.toml +18 -0
  124. package/work-view/crates/cli/src/actionable.rs +500 -0
  125. package/work-view/crates/cli/src/args.rs +792 -0
  126. package/work-view/crates/cli/src/board/assets/board.css +855 -0
  127. package/work-view/crates/cli/src/board/assets/board.js +259 -0
  128. package/work-view/crates/cli/src/board/assets/card.js +139 -0
  129. package/work-view/crates/cli/src/board/assets/components.css +290 -0
  130. package/work-view/crates/cli/src/board/assets/dependency.js +1193 -0
  131. package/work-view/crates/cli/src/board/assets/detail.js +256 -0
  132. package/work-view/crates/cli/src/board/assets/filters.js +389 -0
  133. package/work-view/crates/cli/src/board/assets/index.html +77 -0
  134. package/work-view/crates/cli/src/board/assets/kanban.js +231 -0
  135. package/work-view/crates/cli/src/board/assets/markdown.js +260 -0
  136. package/work-view/crates/cli/src/board/assets/motion.css +131 -0
  137. package/work-view/crates/cli/src/board/assets/state.js +245 -0
  138. package/work-view/crates/cli/src/board/assets/table.js +304 -0
  139. package/work-view/crates/cli/src/board/assets/tokens.css +602 -0
  140. package/work-view/crates/cli/src/board/assets/views.js +41 -0
  141. package/work-view/crates/cli/src/board/assets.rs +162 -0
  142. package/work-view/crates/cli/src/board/feed.rs +204 -0
  143. package/work-view/crates/cli/src/board/mod.rs +246 -0
  144. package/work-view/crates/cli/src/board/open.rs +144 -0
  145. package/work-view/crates/cli/src/board/server.rs +407 -0
  146. package/work-view/crates/cli/src/main.rs +195 -0
  147. package/work-view/crates/cli/src/render.rs +354 -0
  148. package/work-view/crates/cli/src/scope.rs +157 -0
  149. package/work-view/crates/cli/src/stale.rs +581 -0
  150. package/work-view/crates/cli/tests/board-js/dependency-table.test.mjs +64 -0
  151. package/work-view/crates/cli/tests/board-js/expanded-browsing.test.mjs +79 -0
  152. package/work-view/crates/cli/tests/board-js/harness-smoke.test.mjs +11 -0
  153. package/work-view/crates/cli/tests/board-js/harness.mjs +437 -0
  154. package/work-view/crates/cli/tests/board-js/kanban-detail.test.mjs +75 -0
  155. package/work-view/crates/cli/tests/board-js/markdown-filter.test.mjs +60 -0
  156. package/work-view/crates/cli/tests/fixtures/golden/.work/CONVENTIONS.md +3 -0
  157. package/work-view/crates/cli/tests/fixtures/golden/.work/active/epics/epic-alpha.md +16 -0
  158. package/work-view/crates/cli/tests/fixtures/golden/.work/active/features/feat-a.md +16 -0
  159. package/work-view/crates/cli/tests/fixtures/golden/.work/active/features/feat-b.md +16 -0
  160. package/work-view/crates/cli/tests/fixtures/golden/.work/active/stories/story-alpha-1.md +16 -0
  161. package/work-view/crates/cli/tests/fixtures/golden/.work/active/stories/story-research-1.md +19 -0
  162. package/work-view/crates/cli/tests/fixtures/golden/.work/archive/feat-done.md +16 -0
  163. package/work-view/crates/cli/tests/fixtures/golden/.work/archive/feat-shipped.md +18 -0
  164. package/work-view/crates/cli/tests/fixtures/golden/.work/backlog/idea-backlog.md +7 -0
  165. package/work-view/crates/cli/tests/fixtures/golden/.work/releases/v1.0/v1.0.md +16 -0
  166. package/work-view/crates/cli/tests/fixtures/ready-drafting/.work/CONVENTIONS.md +6 -0
  167. package/work-view/crates/cli/tests/fixtures/ready-drafting/.work/active/features/feat-dep-done.md +17 -0
  168. package/work-view/crates/cli/tests/fixtures/ready-drafting/.work/active/features/feat-design-ready.md +17 -0
  169. package/work-view/crates/cli/tests/fixtures/ready-drafting/.work/active/features/feat-impl-ready.md +17 -0
  170. package/work-view/crates/cli/tests/fixtures/ready-drafting/.work/active/stories/story-review-ready.md +17 -0
  171. package/work-view/crates/cli/tests/fixtures/with-malformed/.work/CONVENTIONS.md +4 -0
  172. package/work-view/crates/cli/tests/fixtures/with-malformed/.work/active/epics/malformed-no-closing-fence.md +8 -0
  173. package/work-view/crates/cli/tests/fixtures/with-malformed/.work/active/features/good-item.md +16 -0
  174. package/work-view/crates/cli/tests/integration.rs +2833 -0
  175. package/work-view/crates/core/Cargo.toml +13 -0
  176. package/work-view/crates/core/src/error.rs +61 -0
  177. package/work-view/crates/core/src/filter.rs +804 -0
  178. package/work-view/crates/core/src/graph.rs +324 -0
  179. package/work-view/crates/core/src/index.rs +590 -0
  180. package/work-view/crates/core/src/lib.rs +54 -0
  181. package/work-view/crates/core/src/model.rs +202 -0
  182. package/work-view/crates/core/src/parse.rs +494 -0
  183. package/work-view/crates/core/tests/fixtures/golden/.work/CONVENTIONS.md +15 -0
  184. package/work-view/crates/core/tests/fixtures/golden/.work/active/epics/epic-core.md +16 -0
  185. package/work-view/crates/core/tests/fixtures/golden/.work/active/features/feat-parser.md +16 -0
  186. package/work-view/crates/core/tests/fixtures/golden/.work/active/features/feat-query.md +16 -0
  187. package/work-view/crates/core/tests/fixtures/golden/.work/active/stories/malformed-no-id.md +15 -0
  188. package/work-view/crates/core/tests/fixtures/golden/.work/active/stories/story-parse-unit.md +16 -0
  189. package/work-view/crates/core/tests/fixtures/golden/.work/active/stories/story-security-gate.md +16 -0
  190. package/work-view/crates/core/tests/fixtures/golden/.work/archive/feat-old.md +16 -0
  191. package/work-view/crates/core/tests/fixtures/golden/.work/archive/feat-parser.md +17 -0
  192. package/work-view/crates/core/tests/fixtures/golden/.work/backlog/idea-future-board.md +7 -0
  193. package/work-view/crates/core/tests/fixtures/golden/.work/releases/v1.0/v1.0.md +16 -0
  194. package/work-view/crates/core/tests/fixtures/precedence/.work/CONVENTIONS.md +10 -0
  195. package/work-view/crates/core/tests/fixtures/precedence/.work/archive/dup-item.md +18 -0
  196. package/work-view/crates/core/tests/fixtures/precedence/.work/releases/v2.0/dup-item.md +18 -0
  197. package/work-view/crates/core/tests/integration.rs +541 -0
  198. package/work-view/dist/.gitattributes +1 -0
  199. package/work-view/dist/README.md +42 -0
  200. package/work-view/dist/aarch64-apple-darwin/work-view +0 -0
  201. package/work-view/dist/aarch64-unknown-linux-musl/work-view +0 -0
  202. package/work-view/dist/x86_64-apple-darwin/work-view +0 -0
  203. package/work-view/dist/x86_64-unknown-linux-musl/work-view +0 -0
@@ -0,0 +1,10 @@
1
+ {
2
+ "name": "agile-workflow",
3
+ "description": "Markdown-based work-tracking substrate for AI-driven projects. Items as files in .work/, late-binding releases, gates that produce items, goal-backed autopilot queue runner. See docs/VISION.md.",
4
+ "version": "0.15.3",
5
+ "author": {
6
+ "name": "nklisch"
7
+ },
8
+ "repository": "https://github.com/nklisch/skills",
9
+ "license": "MIT"
10
+ }
@@ -0,0 +1,28 @@
1
+ {
2
+ "name": "agile-workflow",
3
+ "version": "0.15.3",
4
+ "description": "Markdown-based work-tracking substrate for AI-driven projects. Items as files in .work/, late-binding releases, gates that produce items, goal-backed autopilot queue runner.",
5
+ "author": {
6
+ "name": "nklisch"
7
+ },
8
+ "repository": "https://github.com/nklisch/skills",
9
+ "license": "MIT",
10
+ "skills": "./skills/",
11
+ "hooks": "./hooks/hooks.json",
12
+ "interface": {
13
+ "displayName": "Agile Workflow",
14
+ "shortDescription": "Substrate tracking with goal-backed autopilot",
15
+ "longDescription": "Skills for substrate-driven work tracking. Items as files in .work/, late-binding releases, gates that produce items (security, tests, cruft, docs, patterns), and a goal-backed autopilot queue runner.",
16
+ "developerName": "nklisch",
17
+ "category": "Productivity",
18
+ "capabilities": [
19
+ "Read",
20
+ "Write",
21
+ "Bash"
22
+ ],
23
+ "defaultPrompt": [
24
+ "Use agile-workflow to inspect the substrate queue and recommend the next ready item."
25
+ ],
26
+ "websiteURL": "https://github.com/nklisch/skills"
27
+ }
28
+ }
package/CHANGELOG.md ADDED
@@ -0,0 +1,591 @@
1
+ # Changelog
2
+
3
+ ## Unreleased
4
+
5
+ ### Dynamic subagent prompting
6
+
7
+ - **No shipped custom agents** — removed agile-workflow's Claude/Pi agent
8
+ manifest entries, Pi `subagents` package metadata, Codex `aw-*` templates, and
9
+ the Pi extension's global agent sync. The plugin now ships skills and runtime
10
+ commands only.
11
+ - **Structured generic delegation** — skills now route design, implementation,
12
+ review, scanner, and explorer work through the host's existing
13
+ generic/general-purpose subagent mechanism using the dynamic prompt postures in
14
+ `skills/principles/references/subagents.md`.
15
+
16
+ ## v0.14.0
17
+
18
+ ### Backlog grooming + staleness signal
19
+
20
+ - **`groom` skill** — new user-invocable backlog-hygiene sweep
21
+ (`/agile-workflow:groom`). Classifies `.work/backlog/` items
22
+ DONE/SUPERSEDED/DUPLICATE/STALE/MERGEABLE/VALID via mechanical signals plus a
23
+ grounded semantic pass, and writes a triage report. Propose-not-prune:
24
+ dispositions are operator-confirmed and route through the terminal-tier
25
+ retention convention; it never auto-prunes and is not a release gate. Opt-in.
26
+ - **`work-view --stale`** — lists backlog items whose last-touched date
27
+ (`updated` if present, else `created`) exceeds the new `backlog_staleness_days`
28
+ `.work/CONVENTIONS.md` key. Absent key ⇒ inert notice + exit 0, so a project
29
+ that doesn't opt in is unaffected. Backlog-tier only; std-only, local-time.
30
+ - **`updated` on the backlog contract** — documented as an optional backlog
31
+ frontmatter field (`== created` at birth, written by `park`; bumped by the
32
+ PostToolUse hook on edit; treated as `created` when absent). `BACKLOG_REQUIRED`
33
+ unchanged — the field stays optional.
34
+
35
+ ## v0.12.1
36
+
37
+ ### Gate configurability
38
+
39
+ - **Gate finding routing** — documented `gate_finding_routing` in
40
+ `.work/CONVENTIONS.md` so release gates normalize severity/priority/confidence
41
+ to one project-level item-placement policy.
42
+ - **gate-refactor scan roots** — documented `gate_refactor_scan_library_roots`
43
+ so monorepos can share scan-rule libraries while preserving the default
44
+ `.agents/skills` then `.claude/skills` discovery order.
45
+
46
+ ## v0.11.3
47
+
48
+ ### Research-substrate linkage fields + agentic-research adoption
49
+
50
+ - **work-view research linkage** — the Item model gains `research_refs` (Arrow 1: a work item
51
+ tracks/consumes research) and `research_origin` (Arrow 2: research that spawned the item), parsed
52
+ from frontmatter and queryable via `--research-refs` / `--research-origin`. Mirrors the
53
+ `gate_origin` precedent; both fields parse harmlessly when unset, so a plain `.work/` substrate is
54
+ unaffected.
55
+ - **convert** — research-substrate fields are conditional on the `agentic-research` plugin. The
56
+ canonical AGENTS block ships the base field list and only advertises `research_refs` /
57
+ `research_origin` (plus the `.work/` ↔ `.research/` handoff pointer) when that plugin is installed;
58
+ convert never scaffolds `.research/` on its own.
59
+
60
+ ## v0.11.2
61
+
62
+ ### Clarify `--stage review` semantics in seeded docs
63
+
64
+ - **convert / docs** — reworded the canonical AGENTS section template and architecture docs so
65
+ `work-view --stage review` reads as "items awaiting an agent review pass (`/agile-workflow:review`)"
66
+ rather than "items waiting on user." The review stage is the agent's review queue (advance or
67
+ bounce), not a hold for human sign-off.
68
+
69
+ ## v0.11.1
70
+
71
+ ### Terminal-tier archival: merged `archived_atop` late-binding into delete-refs
72
+
73
+ - **`archived_atop` late-binding** — archived items are bodyless stubs stamping an immutable
74
+ `archived_atop` baseline + `git_ref`; `release-deploy` late-binds all unbound archived stubs into
75
+ one release summary.
76
+ - **Archive-stub gate hydration** — gate skills include `.work/archive/` stubs in the release
77
+ bundle and hydrate historical bodies from `git_ref` when a body is needed.
78
+ - **convert** — one merged terminal-retention convention; sync detects/offers it and offers to prune
79
+ existing retained terminal bodies to stubs (stamping `archived_atop` + `git_ref`).
80
+
81
+ ## v0.11.0
82
+
83
+ ### Delete-after-release terminal tiers
84
+
85
+ - Archived items become bodyless ref stubs; a release collapses bound items into one
86
+ `releases/<version>/release-<version>.md` summary; full bodies live in git history. `convert` seeds
87
+ the `terminal-tier retention` convention (default `delete-refs`).
88
+
89
+ _(0.10.x release notes: see git history.)_
90
+
91
+ ## v0.9.5
92
+
93
+ ### Three-channel distribution
94
+
95
+ - **Pi package channel** - Added Pi package metadata for supported plugins, kept
96
+ package versions in lockstep with Claude/Codex metadata, and documented the
97
+ three-channel distribution model across root and plugin guides.
98
+ - **Pi extension surface** - Added the agile-workflow Pi extension shell with
99
+ `/aw` queue snapshots, parent/blocking lookups, and handoffs to shared board,
100
+ autopilot, and scope skills.
101
+ - **Delegation policy** - Updated agile-workflow skills so worker/scout/reviewer
102
+ routing names Pi-native subagents where available while preserving the shared
103
+ skill contracts.
104
+
105
+ ### Board and dependency view
106
+
107
+ - **Expanded browsing** - Added expandable epic and tag groups to the board
108
+ sidebar without changing filter semantics.
109
+ - **Dependency canvas polish** - Added zoom, hand-pan, layout controls, compact
110
+ web layout nodes, ephemeral dragging, clearer impact counts, and fixes for
111
+ resize edge drift, node click jitter, Hand-mode detail opening, clipping, and
112
+ the null-sentinel module import failure.
113
+
114
+ ### Tests and release gates
115
+
116
+ - **Board JS behavior harness** - Added a no-build ES-module test harness plus
117
+ coverage for markdown safety, filter composition, dependency/table behavior,
118
+ kanban/detail behavior, and expanded browsing.
119
+ - **Hook concurrency and PostCompact audit** - Added deterministic coverage for
120
+ hook state-file interleaving and verified Codex PostCompact output behavior.
121
+ - **Release-gate follow-ups** - Added Pi package metadata tests, Pi extension
122
+ command tests, filtered dependency stub coverage, keyboard reachability
123
+ coverage for tag expansion, and removed dead board-test harness cleanup code.
124
+
125
+ ## v0.9.0
126
+
127
+ ### Cross-vendor `.agents/rules/` auto-load
128
+
129
+ - **Generic rules loader** - A hook now injects `.agents/rules/*.md` into agent
130
+ context in both Claude Code and Codex, so dense project rules and the pattern
131
+ digest load automatically without per-tool wiring. Hook state-file writes are
132
+ concurrency-hardened (unique temp names, fail-open on error, `fcntl` locking
133
+ when available).
134
+ - **`convert` extracts rules** - `convert` lifts the dense agent-instruction
135
+ block into `.agents/rules/agile-workflow.md`, guarded by a content-integrity
136
+ gate that verifies content exists at its canonical replacement before any
137
+ destructive op.
138
+ - **`gate-patterns` writes the digest** - The patterns gate emits a generated,
139
+ hook-loaded `.agents/rules/patterns.md` digest (slug + one-liner index with a
140
+ drift-detecting `src-sha256`) alongside the canonical pattern skills.
141
+ - **Skills ground on `.agents/rules/`** - The design/implement/review-family
142
+ skills read `.agents/rules/*.md` during grounding.
143
+
144
+ ### work-view freshness & anti-drift lifecycle
145
+
146
+ - **`work-view --version`** - Both the Rust binary and the bash fallback report
147
+ the plugin version (`work-view <semver>`), kept in lockstep with `plugin.json`
148
+ by `bump-version.sh`, so a single string compare answers "is this installed
149
+ copy current?".
150
+ - **Self-heal install lifecycle** - The SessionStart hook and `convert` detect a
151
+ missing or stale `.work/bin/work-view` and reinstall the version-stamped
152
+ entrypoint; the probe fails open (never blocks the session) on timeout or
153
+ error.
154
+
155
+ ### Documentation
156
+
157
+ - Rolled the SPEC forward: the kanban surface is documented as parent swimlanes
158
+ with verbatim per-stage columns (not a fixed 5-column collapse), and the plugin
159
+ source layout now includes the `work-view/` Rust workspace.
160
+ - Refreshed pattern-skill example `file:line` references after board modules
161
+ shifted positions.
162
+
163
+ ### Internal
164
+
165
+ - New test coverage: `bump-version.sh` lockstep projection, `work-board.sh` shim
166
+ routing, `convert` content-integrity structural guard, self-heal version-probe
167
+ timeout fail-open, and a `$TMPDIR`-invariant substrate-root test.
168
+ - Codified 4 new code patterns (board view-module contract, local DOM
169
+ text-element builder, fail-open subprocess probe, hand-written error `Display`).
170
+ - Removed dead board-view scaffolding (`placeholderView`, `registeredViews`, and
171
+ orphaned CSS).
172
+
173
+ ## v0.8.9
174
+
175
+ ### Board UI polish
176
+
177
+ - **Mock-aligned board filters and metadata** - Removed the interactive board's
178
+ Release filter section and release-binding metadata from cards, details, and
179
+ the table surface. Missing values now render with the mock's dash treatment
180
+ instead of a visible `(none)` sentinel, and null parent/release values are not
181
+ exposed as filter chips.
182
+
183
+ ## v0.8.8
184
+
185
+ ### Interactive Substrate Board
186
+
187
+ - **Live `work-view board` surface** - Added the compiled localhost board host
188
+ with `/healthz`, `/api/substrate`, embedded assets, loopback Host header
189
+ hardening, busy-port scanning, and browser-open handling. `work-view serve`
190
+ aliases the same read-only board server.
191
+ - **Board shell and views** - Added the no-build browser shell with shared
192
+ filters, auto-hide, safe markdown rendering, shared item cards, diagnostics,
193
+ theme/accent controls, and detail surface. Delivered kanban stage/swimlane,
194
+ dependency graph, and sortable/filterable table views over the same substrate
195
+ feed.
196
+ - **Board skill** - Added the user-invocable `agile-workflow:board` skill for
197
+ launching `.work/bin/work-view board`, with clear failure handling when a
198
+ project still has a non-board-capable bash fallback.
199
+ - **Legacy `/board` command removed** - Deleted the Claude-only `/board`
200
+ command surface. `scripts/work-board.sh` remains only as a compatibility shim
201
+ that delegates to `.work/bin/work-view board` when the installed binary
202
+ supports it.
203
+
204
+ ### Documentation
205
+
206
+ - Rolled forward the agile-workflow SPEC and ARCHITECTURE docs, plus the root
207
+ substrate-access architecture note, from static generated board language to
208
+ the live `work-view board` model.
209
+
210
+ ## v0.8.6
211
+
212
+ ### Substrate CLI
213
+
214
+ - **Compiled `work-view` CLI** - The `.work/` query tool is now a compiled Rust
215
+ binary (`work-view-core` library + `work-view` CLI) with full flag/output
216
+ parity over the bash script, on a shared query core (frontmatter parsing, the
217
+ item model, dependency-graph evaluation, composable filters) that the
218
+ forthcoming web board reuses. Ships per-platform with a pure-bash fallback.
219
+ - **Stage-aware `--ready` / `--blocked`** - `--ready` no longer hides
220
+ design-ready (`drafting`) and review-ready items whose dependencies are
221
+ satisfied; it surfaces any active-tier item at `drafting`, `implementing`, or
222
+ `review` with all `depends_on` terminal (and `--blocked` the inverse). The
223
+ prompt-context hook no longer double-lists a `review` item under both Ready
224
+ and Review.
225
+ - **Platform install path** - `install-work-view.sh` selects the matching
226
+ prebuilt binary (uname → target triple, smoke-test, atomic install), wired
227
+ into `/agile-workflow:convert`, with the bash fallback when no binary matches.
228
+ Added a CI cross-compile workflow and the `dist/` layout. Binaries are
229
+ CI-produced; until the manual refresh job populates `dist/`, installs use the
230
+ bash fallback (no regression).
231
+
232
+ ### Also in this release (previously unreleased)
233
+
234
+ - **Review skill progressive disclosure** - Split the review skill into a
235
+ substrate-first core plus references for target resolution, review lenses,
236
+ deep-review mechanics, and substrate side effects. Supports standalone
237
+ branch/PR/commit reviews without `.work` mutations and keeps deep-review mode
238
+ adaptable across contracts, data, concurrency, release, and product/UX
239
+ dimensions.
240
+ - **work-view single-pass parsing** - Rewrote `work-view.sh` frontmatter
241
+ parsing to a single `awk` pass over the whole tree instead of spawning an
242
+ `awk` (plus `tr`) per field per file. Measured on a 617-item repo: default
243
+ table view drops from ~7.9s to ~0.12s (66x); output is now deterministically
244
+ sorted by path, otherwise byte-for-byte identical to before.
245
+ - **Dual Codex/Claude hook set** - Replaced the eager SessionStart queue dump
246
+ with prompt-gated context injection. Actionable workflow prompts get a compact
247
+ queue snapshot plus once-per-session principles capsules; idle chat and
248
+ explainer prompts stay silent. Capsule state lives in the host plugin data
249
+ directory when available, with non-worktree fallbacks.
250
+ - **Substrate maintainer hook** - Expanded the PostToolUse hook from `updated:`
251
+ bumping to deterministic touched-item validation: required frontmatter, valid
252
+ kind/stage, filename/id match, parent/dependency existence, and dependency
253
+ cycles reachable from the touched item.
254
+
255
+ ### Documentation
256
+
257
+ - Foundation docs (VISION, SPEC, ARCHITECTURE) rolled forward: work-view bash
258
+ script → compiled binary + fallback, and the stage-aware ready/blocked
259
+ semantic.
260
+
261
+ ### Internal
262
+
263
+ - First project pattern catalog under `.agents/skills/patterns/` (5 patterns
264
+ extracted from the CLI work).
265
+ - Expanded test coverage: binary-level proof of the `--ready` drafting fix,
266
+ exit-3 fatal-IO, the `--blocked` review case, the hook review-dedup, a
267
+ `convert` install-routing guard, and bash-parity empty-result tests.
268
+ - Added an `actionlint` CI workflow for GitHub Actions files; removed dead code
269
+ (unused `From<io::Error>` impl, an unused parameter, a vestigial no-op); added
270
+ a root `.gitignore`.
271
+
272
+ ## v0.7.7 - Skill metadata hotfix
273
+
274
+ - **Codex skill loading** - Shortened long agile-workflow skill frontmatter
275
+ descriptions so every `SKILL.md` stays under Codex's 1024-character
276
+ description limit. This fixes `perf-design` being skipped by Codex after the
277
+ v0.7.6 release.
278
+ - **Goal-backed autopilot** - Reshaped `autopilot` as a model- and
279
+ user-invocable queue policy that can be selected from a harness goal
280
+ statement such as "Use agile-workflow autopilot to drain --all." Removed
281
+ current docs' dependence on `/loop`, watchdog ticks, and `--resume`; the
282
+ harness goal/continuation feature now owns long-running persistence.
283
+ - **Caller-awareness alignment** - Updated delegated skills and docs so
284
+ "autopilot mode" means an active autopilot run or goal, not only a literal
285
+ slash invocation in the transcript.
286
+
287
+ ## v0.7.6 - Perf and refactor design alignment
288
+
289
+ Tightens performance-design guidance for low-level systems and makes refactor
290
+ conventions a cohesive extension of agile-workflow rather than a standalone
291
+ planning path.
292
+
293
+ - **Perf-design profiling depth** - The optimization hierarchy now calls out
294
+ data locality and microarchitecture work explicitly, including cache locality,
295
+ pointer chasing, allocation pressure, branch predictability, false sharing,
296
+ NUMA effects, and benchmark/counter evidence for CPU-bound systems.
297
+ - **Profiling taxonomy** - Discovery mode now classifies workload baseline,
298
+ on-CPU, memory/GC, I/O/serialization, off-CPU/synchronization, and
299
+ cache-line/NUMA bottlenecks before emitting perf items.
300
+ - **Refactor conventions integration** - `refactor-conventions-creator` now
301
+ writes short style summaries into AGENTS plus a canonical
302
+ `.agents/skills/refactor-conventions/` catalog. `refactor-design` keeps its
303
+ built-in defaults and treats the catalog only as an extension lens.
304
+ - **Convert one-pass alignment** - `convert --update` now covers AGENTS/CLAUDE
305
+ compatibility, work-view, pattern-skill mirrors, and refactor-conventions
306
+ catalog placement in one pass. Cleanup is opt-in: convert asks whether
307
+ destructive cleanup is in scope and defaults to preserve-only.
308
+ - **Tool metadata fixes** - Skills that ask strategic questions now declare
309
+ `AskUserQuestion` in their allowed tools.
310
+
311
+ ## v0.7.5 - Tighten [refactor] tag routing
312
+
313
+ Stops mistagged "major rework" items from leaking into `refactor-design` when
314
+ they actually change observable behavior.
315
+
316
+ - **Sharper tag semantics** - The AGENTS.md section now ships a `### Tag
317
+ semantics` subsection with the black-box test ("would any observable
318
+ behavior change for a caller of the public surface?") plus contrasting
319
+ examples on each side. Definition is re-read by agents mid-work, not just
320
+ buried in CONVENTIONS.md. SPEC.md's CONVENTIONS template entries for
321
+ `[refactor]` and `[perf]` are tightened to match.
322
+ - **Misroute self-heal in refactor-design** - Per-feature mode Phase 1 now
323
+ applies the black-box test to the brief. If the item describes new
324
+ capability, an API change, swapped semantics, or "rework rather than
325
+ restructuring," it strips `[refactor]`, logs the misroute, commits, and
326
+ returns without advancing - autopilot reroutes to `feature-design` on the
327
+ next pass. Mirrors `feature-design`'s existing misroute guard.
328
+ - **Tag application gate in scope** - Phase 5 (single-idea) and Phase B4
329
+ (batch clustering) now require the black-box test before applying
330
+ `[refactor]` or `[perf]`. Stops the bad tag at the source.
331
+ - **Convert sync handles existing projects** - `convert` and
332
+ `convert --update` now detect verbatim-stale tag entries in
333
+ `.work/CONVENTIONS.md` (only the known prior plugin defaults — user-edited
334
+ lines are treated as intentional) and offer to refresh them via
335
+ AskUserQuestion. Non-destructive: only flagged lines are touched, never the
336
+ rest of CONVENTIONS.
337
+
338
+ ## v0.7.4 - AGENTS-backed legacy pattern rules migration
339
+
340
+ - **Gate-patterns rules source** - `gate-patterns` now reads project rules from
341
+ AGENTS targets instead of treating `.claude/rules/patterns.md` as an input.
342
+ `.agents/skills/patterns/` remains the canonical structural-pattern catalog,
343
+ with `.claude/skills/patterns/` only as a legacy mirror.
344
+ - **Convert sync for older repos** - `convert` and `convert --update` now detect
345
+ legacy `.claude/rules/patterns.md`, import non-duplicate content into the
346
+ selected AGENTS target, and replace the legacy file with a shim so AGENTS is
347
+ the single project-rules source.
348
+ - **Docs alignment** - SPEC, ARCHITECTURE, and MIGRATION now document AGENTS as
349
+ the canonical rules home and `.agents/skills/patterns/` as the structural
350
+ pattern-skill home.
351
+
352
+ ## v0.7.2 - Codex sub-agent and AGENTS.md compatibility
353
+
354
+ Improves the plugin's Codex path while preserving Claude compatibility.
355
+
356
+ - **AGENTS.md canonicalization** - `convert` now writes the agile-workflow
357
+ section to AGENTS.md and keeps CLAUDE.md as a symlink or compatibility shim.
358
+ Root, `.agents/`, and `.claude/` instruction-file locations are detected.
359
+ - **Sub-agent routing** - implementation and gate skills now carry explicit
360
+ inline guidance for Claude model choices and Codex reasoning effort. The
361
+ implement orchestrator owns bundle/wave planning and may run large
362
+ non-overlapping write paths in parallel.
363
+ - **Codex plugin metadata** - the Codex manifest now declares capabilities and
364
+ a default prompt, and explicit-only skills ship Codex `agents/openai.yaml`
365
+ policy files.
366
+ - **Hooks** - plugin hooks resolve both Codex and Claude plugin roots, and the
367
+ PostToolUse hook recognizes Codex `apply_patch` payloads.
368
+ - **Pattern skills** - reusable pattern references are written under
369
+ `.agents/skills/patterns` with optional Claude mirrors.
370
+
371
+ ## v0.6.1 — UI/UX alignment promoted to scope/epic tier
372
+
373
+ Shifts where `ux-ui-design` mockups get produced. Epic-design Phase 4.6 is
374
+ now the PRIMARY mockup tier and errs on the side of mocking; feature-design
375
+ is the FALLBACK, used only for minor surfaces not covered upstream. The
376
+ `--only-questions` modes always run the mockup pass — they're the visual
377
+ alignment gate, not just the textual one.
378
+
379
+ - **`epic-design`** Phase 4.6 — primary mockup tier: palette + screens
380
+ (for every net-new surface) + flows (for every journey). Under
381
+ autopilot, defers with a `## UI alignment deferred` note. Child feature
382
+ template now carries `## Mockups` for inheritance.
383
+ - **`epic-design --only-questions`** — mockup pass added to the workflow.
384
+ - **`feature-design`** Phase 4.6 — fallback tier. Inherits parent-epic
385
+ mocks by reference; only invokes ux-ui-design for surfaces upstream
386
+ missed.
387
+ - **`feature-design --only-questions`** — Phase 4.6 added with the same
388
+ fallback rules.
389
+ - **`scope`** Phase 1.8 — large-scope + UI actively invokes `:palette`
390
+ during the Phase 4 roll-forward and `:flows` for cross-feature
391
+ journeys clear at scope time.
392
+ - **`ux-ui-design:ux-ui-principles`** — new "Where in the workflow to mock"
393
+ section encoding the tier ordering; description rewritten in ALWAYS
394
+ style to match agile-workflow conventions.
395
+
396
+ ## v0.4.3 — orchestrator becomes default, scope-driven, cross-feature
397
+
398
+ Shifts the routing for `stage: implementing` work so the orchestrator is the
399
+ default path and is no longer scoped to a single parent feature.
400
+
401
+ - **`implement-orchestrator`** — now the default for everything at
402
+ `stage: implementing` (features with or without children, lone stories,
403
+ parentless items). Accepts a scope arg in any of four forms: a feature id
404
+ (current behavior), an epic id, `--all`, or an explicit list of item ids.
405
+ Phase 1 grounding reads every parent feature in the work set, not just
406
+ one. Phase 2 builds a unified `depends_on` graph across the whole scope —
407
+ cross-feature dependencies are first-class, not partitioned by parent.
408
+ Phase 3 introduces a file-overlap conflict check before each wave; either
409
+ serialize conflicting items into a later sub-wave or spawn the wave with
410
+ `isolation: "worktree"`. Phase 9 advances **every** parent feature whose
411
+ children are all at `review` (multi-parent), and leaves parents with
412
+ out-of-scope implementing children at `implementing` until a later run
413
+ finishes them.
414
+ - **`implement`** — repositioned as the inline alternative. Same single-stride
415
+ workflow as before; the trigger now points at the orchestrator as the
416
+ default and lists the cases where inline is the right call (small / focused
417
+ work, user explicitly asks to land inline, mid-flow continuation). No
418
+ numeric thresholds — the choice stays a judgment call.
419
+ - **`autopilot`** Phase 5 — when the picked anchor is at `stage: implementing`,
420
+ hands the **full autopilot scope** (epic id, `--all`, or the reduced list
421
+ from a free-text directive) to the orchestrator in one call. The
422
+ orchestrator drains the entire in-scope implementing band, advancing
423
+ parents along the way. Phase 4 documents that the picked item is an
424
+ "anchor" only on the implementing branch — drafting and review continue
425
+ to be processed one item at a time.
426
+ - **`docs/ARCHITECTURE.md`** — pipeline diagram, queue-selection algorithm,
427
+ and skill table updated to reflect orchestrator-as-default and the
428
+ scope-driven shape. Queue filter expanded to include `review` (autopilot
429
+ has handled review autonomously since v0.3.x; the doc was stale).
430
+
431
+ The throughput motivation: with stories defaulting to the orchestrator, a
432
+ ready story from feature A and a ready story from feature B can pack into the
433
+ same 3-agent wave instead of running sequentially. Single-feature scopes
434
+ behave exactly like before — only multi-feature or `--all` scopes see the new
435
+ fan-out.
436
+
437
+ ## v0.4.2 — human-facing work-board view
438
+
439
+ Adds a slash command and renderer that produce a self-contained HTML
440
+ kanban board from the project's `.work/` substrate.
441
+
442
+ - **`/agile-workflow:board`** — new slash command. Walks `.work/`, parses
443
+ every item's frontmatter, and writes a single HTML file (no external
444
+ assets) with five columns mapped from stage: Backlog → Drafting → In
445
+ Progress → Review → Done. Auto-opens via `xdg-open` / `open` /
446
+ `wslview` / `start` when a launcher is available.
447
+ - **`scripts/work-board.sh`** — pure-bash renderer. Reuses the
448
+ `work-view` frontmatter parsing patterns. Item title and excerpt are
449
+ base64-encoded into the embedded JSON so quotes, backticks, and
450
+ `</script>` sequences round-trip safely. Computes ready/blocked
451
+ signals and surfaces unmet dependencies on each card.
452
+ - **`scripts/work-board.template.html`** — embedded CSS/JS, light + dark
453
+ modes via `prefers-color-scheme`, kind-colored card borders, kind/tag
454
+ filter pills, fuzzy id/title search ('/' to focus), and a collapsed
455
+ Releases section grouping items by `release_binding` /
456
+ `.work/releases/<version>/` directory.
457
+
458
+ Flags: `--print` (skip auto-open), `--out <path>` (custom output path),
459
+ `--serve [port]` (tiny `python3 -m http.server` for remote access).
460
+
461
+ The renderer is read-only. Re-run the command to refresh — there's no
462
+ watcher, no daemon, no background process. Stays consistent with the
463
+ substrate philosophy: items are the source of truth.
464
+
465
+ ## v0.4.1 — drop model: frontmatter, skills inherit session model
466
+
467
+ Removed the `model:` frontmatter field from every skill in the plugin
468
+ (previously a mix of `opus` and `sonnet`). Skills now run at whatever model
469
+ the session is on, rather than overriding for the current turn.
470
+
471
+ Rationale: the `model:` override changed the model only for the turn the
472
+ skill loaded into and reverted on the next prompt — useful only when a
473
+ specific tier was genuinely required. For a workflow plugin where the user
474
+ chooses the session model deliberately, forcing a different model per skill
475
+ fragmented behavior and silently consumed extra tier capacity. Inheriting
476
+ the session model is the right default. Sub-agent dispatches inside the
477
+ skill bodies still set model explicitly via the Agent tool's `model:`
478
+ parameter (e.g. the gates spawn opus sub-agents) — that's unchanged.
479
+
480
+ Also brings the frontmatter into alignment with the skilltap official
481
+ schema, which doesn't include `model:` at all.
482
+
483
+ ## v0.4.0 — gates run in opus sub-agents, autopilot drives continuously
484
+
485
+ Two related shifts in how heavy thinking gets dispatched and how the queue
486
+ runner paces itself.
487
+
488
+ - **Gates are sub-agent driven.** All five quality gates (`gate-security`,
489
+ `gate-cruft`, `gate-docs`, `gate-tests`, `gate-patterns`) now delegate
490
+ their full analysis to a single opus sub-agent. The orchestrator skill
491
+ becomes a thin shell: prepare bundle context, dispatch the sub-agent
492
+ with a methodology brief, convert the structured findings it returns
493
+ into items (or pattern files, for `gate-patterns`), commit. The heavy
494
+ reasoning runs in an isolated context — domain audits, drift detection,
495
+ contract extraction, pattern discovery — leaving the orchestrator's
496
+ context lean and the analysis quality consistent. Orchestrator model
497
+ dropped from `opus` to `sonnet` for the four item-producing gates;
498
+ `gate-patterns` was already sonnet.
499
+ - **Autopilot drives continuously; watchdog ticks are a hidden
500
+ safeguard.** Earlier wording around "session survives compaction" and a
501
+ "context approaching ~600k tokens" stop condition made the agent
502
+ self-throttle — pacing work against the watchdog ticks instead of
503
+ draining the queue. The skill now states explicitly: drive the queue
504
+ without pausing, the ticks are a harness-level safeguard you do not
505
+ reason about once scheduled, and there are exactly three stop
506
+ conditions (queue empty / truly stuck / user stop signal). Compaction
507
+ prediction is removed entirely — the harness handles it.
508
+
509
+ ## v0.3.2 — autopilot delegates to loop skill instead of prescribing args
510
+
511
+ v0.3.1 prescribed `Skill(skill="loop", args="30m /agile-workflow:autopilot
512
+ --resume")` directly in autopilot's Phase 1, which still over-specified the
513
+ invocation — agents either guessed at the args format or skipped the loop
514
+ skill entirely and went straight to CronCreate. Phase 1 and Phase 8 now just
515
+ say "load the loop skill via the Skill tool and follow its instructions" and
516
+ describe the desired schedule (30m + 3h, --resume), letting the loop skill
517
+ handle the actual scheduling mechanics.
518
+
519
+ ## v0.3.1 — autopilot /loop invocation fix
520
+
521
+ The `autopilot` skill instructed the agent to run `/loop ...` in bare code
522
+ blocks, which agents interpreted as bash commands and ran via the Bash tool —
523
+ silently dropping the watchdog scaffolding. Phase 1 (schedule) and Phase 8
524
+ (cancel) now spell out the `Skill` tool invocation explicitly:
525
+ `Skill(skill="loop", args="...")`.
526
+
527
+ ## v0.3.0 — autonomous review, caller awareness, orchestrator default
528
+
529
+ Autopilot now drains `stage: review` items end-to-end. Skills called by
530
+ autopilot use judgment instead of halting on ambiguity.
531
+
532
+ - **Autonomous review.** Autopilot routes `stage: review` items to the
533
+ existing `review` skill. No new `auto-review` skill — same skill, both
534
+ callers. When the last child reaches `done`, the review skill auto-advances
535
+ the parent (feature or epic) to `review`, so epic-rooted graphs drain.
536
+ - **Circuit-breaker.** After an item bounces `implementing → review →
537
+ implementing` twice, autopilot halts on it (leaves stage at review,
538
+ escalates in summary, skips).
539
+ - **Caller awareness (principles Part III).** Rule: if
540
+ `/agile-workflow:autopilot` was invoked this session, no AskUserQuestion,
541
+ no halts on ambiguity — judgment + log. Otherwise, asking is fine. Hard
542
+ halts only for substrate-missing, foundation-missing, depends_on cycle,
543
+ contradictory state. Applied to `feature-design`, `perf-design`,
544
+ `implement`, `implement-orchestrator`, `review`.
545
+ - **Orchestrator is the default for features.** Single-story features run
546
+ as a one-agent wave; multi-story as multiple waves capped at 3 parallel
547
+ per wave (no upper limit on waves). Per-story prompts mirror `implement`'s
548
+ workflow (land mode, dep check, design-flaw rollback). `implement`
549
+ standalone is now for stories and feature-without-children.
550
+ - **Free-text autopilot scope.** `autopilot finish the dangling work` etc.
551
+ is interpreted as a scope directive, logged in the run summary.
552
+ - **Convert: per-design classification.** Each `docs/designs/` entry classified
553
+ into one of five buckets (drafting / implementing / review / done-shipped /
554
+ done-archived) with sensible defaults and user confirmation.
555
+ - **Convert: capture in-flight work.** Phase 8.5 clusters uncommitted
556
+ working-tree files via Explore and scopes each cluster as a
557
+ `stage: implementing` feature. `implement`'s land mode lands them.
558
+ - **Story heuristics.** `feature-design` Phase 7 now uses an explicit
559
+ four-condition test (parallelizable / non-trivial deps / multi-session /
560
+ heterogeneous acceptance) instead of vague "skip if small."
561
+ - **Hook timezone.** `updated:` bump uses local time, not UTC.
562
+
563
+ ## v0.2.0 — design family covers epics
564
+
565
+ Autopilot can now drain epic-rooted graphs end-to-end. Previously, an epic at
566
+ `stage: drafting` was a dead end for autopilot (the `design` skill only
567
+ handled features, so autopilot's queue would empty out as soon as the only
568
+ in-scope item was an undecomposed epic).
569
+
570
+ - **New skill: `epic-design`** — decomposes an epic at `stage: drafting` into
571
+ child features at `stage: drafting` with declared `depends_on` chains,
572
+ written into the epic body. Mirrors `epicize` one level down.
573
+ - **Renamed: `design` → `feature-design`** — for symmetry with the new
574
+ `epic-design`. Breaking change for any external invokers using
575
+ `/agile-workflow:design`; update to `/agile-workflow:feature-design`.
576
+ - **Autopilot routing updated** — `kind: epic` at `drafting` now routes to
577
+ `epic-design` instead of being skipped. Only `.work/backlog/` is out of
578
+ scope for autopilot.
579
+ - Cross-references in `scope`, `epicize`, `refactor-design`, `perf-design`,
580
+ `implement-orchestrator`, ARCHITECTURE.md, MIGRATION.md, README, and the
581
+ agile-workflow guide updated to the new names.
582
+
583
+ ## v0.1.0 — initial release
584
+
585
+ Substrate-based work-tracking plugin. Sibling to `workflow`.
586
+
587
+ - 25 skills covering ideation, conversion, scoping, design (greenfield + refactor + perf), implementation, review, gates, release, and autopilot
588
+ - `work-view` bash script for fast queries by stage, tag, kind, parent, release binding, and dependency state
589
+ - Two hooks (SessionStart queue snapshot, PostToolUse `updated:` auto-bump), both flag-gated by `.work/CONVENTIONS.md` presence
590
+ - Foundation docs: VISION, SPEC, ARCHITECTURE, PRINCIPLES, MIGRATION
591
+ - Pre-1.0 signals that frontmatter and stage shapes may shift during the first real-project shakedown