@curdx/flow 2.2.3 → 2.2.5

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 (126) hide show
  1. package/.claude-plugin/marketplace.json +3 -2
  2. package/.claude-plugin/plugin.json +2 -1
  3. package/CHANGELOG.md +4 -566
  4. package/README.md +47 -113
  5. package/agents/flow-adversary.md +1 -0
  6. package/agents/flow-architect.md +9 -36
  7. package/agents/flow-brownfield-analyst.md +7 -18
  8. package/agents/flow-debugger.md +1 -0
  9. package/agents/flow-edge-hunter.md +1 -0
  10. package/agents/flow-executor.md +1 -0
  11. package/agents/flow-planner.md +11 -37
  12. package/agents/flow-product-designer.md +9 -41
  13. package/agents/flow-qa-engineer.md +1 -0
  14. package/agents/flow-researcher.md +9 -45
  15. package/agents/flow-reviewer.md +1 -0
  16. package/agents/flow-security-auditor.md +1 -0
  17. package/agents/flow-triage-analyst.md +1 -0
  18. package/agents/flow-ui-researcher.md +1 -0
  19. package/agents/flow-ux-designer.md +1 -0
  20. package/agents/flow-verifier.md +1 -0
  21. package/cli/doctor-workflow.js +5 -914
  22. package/cli/install-companions.js +8 -8
  23. package/cli/lib/doctor-claude-settings.js +736 -0
  24. package/cli/lib/doctor-runtime-environment.js +196 -0
  25. package/cli/lib/semver.js +14 -0
  26. package/cli/uninstall-actions.js +323 -0
  27. package/cli/uninstall.js +9 -253
  28. package/gates/coverage-audit-gate.md +1 -3
  29. package/gates/tdd-gate.md +0 -6
  30. package/gates/verification-gate.md +1 -5
  31. package/knowledge/artifact-output-discipline.md +24 -0
  32. package/knowledge/artifact-summary-contracts.md +50 -0
  33. package/knowledge/execution-strategies.md +6 -4
  34. package/knowledge/poc-first-workflow.md +2 -6
  35. package/knowledge/spec-driven-development.md +0 -4
  36. package/knowledge/systematic-debugging.md +0 -6
  37. package/knowledge/two-stage-review.md +8 -6
  38. package/knowledge/wave-execution.md +2 -1
  39. package/package.json +2 -2
  40. package/schemas/agent-frontmatter.schema.json +4 -0
  41. package/skills/brownfield-index/SKILL.md +14 -20
  42. package/skills/brownfield-index/references/applicability.md +12 -0
  43. package/skills/brownfield-index/references/handoff.md +8 -0
  44. package/skills/brownfield-index/references/index-contract.md +10 -0
  45. package/skills/browser-qa/SKILL.md +15 -35
  46. package/skills/browser-qa/references/handoff.md +6 -0
  47. package/skills/browser-qa/references/prerequisites.md +10 -0
  48. package/skills/browser-qa/references/qa-contract.md +20 -0
  49. package/skills/cancel/SKILL.md +20 -61
  50. package/skills/cancel/references/destructive-mode.md +17 -0
  51. package/skills/cancel/references/reporting.md +18 -0
  52. package/skills/cancel/references/state-recovery.md +30 -0
  53. package/skills/cancel/references/target-resolution.md +7 -0
  54. package/skills/debug/SKILL.md +23 -87
  55. package/skills/debug/references/context-gathering.md +11 -0
  56. package/skills/debug/references/failure-guard.md +25 -0
  57. package/skills/debug/references/intake.md +12 -0
  58. package/skills/debug/references/phase-workflow.md +34 -0
  59. package/skills/debug/references/reporting.md +20 -0
  60. package/skills/epic/SKILL.md +18 -50
  61. package/skills/epic/references/epic-artifacts.md +20 -0
  62. package/skills/epic/references/epic-intake.md +9 -0
  63. package/skills/epic/references/slice-handoff.md +16 -0
  64. package/skills/fast/SKILL.md +34 -102
  65. package/skills/fast/references/applicability.md +25 -0
  66. package/skills/fast/references/clarification.md +20 -0
  67. package/skills/fast/references/execution-contract.md +56 -0
  68. package/skills/help/SKILL.md +26 -132
  69. package/skills/help/references/dispatch.md +20 -0
  70. package/skills/help/references/overview.md +39 -0
  71. package/skills/help/references/troubleshoot.md +47 -0
  72. package/skills/help/references/workflow.md +37 -0
  73. package/skills/implement/SKILL.md +61 -237
  74. package/skills/implement/references/error-recovery.md +36 -0
  75. package/skills/implement/references/linear-execution.md +32 -0
  76. package/skills/implement/references/preflight.md +43 -0
  77. package/skills/implement/references/progress-contract.md +32 -0
  78. package/skills/implement/references/state-init.md +33 -0
  79. package/skills/implement/references/stop-hook-execution.md +36 -0
  80. package/skills/implement/references/strategy-router.md +38 -0
  81. package/skills/implement/references/subagent-execution.md +43 -0
  82. package/skills/init/SKILL.md +26 -95
  83. package/skills/init/references/gitignore-and-health.md +26 -0
  84. package/skills/init/references/next-steps.md +22 -0
  85. package/skills/init/references/preflight.md +15 -0
  86. package/skills/init/references/scaffold-contract.md +27 -0
  87. package/skills/review/SKILL.md +45 -153
  88. package/skills/review/references/optional-passes.md +48 -0
  89. package/skills/review/references/preflight.md +38 -0
  90. package/skills/review/references/report-contract.md +49 -0
  91. package/skills/review/references/reporting.md +20 -0
  92. package/skills/review/references/stage-execution.md +32 -0
  93. package/skills/security-audit/SKILL.md +16 -34
  94. package/skills/security-audit/references/audit-contract.md +21 -0
  95. package/skills/security-audit/references/gate-handoff.md +8 -0
  96. package/skills/security-audit/references/scope-and-depth.md +9 -0
  97. package/skills/spec/SKILL.md +55 -182
  98. package/skills/spec/references/artifact-landing.md +31 -0
  99. package/skills/spec/references/phase-execution.md +50 -0
  100. package/skills/spec/references/planning-review.md +31 -0
  101. package/skills/spec/references/preflight-and-routing.md +46 -0
  102. package/skills/spec/references/reporting.md +21 -0
  103. package/skills/start/SKILL.md +40 -123
  104. package/skills/start/references/branch-routing.md +51 -0
  105. package/skills/start/references/mode-semantics.md +12 -0
  106. package/skills/start/references/preflight.md +13 -0
  107. package/skills/start/references/reporting.md +20 -0
  108. package/skills/start/references/state-seeding.md +44 -0
  109. package/skills/start/references/workflow-handoff.md +26 -0
  110. package/skills/status/SKILL.md +17 -61
  111. package/skills/status/references/gather-contract.md +27 -0
  112. package/skills/status/references/health-rules.md +27 -0
  113. package/skills/status/references/output-contract.md +24 -0
  114. package/skills/status/references/preflight.md +10 -0
  115. package/skills/status/references/recovery-hints.md +18 -0
  116. package/skills/ui-sketch/SKILL.md +15 -34
  117. package/skills/ui-sketch/references/brief-intake.md +10 -0
  118. package/skills/ui-sketch/references/iteration-handoff.md +5 -0
  119. package/skills/ui-sketch/references/variant-contract.md +15 -0
  120. package/skills/verify/SKILL.md +31 -86
  121. package/skills/verify/references/evidence-workflow.md +39 -0
  122. package/skills/verify/references/output-contract.md +23 -0
  123. package/skills/verify/references/preflight.md +11 -0
  124. package/skills/verify/references/report-handoff.md +35 -0
  125. package/skills/verify/references/strict-mode.md +12 -0
  126. package/README.zh.md +0 -160
@@ -6,7 +6,7 @@
6
6
  },
7
7
  "metadata": {
8
8
  "description": "Claude Code Discipline Layer — spec-driven workflow + goal-backward verification + Karpathy 4 principles enforced via gates. Stops Claude from faking \"done\" on non-trivial features.",
9
- "version": "2.2.3"
9
+ "version": "2.2.5"
10
10
  },
11
11
  "allowCrossMarketplaceDependenciesOn": [
12
12
  "context7-marketplace"
@@ -16,7 +16,7 @@
16
16
  "name": "curdx-flow",
17
17
  "source": "./",
18
18
  "description": "Claude Code Discipline Layer — spec-driven workflow + goal-backward verification + Karpathy 4 principles enforced via gates. Stops Claude from faking \"done\" on non-trivial features.",
19
- "version": "2.2.3",
19
+ "version": "2.2.5",
20
20
  "author": {
21
21
  "name": "wdx",
22
22
  "email": "bydongxin@gmail.com"
@@ -40,6 +40,7 @@
40
40
  "dependencies": [
41
41
  {
42
42
  "name": "context7-plugin",
43
+ "version": "^1.0.0",
43
44
  "marketplace": "context7-marketplace"
44
45
  }
45
46
  ]
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "curdx-flow",
3
- "version": "2.2.3",
3
+ "version": "2.2.5",
4
4
  "description": "Claude Code Discipline Layer — spec-driven workflow + goal-backward verification + Karpathy 4 principles enforced via gates. Stops Claude from faking \"done\" on non-trivial features.",
5
5
  "author": {
6
6
  "name": "wdx",
@@ -40,6 +40,7 @@
40
40
  "dependencies": [
41
41
  {
42
42
  "name": "context7-plugin",
43
+ "version": "^1.0.0",
43
44
  "marketplace": "context7-marketplace"
44
45
  }
45
46
  ]
package/CHANGELOG.md CHANGED
@@ -1,569 +1,7 @@
1
1
  # Changelog
2
2
 
3
- All notable changes to CurdX-Flow will be documented here.
3
+ ## 2.2.4
4
4
 
5
- ## [2.2.0] - 2026-04-24
6
-
7
- ### Added
8
-
9
- - **Plugin manifest dependency declaration** — `.claude-plugin/plugin.json` declares `skills/`, `agents/`, `hooks/hooks.json`, and a cross-marketplace dependency on `context7-plugin`. `marketplace.json` opts into `allowCrossMarketplaceDependenciesOn: ["context7-marketplace"]` and mirrors the dependency on the plugin entry. Claude Code resolves the dependency during install.
10
- - **Plugin `bin/` PATH wrapper** — new `bin/curdx-flow` POSIX `sh` wrapper exposes the CLI on the Claude Code plugin `bin/` PATH, so the in-session Bash tool can invoke `curdx-flow` without `npx`.
11
- - **Extension contract layer** — five JSON schemas (`plugin-manifest`, `skill-frontmatter`, `agent-frontmatter`, `gate-frontmatter`, `hooks`) plus `scripts/validate-plugin-contracts.mjs` and four contract test suites enforce structural correctness in CI. `prepublishOnly` runs the validator before `npm test`.
12
- - **`addRequiredPluginMarketplaces`** — split out of `installRequiredPlugins`. The install flow now pre-registers required companion marketplaces immediately after `curdx-flow-marketplace`, so the cross-marketplace dependency resolves cleanly during the curdx-flow plugin install step.
13
- - **Doctor: stale Claude Code warning + plugin error surfacing** — `curdx-flow doctor` warns when the local `claude` CLI is below `2.1.110` (the minimum version with modern plugin dependency resolution and `bin/` PATH support), and surfaces per-plugin load errors propagated from `claude plugin list --json`.
14
- - **`cli/lib/semver.js`** — extracted from `install-self-update.js`. Adds `isVersionAtLeast` for the doctor warning. The updater re-exports for backward compat.
15
-
16
- ### Changed
17
-
18
- - **Skill spec alignment** — primary slash workflows (`init`, `start`, `spec`, `implement`, `verify`, `review`, `fast`, `debug`, `help`) gain `disable-model-invocation: true` so the model cannot auto-trigger them outside an explicit slash. Specialty skills (`epic`, `browser-qa`, `ui-sketch`, `security-audit`, `brownfield-index`) split trigger phrases into `when_to_use` and keep `description` short.
19
- - **`Task` → `Agent` tool naming** — every `allowed-tools`, `Task(...)` call site, and prose mention in `skills/`, `knowledge/`, and `templates/` updated to the current Claude Code `Agent` tool nomenclature.
20
- - **chrome-devtools MCP namespace** — `agents/flow-{qa-engineer,ui-researcher,verifier}.md` and `skills/{browser-qa,verify}` updated to `mcp__chrome_devtools__*` (underscore namespace) and the renamed tool surface (`new_page`, `navigate_page`, `take_screenshot`, `list_console_messages`, `list_network_requests`, `take_snapshot`, `lighthouse_audit`).
21
- - **Doctor: duplicate-MCP section** renamed from "Legacy plugin-bundled MCPs still present" to "Duplicate MCP registrations", with ownership-aware remediation (the official Context7 plugin gets `claude mcp remove --scope user` guidance, the migrated curdx-flow MCPs get the `claude plugin update` guidance).
22
- - **Templates** — `templates/{CONTEXT,PROJECT,progress,config}.md.tmpl` reference the current `/curdx-flow:*` slash names; `templates/config.json.tmpl` removes the retired `sketch` / `autonomous` modes and the retired `simplicity-gate` / `hard-gate` gates, and adds `wave_fail_policy`.
23
- - **`schemas/config.schema.json`** — new `gateName` definition enumerates the eight real gates; `gates.always_on / standard_mode / enterprise_mode` switch to `$ref` on it. Added `execution.wave_fail_policy`.
24
- - **`schemas/spec-state.schema.json`** — added `quickMode` boolean (the hook-controlled no-ask flag); fixed `goal` description to reference `/curdx-flow:start`.
25
- - **`hooks/scripts/quick-mode-guard.sh`** — stop treating the retired `mode=autonomous` as quick mode. Only `quickMode=true` denies `AskUserQuestion`. Regression test added.
26
- - **`agent-preamble/preamble.md`** — drops the "commands" wording and documents the quick-mode `AskUserQuestion` behavior.
27
-
28
- ### Removed
29
-
30
- - **`CLAUDE.md`** — blanked. The L1 mind baseline now lives in `hooks/scripts/inject-karpathy.sh` (injected on every SessionStart) and the protocol section that the installer writes to `~/.claude/CLAUDE.md`. The repo file added drift surface without adding signal. The matching `language-rule-scan` allow-list entry is removed.
31
- - **`mode=autonomous`** — fully retired. The hook no longer treats it as quick mode, the templates no longer advertise it, and `schema-drift.test.js` regression-locks both.
32
-
33
- ### Required
34
-
35
- - **Claude Code 2.1.110+** — the plugin dependency resolution and the plugin `bin/` PATH support require this baseline. The installer warns if your local `claude` is older.
36
-
37
- ## [2.0.21] - 2026-04-23
38
-
39
- ### Fixed
40
-
41
- - `cli/install-workflow.js` + `cli/install-self-update.js` — after `npm install -g @curdx/flow@latest`, the self-update restart spawned a bare `curdx-flow`, which fails under `npx` (PATH not guaranteed) or when the global bin dir isn't on PATH, surfacing as `sh: curdx-flow: command not found`. `checkAndUpdateSelf` now returns the absolute entry path of the freshly installed package, and the restart re-launches with `process.execPath` + that absolute script path. No PATH dependency, no shell involvement. Two new unit tests assert the spawn contract.
42
- - `README.zh.md` — corrected the `smart-ralph` credit URL. The previously listed `Nibzard/smart-ralph` 404s; the repo matching the described feature set ("Spec-driven + Ralph Wiggum loop + Claude Code plugin") is `tzachbon/smart-ralph`.
43
-
44
- ## [2.1.0] - 2026-04-23
45
-
46
- ### Changed (commands → skills migration; zero user-visible change)
47
-
48
- All 9 slash workflows migrate from `commands/*.md` to
49
- `skills/<name>/SKILL.md`, per Anthropic's recommended plugin layout.
50
- `/curdx-flow:<name>` still resolves to the same slash paths with the
51
- same arguments and output. File history is preserved via `git mv`.
52
-
53
- - `skills/implement/SKILL.md` — progressive-disclosure split to
54
- `skills/implement/references/wave-execution.md`; body reduced
55
- from 381 to 240 lines.
56
- - `/curdx-flow:verify` and `/curdx-flow:debug` — route via
57
- Anthropic's native `context: fork + agent:` mechanism instead of
58
- hand-rolled `Task()` dispatch prose. `agents/flow-verifier.md`
59
- and `agents/flow-debugger.md` are unchanged.
60
- - `/curdx-flow:review --devex` — new optional flag; wires the
61
- previously caller-less `gates/devex-gate.md` into the reviewer
62
- dispatch.
63
- - `cli/install-companions.js` — split by concern into four modules
64
- (`install-required-plugins.js`, `install-bundled-mcps.js`,
65
- `install-recommended-plugins.js`, `install-context7-config.js`).
66
- `install-companions.js` becomes a re-export barrel; callers in
67
- `cli/install.js` and `cli/install-workflow.js` unchanged.
68
- - `package.json.files` — drops `"commands/"` (directory removed);
69
- `"skills/"` retained.
70
- - `.gitignore` — anchors the `references/` pattern to the repo root
71
- (`/references/`) so `skills/<name>/references/` progressive-disclosure
72
- directories ship with the plugin.
73
-
74
- ### Added (internal test coverage)
75
-
76
- - `test/skill-surface-parity.test.js` — snapshot of 14 unqualified
77
- slash names (9 migrated + 5 pre-existing); pins the public
78
- command surface across every refactor stage.
79
- - `test/schema-drift.test.js` — strict equality between
80
- `schemas/*.json` mode enum and documented v2 modes.
81
- - `test/registry-session-start-parity.test.js` — strict equality
82
- between `hooks/scripts/session-start.sh` plugin list and
83
- `cli/registry.js` RECOMMENDED_PLUGINS.
84
- - `test/language-rule-scan.test.js` — no CJK characters outside
85
- `cli/**` and an explicit small allow-list.
86
- - `test/install-required-plugins.test.js`,
87
- `test/install-bundled-mcps.test.js`,
88
- `test/install-recommended-plugins.test.js`,
89
- `test/install-context7-config.test.js` — module-import smoke
90
- tests for the four split install modules.
91
- - `test/pack-tarball-smoke.test.js` — `npm pack --dry-run`
92
- assertions that `commands/` is absent, 14 SKILL.md files and
93
- `skills/implement/references/` ship, and every top-level
94
- infrastructure directory is present in the tarball (Acceptance
95
- #18 from `docs/refactor-plan.md`).
96
-
97
- Total test count: 85 → 104, all green.
98
-
99
- ### Fixed (drift cleanup)
100
-
101
- - `schemas/spec-state.schema.json`, `schemas/config.schema.json` —
102
- remove unreachable `sketch` and `autonomous` mode enum values.
103
- Both were retired on the user-facing surface in v2 but never
104
- cleaned from the schemas (see `MIGRATION.md`).
105
- - `hooks/scripts/session-start.sh` — adds `chrome-devtools-mcp` to
106
- the dependency-check list, closing the beta.8 drift that
107
- `cli/registry.js` was supposed to prevent.
108
- - `agent-preamble/preamble.md` — removes an empty
109
- `| Task | Guideline |` table header left behind by a prior edit.
110
- - `README.zh.md` — masthead paragraph rewritten from the pre-v2
111
- "meta-framework" positioning to the current "discipline layer"
112
- framing, parallel to `README.md`.
113
- - `cli/protocols-body.md` — explicit carve-out paragraph allowing
114
- `cli/` installer menus to be bilingual; every other layer stays
115
- English for AI / agent adaptation.
116
-
117
- ### Fixed (hooks — previously pending)
118
-
119
- - `hooks/hooks.json` + `hooks/scripts/inject-karpathy.sh` — migrated the L1 baseline injector from the `InstructionsLoaded` event to `SessionStart` with `matcher: "startup|clear|compact"`. Per the Claude Code hooks docs (code.claude.com/docs/en/hooks), `InstructionsLoaded` is an observability-only event: its hook schema has no `hookSpecificOutput` field, so the injector's `{"hookSpecificOutput":{"hookEventName":"InstructionsLoaded","additionalContext":…}}` payload was rejected at session boot with `Hook JSON output validation failed — (root): Invalid input`, producing the `SessionStart:startup hook error` banner on every Claude Code launch. The `startup|clear|compact` matcher preserves the original "baseline survives compaction" intent. Also updated `docs/architecture.md` and `README.zh.md` hook-event inventories.
120
-
121
- ### BREAKING
122
-
123
- - **`context7` and `sequential-thinking` moved from plugin-bundled MCPs to user-level MCPs.** Previously `.claude-plugin/plugin.json` declared both in `mcpServers`, so Claude Code auto-registered them as `plugin:curdx-flow:context7` and `plugin:curdx-flow:sequential-thinking` when the plugin installed. This is no longer the case — the `mcpServers` block is gone. Instead, `curdx-flow install` now runs `claude mcp add context7 …` + `claude mcp add sequential-thinking …` against the user's `~/.claude.json`, which keeps them as standard user-level registrations named `context7` and `sequential-thinking`.
124
-
125
- **Why**: every early adopter who ran `claude mcp add context7 -- npx -y @upstash/context7-mcp --api-key ctx7sk-…` before installing curdx-flow ended up with *both* entries side-by-side — doubling MCP processes, making API-key routing unpredictable (random between free-tier plugin copy and paid user copy), and forcing an awkward env-var migration path. User-level registration matches the way every other MCP in the ecosystem is installed, keeps tool names standard (`mcp__context7__*` instead of `mcp__plugin_curdx-flow_context7__*`), and lets users put an `--api-key` directly in their own entry without any env-var indirection. Every agent / knowledge doc / command in the repo already calls the standard tool-name form, so this is a **zero-change-for-callers** migration.
126
-
127
- **Migration for existing users**:
128
-
129
- ```bash
130
- # Upgrade the plugin — this removes the plugin-bundled MCPs and
131
- # registers them at user-level (preserving any existing user-level entry
132
- # with a custom --api-key).
133
- npx @curdx/flow@latest upgrade
134
-
135
- # Restart Claude Code so the plugin manifest reloads.
136
- ```
137
-
138
- After upgrade, `claude mcp list` will show `context7` and
139
- `sequential-thinking` (user-level) but NOT `plugin:curdx-flow:context7` etc.
140
- `npx @curdx/flow doctor` confirms with "user-level (standard)" in the
141
- "MCP Servers" section.
142
-
143
- ### Added
144
-
145
- - `cli/registry.js` exports a new `BUNDLED_MCPS` constant — the source-of-truth list of MCPs that `install` registers at user-level and `uninstall` optionally removes.
146
- - `cli/install.js` Step 3.5 — registers the required MCPs via `claude mcp add`. Detects pre-existing user-level entries (e.g. your hand-configured context7 with an API key) and preserves them instead of overwriting.
147
- - `cli/uninstall.js` Step 4.5 — asks whether to `claude mcp remove` the registered MCPs (default: no, because other tools may depend on them).
148
- - `cli/doctor.js` — now reports "user-level (standard)" for each required MCP when it's registered the right way, and "(legacy)" with a migration hint when the old plugin-bundled form is still active.
149
-
150
- ### Changed
151
-
152
- - The "Duplicate MCP" warning in `doctor` (added in beta.11) is now framed as "Legacy plugin-bundled MCPs still present" with a concrete migration command, since the new architecture reserves duplication strictly for the upgrade-transition window.
153
- - `docs/getting-started.md` "Optional: use your paid context7 API key" section rewritten around the user-level path (add `--api-key` to your `claude mcp add` command) since env-var indirection is no longer the only way to route a key to the plugin copy.
154
-
155
- ## [2.0.0-beta.11] - 2026-04-22
156
-
157
- ### Added
158
-
159
- - `cli/doctor.js` detects when a user-level MCP in `~/.claude.json` (typically `context7` added via `claude mcp add …`) duplicates a plugin-bundled MCP from `plugin.json` (`plugin:curdx-flow:context7`). Backed by `cli/utils.js:readUserMcpConfig()` + `findDuplicateMcps()` and 3 new tests in `test/utils.test.js`.
160
- - `docs/getting-started.md` "Optional: use your paid context7 API key" section documenting the env-var path.
161
-
162
- ## [2.0.0-beta.10] - 2026-04-21
163
-
164
- ### Fixed
165
-
166
- - `cli/utils.js` — `listMcps` rewritten to handle the actual `claude mcp list` format captured from claude 2.1.117. The previous regex matched only a single kebab-case token before the first colon, so `plugin:curdx-flow:context7: npx ...` parsed as name=`plugin` and silently dropped the rest. New parser exports `{ name, plugin, fullName, status, command }` and is fixture-tested in `test/utils.test.js`.
167
- - `cli/doctor.js` — MCP presence check now accepts both standalone (`context7`) and plugin-bundled (`plugin:curdx-flow:context7`) registrations, with source in the status line. Fixes the same class of false-positive that bit `chrome-devtools` in beta.7. Also gated `--verbose` raw-plugin dump behind `claude` being on PATH, so it no longer runs a meaningless empty child when the CLI is absent.
168
- - `cli/install.js` — step counter was `1/4`..`4/4` but there are five steps; `Step 5: inject global protocols` was emitted via bare `console.log` so the progress display lied. All five steps now use `log.step(N, 5, ...)`. Also switched `⏳ Installing` and `✅ Install complete` glyphs to the `▸` / `✓` symbols used elsewhere in the project's `log.*` helpers.
169
- - `cli/uninstall.js` — same `⏳` → `▸` glyph normalisation.
170
- - `cli/protocols.js` + `cli/utils.js` + `cli/uninstall.js` — switched from `process.env.HOME || ""` to `os.homedir()`. `$HOME` is only guaranteed in interactive login shells; CI containers, some `docker exec` invocations, and non-login spawns can leave it empty, which resolved `GLOBAL_CLAUDE_MD` to `/.claude/CLAUDE.md` and broke `ensureRuntimeInPath` runtime candidate lookup.
171
- - `bin/curdx-flow.js` — `main()` was called unconditionally at module scope, so `import()` from a test would spawn the CLI, parse the test runner's argv, and `exit(1)`. Now guarded by the ESM direct-invocation idiom (`import.meta.url === pathToFileURL(process.argv[1]).href`). Added one real-import test.
172
- - `.claude-plugin/plugin.json` — `homepage` and `repository` pointed at `github.com/wdx/curdx-flow` but the authoritative remote is `github.com/curdx/curdx-flow`. Plugin-marketplace UI clicks previously 404'd. Aligned to the real owner.
173
- - `.github/workflows/npm-publish.yml` — bumped `actions/setup-node` from Node 20 to Node 22 LTS ahead of the 2026-06-02 Node 20 removal.
174
- - `scripts/release.sh` — lockstep bump of `plugin.json` + `marketplace.json` now parses both files in memory before writing either, with `git checkout -- package.json` auto-revert on failure. Previously the second file could fail to write while the first was already disk-committed.
175
-
176
- ### Changed
177
-
178
- - `commands/start.md` — replaced the brittle `xargs`/`awk`/`sed` flag-parsing block with a model-directed parse that tolerates quoted strings in `$ARGUMENTS` (e.g. `my-feature "Fix user's login bug"` no longer hits `xargs: unmatched quote`).
179
- - `commands/init.md` — Step 5 used to say "Run `npx @curdx/flow doctor`" but the slash command runs inside Claude Code where a spawned CLI's output doesn't render cleanly. Reframed as "verify inline + suggest the user run the CLI in a separate terminal if they want the full report."
180
- - `commands/implement.md` — replaced `❌` emoji with `✗` to match the project's own `log.err` helper.
181
- - `docs/architecture.md` — Hook System section and CLI layout were **entirely fabricated** (listed non-existent hooks `pre-spec.sh` / `post-implement.sh` / `pre-verify.sh` / `post-review.sh` / `on-gate-fail.sh` and bogus paths `cli/bin/flow` / `cli/commands/install.js` / `cli/lib/…`). Rewritten to match the real `hooks/scripts/` layout (4 hooks: session-start / inject-karpathy / quick-mode-guard / stop-watcher) and real `bin/` + `cli/` paths including `cli/registry.js` and the `test/` directory.
182
-
183
- ### Added
184
-
185
- - `test/utils.test.js` grew 5 fixture tests for the new `parseMcpList` against a captured `claude mcp list` output.
186
- - `test/cli-entrypoints.test.js` — 5 smoke tests that each dynamically-import `cli/doctor.js` / `cli/install.js` / `cli/upgrade.js` / `cli/uninstall.js` and assert the expected top-level function exports. Guards against the "deleted an import but forgot the consumer" class of regression at CI time. Plus one test that imports `bin/curdx-flow.js` now that it no longer runs `main()` at module load.
187
-
188
- ### Removed (docs compliance)
189
-
190
- - Chinese trigger phrases from `skills/*/SKILL.md` descriptions (5 files). Keeping bilingual triggers violated the project's own language-separation rule (`CLAUDE.md`: "Documentation layer = English"). Semantic matching on the English phrases plus the model's own bilingual understanding covers the same invocation surface.
191
-
192
- ## [2.0.0-beta.9] - 2026-04-21
193
-
194
- ### Fixed (P0)
195
-
196
- - `cli/utils.js` — `findRuntime()` referenced `existsSync` without importing it; any user whose `bun`/`uv` was not on PATH hit `ReferenceError` during install or doctor.
197
- - `hooks/scripts/stop-watcher.sh` — `export STATE_FILE` was placed after the python heredoc, so the stop-hook execution strategy never activated. Moved the export before the heredoc.
198
- - `package.json` — `skills/` directory was missing from `files[]`; the 5 bundled skills were stripped from the published tarball.
199
- - `cli/uninstall.js` + `cli/upgrade.js` — `chrome-devtools-mcp` (added as a recommended plugin in beta.8) was missing from uninstall/upgrade lists, making it installable but uninstallable.
200
- - `cli/protocols.js` — `injectGlobalProtocols()` returned action `"created"` on both ternary branches, silently collapsing the append-to-existing-file case. Atomic write + corrupted-block detection added.
201
-
202
- ### Changed (structural)
203
-
204
- - New `cli/registry.js` is the single source of truth for recommended plugins. `install.js`, `uninstall.js`, `upgrade.js`, and `doctor.js` all import from it.
205
- - `commands/start.md` and `commands/spec.md` now produce `.state.json` files that match `schemas/spec-state.schema.json` (field names: `spec_name` / `created` / `updated` / `version`; initial phase is `research`, not the undefined `created`).
206
- - All python heredocs inside hook scripts use quoted delimiters (`<<'PY'`) and read `STATE_FILE` via `os.environ`, closing a shell→python code-injection surface triggered by unusual spec names.
207
-
208
- ### Added
209
-
210
- - First real test suite — `node --test`-based, 18 regression tests covering `cli/protocols.js`, `cli/registry.js`, and `cli/utils.js`. Wired into `package.json` `scripts.test` and the CI `publish` job so a failing test blocks `npm publish`.
211
-
212
- ### Removed
213
-
214
- - `hooks/scripts/fail-tracker.sh` and its `PostToolUseFailure` registration — the counter was written but never read by any consumer (the intended pua escalation was never implemented). Can be reintroduced when the consumer exists.
215
-
216
- ## [2.0.0-beta.1] - 2026-04-20
217
-
218
- ### BREAKING — Major redesign: Discipline Layer, not meta-framework
219
-
220
- v2 reframes the project from "AI engineering workflow meta-framework distilling 6 methodologies" into a focused **Claude Code Discipline Layer** — spec-driven workflow + goal-backward verification + Karpathy discipline. 30 slash commands became 9. 24 agents became 15.
221
-
222
- See [MIGRATION.md](./MIGRATION.md) for the full v1 → v2 command mapping.
223
-
224
- ### Removed — 21 slash commands
225
-
226
- Folded into `/curdx-flow:spec` via flags:
227
- - `/research`, `/requirements`, `/design`, `/tasks` → `/spec --phase=<name>`
228
- - `/plan-ceo`, `/plan-eng`, `/plan-design`, `/plan-dx`, `/autoplan` → `/spec --review[=<dim>]`
229
- - `/audit` → `/verify --strict`
230
-
231
- Moved to auto-invoked skills (also slash-callable by their skill name):
232
- - `/triage` → `epic` skill
233
- - `/qa` → `browser-qa` skill
234
- - `/sketch` → `ui-sketch` skill
235
- - `/security` → `security-audit` skill
236
- - `/index` → `brownfield-index` skill
237
-
238
- Moved to CLI-only (outside Claude Code):
239
- - `/doctor` → `npx @curdx/flow doctor`
240
- - `/install-deps` → `npx @curdx/flow install --all`
241
-
242
- Removed outright:
243
- - `/party` — gimmick, no measured value. Ask Claude directly for multi-perspective discussion.
244
- - `/discuss` — edit `.flow/STATE.md` directly to log decisions.
245
- - `/status` — use `/curdx-flow:start --list`, or read `.flow/specs/<name>/.state.json` directly.
246
- - `/switch` — folded into `/curdx-flow:start <spec-name>`.
247
- - `/spike` — folded into `/curdx-flow:fast "spike: <hypothesis>"`.
248
-
249
- ### Removed — 9 persona agents
250
-
251
- Mary, John, Winston, Amelia, Rachel, David, Oliver, Serena, Emma. Their voices merged into the corresponding `flow-*` functional agents. `/party` is gone too.
252
-
253
- ### Added — 5 auto-invoked skills
254
-
255
- Each skill has extensive trigger keywords in English and Chinese so Claude auto-invokes based on context. All are also slash-callable (`/curdx-flow:<skill-name>`).
256
-
257
- - `skills/epic/` — vertical-slice decomposition of large features
258
- - `skills/browser-qa/` — real-browser testing via chrome-devtools MCP
259
- - `skills/ui-sketch/` — UI design variant generation (uses `frontend-design` skill)
260
- - `skills/security-audit/` — OWASP + STRIDE + CVE scan
261
- - `skills/brownfield-index/` — map unfamiliar / legacy codebases
262
-
263
- ### Changed — expanded flag surface on core commands
264
-
265
- - `/curdx-flow:spec` gains `--phase=<X[,Y,...]>`, `--until=<phase>`, `--review[=<dim>]`, `--regenerate`, `--resume`
266
- - `/curdx-flow:start` gains `--resume`, `--list`, `--mode=<fast|standard|enterprise>` and now handles spec switching (absorbing v1 `/switch`)
267
- - `/curdx-flow:verify` gains `--strict` (multi-source coverage audit, absorbing v1 `/audit`)
268
- - `/curdx-flow:review` normalizes flags to `--stage=<1|2|both>`, `--adversarial`, `--edge-case`
269
-
270
- ### Changed — mode semantics
271
-
272
- Modes reduced from 4 (`sketch / fast / standard / enterprise`) to 3 (`fast / standard / enterprise`). `sketch` folded into the `ui-sketch` skill which runs regardless of mode.
273
-
274
- ### Unchanged (intentionally)
275
-
276
- - `.flow/` directory structure — fully backwards-compatible with v1 specs
277
- - 3 auto-installed MCPs (context7, sequential-thinking, chrome-devtools)
278
- - 5 hook events (SessionStart, InstructionsLoaded, Stop, PreToolUse, PostToolUseFailure)
279
- - 8 composable gates (karpathy, verification, tdd, coverage-audit, adversarial-review, edge-case, security, devex)
280
- - Templates (`templates/*.tmpl`) and their rendering pipeline
281
- - The CLI (install, doctor, upgrade, uninstall)
282
- - Global `~/.claude/CLAUDE.md` protocol injection
283
-
284
- ### Why
285
-
286
- Field feedback on v1:
287
- - Users couldn't discover commands — 30 options in the slash menu exceeds working memory
288
- - Claude Code auto-truncates slash descriptions once they exceed ~8 KB, hitting us at 30 commands
289
- - Peer tools (Spec Kit ~7, BMAD ~15, Aider ~15) ship with far fewer commands
290
- - "Meta-framework distilling 6 methodologies" is a maintainer concept, not a user value prop
291
- - The real value is **Karpathy discipline + goal-backward verification** — everything else is scaffolding
292
-
293
- v2 keeps the scaffolding (agents, gates, hooks, knowledge docs) but hides it behind the 9 commands that real users use.
294
-
295
- ## [1.1.1] - 2026-04-20
296
-
297
- ### Fixed
298
- - **Plugin load failure** — removed the explicit `"hooks": "./hooks/hooks.json"` declaration from `plugin.json`.
299
- Claude Code auto-loads the default path `hooks/hooks.json`; declaring it explicitly caused a duplicate-hook-file
300
- error. Symptom: `claude plugin list` showed `Status: ✘ failed to load`.
301
- - The local `claude --plugin-dir` mode does not trigger duplicate detection, so all 8 rounds of dev-time validation
302
- passed; only a real marketplace install exposed this bug (lesson from the first publish).
303
-
304
- ## [1.1.0] - 2026-04-20
305
-
306
- ### Changed — **BREAKING**: command namespacing
307
-
308
- All 31 commands moved from `/flow-<name>` to **`/curdx-flow:<name>`** (Claude Code's native plugin namespace).
309
-
310
- **Migration map (old → new)**:
311
- - `/flow-init` → `/curdx-flow:init`
312
- - `/flow-start` → `/curdx-flow:start`
313
- - `/flow-research` → `/curdx-flow:research`
314
- - `/flow-requirements` → `/curdx-flow:requirements`
315
- - `/flow-design` → `/curdx-flow:design`
316
- - `/flow-tasks` → `/curdx-flow:tasks`
317
- - `/flow-spec` → `/curdx-flow:spec`
318
- - `/flow-implement` → `/curdx-flow:implement`
319
- - `/flow-verify` → `/curdx-flow:verify`
320
- - `/flow-review` → `/curdx-flow:review`
321
- - `/flow-audit` → `/curdx-flow:audit`
322
- - `/flow-debug` → `/curdx-flow:debug`
323
- - `/flow-triage` → `/curdx-flow:triage`
324
- - `/flow-discuss` → `/curdx-flow:discuss`
325
- - `/flow-party` → `/curdx-flow:party`
326
- - `/flow-qa` → `/curdx-flow:qa`
327
- - `/flow-sketch` → `/curdx-flow:sketch`
328
- - `/flow-security` → `/curdx-flow:security`
329
- - `/flow-index` → `/curdx-flow:index`
330
- - `/flow-doctor` → `/curdx-flow:doctor`
331
- - `/flow-status` → `/curdx-flow:status`
332
- - `/flow-switch` → `/curdx-flow:switch`
333
- - `/flow-help` → `/curdx-flow:help`
334
- - `/flow-install-deps` → `/curdx-flow:install-deps`
335
- - `/flow-fast` → `/curdx-flow:fast`
336
- - `/flow-spike` → `/curdx-flow:spike`
337
- - `/flow-plan-ceo` → `/curdx-flow:plan-ceo`
338
- - `/flow-plan-eng` → `/curdx-flow:plan-eng`
339
- - `/flow-plan-design` → `/curdx-flow:plan-design`
340
- - `/flow-plan-dx` → `/curdx-flow:plan-dx`
341
- - `/flow-autoplan` → `/curdx-flow:autoplan`
342
-
343
- ### Changed
344
- - Renamed `commands/flow-*.md` to `commands/*.md` (history preserved via `git mv`)
345
- - Each command's `name: flow:xxx` frontmatter changed to `name: xxx`
346
- - 78 doc files updated for a total of 594 + 38 command references
347
- - Template strings that dynamically generate command names (help/switch/start/spec) updated in lockstep
348
- - `plugin.json` / `marketplace.json` version: 1.0.0 → 1.1.0
349
-
350
- ### Unchanged (intentional)
351
- - `agents/flow-*.md` file paths (agent internal namespace, not commands)
352
- - `CHANGELOG.md` historical entries (history is not rewritten)
353
- - References to future Phase 6+ commands (e.g. `/curdx-flow:ship`, marked "not implemented")
354
-
355
- ### Why
356
- Claude Code natively supports the `<plugin-name>:<command>` namespace, which avoids collisions with other plugins'
357
- `/flow-*` commands and makes provenance clearer. When users see `/curdx-flow:start` they immediately know it
358
- belongs to curdx-flow.
359
-
360
- ### Migration
361
- Old commands no longer work. If your scripts or docs reference the old names, do a global replace
362
- `/flow-` → `/curdx-flow:` (note: agent file paths `agents/flow-*.md` stay unchanged).
363
-
364
- ## [1.0.0] - 2026-04-20
365
-
366
- ### Added — Phase 7: Polish & Release
367
-
368
- - **7 complete user docs** (`docs/*.md`):
369
- - `getting-started.md` — 5-minute on-ramp
370
- - `command-reference.md` — all 31 commands grouped by family
371
- - `agent-reference.md` — all 24 agents (15 functional + 9 personas)
372
- - `workflows.md` — 5 typical workflows (greenfield/brownfield/epic/fast/ui-heavy)
373
- - `architecture.md` — technical architecture (hook system / strategy router / gate composition / extension points)
374
- - `ethos.md` — design philosophy (five pillars / credits / trade-offs / anti-patterns)
375
- - `troubleshoot.md` — symptom-indexed troubleshooting
376
- - **README upgrade** (English + Chinese) — added badges / overview list / Quick Start / credits / explicit "skipped" notes
377
-
378
- ### Changed
379
- - `plugin.json` version: 0.6.0 → **1.0.0** (Polish complete = official 1.0 release)
380
-
381
- ### Design Decision
382
- - v1.0 marks "feature-complete + publishable"
383
- - Subsequent versioning is semantic:
384
- - 1.0.x patch — doc fixes, hook fixes
385
- - 1.x.0 minor — new commands / new agents / new gates
386
- - 2.0.0 major — breaking changes (e.g. frontmatter schema change)
387
- - **Phase 6 intentionally skipped** (ship/land/canary/retro) — low ROI for private repos
388
-
389
- ## [0.6.0] - 2026-04-19
390
-
391
- ### Added — Phase 5: Tools & UI
392
-
393
- - **4 tool-class agents** (`agents/*.md`):
394
- - `flow-qa-engineer` — runs real-browser QA via the chrome-devtools MCP, capturing bugs / performance / accessibility
395
- - `flow-ux-designer` — invokes the frontend-design skill to generate HTML variants
396
- - `flow-security-auditor` — OWASP Top 10 + STRIDE + npm audit
397
- - `flow-ui-researcher` — UI pattern research; scans codebase + WebSearch + screenshots
398
- - **2 new gates** (`gates/*.md`):
399
- - `security-gate` — SR blocking red lines (hard-coded credentials, injection, sensitive logging) + SW warnings + SM mandatory items
400
- - `devex-gate` — 8 dimensions (naming/comments/structure/error-handling/setup/types/tests/dev loop)
401
- - **4 tool commands**:
402
- - `/curdx-flow:qa [--url=...]` — dispatches Oliver for browser QA
403
- - `/curdx-flow:sketch "<description>"` — dispatches Emma to generate UI variants
404
- - `/curdx-flow:security` — dispatches Serena for security audit
405
- - `/curdx-flow:index [--force]` — scans a brownfield codebase and generates an index
406
- - **5 Planning Review commands** (inherited from gstack and extended):
407
- - `/curdx-flow:plan-ceo` — strategic-layer review (scope / ROI / opportunity cost)
408
- - `/curdx-flow:plan-eng` — engineering-layer review (architecture lock / risks)
409
- - `/curdx-flow:plan-design` — UI/UX review (accessibility / design system)
410
- - `/curdx-flow:plan-dx` — DevEx review (8-dimension scoring)
411
- - `/curdx-flow:autoplan` — runs the 4 reviews above in parallel and aggregates findings
412
- - **New knowledge doc** (`knowledge/planning-reviews.md`) — 4-dimension methodology + when to use + when to skip
413
-
414
- ### Changed
415
- - `plugin.json` version: 0.5.1 → 0.6.0
416
-
417
- ## [0.5.1] - 2026-04-19
418
-
419
- ### Added — Wave Execution complete (Phase 2 follow-up)
420
-
421
- - **`knowledge/wave-execution.md`** — DAG analysis algorithm, parallel dispatch mechanism,
422
- conflict detection (pre + post), failure strategy, configuration notes, 3 file-conflict scenarios
423
- - **`commands/curdx-flow:implement.md`** wave section expanded from a 20-line concept sketch
424
- to a complete 6-step execution flow: DAG analysis → pre-conflict check → single-message
425
- parallel Task dispatch → result aggregation → failure handling → progress feedback
426
-
427
- ### Changed
428
- - `plugin.json` version: 0.5.0 → 0.5.1
429
-
430
- ## [0.5.0] - 2026-04-19
431
-
432
- ### Added — Phase 4: Advanced (Triage / Party / Debug / Personas)
433
-
434
- - **2 new functional agents**:
435
- - `flow-triage-analyst` — Epic vertical-slice decomposition, splitting by user value (not technical layer); produces a dependency graph + frozen shared interfaces
436
- - `flow-debugger` — systematic 4-stage debugging (root cause → pattern → hypothesis → fix); ≥3 failures triggers an architecture challenge
437
- - **9 persona agents** (`agents/persona-*.md`) — BMAD-style personalization:
438
- - Mary (Senior Analyst → flow-researcher)
439
- - John (Product Manager → flow-product-designer)
440
- - Winston (Architect → flow-architect)
441
- - Amelia (Developer → flow-executor)
442
- - Rachel (Code Reviewer → flow-reviewer)
443
- - David (Debugger → flow-debugger)
444
- - Oliver (QA Engineer → flow-edge-hunter + Phase 5+ flow-qa-engineer)
445
- - Serena (Security Auditor → Phase 5+ flow-security-auditor)
446
- - Emma (UX Designer → Phase 5+ flow-ux-designer)
447
- - **4 new commands**:
448
- - `/curdx-flow:triage "<epic goal>"` — dispatches flow-triage-analyst to slice the Epic vertically
449
- - `/curdx-flow:discuss` — captures key decisions (D-NN), writes to STATE.md + .progress.md
450
- - `/curdx-flow:party <personas...> "<question>"` — multiple personas reason in parallel and independently (true multi-agent, not single-LLM role-play)
451
- - `/curdx-flow:debug "<bug>"` — dispatches David / flow-debugger for systematic 4-stage debugging
452
- - **2 new knowledge docs**:
453
- - `knowledge/epic-decomposition.md` — vertical slice vs horizontal layer, dependency types, shared-interface freeze
454
- - `knowledge/systematic-debugging.md` — full 4-stage methodology + forbidden anti-patterns
455
-
456
- ### Changed
457
- - `plugin.json` version: 0.4.0 → 0.5.0
458
-
459
- ## [0.4.0] - 2026-04-19
460
-
461
- ### Added — Phase 3: Gates & Review
462
-
463
- - **6 core gates** (`gates/*.md`) — composable quality-gate definitions:
464
- - `karpathy-gate` (always-on, blocking) — code-level checks for the 4 principles
465
- - `verification-gate` (always-on, blocking) — completion claims require fresh evidence
466
- - `tdd-gate` (standard, blocking) — RED → GREEN → YELLOW enforcement + exemption paths
467
- - `coverage-audit-gate` (standard, blocking) — 4-source (FR/AD/Research/D-NN) coverage audit
468
- - `adversarial-review-gate` (enterprise, warning) — zero-findings forbidden + minimum findings across 3 categories
469
- - `edge-case-gate` (enterprise, warning) — 7 categories of edge cases + test-gap checklist
470
- - **4 review agents** (`agents/*.md`):
471
- - `flow-verifier` — goal-backward verification; detects stubs / fake completions
472
- - `flow-reviewer` — Two-Stage Review (Stage 1 spec compliance + Stage 2 code quality)
473
- - `flow-adversary` — adversarial review; 6 dimensions × 2 rounds of sequential-thinking
474
- - `flow-edge-hunter` — hunts 7 categories of edge cases; generates a test-gap checklist
475
- - **3 new commands** (`commands/*.md`):
476
- - `/curdx-flow:verify` — goal-backward verification (dispatches flow-verifier)
477
- - `/curdx-flow:review [--adversarial|--edge-case|--both]` — Two-Stage Review with optional adversarial / edge-case scan
478
- - `/curdx-flow:audit` — multi-source coverage audit (tasks-vs-specs cross-check)
479
- - **New knowledge doc** (`knowledge/two-stage-review.md`) — Stage 1/2 design principles + typical anti-patterns
480
-
481
- ### Changed
482
- - `plugin.json` version: 0.3.0 → 0.4.0
483
-
484
- ## [0.3.0] - 2026-04-19
485
-
486
- ### Added — Phase 2: Execution Engine
487
-
488
- - **flow-executor agent** (`agents/flow-executor.md`) — core execution agent:
489
- - Executes a single task with POC-First + TDD
490
- - Verify must pass
491
- - Atomic commits in conventional-commit format
492
- - Emits `TASK_COMPLETE` / `TASK_FAILED` / `ALL_TASKS_COMPLETE` markers
493
- - 5-round retry mechanism (pua-style pressure escalation)
494
- - **2 new knowledge docs**:
495
- - `knowledge/execution-strategies.md` — 4 execution strategies in detail (linear / subagent / stop-hook / wave / auto)
496
- - `knowledge/atomic-commits.md` — atomic-commit rules + conventional-commit format
497
- - **2 new hook scripts**:
498
- - `hooks/scripts/stop-watcher.sh` — StopHookLoop implementation (detects `ALL_TASKS_COMPLETE`, tracks failure count, prevents infinite loops)
499
- - `hooks/scripts/quick-mode-guard.sh` — Quick Mode blocks AskUserQuestion (so the autonomous loop does not stall)
500
- - **`hooks.json`** registers the new hooks:
501
- - `Stop` → stop-watcher.sh
502
- - `PreToolUse(AskUserQuestion)` → quick-mode-guard.sh
503
- - **3 new commands**:
504
- - `/curdx-flow:implement` — main execute command, with Strategy Router (`--strategy=auto|linear|subagent|stop-hook|wave`, `--task=X.Y`, `--quick`)
505
- - `/curdx-flow:fast` — skip the spec, implement directly (one-shot tasks)
506
- - `/curdx-flow:spike` — feasibility experiment (2–5 small tests to validate a hypothesis)
507
-
508
- ### Changed
509
- - `plugin.json` version: 0.2.0 → 0.3.0
510
-
511
- ## [0.2.0] - 2026-04-19
512
-
513
- ### Added — Phase 1: Spec Engine
514
-
515
- - **5 spec templates** (`templates/*.tmpl`):
516
- - `research.md.tmpl` — research report structure
517
- - `requirements.md.tmpl` — user stories + acceptance criteria + FR/NFR
518
- - `design.md.tmpl` — architecture decisions + component boundaries + mermaid diagrams
519
- - `tasks.md.tmpl` — POC-First 5 Phases + coverage audit
520
- - `progress.md.tmpl` — progress log + learnings
521
- - **3 JSON Schemas** (`schemas/*.schema.json`):
522
- - `spec-state.schema.json` — cross-session state
523
- - `config.schema.json` — project configuration
524
- - `spec-frontmatter.schema.json` — spec file YAML frontmatter
525
- - **2 knowledge docs** (`knowledge/*.md`):
526
- - `spec-driven-development.md` — SDD methodology
527
- - `poc-first-workflow.md` — POC-First 5 Phases
528
- - **4 functional agents** (`agents/*.md`):
529
- - `flow-researcher` — deep research (context7 + claude-mem + sequential-thinking ≥5 rounds + WebSearch)
530
- - `flow-product-designer` — user stories + acceptance criteria + FR/NFR
531
- - `flow-architect` — architecture design (sequential-thinking ≥8 rounds + context7 to validate technology choices)
532
- - `flow-planner` — POC-First decomposition + multi-source coverage audit
533
- - **7 new commands** (`commands/*.md`):
534
- - `/curdx-flow:start` — intelligent entry (new spec / resume spec)
535
- - `/curdx-flow:switch` — switch the active spec
536
- - `/curdx-flow:research` — dispatches flow-researcher
537
- - `/curdx-flow:requirements` — dispatches flow-product-designer
538
- - `/curdx-flow:design` — dispatches flow-architect
539
- - `/curdx-flow:tasks` — dispatches flow-planner
540
- - `/curdx-flow:spec` — runs the 4 phases sequentially in one shot
541
-
542
- ### Changed
543
- - `plugin.json` version: 0.1.0 → 0.2.0
544
-
545
- ## [0.1.0] - 2026-04-19
546
-
547
- ### Added — Phase 0: Foundation
548
-
549
- - Project skeleton for Claude Code plugin
550
- - `plugin.json` with inline `mcpServers` declaring 3 auto-installed MCPs:
551
- - `context7` — latest documentation fetcher
552
- - `sequential-thinking` — structured reasoning
553
- - `chrome-devtools` — browser automation
554
- - `marketplace.json` for future plugin market publishing
555
- - Hook system:
556
- - `SessionStart` — dependency check + project state load
557
- - `InstructionsLoaded` — inject Karpathy L1 baseline
558
- - `PostToolUseFailure` — fail counter (pua integration prep)
559
- - Shared agent preamble (`agent-preamble/preamble.md`) — enforces `context7` / `sequential-thinking` / `claude-mem` usage in all agents
560
- - Core commands:
561
- - `/curdx-flow:init` — initialize `.flow/` project structure
562
- - `/curdx-flow:install-deps` — one-click install of recommended plugins (pua, claude-mem, frontend-design)
563
- - `/curdx-flow:doctor` — dependency health check
564
- - `/curdx-flow:status` — project & spec status
565
- - `/curdx-flow:help` — smart help
566
- - Document templates (`templates/*.tmpl`) for PROJECT/CONTEXT/STATE/ROADMAP/config
567
- - Knowledge base (`knowledge/karpathy-guidelines.md`) for agents to `@`-reference
568
- - CLAUDE.md with L1-L4 rules
569
- - README (English + Chinese) + LICENSE (MIT)
5
+ - aligned the public docs surface with the current skill-first plugin layout
6
+ - kept thin entry docs while moving detailed workflow logic into skill references
7
+ - locked command summaries to workflow skill descriptions with tests