@curdx/flow 2.2.4 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (131) hide show
  1. package/.claude-plugin/marketplace.json +3 -2
  2. package/.claude-plugin/plugin.json +27 -1
  3. package/CHANGELOG.md +9 -564
  4. package/README.md +49 -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-orchestrator.md +145 -0
  12. package/agents/flow-planner.md +11 -37
  13. package/agents/flow-product-designer.md +9 -41
  14. package/agents/flow-qa-engineer.md +1 -0
  15. package/agents/flow-researcher.md +9 -45
  16. package/agents/flow-reviewer.md +1 -0
  17. package/agents/flow-security-auditor.md +1 -0
  18. package/agents/flow-triage-analyst.md +1 -0
  19. package/agents/flow-ui-researcher.md +1 -0
  20. package/agents/flow-ux-designer.md +1 -0
  21. package/agents/flow-verifier.md +1 -0
  22. package/cli/install-companions.js +8 -8
  23. package/cli/install-next-steps.js +3 -1
  24. package/cli/lib/doctor-claude-settings.js +1 -0
  25. package/cli/lib/doctor-report.js +1 -1
  26. package/gates/coverage-audit-gate.md +1 -3
  27. package/gates/tdd-gate.md +0 -6
  28. package/gates/verification-gate.md +1 -5
  29. package/hooks/scripts/common.sh +7 -0
  30. package/hooks/scripts/session-start.sh +1 -1
  31. package/hooks/scripts/stop-watcher.sh +8 -0
  32. package/knowledge/artifact-output-discipline.md +24 -0
  33. package/knowledge/artifact-summary-contracts.md +50 -0
  34. package/knowledge/claude-code-runtime-contracts.md +13 -1
  35. package/knowledge/execution-strategies.md +6 -4
  36. package/knowledge/poc-first-workflow.md +2 -6
  37. package/knowledge/spec-driven-development.md +0 -4
  38. package/knowledge/systematic-debugging.md +0 -6
  39. package/knowledge/two-stage-review.md +8 -6
  40. package/knowledge/wave-execution.md +2 -1
  41. package/monitors/monitors.json +8 -0
  42. package/monitors/scripts/flow-state-monitor.sh +99 -0
  43. package/package.json +3 -2
  44. package/schemas/agent-frontmatter.schema.json +4 -0
  45. package/settings.json +1 -0
  46. package/skills/brownfield-index/SKILL.md +14 -20
  47. package/skills/brownfield-index/references/applicability.md +12 -0
  48. package/skills/brownfield-index/references/handoff.md +8 -0
  49. package/skills/brownfield-index/references/index-contract.md +10 -0
  50. package/skills/browser-qa/SKILL.md +15 -35
  51. package/skills/browser-qa/references/handoff.md +6 -0
  52. package/skills/browser-qa/references/prerequisites.md +10 -0
  53. package/skills/browser-qa/references/qa-contract.md +20 -0
  54. package/skills/cancel/SKILL.md +20 -61
  55. package/skills/cancel/references/destructive-mode.md +17 -0
  56. package/skills/cancel/references/reporting.md +18 -0
  57. package/skills/cancel/references/state-recovery.md +30 -0
  58. package/skills/cancel/references/target-resolution.md +7 -0
  59. package/skills/debug/SKILL.md +23 -87
  60. package/skills/debug/references/context-gathering.md +11 -0
  61. package/skills/debug/references/failure-guard.md +25 -0
  62. package/skills/debug/references/intake.md +12 -0
  63. package/skills/debug/references/phase-workflow.md +34 -0
  64. package/skills/debug/references/reporting.md +20 -0
  65. package/skills/epic/SKILL.md +18 -50
  66. package/skills/epic/references/epic-artifacts.md +20 -0
  67. package/skills/epic/references/epic-intake.md +9 -0
  68. package/skills/epic/references/slice-handoff.md +16 -0
  69. package/skills/fast/SKILL.md +34 -102
  70. package/skills/fast/references/applicability.md +25 -0
  71. package/skills/fast/references/clarification.md +20 -0
  72. package/skills/fast/references/execution-contract.md +56 -0
  73. package/skills/help/SKILL.md +26 -132
  74. package/skills/help/references/dispatch.md +20 -0
  75. package/skills/help/references/overview.md +39 -0
  76. package/skills/help/references/troubleshoot.md +47 -0
  77. package/skills/help/references/workflow.md +37 -0
  78. package/skills/implement/SKILL.md +61 -237
  79. package/skills/implement/references/error-recovery.md +36 -0
  80. package/skills/implement/references/linear-execution.md +32 -0
  81. package/skills/implement/references/preflight.md +43 -0
  82. package/skills/implement/references/progress-contract.md +32 -0
  83. package/skills/implement/references/state-init.md +33 -0
  84. package/skills/implement/references/stop-hook-execution.md +36 -0
  85. package/skills/implement/references/strategy-router.md +38 -0
  86. package/skills/implement/references/subagent-execution.md +43 -0
  87. package/skills/init/SKILL.md +26 -95
  88. package/skills/init/references/gitignore-and-health.md +26 -0
  89. package/skills/init/references/next-steps.md +22 -0
  90. package/skills/init/references/preflight.md +15 -0
  91. package/skills/init/references/scaffold-contract.md +27 -0
  92. package/skills/review/SKILL.md +45 -153
  93. package/skills/review/references/optional-passes.md +48 -0
  94. package/skills/review/references/preflight.md +38 -0
  95. package/skills/review/references/report-contract.md +49 -0
  96. package/skills/review/references/reporting.md +20 -0
  97. package/skills/review/references/stage-execution.md +32 -0
  98. package/skills/security-audit/SKILL.md +16 -34
  99. package/skills/security-audit/references/audit-contract.md +21 -0
  100. package/skills/security-audit/references/gate-handoff.md +8 -0
  101. package/skills/security-audit/references/scope-and-depth.md +9 -0
  102. package/skills/spec/SKILL.md +55 -182
  103. package/skills/spec/references/artifact-landing.md +31 -0
  104. package/skills/spec/references/phase-execution.md +50 -0
  105. package/skills/spec/references/planning-review.md +31 -0
  106. package/skills/spec/references/preflight-and-routing.md +46 -0
  107. package/skills/spec/references/reporting.md +21 -0
  108. package/skills/start/SKILL.md +40 -123
  109. package/skills/start/references/branch-routing.md +51 -0
  110. package/skills/start/references/mode-semantics.md +12 -0
  111. package/skills/start/references/preflight.md +13 -0
  112. package/skills/start/references/reporting.md +20 -0
  113. package/skills/start/references/state-seeding.md +44 -0
  114. package/skills/start/references/workflow-handoff.md +26 -0
  115. package/skills/status/SKILL.md +17 -61
  116. package/skills/status/references/gather-contract.md +27 -0
  117. package/skills/status/references/health-rules.md +27 -0
  118. package/skills/status/references/output-contract.md +24 -0
  119. package/skills/status/references/preflight.md +10 -0
  120. package/skills/status/references/recovery-hints.md +18 -0
  121. package/skills/ui-sketch/SKILL.md +15 -34
  122. package/skills/ui-sketch/references/brief-intake.md +10 -0
  123. package/skills/ui-sketch/references/iteration-handoff.md +5 -0
  124. package/skills/ui-sketch/references/variant-contract.md +15 -0
  125. package/skills/verify/SKILL.md +31 -86
  126. package/skills/verify/references/evidence-workflow.md +39 -0
  127. package/skills/verify/references/output-contract.md +23 -0
  128. package/skills/verify/references/preflight.md +11 -0
  129. package/skills/verify/references/report-handoff.md +35 -0
  130. package/skills/verify/references/strict-mode.md +12 -0
  131. package/README.zh.md +0 -160
@@ -5,28 +5,15 @@ memory: project
5
5
  model: sonnet
6
6
  effort: high
7
7
  maxTurns: 40
8
+ color: blue
8
9
  tools: [Read, Write, WebSearch, WebFetch, Grep, Glob, Bash]
9
10
  ---
10
11
 
11
- <output-discipline>
12
- **CRITICAL: Extreme concision required to prevent context overflow.**
13
-
14
- Your output must follow these rules:
15
- 1. **Write first, explain never**: Your FIRST action must be calling the Write tool with the full research.md content. Do NOT paste content as assistant text.
16
- 2. **No previews**: Do NOT preview the research findings in your response. The file itself is the deliverable.
17
- 3. **Minimal status updates**: Use bullets, not prose. One-line updates only.
18
- 4. **Final output**: After Write succeeds, output EXACTLY 3 lines:
19
- - Line 1: "✓ research.md generated"
20
- - Line 2: "Recommendations: N"
21
- - Line 3: "Next: /curdx-flow:spec --phase=requirements"
22
- 5. **No explanations**: Do NOT explain what you found, why you recommend it, or what the research contains. The file speaks for itself.
23
-
24
- **Violation of these rules = task failure.**
25
- </output-discipline>
26
-
27
12
  # Flow Researcher — Research Analysis Agent
28
13
 
29
14
  @${CLAUDE_PLUGIN_ROOT}/agent-preamble/preamble.md
15
+ @${CLAUDE_PLUGIN_ROOT}/knowledge/artifact-output-discipline.md
16
+ @${CLAUDE_PLUGIN_ROOT}/knowledge/artifact-summary-contracts.md
30
17
 
31
18
  ## Your Responsibilities
32
19
 
@@ -152,24 +139,10 @@ If any answer is "no", redo it before writing.
152
139
 
153
140
  ## Output to User
154
141
 
155
- When done, give the user a brief:
156
-
157
- ```
158
- ✓ Research complete: .flow/specs/<name>/research.md
159
-
160
- Key findings:
161
- - Finding 1
162
- - Finding 2
163
- - Finding 3
164
-
165
- Recommended direction: Solution X (rationale)
166
-
167
- Open questions (please answer before entering requirements phase):
168
- 1. Q1
169
- 2. Q2
170
-
171
- Next step: /curdx-flow:spec --phase=requirements
172
- ```
142
+ Follow `${CLAUDE_PLUGIN_ROOT}/knowledge/artifact-output-discipline.md`.
143
+ After `Write` succeeds, emit the `research.md` contract from
144
+ `${CLAUDE_PLUGIN_ROOT}/knowledge/artifact-summary-contracts.md` and nothing
145
+ else.
173
146
 
174
147
  ## Research discipline (stop-condition, not length-target)
175
148
 
@@ -188,14 +161,5 @@ Self-check before `Write`: for every paragraph, ask "does this change a reader's
188
161
 
189
162
  ---
190
163
 
191
- <bookend>
192
- **Restated critical rules (output discipline):**
193
-
194
- 1. Write first, explain never. Your FIRST action = Write tool call with full file content.
195
- 2. No previews. Do NOT paste content in your response.
196
- 3. Minimal status. Bullets only, one line each.
197
- 4. Fixed output. Exactly 3-5 lines (see output template in frontmatter).
198
- 5. No explanations. Do NOT explain what you produced. The file is the deliverable.
199
-
200
- **Violation of these rules = task failure.**
201
- </bookend>
164
+ The file is the deliverable. Do not add previews, rationale summaries, or open
165
+ question lists to chat output.
@@ -5,6 +5,7 @@ memory: project
5
5
  model: sonnet
6
6
  effort: high
7
7
  maxTurns: 40
8
+ color: purple
8
9
  tools: [Read, Grep, Glob, Bash]
9
10
  ---
10
11
 
@@ -5,6 +5,7 @@ memory: project
5
5
  model: opus
6
6
  effort: high
7
7
  maxTurns: 40
8
+ color: red
8
9
  tools: [Read, AskUserQuestion, Grep, Glob, Bash, WebSearch]
9
10
  ---
10
11
 
@@ -5,6 +5,7 @@ memory: project
5
5
  model: opus
6
6
  effort: high
7
7
  maxTurns: 40
8
+ color: orange
8
9
  tools: [Read, Write, AskUserQuestion, WebSearch, Grep, Glob, Bash]
9
10
  ---
10
11
 
@@ -5,6 +5,7 @@ memory: project
5
5
  model: sonnet
6
6
  effort: medium
7
7
  maxTurns: 25
8
+ color: blue
8
9
  tools: [Read, Write, WebSearch, WebFetch, Grep, Glob, Bash]
9
10
  ---
10
11
 
@@ -6,6 +6,7 @@ memory: project
6
6
  model: sonnet
7
7
  effort: medium
8
8
  maxTurns: 25
9
+ color: pink
9
10
  tools: [Read, Write, AskUserQuestion, Bash, WebSearch, Skill]
10
11
  ---
11
12
 
@@ -5,6 +5,7 @@ memory: project
5
5
  model: sonnet
6
6
  effort: high
7
7
  maxTurns: 30
8
+ color: yellow
8
9
  tools: [Read, Grep, Glob, Bash, Monitor]
9
10
  ---
10
11
 
@@ -1,14 +1,14 @@
1
1
  /**
2
- * Re-export barrel preserving the pre-Stage-7 import surface. New callers
3
- * should import directly from the concern-specific modules below instead
4
- * of going through this barrel. Kept in place so existing imports in
5
- * cli/install.js and cli/install-workflow.js keep working unchanged.
2
+ * Re-export barrel preserving the stable import surface. New callers should
3
+ * import directly from the concern-specific modules below instead of going
4
+ * through this barrel. Kept in place so existing imports in cli/install.js
5
+ * and cli/install-workflow.js keep working unchanged.
6
6
  *
7
- * Concern split (see docs/refactor-plan.md Stage 7):
8
- * install-required-plugins.js — required Claude Code companion plugins
9
- * install-bundled-mcps.js — user-level MCP registration
7
+ * Concern split:
8
+ * install-required-plugins.js — required Claude Code companion plugins
9
+ * install-bundled-mcps.js — user-level MCP registration
10
10
  * install-recommended-plugins.js — optional recommended plugins
11
- * install-context7-config.js — context7 API-key prompt (private to required)
11
+ * install-context7-config.js — context7 API-key prompt (private to required)
12
12
  */
13
13
 
14
14
  export {
@@ -5,7 +5,9 @@ export function printNextSteps() {
5
5
  const cliCmd = cliOnPath ? "curdx-flow" : "npx @curdx/flow";
6
6
 
7
7
  console.log(`\n${color.bold(`${color.green("✓")} Install complete`)}\n`);
8
- console.log(`${color.bold("Restart Claude Code")} so the plugin registers all its commands and hooks.\n`);
8
+ console.log(
9
+ `${color.bold("Restart Claude Code")} so the plugin registers its commands, hooks, default main-thread agent, and background monitor.\n`
10
+ );
9
11
  console.log(`${color.bold("Next steps")}:\n`);
10
12
  console.log(` ${color.dim("# Verify health")}`);
11
13
  console.log(` ${cliCmd} doctor\n`);
@@ -73,6 +73,7 @@ const CURDX_FLOW_AGENT_TYPES = [
73
73
  "flow-debugger",
74
74
  "flow-edge-hunter",
75
75
  "flow-executor",
76
+ "flow-orchestrator",
76
77
  "flow-planner",
77
78
  "flow-product-designer",
78
79
  "flow-qa-engineer",
@@ -158,7 +158,7 @@ export function buildDoctorReport({
158
158
  "warn",
159
159
  `claude CLI ${claudeVersionValue} below recommended ${MIN_CLAUDE_VERSION}`,
160
160
  [
161
- "curdx-flow uses modern Claude Code plugin dependency resolution and plugin bin/ PATH support",
161
+ "curdx-flow uses modern Claude Code plugin dependency resolution, plugin bin/PATH support, plugin-level main-agent routing, and monitor surfaces",
162
162
  "run: claude update",
163
163
  ]
164
164
  );
@@ -7,8 +7,6 @@ depends_on: []
7
7
 
8
8
  # Coverage Audit Gate — Multi-Source Coverage Audit
9
9
 
10
- > Derived from get-shit-done's "Multi-Source Coverage Audit".
11
- >
12
10
  > Rule: every claim in the spec must be covered by implementation/tests. Uncovered = missed = future bug.
13
11
 
14
12
  ---
@@ -181,4 +179,4 @@ Fix recommendations:
181
179
 
182
180
  ---
183
181
 
184
- _Source: get-shit-done's multi-source coverage audit._
182
+ _Source: CurDX-Flow multi-source coverage audit contract._
package/gates/tdd-gate.md CHANGED
@@ -8,8 +8,6 @@ depends_on: []
8
8
  # TDD Gate — Red/Green/Yellow Cycle Enforcement
9
9
 
10
10
  > **Iron rule**: NO PRODUCTION CODE WITHOUT A FAILING TEST FIRST.
11
- >
12
- > Source: superpowers' test-driven-development skill.
13
11
 
14
12
  ---
15
13
 
@@ -182,7 +180,3 @@ Compliant: 4
182
180
  Fix recommendations:
183
181
  T2: add test test(auth): red - password hashing, verify it fails, then redo GREEN
184
182
  ```
185
-
186
- ---
187
-
188
- _Source: superpowers' test-driven-development skill._
@@ -7,7 +7,7 @@ depends_on: []
7
7
 
8
8
  # Verification Gate — Verification Required Before Completion
9
9
 
10
- > **Always enabled**. No evidence = no completion. This is the Superpowers "Verification Before Completion" iron rule.
10
+ > **Always enabled**. No evidence = no completion. Verification must be based on observed proof, not claimed completion.
11
11
 
12
12
  ---
13
13
 
@@ -177,7 +177,3 @@ Warnings: 1
177
177
  Fix recommendations:
178
178
  V1: dispatch flow-executor to run tests, add evidence to the commit message body
179
179
  ```
180
-
181
- ---
182
-
183
- _Source: superpowers' verification-before-completion skill. CurdX-Flow turns it into a gate._
@@ -4,6 +4,13 @@ has_python3() {
4
4
  command -v python3 >/dev/null 2>&1
5
5
  }
6
6
 
7
+ env_flag_enabled() {
8
+ case "$(printf '%s' "${1:-}" | tr '[:upper:]' '[:lower:]')" in
9
+ 1|true|yes|on) return 0 ;;
10
+ *) return 1 ;;
11
+ esac
12
+ }
13
+
7
14
  json_escape() {
8
15
  local value="${1:-}"
9
16
 
@@ -26,7 +26,7 @@ mkdir -p "$DATA_DIR" 2>/dev/null || true
26
26
  LAST_CHECK=""
27
27
  [ -f "$MARKER" ] && LAST_CHECK="$(cat "$MARKER" 2>/dev/null)"
28
28
 
29
- if [ "$LAST_CHECK" != "$TODAY" ]; then
29
+ if env_flag_enabled "${CLAUDE_PLUGIN_OPTION_DAILY_DEPENDENCY_CHECK:-1}" && [ "$LAST_CHECK" != "$TODAY" ]; then
30
30
  MISSING=()
31
31
 
32
32
  # Skip if `claude` CLI is not on PATH
@@ -26,6 +26,10 @@ allow_stop() {
26
26
  exit 0
27
27
  }
28
28
 
29
+ autonomous_blocking_enabled() {
30
+ env_flag_enabled "${CLAUDE_PLUGIN_OPTION_AUTONOMOUS_BLOCKING:-1}"
31
+ }
32
+
29
33
  # ---------- helper: block and inject continuation ----------
30
34
  block_continue() {
31
35
  local reason="$1"
@@ -83,6 +87,10 @@ EOF
83
87
  [ "$STRATEGY" != "stop-hook" ] && allow_stop
84
88
  [ "$PHASE" != "execute" ] && allow_stop
85
89
 
90
+ if ! autonomous_blocking_enabled; then
91
+ allow_stop
92
+ fi
93
+
86
94
  # ---------- 5. Check hook input + completion signal in transcript ----------
87
95
  # Claude Code passes transcript path via stdin as JSON: {"transcript_path": "/path/..."}
88
96
  # We read stdin to detect ALL_TASKS_COMPLETE or TASK_FAILED
@@ -0,0 +1,24 @@
1
+ # Artifact Output Discipline
2
+
3
+ Use this discipline for artifact-producing agents that write canonical files
4
+ such as `research.md`, `requirements.md`, `design.md`, `tasks.md`, or
5
+ `codebase-index.md`.
6
+
7
+ ## Core Rules
8
+
9
+ 1. Write the artifact first. The first substantive action should be the `Write`
10
+ tool call for the final file content.
11
+ 2. Do not preview or paraphrase the artifact inline. The file is the
12
+ deliverable.
13
+ 3. Keep status updates minimal: short bullets or fixed summary lines only.
14
+ 4. End with the exact compact output contract defined by the agent-specific
15
+ section. No extra explanation before or after it.
16
+ 5. If something blocks the write, report the blocker directly instead of
17
+ emitting a fake success summary.
18
+
19
+ ## Why
20
+
21
+ - Prevents context waste from duplicating the artifact in chat
22
+ - Makes the written file the canonical output surface
23
+ - Keeps artifact-producing subagents consistent across research, product,
24
+ architecture, planning, and brownfield mapping
@@ -0,0 +1,50 @@
1
+ # Artifact Summary Contracts
2
+
3
+ Use these compact summary contracts after an artifact lands successfully. Pair
4
+ them with `artifact-output-discipline.md`: write first, no preview, then emit
5
+ the exact contract below and stop.
6
+
7
+ ## research.md
8
+
9
+ ```text
10
+ ✓ research.md generated
11
+ Recommendations: N
12
+ Next: /curdx-flow:spec --phase=requirements
13
+ ```
14
+
15
+ ## requirements.md
16
+
17
+ ```text
18
+ ✓ requirements.md generated
19
+ User stories: N
20
+ Functional requirements: N
21
+ Next: /curdx-flow:spec --phase=design
22
+ ```
23
+
24
+ ## design.md
25
+
26
+ ```text
27
+ ✓ design.md generated
28
+ Architecture decisions: N
29
+ Components: N
30
+ Next: /curdx-flow:spec --phase=tasks
31
+ ```
32
+
33
+ ## tasks.md
34
+
35
+ ```text
36
+ ✓ tasks.md generated
37
+ Total tasks: N
38
+ Coverage audit: PASS
39
+ Phases: 1-5
40
+ Next: /curdx-flow:implement
41
+ ```
42
+
43
+ ## codebase-index.md
44
+
45
+ ```text
46
+ ✓ codebase-index.md generated
47
+ Modules: N
48
+ Entry points: N
49
+ Next: /curdx-flow:start <feature-name>
50
+ ```
@@ -72,11 +72,23 @@ Guarded artifact targets:
72
72
  ## Plugin Settings
73
73
 
74
74
  - Claude Code plugin-root `settings.json` currently supports only `agent` and `subagentStatusLine`.
75
- - CurDX-Flow ships only `subagentStatusLine`, pointing at `${CLAUDE_PLUGIN_ROOT}/hooks/scripts/subagent-statusline.sh`.
75
+ - CurDX-Flow ships both:
76
+ - `agent: "flow-orchestrator"` to route the main thread through the CurDX-Flow coordinator by default.
77
+ - `subagentStatusLine`, pointing at `${CLAUDE_PLUGIN_ROOT}/hooks/scripts/subagent-statusline.sh`.
76
78
  - The status-line script must fail open on malformed input or missing `python3`; UI decoration must never break agent execution.
77
79
  - Plugin-root references must never traverse outside the plugin directory. Installed marketplace plugins run from Claude Code's plugin cache, so parent-directory references are invalid even if they work in a development checkout.
78
80
  - If adding plugin settings, update `schemas/plugin-settings.schema.json`, `test/plugin-structure-contract.test.js`, `test/pack-tarball-smoke.test.js`, and `scripts/validate-plugin-contracts.mjs` in the same change.
79
81
 
82
+ ## Plugin Monitors and User Config
83
+
84
+ - CurDX-Flow ships a plugin monitor at `${CLAUDE_PLUGIN_ROOT}/monitors/monitors.json` to surface `.flow` state changes back into the active Claude session.
85
+ - Monitors run only when the Claude `Monitor` tool is available, and only in interactive CLI sessions.
86
+ - CurDX-Flow `userConfig` values are exported to plugin subprocesses as `CLAUDE_PLUGIN_OPTION_<KEY>`.
87
+ - Current runtime knobs:
88
+ - `autonomous_blocking`: lets users disable stop-hook continuation without editing plugin files.
89
+ - `daily_dependency_check`: silences or enables the once-per-day recommended-plugin reminder.
90
+ - `monitor_interval_seconds`: controls plugin monitor polling cadence.
91
+
80
92
  ## Plugin Dependency Constraints
81
93
 
82
94
  - Official dependency version constraints require upstream plugin release tags in the `{plugin-name}--v{version}` format.
@@ -76,7 +76,7 @@ main agent
76
76
  - ✓ Quality-first (every task must be high-quality, avoid context pollution)
77
77
  - ✓ Moderate task size (2-15 minutes)
78
78
  - ✓ Tasks relatively independent, no complex shared context needed
79
- - ✓ Superpowers style
79
+ - ✓ Stable per-task quality matters more than dispatch overhead
80
80
 
81
81
  ### Advantages
82
82
  - Each subagent uses at most ~30% context → stable quality
@@ -127,7 +127,7 @@ Safety invariant: `ALL_TASKS_COMPLETE` is advisory, not authoritative. If `tasks
127
127
  - ✓ Long task chains (20+)
128
128
  - ✓ Unattended execution (overnight automation)
129
129
  - ✓ You don't want to trigger each step manually
130
- - ✓ smart-ralph style
130
+ - ✓ Long-running sequential work with checkpointed continuation
131
131
 
132
132
  ### Advantages
133
133
  - Truly autonomous execution — the user can walk away
@@ -169,7 +169,7 @@ main agent
169
169
  - ✓ Many `[P]` markers in tasks.md
170
170
  - ✓ Tasks are independent (different files, different components)
171
171
  - ✓ Time-pressured (parallelism is faster)
172
- - ✓ get-shit-done style
172
+ - ✓ Parallel-safe delivery work
173
173
 
174
174
  ### Advantages
175
175
  - Wall-clock time greatly reduced (N parallel tasks at once)
@@ -298,4 +298,6 @@ Claude Code checkpoints plus `.flow/specs/<name>/.progress.md` are the current r
298
298
 
299
299
  ---
300
300
 
301
- _Adapted from smart-ralph (stop-hook), superpowers (subagent), get-shit-done (wave)._
301
+ This document defines CurDX-Flow's shipped strategy semantics: stop-hook for
302
+ checkpointed continuation, subagent for serial isolated execution, and wave for
303
+ parallel batches.
@@ -114,7 +114,7 @@ Commit: `refactor(scope): yellow - <what was cleaned up>`
114
114
  ### Pitfalls
115
115
  - **Code first, tests after** → not TDD, this is post-hoc testing. Easily misses edge cases.
116
116
  - **Tests only cover happy path** → no error handling coverage; the common cause of production issues.
117
- - **Too much mocking** → tests disconnected from real behavior. See Superpowers' "integration tests hit real DB" lesson.
117
+ - **Too much mocking** → tests disconnected from real behavior. Keep primary evidence anchored to real integrations at system boundaries.
118
118
 
119
119
  ---
120
120
 
@@ -211,7 +211,7 @@ Feature is verified, reviewed, and ready for a human PR/release decision.
211
211
 
212
212
  ## Relationship to the TDD Iron Rule
213
213
 
214
- **TDD iron rule inherited from Superpowers**: "NO PRODUCTION CODE WITHOUT A FAILING TEST FIRST"
214
+ **TDD iron rule**: "NO PRODUCTION CODE WITHOUT A FAILING TEST FIRST"
215
215
 
216
216
  **POC-First's compromise**: Phase 1 allows skipping tests because the purpose of POC is to validate the idea, not to deliver.
217
217
 
@@ -221,7 +221,3 @@ Feature is verified, reviewed, and ready for a human PR/release decision.
221
221
  - Newly added **production code**: must be covered by Phase 3 TDD loop
222
222
 
223
223
  The two don't conflict: POC is not production code; production code starts at Phase 2.
224
-
225
- ---
226
-
227
- _Adapted from smart-ralph's POC-First workflow, extended with superpowers' TDD discipline._
@@ -178,7 +178,3 @@ The two complement each other:
178
178
  - Agents `mcp__claude_mem__search` the history before starting research
179
179
  - What gets written into research.md is filtered, retention-worthy conclusions
180
180
  - Subsequent sessions: claude-mem auto-injects recent context; spec files provide the structured overview
181
-
182
- ---
183
-
184
- _Adapted from smart-ralph's spec engine, extended with get-shit-done's multi-source audit._
@@ -1,7 +1,5 @@
1
1
  # Systematic Debugging — 4-Stage Methodology
2
2
 
3
- > Inherited from superpowers' systematic-debugging skill.
4
- >
5
3
  > Agents reference this via `@${CLAUDE_PLUGIN_ROOT}/knowledge/systematic-debugging.md`.
6
4
 
7
5
  ---
@@ -378,7 +376,3 @@ The value of systematic debugging:
378
376
  Unsystematic → fixes fast but fragile → bitten again by the same bug
379
377
  Systematic → fixes slow but thorough → solved once, never looked back
380
378
  ```
381
-
382
- ---
383
-
384
- _Source: superpowers' systematic-debugging skill._
@@ -1,6 +1,6 @@
1
1
  # Two-Stage Review — Two-Stage Code Review
2
2
 
3
- > CurdX-Flow version of Superpowers' code review skill.
3
+ > CurDX-Flow runtime contract for two-stage review.
4
4
  >
5
5
  > Agents reference this via `@${CLAUDE_PLUGIN_ROOT}/knowledge/two-stage-review.md`.
6
6
 
@@ -129,6 +129,12 @@ Stage 2 applies all enabled Gates (from `.flow/config.json`):
129
129
  - Each applicable edge-case category addressed (N/A noted for the rest)?
130
130
  - Gap list has priorities?
131
131
 
132
+ #### 2.8 (enterprise) DevEx review (devex-gate)
133
+
134
+ - Are naming, comments, and structure maintainable for the next engineer?
135
+ - Is setup, typing, and test ergonomics acceptable without tribal knowledge?
136
+ - Does the developer loop stay fast enough to keep future changes safe?
137
+
132
138
  ### Stage 2 verdict
133
139
 
134
140
  - **EXCELLENT**: all enabled Gates pass, adversarial review clean or only low-severity findings
@@ -232,7 +238,7 @@ Some reviewers list 50 minor improvements — the user can't process.
232
238
  ↓ ↓
233
239
  ↓ review-report.md
234
240
 
235
- (optional) /curdx-flow:review --adversarial --edge-case
241
+ (optional) /curdx-flow:review --adversarial --edge-case --devex
236
242
 
237
243
  adversarial-review.md
238
244
  edge-cases.md
@@ -241,7 +247,3 @@ Ready for human PR/release handoff with verification + review evidence
241
247
  ```
242
248
 
243
249
  Verify is "did we implement the right thing", Review is "is the implementation good", Audit is "what else could be better". CurdX-Flow currently stops at evidence-backed handoff; do not reference non-existent ship/land commands.
244
-
245
- ---
246
-
247
- _Source: superpowers' code-review two-stage design, extended with CurdX-Flow's Gate system._
@@ -399,4 +399,5 @@ As in "Case 3" above. Solutions:
399
399
 
400
400
  ---
401
401
 
402
- _Source: get-shit-done's wave execution. CurdX-Flow turns it from a concept into executable logic._
402
+ _Source: CurDX-Flow wave execution contract. This file defines the executable
403
+ parallel-delivery rules used by the plugin runtime._
@@ -0,0 +1,8 @@
1
+ [
2
+ {
3
+ "name": "flow-state",
4
+ "description": "Watch CurDX-Flow .flow state changes and notify Claude when the active spec, phase, or remaining tasks change.",
5
+ "command": "${CLAUDE_PLUGIN_ROOT}/monitors/scripts/flow-state-monitor.sh",
6
+ "when": "always"
7
+ }
8
+ ]
@@ -0,0 +1,99 @@
1
+ #!/usr/bin/env bash
2
+
3
+ set -u
4
+
5
+ interval="${CLAUDE_PLUGIN_OPTION_MONITOR_INTERVAL_SECONDS:-8}"
6
+ case "$interval" in
7
+ ''|*[!0-9]*)
8
+ interval=8
9
+ ;;
10
+ esac
11
+ if [ "$interval" -lt 3 ] 2>/dev/null; then
12
+ interval=3
13
+ fi
14
+
15
+ build_snapshot() {
16
+ if [ ! -d ".flow" ]; then
17
+ return 0
18
+ fi
19
+
20
+ local active=""
21
+ active="$(cat .flow/.active-spec 2>/dev/null || true)"
22
+ [ -z "$active" ] && return 0
23
+
24
+ local spec_dir=".flow/specs/$active"
25
+ [ ! -d "$spec_dir" ] && return 0
26
+
27
+ local state_file="$spec_dir/.state.json"
28
+ local tasks_file="$spec_dir/tasks.md"
29
+
30
+ python3 - "$active" "$state_file" "$tasks_file" <<'PY' 2>/dev/null
31
+ import json
32
+ import os
33
+ import re
34
+ import sys
35
+
36
+ active, state_file, tasks_file = sys.argv[1:4]
37
+
38
+ phase = "unknown"
39
+ strategy = "unknown"
40
+ task_index = 0
41
+ total_tasks = 0
42
+ failed_attempts = 0
43
+ global_iteration = 0
44
+
45
+ if os.path.exists(state_file):
46
+ try:
47
+ state = json.load(open(state_file, "r", encoding="utf-8"))
48
+ phase = state.get("phase") or phase
49
+ strategy = state.get("strategy") or strategy
50
+ execute_state = state.get("execute_state") or {}
51
+ task_index = execute_state.get("task_index") or 0
52
+ total_tasks = execute_state.get("total_tasks") or 0
53
+ failed_attempts = execute_state.get("failed_attempts") or 0
54
+ global_iteration = execute_state.get("global_iteration") or 0
55
+ except Exception:
56
+ phase = "invalid-state"
57
+
58
+ unchecked = 0
59
+ if os.path.exists(tasks_file):
60
+ try:
61
+ text = open(tasks_file, "r", encoding="utf-8").read()
62
+ unchecked = len(re.findall(r"^- \[ \] \*\*[0-9]+(\.[0-9]+|\.VF|\.X(\+[0-9]+)?)*\*\*", text, re.M))
63
+ except Exception:
64
+ unchecked = -1
65
+
66
+ parts = [
67
+ f"CurDX-Flow monitor: spec={active}",
68
+ f"phase={phase}",
69
+ f"strategy={strategy}",
70
+ ]
71
+
72
+ if total_tasks > 0:
73
+ parts.append(f"tasks={task_index}/{total_tasks}")
74
+ parts.append(f"unchecked={unchecked}")
75
+
76
+ if failed_attempts > 0:
77
+ parts.append(f"failed_attempts={failed_attempts}")
78
+ if global_iteration > 0:
79
+ parts.append(f"loop={global_iteration}")
80
+
81
+ print(" ".join(parts))
82
+ PY
83
+ }
84
+
85
+ last_snapshot=""
86
+
87
+ while true; do
88
+ snapshot="$(build_snapshot)"
89
+ if [ -n "$snapshot" ] && [ "$snapshot" != "$last_snapshot" ]; then
90
+ printf '%s\n' "$snapshot"
91
+ last_snapshot="$snapshot"
92
+ fi
93
+
94
+ if [ "${CURDX_FLOW_MONITOR_ONCE:-0}" = "1" ]; then
95
+ exit 0
96
+ fi
97
+
98
+ sleep "$interval"
99
+ done
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@curdx/flow",
3
- "version": "2.2.4",
4
- "description": "CLI installer for CurdX-Flow AI engineering workflow meta-framework for Claude Code",
3
+ "version": "2.3.0",
4
+ "description": "Skill-first discipline layer and CLI installer for Claude Code",
5
5
  "type": "module",
6
6
  "bin": {
7
7
  "curdx-flow": "bin/curdx-flow.js"
@@ -19,6 +19,7 @@
19
19
  "gates/",
20
20
  "hooks/",
21
21
  "knowledge/",
22
+ "monitors/",
22
23
  "agent-preamble/",
23
24
  "output-styles/",
24
25
  "templates/",
@@ -54,6 +54,10 @@
54
54
  "isolation": {
55
55
  "type": "string",
56
56
  "enum": ["worktree"]
57
+ },
58
+ "color": {
59
+ "type": "string",
60
+ "enum": ["red", "blue", "green", "yellow", "purple", "orange", "pink", "cyan"]
57
61
  }
58
62
  }
59
63
  }