@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.
- package/.claude-plugin/marketplace.json +3 -2
- package/.claude-plugin/plugin.json +27 -1
- package/CHANGELOG.md +9 -564
- package/README.md +49 -113
- package/agents/flow-adversary.md +1 -0
- package/agents/flow-architect.md +9 -36
- package/agents/flow-brownfield-analyst.md +7 -18
- package/agents/flow-debugger.md +1 -0
- package/agents/flow-edge-hunter.md +1 -0
- package/agents/flow-executor.md +1 -0
- package/agents/flow-orchestrator.md +145 -0
- package/agents/flow-planner.md +11 -37
- package/agents/flow-product-designer.md +9 -41
- package/agents/flow-qa-engineer.md +1 -0
- package/agents/flow-researcher.md +9 -45
- package/agents/flow-reviewer.md +1 -0
- package/agents/flow-security-auditor.md +1 -0
- package/agents/flow-triage-analyst.md +1 -0
- package/agents/flow-ui-researcher.md +1 -0
- package/agents/flow-ux-designer.md +1 -0
- package/agents/flow-verifier.md +1 -0
- package/cli/install-companions.js +8 -8
- package/cli/install-next-steps.js +3 -1
- package/cli/lib/doctor-claude-settings.js +1 -0
- package/cli/lib/doctor-report.js +1 -1
- package/gates/coverage-audit-gate.md +1 -3
- package/gates/tdd-gate.md +0 -6
- package/gates/verification-gate.md +1 -5
- package/hooks/scripts/common.sh +7 -0
- package/hooks/scripts/session-start.sh +1 -1
- package/hooks/scripts/stop-watcher.sh +8 -0
- package/knowledge/artifact-output-discipline.md +24 -0
- package/knowledge/artifact-summary-contracts.md +50 -0
- package/knowledge/claude-code-runtime-contracts.md +13 -1
- package/knowledge/execution-strategies.md +6 -4
- package/knowledge/poc-first-workflow.md +2 -6
- package/knowledge/spec-driven-development.md +0 -4
- package/knowledge/systematic-debugging.md +0 -6
- package/knowledge/two-stage-review.md +8 -6
- package/knowledge/wave-execution.md +2 -1
- package/monitors/monitors.json +8 -0
- package/monitors/scripts/flow-state-monitor.sh +99 -0
- package/package.json +3 -2
- package/schemas/agent-frontmatter.schema.json +4 -0
- package/settings.json +1 -0
- package/skills/brownfield-index/SKILL.md +14 -20
- package/skills/brownfield-index/references/applicability.md +12 -0
- package/skills/brownfield-index/references/handoff.md +8 -0
- package/skills/brownfield-index/references/index-contract.md +10 -0
- package/skills/browser-qa/SKILL.md +15 -35
- package/skills/browser-qa/references/handoff.md +6 -0
- package/skills/browser-qa/references/prerequisites.md +10 -0
- package/skills/browser-qa/references/qa-contract.md +20 -0
- package/skills/cancel/SKILL.md +20 -61
- package/skills/cancel/references/destructive-mode.md +17 -0
- package/skills/cancel/references/reporting.md +18 -0
- package/skills/cancel/references/state-recovery.md +30 -0
- package/skills/cancel/references/target-resolution.md +7 -0
- package/skills/debug/SKILL.md +23 -87
- package/skills/debug/references/context-gathering.md +11 -0
- package/skills/debug/references/failure-guard.md +25 -0
- package/skills/debug/references/intake.md +12 -0
- package/skills/debug/references/phase-workflow.md +34 -0
- package/skills/debug/references/reporting.md +20 -0
- package/skills/epic/SKILL.md +18 -50
- package/skills/epic/references/epic-artifacts.md +20 -0
- package/skills/epic/references/epic-intake.md +9 -0
- package/skills/epic/references/slice-handoff.md +16 -0
- package/skills/fast/SKILL.md +34 -102
- package/skills/fast/references/applicability.md +25 -0
- package/skills/fast/references/clarification.md +20 -0
- package/skills/fast/references/execution-contract.md +56 -0
- package/skills/help/SKILL.md +26 -132
- package/skills/help/references/dispatch.md +20 -0
- package/skills/help/references/overview.md +39 -0
- package/skills/help/references/troubleshoot.md +47 -0
- package/skills/help/references/workflow.md +37 -0
- package/skills/implement/SKILL.md +61 -237
- package/skills/implement/references/error-recovery.md +36 -0
- package/skills/implement/references/linear-execution.md +32 -0
- package/skills/implement/references/preflight.md +43 -0
- package/skills/implement/references/progress-contract.md +32 -0
- package/skills/implement/references/state-init.md +33 -0
- package/skills/implement/references/stop-hook-execution.md +36 -0
- package/skills/implement/references/strategy-router.md +38 -0
- package/skills/implement/references/subagent-execution.md +43 -0
- package/skills/init/SKILL.md +26 -95
- package/skills/init/references/gitignore-and-health.md +26 -0
- package/skills/init/references/next-steps.md +22 -0
- package/skills/init/references/preflight.md +15 -0
- package/skills/init/references/scaffold-contract.md +27 -0
- package/skills/review/SKILL.md +45 -153
- package/skills/review/references/optional-passes.md +48 -0
- package/skills/review/references/preflight.md +38 -0
- package/skills/review/references/report-contract.md +49 -0
- package/skills/review/references/reporting.md +20 -0
- package/skills/review/references/stage-execution.md +32 -0
- package/skills/security-audit/SKILL.md +16 -34
- package/skills/security-audit/references/audit-contract.md +21 -0
- package/skills/security-audit/references/gate-handoff.md +8 -0
- package/skills/security-audit/references/scope-and-depth.md +9 -0
- package/skills/spec/SKILL.md +55 -182
- package/skills/spec/references/artifact-landing.md +31 -0
- package/skills/spec/references/phase-execution.md +50 -0
- package/skills/spec/references/planning-review.md +31 -0
- package/skills/spec/references/preflight-and-routing.md +46 -0
- package/skills/spec/references/reporting.md +21 -0
- package/skills/start/SKILL.md +40 -123
- package/skills/start/references/branch-routing.md +51 -0
- package/skills/start/references/mode-semantics.md +12 -0
- package/skills/start/references/preflight.md +13 -0
- package/skills/start/references/reporting.md +20 -0
- package/skills/start/references/state-seeding.md +44 -0
- package/skills/start/references/workflow-handoff.md +26 -0
- package/skills/status/SKILL.md +17 -61
- package/skills/status/references/gather-contract.md +27 -0
- package/skills/status/references/health-rules.md +27 -0
- package/skills/status/references/output-contract.md +24 -0
- package/skills/status/references/preflight.md +10 -0
- package/skills/status/references/recovery-hints.md +18 -0
- package/skills/ui-sketch/SKILL.md +15 -34
- package/skills/ui-sketch/references/brief-intake.md +10 -0
- package/skills/ui-sketch/references/iteration-handoff.md +5 -0
- package/skills/ui-sketch/references/variant-contract.md +15 -0
- package/skills/verify/SKILL.md +31 -86
- package/skills/verify/references/evidence-workflow.md +39 -0
- package/skills/verify/references/output-contract.md +23 -0
- package/skills/verify/references/preflight.md +11 -0
- package/skills/verify/references/report-handoff.md +35 -0
- package/skills/verify/references/strict-mode.md +12 -0
- 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
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
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
|
-
|
|
192
|
-
|
|
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.
|
package/agents/flow-reviewer.md
CHANGED
package/agents/flow-verifier.md
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Re-export barrel preserving the
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
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
|
|
8
|
-
* install-required-plugins.js
|
|
9
|
-
* install-bundled-mcps.js
|
|
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
|
|
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(
|
|
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`);
|
package/cli/lib/doctor-report.js
CHANGED
|
@@ -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
|
|
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:
|
|
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.
|
|
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._
|
package/hooks/scripts/common.sh
CHANGED
|
@@ -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
|
|
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
|
-
- ✓
|
|
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
|
-
- ✓
|
|
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
|
-
- ✓
|
|
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
|
-
|
|
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.
|
|
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
|
|
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
|
-
>
|
|
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:
|
|
402
|
+
_Source: CurDX-Flow wave execution contract. This file defines the executable
|
|
403
|
+
parallel-delivery rules used by the plugin runtime._
|
|
@@ -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.
|
|
4
|
-
"description": "
|
|
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/",
|