claude-symphony 0.0.9 → 0.0.11
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/README.md +32 -4
- package/bin/create.js +179 -1
- package/package.json +1 -1
- package/template/.claude/skills/synthesis-consolidator/README.md +41 -0
- package/template/.claude/skills/synthesis-consolidator/prompts/CLAUDE.md +96 -0
- package/template/CLAUDE.md +96 -0
- package/template/config/ai_collaboration.yaml +41 -0
- package/template/config/models.yaml +7 -7
package/README.md
CHANGED
|
@@ -22,6 +22,10 @@ claude-symphony is a 10-stage software development workflow pipeline that orches
|
|
|
22
22
|
- **Pipeline Forking**: Branch exploration for architecture alternatives with merge capabilities
|
|
23
23
|
- **Stage Personas**: Optimized AI behavior profiles per stage (Creative Explorer, Precise Builder, etc.)
|
|
24
24
|
- **Output Validation**: Automated quality checks with lint, typecheck, and coverage verification
|
|
25
|
+
- **Epic Cycles**: User-defined stage range repetition with context preservation between cycles
|
|
26
|
+
- **Implementation Order**: Frontend-first or backend-first development approach with reference links
|
|
27
|
+
- **Requirements Refinement**: 4-level breakdown system (Epic → Feature → Task → Subtask) with INVEST validation
|
|
28
|
+
- **Moodboard UX**: Interactive design reference collection with Claude Vision/Figma MCP analysis
|
|
25
29
|
- **Dual Distribution**: Both NPM CLI and Claude Code plugin available
|
|
26
30
|
|
|
27
31
|
### Pipeline Stages
|
|
@@ -170,6 +174,15 @@ This monorepo contains three packages:
|
|
|
170
174
|
| Pipeline Fork | `symphony fork` | `/fork` | Create/manage pipeline branches for exploration |
|
|
171
175
|
| Output Validation | `symphony validate` | `/validate` | Validate stage outputs against quality criteria |
|
|
172
176
|
|
|
177
|
+
### Workflow Commands
|
|
178
|
+
|
|
179
|
+
| Command | Plugin | Description |
|
|
180
|
+
|---------|--------|-------------|
|
|
181
|
+
| Epic Cycle | `/epic` | Manage epic cycles (new, set-scope, set-count, history) |
|
|
182
|
+
| Implementation Order | `/config order` | Set development order (frontend/backend/parallel) |
|
|
183
|
+
| Moodboard | `/moodboard` | Interactive design reference collection and analysis |
|
|
184
|
+
| Requirements Refine | `/refine` | Break down requirements (Epic → Feature → Task → Subtask) |
|
|
185
|
+
|
|
173
186
|
### Stage Shortcuts
|
|
174
187
|
|
|
175
188
|
| Stage | CLI | Plugin |
|
|
@@ -226,7 +239,12 @@ Each project is fully self-contained with all pipeline components:
|
|
|
226
239
|
```
|
|
227
240
|
my-project/ # PROJECT_ROOT
|
|
228
241
|
├── .claude/ # Claude Code configuration
|
|
229
|
-
│ ├── commands/ # Slash commands (
|
|
242
|
+
│ ├── commands/ # Slash commands (30+ commands)
|
|
243
|
+
│ │ ├── epic.md # /epic - Epic cycle management
|
|
244
|
+
│ │ ├── moodboard.md # /moodboard - Design collection
|
|
245
|
+
│ │ ├── refine.md # /refine - Requirements refinement
|
|
246
|
+
│ │ ├── config.md # /config - Implementation order
|
|
247
|
+
│ │ └── ...
|
|
230
248
|
│ ├── hooks/ # Lifecycle hooks
|
|
231
249
|
│ ├── skills/ # AI skills
|
|
232
250
|
│ └── settings.json
|
|
@@ -242,14 +260,22 @@ my-project/ # PROJECT_ROOT
|
|
|
242
260
|
│ ├── 02-research/
|
|
243
261
|
│ └── ... (10 stages total)
|
|
244
262
|
├── config/ # Pipeline configuration
|
|
245
|
-
│ ├── pipeline.yaml
|
|
246
|
-
│ ├── context.yaml
|
|
247
|
-
│
|
|
263
|
+
│ ├── pipeline.yaml # Core pipeline settings
|
|
264
|
+
│ ├── context.yaml # Context management
|
|
265
|
+
│ ├── epic_cycles.yaml # Epic cycle configuration
|
|
266
|
+
│ ├── implementation_order.yaml # Dev order settings
|
|
267
|
+
│ ├── requirements_refinement.yaml # Refinement rules
|
|
268
|
+
│ ├── ui-ux.yaml # Moodboard & design settings
|
|
269
|
+
│ └── ... (20+ config files)
|
|
248
270
|
├── state/ # Project state
|
|
249
271
|
│ ├── progress.json # Pipeline progress
|
|
250
272
|
│ ├── checkpoints/ # Recovery points
|
|
251
273
|
│ └── context/ # Context snapshots
|
|
252
274
|
├── scripts/ # Helper scripts
|
|
275
|
+
│ ├── epic-cycle.sh # Epic cycle management
|
|
276
|
+
│ ├── moodboard-manager.sh # Moodboard collection
|
|
277
|
+
│ ├── requirements-refine.sh # Requirements refinement
|
|
278
|
+
│ └── ...
|
|
253
279
|
├── CLAUDE.md # Main AI instructions
|
|
254
280
|
├── src/ # Source code (from stage 06)
|
|
255
281
|
└── package.json
|
|
@@ -266,6 +292,8 @@ my-project/ # PROJECT_ROOT
|
|
|
266
292
|
7. **Multi-AI Collaboration** - Parallel, sequential, and debate modes for AI coordination
|
|
267
293
|
8. **Pipeline Forking** - Branch exploration with merge capabilities
|
|
268
294
|
9. **Smart Context Management** - Semantic compression and AI memory integration
|
|
295
|
+
10. **Iterative Refinement Loops** - Epic cycles, requirements refinement, and moodboard feedback
|
|
296
|
+
11. **Hierarchical Decomposition** - 4-level requirement breakdown (Epic → Feature → Task → Subtask)
|
|
269
297
|
|
|
270
298
|
## Documentation
|
|
271
299
|
|
package/bin/create.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import fs from 'fs';
|
|
4
4
|
import path from 'path';
|
|
5
5
|
import { fileURLToPath } from 'url';
|
|
6
|
-
import { input, confirm } from '@inquirer/prompts';
|
|
6
|
+
import { input, confirm, select } from '@inquirer/prompts';
|
|
7
7
|
import yaml from 'js-yaml';
|
|
8
8
|
|
|
9
9
|
const __filename = fileURLToPath(import.meta.url);
|
|
@@ -111,6 +111,66 @@ async function collectBriefInfo() {
|
|
|
111
111
|
default: true
|
|
112
112
|
});
|
|
113
113
|
|
|
114
|
+
// === Epic & Workflow Configuration ===
|
|
115
|
+
console.log('');
|
|
116
|
+
log('🔄 Epic & Workflow Configuration', 'yellow');
|
|
117
|
+
log(' (All settings can be modified later via commands)', 'reset');
|
|
118
|
+
|
|
119
|
+
// 1. Epic Cycles (High priority)
|
|
120
|
+
info.epicEnabled = await confirm({
|
|
121
|
+
message: '🔄 Enable Epic Cycles? (repeat stages for iterative refinement)',
|
|
122
|
+
default: false
|
|
123
|
+
});
|
|
124
|
+
|
|
125
|
+
if (info.epicEnabled) {
|
|
126
|
+
// 2. Epic Scope (High priority)
|
|
127
|
+
info.epicScope = await select({
|
|
128
|
+
message: '📍 Epic cycle scope: (which stages to repeat)',
|
|
129
|
+
choices: [
|
|
130
|
+
{ name: 'Ideation (01-03) - concept exploration', value: 'ideation' },
|
|
131
|
+
{ name: 'Design (01-05) - full design iteration', value: 'design' },
|
|
132
|
+
{ name: 'Implementation (06-09) - code sprints', value: 'implementation' },
|
|
133
|
+
{ name: 'Full Pipeline (01-10) - end-to-end', value: 'full' }
|
|
134
|
+
],
|
|
135
|
+
default: 'design'
|
|
136
|
+
});
|
|
137
|
+
|
|
138
|
+
// 3. Total Cycles (High priority)
|
|
139
|
+
info.epicTotalCycles = await input({
|
|
140
|
+
message: '🔢 Total Epic cycles (1-5): (iterations for refinement)',
|
|
141
|
+
default: '2',
|
|
142
|
+
validate: (v) => {
|
|
143
|
+
const num = parseInt(v);
|
|
144
|
+
if (isNaN(num) || num < 1 || num > 5) return 'Enter 1-5';
|
|
145
|
+
return true;
|
|
146
|
+
}
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
// 4. Implementation Order (Medium priority)
|
|
151
|
+
info.implementationOrder = await select({
|
|
152
|
+
message: '🏗️ Implementation order: (frontend-first vs backend-first)',
|
|
153
|
+
choices: [
|
|
154
|
+
{ name: 'Frontend First - UI then APIs', value: 'frontend_first' },
|
|
155
|
+
{ name: 'Backend First - APIs then UI', value: 'backend_first' },
|
|
156
|
+
{ name: 'Parallel - both simultaneously', value: 'parallel' },
|
|
157
|
+
{ name: 'Decide Later', value: null }
|
|
158
|
+
],
|
|
159
|
+
default: null
|
|
160
|
+
});
|
|
161
|
+
|
|
162
|
+
// 5. Requirements Refinement (Medium priority)
|
|
163
|
+
info.requirementsRefinement = await confirm({
|
|
164
|
+
message: '📋 Enable Requirements Refinement? (Epic→Feature→Task breakdown)',
|
|
165
|
+
default: true
|
|
166
|
+
});
|
|
167
|
+
|
|
168
|
+
// 6. Moodboard (Low priority)
|
|
169
|
+
info.moodboardEnabled = await confirm({
|
|
170
|
+
message: '🎨 Enable Moodboard collection? (visual references for UI/UX)',
|
|
171
|
+
default: true
|
|
172
|
+
});
|
|
173
|
+
|
|
114
174
|
return info;
|
|
115
175
|
}
|
|
116
176
|
|
|
@@ -182,6 +242,98 @@ function applyConfigSettings(targetDir, info) {
|
|
|
182
242
|
// Silently continue if JSON parsing fails
|
|
183
243
|
}
|
|
184
244
|
}
|
|
245
|
+
|
|
246
|
+
// Scope preset mapping
|
|
247
|
+
const scopes = {
|
|
248
|
+
ideation: { start: '01-brainstorm', end: '03-planning' },
|
|
249
|
+
design: { start: '01-brainstorm', end: '05-task-management' },
|
|
250
|
+
implementation: { start: '06-implementation', end: '09-testing' },
|
|
251
|
+
full: { start: '01-brainstorm', end: '10-deployment' }
|
|
252
|
+
};
|
|
253
|
+
|
|
254
|
+
// Epic Cycles YAML
|
|
255
|
+
const epicPath = path.join(targetDir, 'config', 'epic_cycles.yaml');
|
|
256
|
+
if (fs.existsSync(epicPath)) {
|
|
257
|
+
try {
|
|
258
|
+
const config = yaml.load(fs.readFileSync(epicPath, 'utf8'));
|
|
259
|
+
config.epic_cycles.enabled = info.epicEnabled ?? false;
|
|
260
|
+
if (info.epicEnabled) {
|
|
261
|
+
config.epic_cycles.cycle_config.default_cycles = parseInt(info.epicTotalCycles) || 2;
|
|
262
|
+
const scope = scopes[info.epicScope] || scopes.design;
|
|
263
|
+
config.epic_cycles.cycle_scope.start_stage = scope.start;
|
|
264
|
+
config.epic_cycles.cycle_scope.end_stage = scope.end;
|
|
265
|
+
}
|
|
266
|
+
fs.writeFileSync(epicPath, yaml.dump(config, { lineWidth: -1 }));
|
|
267
|
+
} catch (e) { /* silent */ }
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
// Implementation Order YAML
|
|
271
|
+
const implPath = path.join(targetDir, 'config', 'implementation_order.yaml');
|
|
272
|
+
if (fs.existsSync(implPath)) {
|
|
273
|
+
try {
|
|
274
|
+
const config = yaml.load(fs.readFileSync(implPath, 'utf8'));
|
|
275
|
+
config.implementation_order.current_order = info.implementationOrder ?? null;
|
|
276
|
+
fs.writeFileSync(implPath, yaml.dump(config, { lineWidth: -1 }));
|
|
277
|
+
} catch (e) { /* silent */ }
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
// Requirements Refinement YAML
|
|
281
|
+
const reqPath = path.join(targetDir, 'config', 'requirements_refinement.yaml');
|
|
282
|
+
if (fs.existsSync(reqPath)) {
|
|
283
|
+
try {
|
|
284
|
+
const config = yaml.load(fs.readFileSync(reqPath, 'utf8'));
|
|
285
|
+
config.requirements_refinement.enabled = info.requirementsRefinement ?? true;
|
|
286
|
+
fs.writeFileSync(reqPath, yaml.dump(config, { lineWidth: -1 }));
|
|
287
|
+
} catch (e) { /* silent */ }
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
// UI-UX YAML (Moodboard)
|
|
291
|
+
const uiPath = path.join(targetDir, 'config', 'ui-ux.yaml');
|
|
292
|
+
if (fs.existsSync(uiPath)) {
|
|
293
|
+
try {
|
|
294
|
+
const config = yaml.load(fs.readFileSync(uiPath, 'utf8'));
|
|
295
|
+
if (config.moodboard?.collection_flow) {
|
|
296
|
+
config.moodboard.collection_flow.enabled = info.moodboardEnabled ?? true;
|
|
297
|
+
}
|
|
298
|
+
fs.writeFileSync(uiPath, yaml.dump(config, { lineWidth: -1 }));
|
|
299
|
+
} catch (e) { /* silent */ }
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
// Update progress.json with epic fields
|
|
303
|
+
if (fs.existsSync(progressPath)) {
|
|
304
|
+
try {
|
|
305
|
+
const progress = JSON.parse(fs.readFileSync(progressPath, 'utf8'));
|
|
306
|
+
|
|
307
|
+
// Epic cycle settings
|
|
308
|
+
if (progress.epic_cycle) {
|
|
309
|
+
progress.epic_cycle.enabled = info.epicEnabled ?? false;
|
|
310
|
+
if (info.epicEnabled) {
|
|
311
|
+
progress.epic_cycle.total_cycles = parseInt(info.epicTotalCycles) || 2;
|
|
312
|
+
const scope = scopes[info.epicScope] || scopes.design;
|
|
313
|
+
progress.epic_cycle.scope.start_stage = scope.start;
|
|
314
|
+
progress.epic_cycle.scope.end_stage = scope.end;
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
// Epic context in current_iteration
|
|
319
|
+
if (progress.current_iteration?.epic_context) {
|
|
320
|
+
progress.current_iteration.epic_context.enabled = info.epicEnabled ?? false;
|
|
321
|
+
progress.current_iteration.epic_context.total_cycles = parseInt(info.epicTotalCycles) || 1;
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
// Implementation order
|
|
325
|
+
if (progress.implementation_order) {
|
|
326
|
+
progress.implementation_order.selected = info.implementationOrder ?? null;
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
// Requirements refinement
|
|
330
|
+
if (progress.requirements_refinement) {
|
|
331
|
+
progress.requirements_refinement.active = info.requirementsRefinement ?? true;
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
fs.writeFileSync(progressPath, JSON.stringify(progress, null, 2));
|
|
335
|
+
} catch (e) { /* silent */ }
|
|
336
|
+
}
|
|
185
337
|
}
|
|
186
338
|
|
|
187
339
|
function generateBriefContent(projectName, info) {
|
|
@@ -305,6 +457,32 @@ ${colors.yellow}After creation:${colors.reset}
|
|
|
305
457
|
copyRecursiveSync(templateDir, targetDir);
|
|
306
458
|
log('✓ Template copy complete', 'green');
|
|
307
459
|
|
|
460
|
+
// 3.1 Remove any nested .git directories from the copied template
|
|
461
|
+
// This prevents nested git repositories which cause tracking issues
|
|
462
|
+
function removeNestedGitDirs(dir, isRoot = true) {
|
|
463
|
+
if (!fs.existsSync(dir)) return;
|
|
464
|
+
|
|
465
|
+
const items = fs.readdirSync(dir);
|
|
466
|
+
for (const item of items) {
|
|
467
|
+
const itemPath = path.join(dir, item);
|
|
468
|
+
const stat = fs.statSync(itemPath);
|
|
469
|
+
|
|
470
|
+
if (stat.isDirectory()) {
|
|
471
|
+
if (item === '.git' && !isRoot) {
|
|
472
|
+
// Remove nested .git directories (not the root one if it exists)
|
|
473
|
+
fs.rmSync(itemPath, { recursive: true, force: true });
|
|
474
|
+
log(` Removed nested .git from ${path.relative(targetDir, dir)}`, 'yellow');
|
|
475
|
+
} else if (item !== '.git') {
|
|
476
|
+
// Recurse into non-.git directories
|
|
477
|
+
removeNestedGitDirs(itemPath, false);
|
|
478
|
+
}
|
|
479
|
+
}
|
|
480
|
+
}
|
|
481
|
+
}
|
|
482
|
+
|
|
483
|
+
removeNestedGitDirs(targetDir);
|
|
484
|
+
log('✓ Cleaned up nested .git directories', 'green');
|
|
485
|
+
|
|
308
486
|
// 4. Initialize progress.json
|
|
309
487
|
const progressTemplatePath = path.join(targetDir, 'state', 'progress.json.template');
|
|
310
488
|
const progressPath = path.join(targetDir, 'state', 'progress.json');
|
package/package.json
CHANGED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# Synthesis Consolidator Skill
|
|
2
|
+
|
|
3
|
+
Consolidates outputs from parallel AI execution into a unified result.
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
When multiple AI models execute the same task in parallel, this skill helps Claude Code synthesize their outputs into a single, high-quality deliverable.
|
|
8
|
+
|
|
9
|
+
## Trigger
|
|
10
|
+
|
|
11
|
+
- `/synthesize` command
|
|
12
|
+
- Auto-triggered after parallel execution completes
|
|
13
|
+
|
|
14
|
+
## Workflow
|
|
15
|
+
|
|
16
|
+
1. **Collect** - Gather all parallel model outputs
|
|
17
|
+
2. **Analyze** - Identify commonalities and consensus
|
|
18
|
+
3. **Evaluate** - Compare differences and unique insights
|
|
19
|
+
4. **Synthesize** - Create unified output
|
|
20
|
+
5. **Validate** - Verify completeness and quality
|
|
21
|
+
|
|
22
|
+
## Configuration
|
|
23
|
+
|
|
24
|
+
See `config/ai_collaboration.yaml` for:
|
|
25
|
+
- `consolidation_workflow.synthesizer` - Default: claudecode
|
|
26
|
+
- `consolidation_workflow.quality_threshold` - Default: 0.8
|
|
27
|
+
|
|
28
|
+
## Parallel-Capable Stages
|
|
29
|
+
|
|
30
|
+
| Stage | Primary Model | Secondary Model |
|
|
31
|
+
|-------|---------------|-----------------|
|
|
32
|
+
| 01-brainstorm | Gemini | ClaudeCode |
|
|
33
|
+
| 03-planning | Gemini | ClaudeCode |
|
|
34
|
+
| 04-ui-ux | Gemini | ClaudeCode |
|
|
35
|
+
| 07-refactoring | Codex | ClaudeCode |
|
|
36
|
+
| 09-testing | Codex | ClaudeCode |
|
|
37
|
+
|
|
38
|
+
## Output
|
|
39
|
+
|
|
40
|
+
- Final synthesized output: Stage's required output file
|
|
41
|
+
- Synthesis log: `state/collaborations/synthesis_log.md`
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
# Synthesis Consolidator - Claude Code Instructions
|
|
2
|
+
|
|
3
|
+
## Role
|
|
4
|
+
You are the **Synthesis Consolidator** for parallel AI execution results.
|
|
5
|
+
|
|
6
|
+
## Protocol
|
|
7
|
+
|
|
8
|
+
### Step 1: Collect Outputs
|
|
9
|
+
Read all parallel execution outputs:
|
|
10
|
+
- `outputs/output_gemini.md`
|
|
11
|
+
- `outputs/output_codex.md`
|
|
12
|
+
- `outputs/output_claudecode.md`
|
|
13
|
+
|
|
14
|
+
### Step 2: Analyze Commonalities
|
|
15
|
+
Identify consensus items (present in 2+ outputs):
|
|
16
|
+
- Shared recommendations
|
|
17
|
+
- Common structural patterns
|
|
18
|
+
- Agreed approaches
|
|
19
|
+
|
|
20
|
+
### Step 3: Evaluate Differences
|
|
21
|
+
For unique contributions:
|
|
22
|
+
| Situation | Action |
|
|
23
|
+
|-----------|--------|
|
|
24
|
+
| Unique + valuable | Include |
|
|
25
|
+
| Unique + questionable | Omit or flag |
|
|
26
|
+
| Conflicts consensus | Document as alternative |
|
|
27
|
+
|
|
28
|
+
### Step 4: Create Synthesis
|
|
29
|
+
Generate unified output with:
|
|
30
|
+
- Consensus items (high confidence)
|
|
31
|
+
- Integrated unique insights
|
|
32
|
+
- Alternative approaches noted
|
|
33
|
+
|
|
34
|
+
### Step 5: Validate
|
|
35
|
+
- [ ] All required sections present
|
|
36
|
+
- [ ] No critical information lost
|
|
37
|
+
- [ ] Reads as coherent document
|
|
38
|
+
|
|
39
|
+
## Output
|
|
40
|
+
Save to stage's required output file and log to `state/collaborations/synthesis_log.md`
|
|
41
|
+
|
|
42
|
+
## Synthesis Log Format
|
|
43
|
+
|
|
44
|
+
```markdown
|
|
45
|
+
# Synthesis Log - {{STAGE_NAME}}
|
|
46
|
+
|
|
47
|
+
## Timestamp
|
|
48
|
+
{{TIMESTAMP}}
|
|
49
|
+
|
|
50
|
+
## Input Sources
|
|
51
|
+
| Model | Output File | Status |
|
|
52
|
+
|-------|-------------|--------|
|
|
53
|
+
| {{MODEL}} | {{FILE}} | {{STATUS}} |
|
|
54
|
+
|
|
55
|
+
## Consensus Analysis
|
|
56
|
+
### High Confidence Items (2+ models agree)
|
|
57
|
+
- {{ITEM}}
|
|
58
|
+
|
|
59
|
+
### Unique Contributions
|
|
60
|
+
| Source | Contribution | Decision |
|
|
61
|
+
|--------|--------------|----------|
|
|
62
|
+
| {{MODEL}} | {{CONTRIBUTION}} | {{INCLUDED/EXCLUDED}} |
|
|
63
|
+
|
|
64
|
+
## Quality Metrics
|
|
65
|
+
- Completeness: {{SCORE}}
|
|
66
|
+
- Coherence: {{SCORE}}
|
|
67
|
+
- Coverage: {{SCORE}}
|
|
68
|
+
|
|
69
|
+
## Final Output
|
|
70
|
+
- File: {{OUTPUT_FILE}}
|
|
71
|
+
- Sections: {{SECTION_COUNT}}
|
|
72
|
+
- Word Count: {{WORD_COUNT}}
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## Conflict Resolution Priority
|
|
76
|
+
|
|
77
|
+
1. **Factual consistency** - Prefer verifiable facts
|
|
78
|
+
2. **Technical accuracy** - Prefer correct technical details
|
|
79
|
+
3. **Completeness** - Include rather than exclude when uncertain
|
|
80
|
+
4. **Clarity** - Prefer clearer explanations
|
|
81
|
+
|
|
82
|
+
## Commands
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
# Trigger synthesis for current stage
|
|
86
|
+
/synthesize
|
|
87
|
+
|
|
88
|
+
# Verbose mode with detailed analysis
|
|
89
|
+
/synthesize --verbose
|
|
90
|
+
|
|
91
|
+
# Dry run - show what would be synthesized
|
|
92
|
+
/synthesize --dry-run
|
|
93
|
+
|
|
94
|
+
# Force re-synthesis even if output exists
|
|
95
|
+
/synthesize --force
|
|
96
|
+
```
|
package/template/CLAUDE.md
CHANGED
|
@@ -197,6 +197,15 @@ Visualizes context usage, tool activity, and todo progress in the statusline.
|
|
|
197
197
|
| `/test` | 09-testing |
|
|
198
198
|
| `/deploy` | 10-deployment |
|
|
199
199
|
|
|
200
|
+
### Requirements & Design Commands
|
|
201
|
+
| Command | Description |
|
|
202
|
+
|---------|-------------|
|
|
203
|
+
| `/refine` | Interactive requirements refinement (Epic → Feature → Task) |
|
|
204
|
+
| `/refine --validate` | Validate requirements against INVEST criteria |
|
|
205
|
+
| `/moodboard` | Collect design references and analyze design tokens |
|
|
206
|
+
| `/moodboard analyze` | Extract colors, fonts, styles from collected images |
|
|
207
|
+
| `/moodboard skip` | Skip moodboard collection (use AI-generated design) |
|
|
208
|
+
|
|
200
209
|
## Skills (Auto-Activated)
|
|
201
210
|
|
|
202
211
|
| Skill | Trigger | Description |
|
|
@@ -366,6 +375,19 @@ state/
|
|
|
366
375
|
templates/ # State templates
|
|
367
376
|
```
|
|
368
377
|
|
|
378
|
+
## Key File Locations
|
|
379
|
+
|
|
380
|
+
Quick reference for frequently accessed files:
|
|
381
|
+
|
|
382
|
+
| File | Location | Description |
|
|
383
|
+
|------|----------|-------------|
|
|
384
|
+
| **Project Brief** | `stages/01-brainstorm/inputs/project_brief.md` | Initial project requirements and scope |
|
|
385
|
+
| **Progress State** | `state/progress.json` | Pipeline progress and current state |
|
|
386
|
+
| **Configuration** | `config/*.yaml` | All configuration files |
|
|
387
|
+
| **HANDOFF** | `stages/XX-stage/HANDOFF.md` | Stage transition documents |
|
|
388
|
+
| **Checkpoints** | `state/checkpoints/` | Saved checkpoint files |
|
|
389
|
+
| **Stage Outputs** | `stages/XX-stage/outputs/` | Generated deliverables per stage |
|
|
390
|
+
|
|
369
391
|
## Design Patterns Applied
|
|
370
392
|
|
|
371
393
|
1. **Sequential Workflow Architecture** - Sequential stage definition and auto-progression
|
|
@@ -377,6 +399,36 @@ state/
|
|
|
377
399
|
|
|
378
400
|
---
|
|
379
401
|
|
|
402
|
+
## MCP Server Selection Guide
|
|
403
|
+
|
|
404
|
+
> Configuration file: `config/mcp_fallbacks.yaml`
|
|
405
|
+
|
|
406
|
+
### Use Case by MCP Server
|
|
407
|
+
|
|
408
|
+
| MCP Server | Best For | Example Use Cases |
|
|
409
|
+
|------------|----------|-------------------|
|
|
410
|
+
| **Exa Search** | Web research, market analysis | Competitor research, trend analysis, API docs |
|
|
411
|
+
| **Context7** | Code documentation, library references | Framework docs, package APIs, code examples |
|
|
412
|
+
| **Firecrawl** | Deep website scraping | Extracting structured data, full page content |
|
|
413
|
+
| **Notion** | Task management, collaboration | Creating/updating tasks, project tracking |
|
|
414
|
+
| **Figma** | Design token extraction | Colors, typography, component specs |
|
|
415
|
+
|
|
416
|
+
### Stage-Specific Recommendations
|
|
417
|
+
|
|
418
|
+
| Stage | Primary MCP | Fallback | Notes |
|
|
419
|
+
|-------|-------------|----------|-------|
|
|
420
|
+
| 02-research | Exa Search | Context7 | Use Exa for market data, Context7 for tech docs |
|
|
421
|
+
| 03-planning | Context7 | Exa Search | Architecture patterns, framework best practices |
|
|
422
|
+
| 04-ui-ux | Figma | - | Extract design tokens if Figma file available |
|
|
423
|
+
| 05-task-management | Notion | Markdown files | Falls back to local files if Notion not configured |
|
|
424
|
+
|
|
425
|
+
### Fallback Conditions
|
|
426
|
+
- **API quota exceeded**: Automatic switch to fallback provider
|
|
427
|
+
- **Response quality insufficient**: Manual switch recommended
|
|
428
|
+
- **Timeout**: Retry with fallback after 30 seconds
|
|
429
|
+
|
|
430
|
+
---
|
|
431
|
+
|
|
380
432
|
## Multi-AI Orchestration
|
|
381
433
|
|
|
382
434
|
> Configuration files: `config/ai_collaboration.yaml`, `config/ai_benchmarking.yaml`
|
|
@@ -441,6 +493,50 @@ All defined AI models execute the same task in parallel, and each output is synt
|
|
|
441
493
|
|
|
442
494
|
---
|
|
443
495
|
|
|
496
|
+
## Default Parallel Execution
|
|
497
|
+
|
|
498
|
+
### Parallel Mode is NOW DEFAULT for:
|
|
499
|
+
| Stage | Models | Synthesizer |
|
|
500
|
+
|-------|--------|-------------|
|
|
501
|
+
| 01-brainstorm | Gemini + ClaudeCode | ClaudeCode |
|
|
502
|
+
| 03-planning | Gemini + ClaudeCode | ClaudeCode |
|
|
503
|
+
| 04-ui-ux | Gemini + ClaudeCode | ClaudeCode |
|
|
504
|
+
| 07-refactoring | Codex + ClaudeCode | ClaudeCode |
|
|
505
|
+
| 09-testing | Codex + ClaudeCode | ClaudeCode |
|
|
506
|
+
|
|
507
|
+
### Execution Policy Configuration
|
|
508
|
+
> Configuration file: `config/ai_collaboration.yaml`
|
|
509
|
+
|
|
510
|
+
```yaml
|
|
511
|
+
execution_policy:
|
|
512
|
+
default_mode: "parallel"
|
|
513
|
+
stage_classification:
|
|
514
|
+
parallel_capable: [01-brainstorm, 03-planning, 04-ui-ux, 07-refactoring, 09-testing]
|
|
515
|
+
sequential_only: [02-research, 05-task-management, 06-implementation, 08-qa, 10-deployment]
|
|
516
|
+
```
|
|
517
|
+
|
|
518
|
+
### Consolidation Workflow
|
|
519
|
+
Claude Code automatically consolidates parallel outputs:
|
|
520
|
+
1. **Collect** - Gather all model outputs
|
|
521
|
+
2. **Analyze** - Identify commonalities → HIGH CONFIDENCE
|
|
522
|
+
3. **Evaluate** - Compare unique contributions
|
|
523
|
+
4. **Synthesize** - Create final unified output
|
|
524
|
+
5. **Validate** - Verify completeness and quality
|
|
525
|
+
|
|
526
|
+
### Synthesis Commands
|
|
527
|
+
```bash
|
|
528
|
+
/synthesize # Consolidate current stage outputs
|
|
529
|
+
/synthesize --verbose # Show detailed analysis
|
|
530
|
+
/synthesize --dry-run # Preview without writing
|
|
531
|
+
/synthesize --force # Re-synthesize even if output exists
|
|
532
|
+
```
|
|
533
|
+
|
|
534
|
+
### Quality Threshold
|
|
535
|
+
- Default: 0.8 (80%)
|
|
536
|
+
- Outputs below threshold trigger review prompt
|
|
537
|
+
|
|
538
|
+
---
|
|
539
|
+
|
|
444
540
|
## Smart HANDOFF System
|
|
445
541
|
|
|
446
542
|
> Configuration files: `config/handoff_intelligence.yaml`, `config/memory_integration.yaml`
|
|
@@ -1,6 +1,47 @@
|
|
|
1
1
|
# claude-symphony AI Collaboration Configuration
|
|
2
2
|
# Multi-AI orchestration modes and collaboration strategies
|
|
3
3
|
|
|
4
|
+
# Default execution policy for parallel-capable stages
|
|
5
|
+
execution_policy:
|
|
6
|
+
default_mode: "parallel"
|
|
7
|
+
|
|
8
|
+
stage_classification:
|
|
9
|
+
parallel_capable:
|
|
10
|
+
- "01-brainstorm"
|
|
11
|
+
- "03-planning"
|
|
12
|
+
- "04-ui-ux"
|
|
13
|
+
- "07-refactoring"
|
|
14
|
+
- "09-testing"
|
|
15
|
+
sequential_only:
|
|
16
|
+
- "02-research"
|
|
17
|
+
- "05-task-management"
|
|
18
|
+
- "06-implementation"
|
|
19
|
+
- "08-qa"
|
|
20
|
+
- "10-deployment"
|
|
21
|
+
|
|
22
|
+
# Consolidation workflow - Claude Code synthesis protocol
|
|
23
|
+
consolidation_workflow:
|
|
24
|
+
synthesizer: "claudecode"
|
|
25
|
+
|
|
26
|
+
phases:
|
|
27
|
+
- name: "collect"
|
|
28
|
+
description: "Gather all parallel model outputs"
|
|
29
|
+
- name: "analyze"
|
|
30
|
+
description: "Identify commonalities and consensus"
|
|
31
|
+
- name: "evaluate"
|
|
32
|
+
description: "Compare differences and unique insights"
|
|
33
|
+
- name: "synthesize"
|
|
34
|
+
description: "Create unified output"
|
|
35
|
+
- name: "validate"
|
|
36
|
+
description: "Verify completeness and quality"
|
|
37
|
+
|
|
38
|
+
output:
|
|
39
|
+
storage_path: "state/collaborations/"
|
|
40
|
+
input_pattern: "output_{model}.md"
|
|
41
|
+
synthesis_log: "synthesis_log.md"
|
|
42
|
+
|
|
43
|
+
quality_threshold: 0.8
|
|
44
|
+
|
|
4
45
|
collaboration_modes:
|
|
5
46
|
# Parallel Execution: Execute same task with multiple AIs simultaneously and synthesize
|
|
6
47
|
parallel_execution:
|
|
@@ -187,13 +187,13 @@ stage_assignments:
|
|
|
187
187
|
|
|
188
188
|
"03-planning":
|
|
189
189
|
primary: "gemini"
|
|
190
|
-
secondary:
|
|
191
|
-
collaboration:
|
|
190
|
+
secondary: "claudecode"
|
|
191
|
+
collaboration: "parallel"
|
|
192
192
|
|
|
193
193
|
"04-ui-ux":
|
|
194
194
|
primary: "gemini"
|
|
195
|
-
secondary:
|
|
196
|
-
collaboration:
|
|
195
|
+
secondary: "claudecode"
|
|
196
|
+
collaboration: "parallel"
|
|
197
197
|
|
|
198
198
|
"05-task-management":
|
|
199
199
|
primary: "claudecode"
|
|
@@ -208,7 +208,7 @@ stage_assignments:
|
|
|
208
208
|
"07-refactoring":
|
|
209
209
|
primary: "codex"
|
|
210
210
|
secondary: "claudecode"
|
|
211
|
-
collaboration: "
|
|
211
|
+
collaboration: "parallel"
|
|
212
212
|
|
|
213
213
|
"08-qa":
|
|
214
214
|
primary: "claudecode"
|
|
@@ -217,8 +217,8 @@ stage_assignments:
|
|
|
217
217
|
|
|
218
218
|
"09-testing":
|
|
219
219
|
primary: "codex"
|
|
220
|
-
secondary:
|
|
221
|
-
collaboration:
|
|
220
|
+
secondary: "claudecode"
|
|
221
|
+
collaboration: "parallel"
|
|
222
222
|
|
|
223
223
|
"10-deployment":
|
|
224
224
|
primary: "claudecode"
|