@curdx/flow 1.1.11 → 2.0.0-beta.2

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 (66) hide show
  1. package/.claude-plugin/marketplace.json +3 -3
  2. package/.claude-plugin/plugin.json +2 -2
  3. package/CHANGELOG.md +79 -0
  4. package/README.md +74 -102
  5. package/agents/flow-adversary.md +1 -1
  6. package/agents/flow-architect.md +1 -1
  7. package/agents/flow-product-designer.md +1 -1
  8. package/agents/flow-qa-engineer.md +3 -3
  9. package/agents/flow-researcher.md +1 -1
  10. package/agents/flow-security-auditor.md +1 -1
  11. package/agents/flow-triage-analyst.md +3 -3
  12. package/agents/flow-ui-researcher.md +5 -5
  13. package/agents/flow-ux-designer.md +2 -2
  14. package/cli/install.js +16 -5
  15. package/commands/debug.md +10 -10
  16. package/commands/help.md +109 -87
  17. package/commands/implement.md +4 -4
  18. package/commands/init.md +5 -5
  19. package/commands/review.md +114 -130
  20. package/commands/spec.md +131 -89
  21. package/commands/start.md +100 -153
  22. package/commands/verify.md +110 -92
  23. package/gates/adversarial-review-gate.md +1 -1
  24. package/gates/coverage-audit-gate.md +1 -1
  25. package/gates/devex-gate.md +1 -1
  26. package/gates/edge-case-gate.md +1 -1
  27. package/gates/security-gate.md +3 -3
  28. package/hooks/scripts/session-start.sh +1 -1
  29. package/knowledge/epic-decomposition.md +2 -2
  30. package/knowledge/execution-strategies.md +4 -4
  31. package/knowledge/planning-reviews.md +6 -6
  32. package/knowledge/spec-driven-development.md +3 -3
  33. package/knowledge/two-stage-review.md +2 -2
  34. package/knowledge/wave-execution.md +5 -5
  35. package/package.json +1 -1
  36. package/agents/persona-amelia.md +0 -128
  37. package/agents/persona-david.md +0 -141
  38. package/agents/persona-emma.md +0 -179
  39. package/agents/persona-john.md +0 -105
  40. package/agents/persona-mary.md +0 -95
  41. package/agents/persona-oliver.md +0 -136
  42. package/agents/persona-rachel.md +0 -126
  43. package/agents/persona-serena.md +0 -175
  44. package/agents/persona-winston.md +0 -117
  45. package/commands/audit.md +0 -170
  46. package/commands/autoplan.md +0 -184
  47. package/commands/design.md +0 -155
  48. package/commands/discuss.md +0 -162
  49. package/commands/doctor.md +0 -124
  50. package/commands/index.md +0 -261
  51. package/commands/install-deps.md +0 -128
  52. package/commands/party.md +0 -241
  53. package/commands/plan-ceo.md +0 -117
  54. package/commands/plan-design.md +0 -107
  55. package/commands/plan-dx.md +0 -104
  56. package/commands/plan-eng.md +0 -108
  57. package/commands/qa.md +0 -118
  58. package/commands/requirements.md +0 -146
  59. package/commands/research.md +0 -141
  60. package/commands/security.md +0 -109
  61. package/commands/sketch.md +0 -118
  62. package/commands/spike.md +0 -181
  63. package/commands/status.md +0 -139
  64. package/commands/switch.md +0 -95
  65. package/commands/tasks.md +0 -189
  66. package/commands/triage.md +0 -160
package/commands/index.md DELETED
@@ -1,261 +0,0 @@
1
- ---
2
- name: index
3
- description: Codebase index — scan brownfield projects and generate a module/component/API index. Provides the foundation for subsequent /curdx-flow:research.
4
- argument-hint: "[--force]"
5
- allowed-tools: [Read, Write, Bash, Grep, Glob]
6
- ---
7
-
8
- # Flow Index — Codebase Scan and Index
9
-
10
- Generate an index for **brownfield projects** (existing code) so that flow-researcher and flow-architect can quickly acquire project-structure information.
11
-
12
- ## Applicable Scenarios
13
-
14
- - Taking over an existing project — run `/curdx-flow:index` first to build understanding
15
- - Large monorepo requiring indexes of subpackages
16
- - Want to add a new feature to the current project — index before researching
17
-
18
- ## Not Applicable
19
-
20
- - Greenfield projects (empty codebase)
21
- - Micro projects (< 20 files)
22
-
23
- ## Step 1: Preflight
24
-
25
- ```bash
26
- [ ! -d ".flow" ] && { echo "❌ Not a CurDX-Flow project. Run /curdx-flow:init first"; exit 1; }
27
-
28
- INDEX_FILE=".flow/codebase-index.md"
29
-
30
- # If one exists and --force is not set, ask
31
- if [ -f "$INDEX_FILE" ] && [ "$ARGUMENTS" != "--force" ]; then
32
- echo "ℹ Index already exists: $INDEX_FILE"
33
- # AskUserQuestion: overwrite / incremental / cancel
34
- fi
35
- ```
36
-
37
- ## Step 2: Detect Project Type
38
-
39
- ```bash
40
- # Identify project language + build tool
41
- if [ -f "package.json" ]; then
42
- PROJECT_TYPE="node"
43
- FRAMEWORK=$(grep -E "(react|vue|next|nuxt|svelte)" package.json | head -3)
44
- elif [ -f "requirements.txt" ] || [ -f "pyproject.toml" ]; then
45
- PROJECT_TYPE="python"
46
- elif [ -f "Cargo.toml" ]; then
47
- PROJECT_TYPE="rust"
48
- elif [ -f "go.mod" ]; then
49
- PROJECT_TYPE="go"
50
- fi
51
- ```
52
-
53
- ## Step 3: Scan Directory Structure
54
-
55
- ```bash
56
- # Top-level directories
57
- DIRS=$(ls -d */ 2>/dev/null | grep -vE "(node_modules|dist|build|\.git|\.next)")
58
-
59
- # File statistics
60
- TOTAL_FILES=$(find . -type f -not -path "*/node_modules/*" -not -path "*/.git/*" | wc -l)
61
- SRC_FILES=$(find src/ -type f 2>/dev/null | wc -l)
62
- ```
63
-
64
- ## Step 4: Identify Modules
65
-
66
- Use Grep + Glob to find module boundaries:
67
-
68
- ```bash
69
- # TypeScript / JavaScript: find export default + public API
70
- # Python: find __init__.py
71
- # Rust: find mod.rs / lib.rs
72
- # Go: find package declaration
73
-
74
- # Typical pattern (Node project):
75
- Glob: src/**/index.{ts,tsx,js}
76
- Grep: "^export (default|const|function|class)" in index files
77
- ```
78
-
79
- ## Step 5: Identify Components / Services / APIs
80
-
81
- ```bash
82
- # UI components
83
- Glob: src/**/*.{tsx,jsx,vue,svelte}
84
-
85
- # API endpoints
86
- Grep: "router\.\(get\|post\|put\|delete\)" or "app\.(get|post)" or "@app.route"
87
-
88
- # DB models
89
- Grep: "@Entity\|Schema\|Model\|prisma\."
90
-
91
- # Services
92
- Glob: src/**/*Service.{ts,js}
93
- ```
94
-
95
- ## Step 6: Build the Index Markdown
96
-
97
- ```markdown
98
- # Codebase Index: <project name>
99
-
100
- Generated: YYYY-MM-DD
101
- Project type: Node (TypeScript + React)
102
- Total files: 234 (189 under src/)
103
-
104
- ## Directory Structure
105
-
106
- ```
107
- src/
108
- ├── auth/ ← authentication module
109
- ├── user/ ← user management
110
- ├── orders/ ← orders
111
- ├── ui/ ← shared UI components
112
- ├── api/ ← API routes
113
- ├── db/ ← DB layer
114
- └── utils/ ← utility functions
115
- ```
116
-
117
- ## Module List
118
-
119
- ### Module: auth
120
- - Path: src/auth/
121
- - Entry: src/auth/index.ts
122
- - Exports:
123
- - `login(email, password)` - log in
124
- - `logout(token)` - log out
125
- - `refreshToken(token)` - refresh
126
- - Dependencies: bcrypt, jsonwebtoken
127
- - Tests: src/auth/*.test.ts (15 tests)
128
-
129
- ### Module: user
130
- - Path: src/user/
131
- - Entry: src/user/index.ts
132
- - Exports:
133
- - `getUser(id)` - fetch user
134
- - `updateProfile(id, data)` - update profile
135
- - Dependencies: prisma
136
- - Tests: src/user/*.test.ts (8 tests)
137
-
138
- ### Module: orders
139
- ...
140
-
141
- ## UI Component List
142
-
143
- ### Shared components (src/ui/)
144
-
145
- - `<Button>` - src/ui/Button.tsx
146
- - `<Input>` - src/ui/Input.tsx
147
- - `<Card>` - src/ui/Card.tsx
148
- - ...
149
-
150
- ### Page components (src/pages/)
151
-
152
- - `LoginPage` - src/pages/Login.tsx
153
- - `DashboardPage` - src/pages/Dashboard.tsx
154
- - ...
155
-
156
- ## API Endpoints
157
-
158
- ### /auth
159
- - POST /auth/login → src/api/auth.ts:login
160
- - POST /auth/logout → src/api/auth.ts:logout
161
- - POST /auth/refresh → src/api/auth.ts:refresh
162
-
163
- ### /users
164
- - GET /users/me → src/api/users.ts:getCurrent
165
- - PUT /users/me → src/api/users.ts:update
166
- - ...
167
-
168
- ## DB Models
169
-
170
- - `User` - src/db/models/User.ts
171
- - `Order` - src/db/models/Order.ts
172
- - ...
173
-
174
- ## Tech Stack
175
-
176
- - **Runtime**: Node 20 + TypeScript 5
177
- - **Framework**: Next.js 14 (App Router)
178
- - **UI**: React 18 + Tailwind + shadcn/ui
179
- - **DB**: PostgreSQL + Prisma
180
- - **Auth**: JWT + bcrypt
181
- - **Testing**: Vitest + Playwright
182
-
183
- ## Commands
184
-
185
- From package.json:
186
- - `npm run dev` - dev server (localhost:3000)
187
- - `npm test` - tests
188
- - `npm run build` - production build
189
- - `npm run lint` - ESLint
190
-
191
- ## Conventions
192
-
193
- - File naming: PascalCase for components, camelCase for utilities
194
- - Tests: `*.test.ts` adjacent to source file
195
- - Types: standalone `types.ts` or inline interface
196
- - Exports: each module's `index.ts` as the public API
197
-
198
- ## Hot Files (most modified recently)
199
-
200
- - src/auth/login.ts (12 commits in the past 30 days)
201
- - src/ui/Button.tsx (8 commits)
202
- - ...
203
-
204
- ## Tech Debt / TODO
205
-
206
- Scan for `// TODO:` / `// FIXME:`:
207
- - src/auth/refresh.ts:28 - "TODO: add rate limiting"
208
- - src/api/orders.ts:45 - "FIXME: handle concurrent updates"
209
- - ...
210
- ```
211
-
212
- ## Step 7: Save + Update .state
213
-
214
- ```bash
215
- # Write
216
- echo "$INDEX_CONTENT" > "$INDEX_FILE"
217
-
218
- # If .flow/config.json exists, record the index time
219
- python3 -c "
220
- import json
221
- c = json.load(open('.flow/config.json'))
222
- c.setdefault('codebase_index', {})['last_updated'] = '$(date +%Y-%m-%d)'
223
- json.dump(c, open('.flow/config.json','w'), indent=2, ensure_ascii=False)
224
- "
225
- ```
226
-
227
- ## Step 8: Output
228
-
229
- ```
230
- ✓ Codebase index complete
231
-
232
- File: .flow/codebase-index.md (~N lines)
233
-
234
- Statistics:
235
- Modules: M
236
- UI components: K
237
- API endpoints: L
238
- DB models: J
239
-
240
- You can now:
241
- - Agents will read this index as context during /curdx-flow:research
242
- - When running /curdx-flow:start for a new feature, reference this index first to find reusable modules
243
- - View it manually to understand the project structure
244
-
245
- Suggestion:
246
- - Rerun after major code changes: /curdx-flow:index --force
247
- - No need to run on every change (30-day stability is OK)
248
- ```
249
-
250
- ## Notes
251
-
252
- - The index is **not full documentation**, it is a **quick guide**. Details still live in the source code.
253
- - Large project scans may take 1-2 minutes
254
- - Does not scan node_modules / dist / build / .git
255
- - Exclusion list configurable (future enhancement)
256
-
257
- ## Error Recovery
258
-
259
- - Project too large (10K+ files) → index by module
260
- - Project type cannot be identified → provide a template for the user to fill in manually
261
- - Some paths have permission issues → skip and continue with the rest
@@ -1,128 +0,0 @@
1
- ---
2
- name: install-deps
3
- description: Interactively install CurDX-Flow's recommended plugin dependencies (pua / claude-mem / frontend-design)
4
- argument-hint: "[--all | --skip-prompt]"
5
- allowed-tools: [Bash, AskUserQuestion]
6
- ---
7
-
8
- # One-Shot Install of Recommended Plugins
9
-
10
- CurDX-Flow auto-installs 3 MCPs via `plugin.json.mcpServers`:
11
- - ✓ context7 — docs lookup
12
- - ✓ sequential-thinking — structured thinking
13
- - ✓ chrome-devtools — browser QA
14
-
15
- This command interactively installs 3 recommended **plugins** (they are not MCPs and must be installed separately):
16
-
17
- | Plugin | Purpose | Official/Community |
18
- |--------|---------|--------------------|
19
- | **pua** (tanweai/pua) | Prevent AI from giving up; enforces the three red lines | Community |
20
- | **claude-mem** (thedotmack/claude-mem) | Automatic cross-session memory | Community |
21
- | **frontend-design** | UI design skill | Anthropic official |
22
-
23
- ## Execution Steps
24
-
25
- ### Step 1: Network Check
26
-
27
- ```bash
28
- if ! ping -c 1 -W 2 github.com >/dev/null 2>&1; then
29
- echo "⚠️ Network unreachable, cannot install plugins from the marketplace."
30
- echo "CurDX-Flow will run in degraded mode (MCPs remain available)."
31
- exit 0
32
- fi
33
- ```
34
-
35
- ### Step 2: Detect Current Installation Status
36
-
37
- ```bash
38
- INSTALLED=$(claude plugin list 2>/dev/null || echo "")
39
- ```
40
-
41
- Parse out which are installed and which are not.
42
-
43
- ### Step 3: Ask the User
44
-
45
- If the `--all` argument is present, skip asking and install everything. Otherwise use AskUserQuestion:
46
-
47
- **Question**: Which recommended plugins to install?
48
-
49
- **Options** (list only those not installed):
50
- - **all** — Install all (recommended)
51
- - **recommended** — Install pua + claude-mem + frontend-design
52
- - **custom** — Pick manually (follow up with a multi-select question)
53
- - **skip** — Skip (the core MCPs are already enough)
54
-
55
- If the user picks `custom`, use a second AskUserQuestion to let them multi-select which to install.
56
-
57
- ### Step 4: Run Installation
58
-
59
- Based on the selection (install only those not yet installed):
60
-
61
- #### pua
62
-
63
- ```bash
64
- claude plugin marketplace add tanweai/pua
65
- claude plugin install pua@pua-skills --scope user
66
- ```
67
-
68
- #### claude-mem
69
-
70
- ```bash
71
- claude plugin marketplace add thedotmack/claude-mem
72
- claude plugin install claude-mem --scope user
73
- ```
74
-
75
- #### frontend-design
76
-
77
- Anthropic's official plugin is typically in the default marketplace:
78
-
79
- ```bash
80
- # If the default marketplace is enabled
81
- claude plugin install frontend-design --scope user
82
- ```
83
-
84
- On failure, tell the user:
85
- > frontend-design must be installed from the official marketplace. Inside Claude Code run:
86
- > `/plugin`, then search for "frontend-design" in the Discover panel.
87
-
88
- ### Step 5: Update Marker
89
-
90
- ```bash
91
- DATA_DIR="${CLAUDE_PLUGIN_DATA:-$HOME/.claude/plugins/data/curdx-flow}"
92
- mkdir -p "$DATA_DIR"
93
- echo "$(date +%Y-%m-%d)" > "$DATA_DIR/.deps-checked"
94
- ```
95
-
96
- Prevents the SessionStart hook from continuing to remind.
97
-
98
- ### Step 6: Verify and Report
99
-
100
- ```bash
101
- claude plugin list 2>/dev/null | grep -E "pua|claude-mem|frontend-design"
102
- ```
103
-
104
- Print the installation summary:
105
-
106
- ```
107
- Install report:
108
- ✓ pua (v3.2.1)
109
- ✓ claude-mem (v12.3.0)
110
- ⚠ frontend-design (requires manual install via /plugin)
111
-
112
- Next steps:
113
- /curdx-flow:doctor — full health check
114
- /curdx-flow:init — initialize project (if not yet initialized)
115
- ```
116
-
117
- ## Error Handling
118
-
119
- - `claude plugin marketplace add` failure → report the specific error (usually network/permissions)
120
- - `claude plugin install` failure → ask the user to run the command manually
121
- - User interruption → keep what is already installed, resume on the next run
122
- - Installed but needs updating → suggest `claude plugin update <name>`
123
-
124
- ## Notes
125
-
126
- - This command only **installs**, it does not **configure**. See each plugin's own docs for configuration.
127
- - Installation is **global** (scope=user), shared across all projects.
128
- - Uninstall: `claude plugin uninstall <name>`
package/commands/party.md DELETED
@@ -1,241 +0,0 @@
1
- ---
2
- name: party
3
- description: Party Mode — multiple persona agents independently think about one question at the same time. BMAD-style true multi-agent collaboration.
4
- argument-hint: "<persona-1> <persona-2> ... \"<question>\""
5
- allowed-tools: [Read, Task, AskUserQuestion]
6
- ---
7
-
8
- # Flow Party — Multi-Agent Independent Thinking
9
-
10
- Have multiple **persona agents** (Mary/John/Winston, etc.) independently think about the same question at the same time. This is BMAD's true innovation: **not one LLM playing multiple roles, but multiple Task subprocesses each thinking on their own, avoiding opinion convergence**.
11
-
12
- ## When to use
13
-
14
- - Hard decisions needing multiple perspectives (e.g., architecture selection)
15
- - Spec review (separately reviewed from product / arch / qa)
16
- - Brainstorming / divergent thinking
17
- - Finding blind spots (one perspective may see what others cannot)
18
-
19
- ## When not to use
20
-
21
- - Simple questions (overhead is high)
22
- - Questions with a clear answer (agents will only echo)
23
- - Execution tasks (use a dedicated executor)
24
-
25
- ## Step 1: Parse arguments
26
-
27
- ```bash
28
- ARGS="$ARGUMENTS"
29
-
30
- # Recognize personas (known list)
31
- PERSONAS=()
32
- QUESTION=""
33
-
34
- # Simple parsing: persona names + a question wrapped in quotes at the end
35
- # Example: /curdx-flow:party mary john winston "JWT or session?"
36
-
37
- # Parsing logic: iterate words, add known persona names to PERSONAS, rest is the question
38
- KNOWN_PERSONAS="mary john winston amelia rachel oliver serena david emma"
39
-
40
- REMAINING=""
41
- for word in $ARGS; do
42
- if echo "$KNOWN_PERSONAS" | grep -qw "$word"; then
43
- PERSONAS+=("$word")
44
- else
45
- REMAINING="$REMAINING $word"
46
- fi
47
- done
48
-
49
- # REMAINING is the question (possibly with quotes)
50
- QUESTION=$(echo "$REMAINING" | sed 's/^[[:space:]]*//;s/^["\x27]//;s/["\x27]$//')
51
- ```
52
-
53
- ## Step 2: Validate arguments
54
-
55
- ```bash
56
- if [ ${#PERSONAS[@]} -lt 2 ]; then
57
- echo "✗ Party Mode requires ≥ 2 personas"
58
- echo "Available: mary john winston amelia rachel oliver serena david emma"
59
- exit 1
60
- fi
61
-
62
- if [ ${#PERSONAS[@]} -gt 5 ]; then
63
- echo "⚠ More than 5 personas will make output hard to read. Recommend ≤ 5"
64
- fi
65
-
66
- if [ -z "$QUESTION" ]; then
67
- echo "✗ Please provide a question"
68
- exit 1
69
- fi
70
- ```
71
-
72
- ## Step 3: Build shared context
73
-
74
- All personas read the same background:
75
-
76
- ```bash
77
- CONTEXT_FILES=()
78
- [ -f "CLAUDE.md" ] && CONTEXT_FILES+=("CLAUDE.md")
79
- [ -f ".flow/PROJECT.md" ] && CONTEXT_FILES+=(".flow/PROJECT.md")
80
- [ -f ".flow/CONTEXT.md" ] && CONTEXT_FILES+=(".flow/CONTEXT.md")
81
-
82
- # If there is an active spec, append
83
- ACTIVE=$(cat .flow/.active-spec 2>/dev/null)
84
- if [ -n "$ACTIVE" ]; then
85
- for f in research.md requirements.md design.md; do
86
- [ -f ".flow/specs/$ACTIVE/$f" ] && CONTEXT_FILES+=(".flow/specs/$ACTIVE/$f")
87
- done
88
- fi
89
- ```
90
-
91
- ## Step 4: Dispatch each persona in parallel
92
-
93
- **Key**: call multiple Task tools **in a single message** at the same time (parallel execution).
94
- This way each persona thinks in an independent context without influencing the others.
95
-
96
- ```
97
- # Parallel invocation (in a single message):
98
- Task(mary):
99
- subagent_type: general-purpose
100
- description: "Mary thinking about $QUESTION"
101
- prompt: |
102
- You are Mary (Senior Analyst). Full definition:
103
- ${CLAUDE_PLUGIN_ROOT}/agents/persona-mary.md
104
-
105
- Shared context:
106
- $(cat ${CONTEXT_FILES[@]} 2>/dev/null)
107
-
108
- Question: $QUESTION
109
-
110
- Answer from Mary's perspective:
111
- - First list explicit assumptions
112
- - Give 2-3 interpretations from a research / analysis perspective
113
- - Clearly state open questions
114
- - Provide an initial recommendation (if any)
115
-
116
- **Forbidden**:
117
- - Speaking on behalf of other personas
118
- - Claiming "synthesizing John's and Winston's opinions" (you don't know what they said)
119
- - Echoing / converging
120
-
121
- Output a concise view of <200 words.
122
-
123
- Task(john):
124
- ... [john's prompt]
125
-
126
- Task(winston):
127
- ... [winston's prompt]
128
- ```
129
-
130
- **Parallel execution**: Claude Code's Task tool supports multiple invocations in a single message running in parallel.
131
-
132
- ## Step 5: Collect results
133
-
134
- Each Task returns an independent answer. The main agent (you) aggregates:
135
-
136
- ```markdown
137
- ## Party Mode Results: <QUESTION>
138
-
139
- ### Mary (Senior Analyst)
140
- <Mary's answer>
141
-
142
- ### John (Product Manager)
143
- <John's answer>
144
-
145
- ### Winston (Architect)
146
- <Winston's answer>
147
-
148
- ## Perspective comparison
149
-
150
- | Dimension | Mary | John | Winston |
151
- |-----------|------|------|---------|
152
- | Main concern | ... | ... | ... |
153
- | Recommended direction | ... | ... | ... |
154
- | Open questions | ... | ... | ... |
155
-
156
- ## Points of disagreement
157
-
158
- 1. Mary and Winston disagree on X: <specifics>
159
- 2. Y raised by John that neither of the others considered: <specifics>
160
-
161
- ## Consensus
162
-
163
- 1. Everyone agrees on Z
164
-
165
- ## Recommendation
166
-
167
- Based on multi-perspective synthesis:
168
- - If you care about A → follow Mary
169
- - If you care about B → follow Winston
170
- - Middle-ground option: Y proposed by John
171
- ```
172
-
173
- ## Step 6: Let the user decide
174
-
175
- ```
176
- AskUserQuestion:
177
- question: "Having seen the multi-perspective analysis, which direction do you lean toward?"
178
- options:
179
- - Follow Mary's direction
180
- - Follow John's direction
181
- - Follow Winston's direction
182
- - Synthesis: <specific compromise>
183
- - Other (user input)
184
- ```
185
-
186
- After the user chooses, write the decision to STATE.md (as D-NN, via /curdx-flow:discuss or manually).
187
-
188
- ## Typical usage
189
-
190
- ### Architecture selection
191
-
192
- ```
193
- /curdx-flow:party winston mary "JWT vs Session — which is more suitable in this project"
194
- ```
195
-
196
- ### Spec review
197
-
198
- ```
199
- /curdx-flow:party john rachel oliver "are the ACs in requirements.md sufficient"
200
- ```
201
-
202
- ### Bug approach discussion
203
-
204
- ```
205
- /curdx-flow:party david winston "should this crash be fixed at the root cause or wrapped in try-catch"
206
- ```
207
-
208
- ### UX decision
209
-
210
- ```
211
- /curdx-flow:party emma john oliver "how to present login failure error messages"
212
- ```
213
-
214
- ## Forbidden
215
-
216
- - ✗ Dispatching only 1 agent (that's not a Party — just use Task directly)
217
- - ✗ Agents referencing each other (the point of independent thinking is isolation)
218
- - ✗ Sequential dispatch (must be parallel Task invocations)
219
- - ✗ Overly long agent output (each <300 words)
220
-
221
- ## Why Party Mode has value
222
-
223
- ### Single LLM playing multiple roles vs. true multi-agent
224
-
225
- Single LLM: "As Mary I think X... As Winston I think Y... Synthesizing the two views, Z"
226
-
227
- Problems:
228
- - Opinions have already converged in advance (the LLM generates in one pass; later parts are influenced by earlier ones)
229
- - "Synthesis" is done by the LLM itself, without real collision
230
- - Easily becomes "one voice imitating multiple people"
231
-
232
- True multi-agent (Party Mode):
233
- - Mary's context contains only "I am Mary" and the question
234
- - Winston's context contains only "I am Winston" and the question
235
- - The two have no idea what the other said
236
- - The output is truly independent thinking
237
- - The differences are real differences, not acted out
238
-
239
- ---
240
-
241
- _Source: BMAD's Party Mode, implemented in CurDX-Flow via parallel dispatch of Claude Code's Task tool._