@curdx/flow 2.1.0 → 2.2.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 (50) hide show
  1. package/.claude-plugin/marketplace.json +25 -2
  2. package/.claude-plugin/plugin.json +10 -1
  3. package/CHANGELOG.md +32 -0
  4. package/README.md +3 -0
  5. package/README.zh.md +3 -0
  6. package/agent-preamble/preamble.md +2 -2
  7. package/agents/flow-qa-engineer.md +16 -15
  8. package/agents/flow-ui-researcher.md +2 -2
  9. package/agents/flow-verifier.md +3 -3
  10. package/bin/curdx-flow +5 -0
  11. package/cli/README.md +10 -9
  12. package/cli/install-companions.js +4 -1
  13. package/cli/install-required-plugins.js +18 -5
  14. package/cli/install-self-update.js +2 -91
  15. package/cli/install.js +12 -1
  16. package/cli/lib/claude.js +42 -11
  17. package/cli/lib/doctor-report.js +47 -8
  18. package/cli/lib/semver.js +95 -0
  19. package/cli/utils.js +1 -0
  20. package/hooks/scripts/quick-mode-guard.sh +6 -7
  21. package/knowledge/execution-strategies.md +5 -5
  22. package/knowledge/planning-reviews.md +2 -2
  23. package/knowledge/wave-execution.md +17 -17
  24. package/package.json +3 -2
  25. package/schemas/agent-frontmatter.schema.json +66 -0
  26. package/schemas/config.schema.json +23 -3
  27. package/schemas/gate-frontmatter.schema.json +30 -0
  28. package/schemas/hooks.schema.json +83 -0
  29. package/schemas/plugin-manifest.schema.json +66 -0
  30. package/schemas/skill-frontmatter.schema.json +72 -0
  31. package/schemas/spec-state.schema.json +6 -1
  32. package/skills/brownfield-index/SKILL.md +2 -1
  33. package/skills/browser-qa/SKILL.md +5 -4
  34. package/skills/debug/SKILL.md +1 -0
  35. package/skills/epic/SKILL.md +2 -1
  36. package/skills/fast/SKILL.md +2 -1
  37. package/skills/help/SKILL.md +1 -0
  38. package/skills/implement/SKILL.md +6 -5
  39. package/skills/implement/references/wave-execution.md +9 -9
  40. package/skills/init/SKILL.md +1 -0
  41. package/skills/review/SKILL.md +2 -1
  42. package/skills/security-audit/SKILL.md +2 -1
  43. package/skills/spec/SKILL.md +4 -3
  44. package/skills/start/SKILL.md +2 -1
  45. package/skills/ui-sketch/SKILL.md +2 -1
  46. package/skills/verify/SKILL.md +2 -1
  47. package/templates/CONTEXT.md.tmpl +1 -1
  48. package/templates/PROJECT.md.tmpl +1 -1
  49. package/templates/config.json.tmpl +6 -6
  50. package/templates/progress.md.tmpl +2 -2
@@ -0,0 +1,72 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "https://curdx-flow.dev/schemas/skill-frontmatter.schema.json",
4
+ "title": "CurdX-Flow Skill Frontmatter",
5
+ "description": "Supported YAML frontmatter fields for skills/<name>/SKILL.md.",
6
+ "type": "object",
7
+ "required": ["name", "description"],
8
+ "additionalProperties": false,
9
+ "properties": {
10
+ "name": {
11
+ "type": "string",
12
+ "pattern": "^[a-z0-9][a-z0-9-]{0,63}$"
13
+ },
14
+ "description": {
15
+ "type": "string",
16
+ "minLength": 1,
17
+ "description": "Concise trigger summary. Keep detailed trigger phrases in when_to_use."
18
+ },
19
+ "when_to_use": {
20
+ "type": "string",
21
+ "description": "Additional trigger phrases appended to description in the skill listing."
22
+ },
23
+ "argument-hint": {
24
+ "type": "string"
25
+ },
26
+ "arguments": {
27
+ "oneOf": [
28
+ { "type": "string" },
29
+ { "type": "array", "items": { "type": "string" } }
30
+ ]
31
+ },
32
+ "disable-model-invocation": {
33
+ "type": "boolean"
34
+ },
35
+ "user-invocable": {
36
+ "type": "boolean"
37
+ },
38
+ "allowed-tools": {
39
+ "oneOf": [
40
+ { "type": "string" },
41
+ { "type": "array", "items": { "type": "string" } }
42
+ ]
43
+ },
44
+ "model": {
45
+ "type": "string"
46
+ },
47
+ "effort": {
48
+ "type": "string",
49
+ "enum": ["low", "medium", "high", "xhigh", "max"]
50
+ },
51
+ "context": {
52
+ "type": "string",
53
+ "enum": ["fork"]
54
+ },
55
+ "agent": {
56
+ "type": "string"
57
+ },
58
+ "hooks": {
59
+ "type": "object"
60
+ },
61
+ "paths": {
62
+ "oneOf": [
63
+ { "type": "string" },
64
+ { "type": "array", "items": { "type": "string" } }
65
+ ]
66
+ },
67
+ "shell": {
68
+ "type": "string",
69
+ "enum": ["bash", "powershell"]
70
+ }
71
+ }
72
+ }
@@ -17,7 +17,7 @@
17
17
  },
18
18
  "goal": {
19
19
  "type": "string",
20
- "description": "One-sentence goal from /flow-start"
20
+ "description": "One-sentence goal from /curdx-flow:start"
21
21
  },
22
22
  "mode": {
23
23
  "type": "string",
@@ -29,6 +29,11 @@
29
29
  "enum": ["auto", "subagent", "stop-hook", "wave", "linear"],
30
30
  "default": "auto"
31
31
  },
32
+ "quickMode": {
33
+ "type": "boolean",
34
+ "default": false,
35
+ "description": "When true, execution hooks block AskUserQuestion and agents must record assumptions instead of asking."
36
+ },
32
37
  "phase": {
33
38
  "type": "string",
34
39
  "enum": [
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: brownfield-index
3
- description: Invoke when the user is new to an unfamiliar / legacy / brownfield codebase and wants a structural understanding module map, component inventory, API surface, data flow. Triggers on "legacy code", "brownfield", "unfamiliar", "new to this code", "new to this project", "just joined", "inherited codebase", "explore codebase", "understand structure", "index code", "map modules", "tour", "onboard", "what is this project".
3
+ description: Use when the user needs structural understanding of an unfamiliar, inherited, legacy, or brownfield codebase.
4
+ when_to_use: Triggers on "legacy code", "brownfield", "unfamiliar", "new to this code", "new to this project", "just joined", "inherited codebase", "explore codebase", "understand structure", "index code", "map modules", "tour", "onboard", "what is this project".
4
5
  allowed-tools: [Read, Grep, Glob, Bash]
5
6
  ---
6
7
 
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: browser-qa
3
- description: Invoke when the user wants to test a UI/frontend in a real browser accessibility, performance, console errors, network traffic, visual regression. Triggers on "browser test", "test in browser", "UI test", "e2e test", "frontend test", "accessibility", "a11y", "WCAG", "lighthouse", "performance audit", "console error", "network request", "cross-browser", "responsive", "mobile test", "visual regression", "screenshot".
3
+ description: Use when the user needs real-browser QA for a UI or frontend flow.
4
+ when_to_use: Triggers on "browser test", "test in browser", "UI test", "e2e test", "frontend test", "accessibility", "a11y", "WCAG", "lighthouse", "performance audit", "console error", "network request", "cross-browser", "responsive", "mobile test", "visual regression", "screenshot".
4
5
  allowed-tools: [Read, Write, Bash, Grep, Glob, WebFetch]
5
6
  ---
6
7
 
@@ -10,7 +11,7 @@ You are invoked when the user wants real-browser QA of a UI flow.
10
11
 
11
12
  ## Preconditions
12
13
 
13
- 1. `chrome-devtools` MCP is available (`mcp__chrome-devtools__*`). If missing, fall back to a manual checklist.
14
+ 1. `chrome-devtools` MCP is available (`mcp__chrome_devtools__*`). If missing, fall back to a manual checklist.
14
15
  2. A URL (dev server or deployed) is available. Prompt for it if not provided.
15
16
 
16
17
  ## Workflow
@@ -25,8 +26,8 @@ Confirm with the user:
25
26
  ### Step 2: Dispatch `flow-qa-engineer`
26
27
 
27
28
  Delegate to the `flow-qa-engineer` agent. It will:
28
- 1. Open the target URL via `mcp__chrome-devtools__new_page`
29
- 2. Drive the flow with `mcp__chrome-devtools__click` / `fill` / `navigate`
29
+ 1. Open the target URL via `mcp__chrome_devtools__new_page`
30
+ 2. Drive the flow with `mcp__chrome_devtools__click` / `fill` / `navigate_page`
30
31
  3. Capture `list_console_messages`, `list_network_requests`, `take_screenshot`, optionally `lighthouse_audit`
31
32
  4. Compare against expected behavior
32
33
 
@@ -2,6 +2,7 @@
2
2
  name: debug
3
3
  description: Systematic debugging — 4-phase methodology (root cause → pattern → hypothesis → fix); three failures trigger architectural questioning. Routes to flow-debugger.
4
4
  argument-hint: "\"<bug description>\""
5
+ disable-model-invocation: true
5
6
  context: fork
6
7
  agent: flow-debugger
7
8
  ---
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: epic
3
- description: Invoke when user wants to break a large feature into multiple smaller specs with a dependency graph. Triggers on "epic", "big feature", "too big", "decompose", "break down", "break into", "split into", "multi-spec", "multiple features", "sub-features", "vertical slice", "parent feature", "large scope", "won't fit in one sprint", "needs splitting".
3
+ description: Use when the user needs to decompose a large feature into smaller vertical-slice specs with dependencies.
4
+ when_to_use: Triggers on "epic", "big feature", "too big", "decompose", "break down", "break into", "split into", "multi-spec", "multiple features", "sub-features", "vertical slice", "parent feature", "large scope", "won't fit in one sprint", "needs splitting".
4
5
  allowed-tools: [Read, Write, Grep, Glob, Bash]
5
6
  ---
6
7
 
@@ -2,7 +2,8 @@
2
2
  name: fast
3
3
  description: Ultra-fast execution — skip all spec phases and implement directly per the description. Suited for one-shot small tasks.
4
4
  argument-hint: "\"<task description>\""
5
- allowed-tools: [Read, Write, Edit, Bash, Grep, Glob, Task]
5
+ disable-model-invocation: true
6
+ allowed-tools: [Read, Write, Edit, Bash, Grep, Glob, Agent]
6
7
  ---
7
8
 
8
9
  # Flow Fast — Ultra-Fast Execution
@@ -2,6 +2,7 @@
2
2
  name: help
3
3
  description: Show CurdX-Flow command list, workflow overview, or troubleshooting guide. With a command name, show that command's detail.
4
4
  argument-hint: "[<command-name> | workflow | troubleshoot]"
5
+ disable-model-invocation: true
5
6
  allowed-tools: [Read, Bash]
6
7
  ---
7
8
 
@@ -2,7 +2,8 @@
2
2
  name: implement
3
3
  description: Execute spec tasks — the Strategy Router picks linear/subagent/stop-hook/wave based on task characteristics. Atomic commit per task.
4
4
  argument-hint: "[spec-name] [--strategy=auto|linear|subagent|stop-hook|wave] [--task=<id>] [--quick]"
5
- allowed-tools: [Read, Write, Edit, Bash, Task, Grep, Glob]
5
+ disable-model-invocation: true
6
+ allowed-tools: [Read, Write, Edit, Bash, Agent, Grep, Glob]
6
7
  ---
7
8
 
8
9
  # Flow Implement — Execute Spec
@@ -77,7 +78,7 @@ echo "✓ Selected strategy: $STRATEGY"
77
78
 
78
79
  **Decision tree explanation**:
79
80
  - Few tasks / strong dependencies → `linear` (main agent executes sequentially)
80
- - Many parallel opportunities → `wave` (parallel Task dispatch within a wave)
81
+ - Many parallel opportunities → `wave` (parallel Agent dispatch within a wave)
81
82
  - Long chain + quick mode → `stop-hook` (auto-loop, requires hook support)
82
83
  - Medium scale → `subagent` (isolated context per task)
83
84
 
@@ -127,7 +128,7 @@ If there are 5 failures, stop + TASK_FAILED.
127
128
  For each remaining task, dispatch flow-executor:
128
129
 
129
130
  ```
130
- Task:
131
+ Agent:
131
132
  subagent_type: general-purpose
132
133
  description: "Execute $SPEC_NAME task $TASK_ID"
133
134
  prompt: |
@@ -162,11 +163,11 @@ After the agent completes, read the output marker:
162
163
  See `skills/implement/references/wave-execution.md` for the full walkthrough.
163
164
  Knowledge-layer canonical algorithm: `@${CLAUDE_PLUGIN_ROOT}/knowledge/wave-execution.md`.
164
165
 
165
- **Core**: consecutive `[P]` tasks form a wave; dispatch multiple Tasks in parallel within a single response; serial across waves. The execution loop is:
166
+ **Core**: consecutive `[P]` tasks form a wave; dispatch multiple Agent calls in parallel within a single response; serial across waves. The execution loop is:
166
167
 
167
168
  1. **DAG analysis** — group remaining `[ ]` tasks by `[P]` / `[SEQUENTIAL]` / `[VERIFY]` tags; conflicting `Files` sets split into a new wave.
168
169
  2. **Pre-conflict detection** — within each wave, assert per-task `Files` are disjoint; auto-split if not.
169
- 3. **Dispatch** — list multiple `Task(...)` tool calls in a single main-agent response (splitting across responses = serial degradation; nested `Task` dispatches forbidden). Each Task prompt follows the subagent strategy's uniform format (see `references/wave-execution.md` Step 3).
170
+ 3. **Dispatch** — list multiple `Agent(...)` tool calls in a single main-agent response (splitting across responses = serial degradation; nested `Agent` dispatches forbidden). Each Agent prompt follows the subagent strategy's uniform format (see `references/wave-execution.md` Step 3).
170
171
  4. **Aggregate** — parse each result for `TASK_COMPLETE` / `TASK_FAILED`; run post-hoc conflict detection via git diff to confirm executors only touched declared files.
171
172
  5. **Failure handling** — 0 failed → next wave; 1 failed → `config.wave_fail_policy` (`continue-on-single` or `stop-on-any`); ≥2 failed → likely environment issue, stop immediately; cumulative `failed_attempts >= 3` → stop, user intervention.
172
173
  6. **Progress feedback** — print a wave summary after each wave (see `references/wave-execution.md` Step 6).
@@ -5,7 +5,7 @@ implement skill routes to the `wave` strategy. The knowledge-layer canonical
5
5
  algorithm lives in `@${CLAUDE_PLUGIN_ROOT}/knowledge/wave-execution.md`;
6
6
  this file is the walkthrough the skill itself embeds for implementers.
7
7
 
8
- **Core**: consecutive `[P]` tasks form a wave, dispatch multiple Tasks in
8
+ **Core**: consecutive `[P]` tasks form a wave, dispatch multiple Agent calls in
9
9
  parallel within a single message, serial across waves.
10
10
 
11
11
  ## Step 1: DAG Analysis
@@ -51,13 +51,13 @@ If the planner mis-tagged `[P]` (modifies the same file), split the wave automat
51
51
  ## Step 3: Dispatch a Single Wave (key: within a single response)
52
52
 
53
53
  ```
54
- # List multiple Task tool calls in one response of the main agent:
55
- Task(description="Execute 1.1", prompt=<...flow-executor + task_id=1.1...>)
56
- Task(description="Execute 1.2", prompt=<...flow-executor + task_id=1.2...>)
57
- Task(description="Execute 1.3", prompt=<...flow-executor + task_id=1.3...>)
54
+ # List multiple Agent tool calls in one response of the main agent:
55
+ Agent(description="Execute 1.1", prompt=<...flow-executor + task_id=1.1...>)
56
+ Agent(description="Execute 1.2", prompt=<...flow-executor + task_id=1.2...>)
57
+ Agent(description="Execute 1.3", prompt=<...flow-executor + task_id=1.3...>)
58
58
  ```
59
59
 
60
- Each Task prompt follows a uniform format (similar to subagent strategy):
60
+ Each Agent prompt follows a uniform format (similar to subagent strategy):
61
61
 
62
62
  ```
63
63
  You are the flow-executor agent. Full definition:
@@ -82,12 +82,12 @@ Output:
82
82
  ```
83
83
 
84
84
  **Not allowed**:
85
- - Splitting multiple Task calls across multiple responses (that is serial degradation)
86
- - Nesting another Task dispatch inside a Task
85
+ - Splitting multiple Agent calls across multiple responses (that is serial degradation)
86
+ - Nesting another Agent dispatch inside an Agent
87
87
 
88
88
  ## Step 4: Aggregate Wave Results
89
89
 
90
- Wait for all Tasks to return:
90
+ Wait for all Agent calls to return:
91
91
 
92
92
  ```python
93
93
  completed = []; failed = []
@@ -2,6 +2,7 @@
2
2
  name: init
3
3
  description: Initialize the CurdX-Flow project structure (create the .flow/ directory and core files)
4
4
  argument-hint: "[--force]"
5
+ disable-model-invocation: true
5
6
  allowed-tools: [Read, Write, Bash, AskUserQuestion]
6
7
  ---
7
8
 
@@ -2,7 +2,8 @@
2
2
  name: review
3
3
  description: Two-stage code review — Stage 1 spec compliance, Stage 2 code quality. Optional flags add adversarial review, edge-case hunting, or developer-experience audit.
4
4
  argument-hint: "[--stage=<1|2|both>] [--adversarial] [--edge-case] [--devex]"
5
- allowed-tools: [Read, Bash, Task, Grep, Glob]
5
+ disable-model-invocation: true
6
+ allowed-tools: [Read, Bash, Agent, Grep, Glob]
6
7
  ---
7
8
 
8
9
  # Two-Stage Code Review
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: security-audit
3
- description: Invoke when the user wants a security review OWASP Top 10, STRIDE threat modeling, credential handling, injection, secrets, sensitive data handling. Triggers on "security", "auth", "authentication", "credential", "password", "secret", "API key", "token", "OWASP", "STRIDE", "CVE", "vulnerability", "injection", "XSS", "CSRF", "SSRF", "SQL injection", "hardcoded secret", "sensitive data", "leak", "will my API key leak", "is this safe".
3
+ description: Use when the user needs security review of code, specs, credentials, sensitive data, or dependency risk.
4
+ when_to_use: Triggers on "security", "auth", "authentication", "credential", "password", "secret", "API key", "token", "OWASP", "STRIDE", "CVE", "vulnerability", "injection", "XSS", "CSRF", "SSRF", "SQL injection", "hardcoded secret", "sensitive data", "leak", "will my API key leak", "is this safe".
4
5
  allowed-tools: [Read, Grep, Glob, Bash, WebSearch]
5
6
  ---
6
7
 
@@ -2,7 +2,8 @@
2
2
  name: spec
3
3
  description: Generate or refresh a feature specification. By default runs research → requirements → design → tasks in sequence. Flags let you target a single phase, stop early, regenerate, or tack on a multi-dimensional planning review.
4
4
  argument-hint: "[--phase=<X[,Y,...]>] [--until=<X>] [--review[=<dim[,dim]>]] [--regenerate] [--resume]"
5
- allowed-tools: [Read, Write, Bash, Task, AskUserQuestion]
5
+ disable-model-invocation: true
6
+ allowed-tools: [Read, Write, Bash, Agent, AskUserQuestion]
6
7
  ---
7
8
 
8
9
  # Generate or Refresh the Active Spec
@@ -70,7 +71,7 @@ Read and update `.state.json.phase` after each phase succeeds.
70
71
 
71
72
  ## Phase execution
72
73
 
73
- For each phase in the resolved list, dispatch a sub-agent via the `Task` tool:
74
+ For each phase in the resolved list, dispatch a subagent via the `Agent` tool:
74
75
 
75
76
  ### research → `flow-researcher`
76
77
  Inputs: spec goal + one-line description from `.state.json`.
@@ -176,7 +177,7 @@ If `--review` (or `--review=<dims>`) is present:
176
177
 
177
178
  1. **Precondition**: `design.md` must exist. If missing, error: "Design missing. Run `/curdx-flow:spec --phase=design` first."
178
179
  2. Parse the dims: `all` expands to `ceo,eng,design,dx`.
179
- 3. Dispatch review agents in parallel via `Task` (one per dim):
180
+ 3. Dispatch review agents in parallel via `Agent` (one per dim):
180
181
 
181
182
  | Dim | Agent | Focus |
182
183
  |-----|-------|-------|
@@ -2,7 +2,8 @@
2
2
  name: start
3
3
  description: Smart entry point — create a new spec, resume an existing one, or switch between specs. Replaces v1's /start + /switch.
4
4
  argument-hint: "[<spec-name>] [\"<one-line goal>\"] [--resume] [--list] [--mode=<fast|standard|enterprise>]"
5
- allowed-tools: [Read, Write, Bash, AskUserQuestion, Task]
5
+ disable-model-invocation: true
6
+ allowed-tools: [Read, Write, Bash, AskUserQuestion, Agent]
6
7
  ---
7
8
 
8
9
  # Start or Resume a Feature Spec
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: ui-sketch
3
- description: Invoke when the user wants UI design drafts — components, layouts, variants, mockups, CSS/theme/styling decisions. Triggers on "design UI", "UI design", "component layout", "variants", "wireframe", "mockup", "prototype", "sketch", "draft layout", "visual design", "styling", "CSS", "theming", "dark mode", "responsive design", "color scheme", "build me a UI", "show several variants", "try different colors".
3
+ description: Use when the user needs UI design drafts, layout variants, mockups, prototypes, or styling direction.
4
+ when_to_use: Triggers on "design UI", "UI design", "component layout", "variants", "wireframe", "mockup", "prototype", "sketch", "draft layout", "visual design", "styling", "CSS", "theming", "dark mode", "responsive design", "color scheme", "build me a UI", "show several variants", "try different colors".
4
5
  allowed-tools: [Read, Write, Bash, WebSearch]
5
6
  ---
6
7
 
@@ -2,6 +2,7 @@
2
2
  name: verify
3
3
  description: Goal-backward verification — trace from every FR / AC / AD in the active spec to the code and tests, detect stubs and fake completions. The differentiator command. Optionally adds multi-source coverage audit with --strict.
4
4
  argument-hint: "[--strict]"
5
+ disable-model-invocation: true
5
6
  context: fork
6
7
  agent: flow-verifier
7
8
  ---
@@ -35,7 +36,7 @@ For EACH assertion in the spec, walk goal-backward:
35
36
  2. For **code-only**: grep the codebase for matching symbols, find the
36
37
  implementing file + line, find a test that exercises it, run the test
37
38
  (`npm test` or the declared `Verify` command), capture pass/fail.
38
- 3. For **UI-facing**: browser verification via `mcp__chrome-devtools__*`
39
+ 3. For **UI-facing**: browser verification via `mcp__chrome_devtools__*`
39
40
  is required. `jsdom` / `happy-dom` unit tests are insufficient. If the
40
41
  browser MCP isn't available, mark the AC **unverified — browser MCP
41
42
  missing** and include a CRITICAL section in the report; do NOT
@@ -50,4 +50,4 @@
50
50
 
51
51
  ---
52
52
 
53
- _Generated by `/flow-init` on {{CREATED_DATE}}. Update to match your actual preferences._
53
+ _Generated by `/curdx-flow:init` on {{CREATED_DATE}}. Update to match your actual preferences._
@@ -56,4 +56,4 @@ TODO:
56
56
 
57
57
  ---
58
58
 
59
- _Generated by `/flow-init` on {{CREATED_DATE}}. Maintainer: {{USER_NAME}}_
59
+ _Generated by `/curdx-flow:init` on {{CREATED_DATE}}. Maintainer: {{USER_NAME}}_
@@ -2,13 +2,14 @@
2
2
  "$schema": "https://raw.githubusercontent.com/wdx/curdx-flow/main/schemas/config.schema.json",
3
3
  "version": "1.0",
4
4
  "mode": "standard",
5
- "_mode_options": "sketch | fast | standard | enterprise | autonomous",
5
+ "_mode_options": "fast | standard | enterprise",
6
6
 
7
7
  "execution": {
8
8
  "strategy": "auto",
9
9
  "_strategy_options": "auto | subagent | stop-hook | wave | linear",
10
10
  "max_parallel": 5,
11
- "subagent_threshold": 8
11
+ "subagent_threshold": 8,
12
+ "wave_fail_policy": "continue-on-single"
12
13
  },
13
14
 
14
15
  "gates": {
@@ -18,14 +19,13 @@
18
19
  ],
19
20
  "standard_mode": [
20
21
  "tdd-gate",
21
- "coverage-audit-gate",
22
- "simplicity-gate"
22
+ "coverage-audit-gate"
23
23
  ],
24
24
  "enterprise_mode": [
25
25
  "adversarial-review-gate",
26
26
  "edge-case-gate",
27
- "hard-gate",
28
- "security-gate"
27
+ "security-gate",
28
+ "devex-gate"
29
29
  ]
30
30
  },
31
31
 
@@ -45,7 +45,7 @@ _(none)_
45
45
 
46
46
  <!-- What to do next. Must be filled in before ending the session. -->
47
47
 
48
- - [ ] Enter the research phase: run `/flow-research`
48
+ - [ ] Enter the research phase: run `/curdx-flow:spec --phase=research`
49
49
 
50
50
  ## Questions for User
51
51
 
@@ -55,4 +55,4 @@ _(none)_
55
55
 
56
56
  ---
57
57
 
58
- _Spec initialized on {{CREATED_DATE}}._
58
+ _Spec initialized by `/curdx-flow:start` on {{CREATED_DATE}}._