claude-symphony 0.0.6 → 0.0.8

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/bin/create.js CHANGED
@@ -59,14 +59,14 @@ async function collectBriefInfo() {
59
59
  const info = {};
60
60
 
61
61
  // Sequential questions (each input() must complete before proceeding)
62
- info.description = await input({ message: '📝 One-line description:' });
63
- info.problem = await input({ message: '🔍 Problem definition (problem to solve):' });
64
- info.targetUser = await input({ message: '🎯 Target users:' });
65
- info.successCriteria = await input({ message: '🏆 Success criteria:' });
66
- info.constraintSchedule = await input({ message: '⏰ Constraints - Schedule:' });
67
- info.constraintBudget = await input({ message: '💰 Constraints - Budget:' });
68
- info.constraintTech = await input({ message: '⚙️ Constraints - Technology:' });
69
- info.references = await input({ message: '🔗 References (URL or documents):' });
62
+ info.description = await input({ message: '📝 One-line description (Enter to skip):' });
63
+ info.problem = await input({ message: '🔍 Problem definition (Enter to skip):' });
64
+ info.targetUser = await input({ message: '🎯 Target users (Enter to skip):' });
65
+ info.successCriteria = await input({ message: '🏆 Success criteria (Enter to skip):' });
66
+ info.constraintSchedule = await input({ message: '⏰ Constraints - Schedule (Enter to skip):' });
67
+ info.constraintBudget = await input({ message: '💰 Constraints - Budget (Enter to skip):' });
68
+ info.constraintTech = await input({ message: '⚙️ Constraints - Technology (Enter to skip):' });
69
+ info.references = await input({ message: '🔗 References (Enter to skip):' });
70
70
 
71
71
  // Core features - multiple inputs (separate loop)
72
72
  console.log('');
@@ -75,7 +75,11 @@ async function collectBriefInfo() {
75
75
  let featureNum = 1;
76
76
  while (true) {
77
77
  const feature = await input({ message: ` ${featureNum}.` });
78
- if (!feature) break;
78
+ if (!feature) {
79
+ // Clear the empty line (move up and clear)
80
+ process.stdout.write('\x1b[1A\x1b[2K');
81
+ break;
82
+ }
79
83
  info.features.push(feature);
80
84
  featureNum++;
81
85
  }
@@ -342,34 +346,34 @@ ${colors.yellow}After creation:${colors.reset}
342
346
  log(`✓ Project '${actualProjectName}' created successfully!`, 'green');
343
347
  log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━', 'green');
344
348
  console.log('');
345
- log('Next steps:', 'yellow');
349
+ log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━', 'yellow');
350
+ log('🚀 Next steps:', 'yellow');
351
+ log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━', 'yellow');
352
+ console.log('');
346
353
  if (projectName !== '.') {
347
354
  console.log(` 1. cd ${projectName}`);
348
- console.log(' 2. Edit stages/01-brainstorm/inputs/project_brief.md');
349
- console.log(' 3. Run /run-stage 01-brainstorm');
355
+ console.log(' 2. claude ← Start Claude Code');
356
+ console.log(' 3. Install plugin (in Claude Code):');
357
+ log(' /plugin marketplace add jarrodwatts/claude-hud', 'cyan');
358
+ log(' /plugin install claude-hud', 'cyan');
359
+ console.log(' 4. Edit stages/01-brainstorm/inputs/project_brief.md');
360
+ console.log(' 5. Run /run-stage 01-brainstorm');
350
361
  } else {
351
- console.log(' 1. Edit stages/01-brainstorm/inputs/project_brief.md');
352
- console.log(' 2. Run /run-stage 01-brainstorm');
362
+ console.log(' 1. claude ← Start Claude Code');
363
+ console.log(' 2. Install plugin (in Claude Code):');
364
+ log(' /plugin marketplace add jarrodwatts/claude-hud', 'cyan');
365
+ log(' /plugin install claude-hud', 'cyan');
366
+ console.log(' 3. Edit stages/01-brainstorm/inputs/project_brief.md');
367
+ console.log(' 4. Run /run-stage 01-brainstorm');
353
368
  }
354
369
  console.log('');
355
- log('Pipeline stages:', 'cyan');
370
+ log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━', 'cyan');
371
+ log('📋 Pipeline stages:', 'cyan');
372
+ log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━', 'cyan');
356
373
  console.log(' 01-brainstorm → 02-research → 03-planning → 04-ui-ux');
357
374
  console.log(' → 05-task-management → 06-implementation → 07-refactoring');
358
375
  console.log(' → 08-qa → 09-testing → 10-deployment');
359
376
  console.log('');
360
- // Plugin installation message (more prominent)
361
- console.log('');
362
- log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━', 'yellow');
363
- log('🎯 Recommended: Install claude-hud plugin', 'yellow');
364
- log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━', 'yellow');
365
- console.log('');
366
- console.log(' claude-hud visualizes context usage, tool activity, and progress.');
367
- console.log('');
368
- console.log(' Run these commands in Claude Code:');
369
- console.log('');
370
- log(' /plugin marketplace add jarrodwatts/claude-hud', 'cyan');
371
- log(' /plugin install claude-hud', 'cyan');
372
- console.log('');
373
377
  }
374
378
 
375
379
  main().catch(err => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-symphony",
3
- "version": "0.0.6",
3
+ "version": "0.0.8",
4
4
  "description": "Multi-AI Orchestration Framework - Create new projects with 10-stage development workflow",
5
5
  "type": "module",
6
6
  "bin": {
@@ -411,6 +411,36 @@ state/
411
411
 
412
412
  ---
413
413
 
414
+ ## Parallel AI Execution Policy
415
+
416
+ ### Overview
417
+ All defined AI models execute the same task in parallel, and each output is synthesized to produce the final result.
418
+
419
+ ### Execution Flow
420
+ 1. **Parallel Execution**: Designated models perform the task simultaneously
421
+ 2. **Individual Output**: Each model generates `output_modelName.md`
422
+ 3. **Synthesis**: ClaudeCode analyzes all outputs and generates `final_output.md`
423
+
424
+ ### Stage Model Assignment
425
+
426
+ | Stage | Parallel Models | Synthesizer | Output |
427
+ |-------|-----------------|-------------|--------|
428
+ | 01-brainstorm | Gemini + ClaudeCode | ClaudeCode | ideas.md |
429
+ | 03-planning | Gemini + ClaudeCode | ClaudeCode | architecture.md |
430
+ | 04-ui-ux | Gemini + ClaudeCode | ClaudeCode | wireframes.md |
431
+ | 07-refactoring | Codex + ClaudeCode | ClaudeCode | refactoring_report.md |
432
+ | 09-testing | Codex + ClaudeCode | ClaudeCode | tests/ |
433
+
434
+ > Single-model stages (02, 05, 06, 08, 10) maintain existing behavior
435
+
436
+ ### Synthesis Criteria
437
+ 1. **Extract Commonalities**: Prioritize content all models agree on
438
+ 2. **Analyze Differences**: Compare pros/cons, select best approach
439
+ 3. **Complementary Integration**: Merge unique insights from each model
440
+ 4. **Quality Filtering**: Remove low-quality content
441
+
442
+ ---
443
+
414
444
  ## Smart HANDOFF System
415
445
 
416
446
  > Configuration files: `config/handoff_intelligence.yaml`, `config/memory_integration.yaml`
@@ -2,27 +2,42 @@
2
2
  # Multi-AI orchestration modes and collaboration strategies
3
3
 
4
4
  collaboration_modes:
5
- # Parallel Execution: Execute same task with multiple AIs simultaneously
5
+ # Parallel Execution: Execute same task with multiple AIs simultaneously and synthesize
6
6
  parallel_execution:
7
- description: "Execute same task with multiple AIs simultaneously and select best result"
7
+ description: "Execute same task with multiple AIs simultaneously and synthesize"
8
8
  enabled: true
9
9
 
10
10
  stages:
11
- - "01-brainstorm"
12
- - "02-research"
13
-
14
- models:
15
- - "gemini"
16
- - "claude"
11
+ 01-brainstorm:
12
+ parallel_models: [gemini, claudecode]
13
+ synthesizer: claudecode
14
+ output: ideas.md
15
+ 03-planning:
16
+ parallel_models: [gemini, claudecode]
17
+ synthesizer: claudecode
18
+ output: architecture.md
19
+ 04-ui-ux:
20
+ parallel_models: [gemini, claudecode]
21
+ synthesizer: claudecode
22
+ output: wireframes.md
23
+ 07-refactoring:
24
+ parallel_models: [codex, claudecode]
25
+ synthesizer: claudecode
26
+ output: refactoring_report.md
27
+ 09-testing:
28
+ parallel_models: [codex, claudecode]
29
+ synthesizer: claudecode
30
+ output: tests/
31
+
32
+ synthesis_criteria:
33
+ - extract_commonalities
34
+ - analyze_differences
35
+ - complementary_integration
36
+ - quality_filtering
17
37
 
18
38
  merge_strategy:
19
- type: "best_of_n"
20
- selection_criteria:
21
- - quality_score
22
- - completeness
23
- - creativity
24
- require_human_review: true
25
- auto_select_threshold: 0.85 # Auto-select when score is 85% or higher
39
+ type: "synthesis"
40
+ synthesizer: claudecode
26
41
 
27
42
  # Sequential Handoff: Sequential transfer between AIs (review chain)
28
43
  sequential_handoff:
@@ -13,6 +13,30 @@ git:
13
13
  on_checkpoint: true # On checkpoint creation
14
14
  on_milestone: true # On milestone completion
15
15
 
16
+ # Enforcement rules (mandatory commits)
17
+ enforcement:
18
+ enabled: true
19
+
20
+ # Stages where commit is MANDATORY after each task
21
+ mandatory_stages:
22
+ - "06-implementation"
23
+ - "07-refactoring"
24
+ - "08-qa"
25
+ - "09-testing"
26
+ - "10-deployment"
27
+
28
+ # Task completion requirements
29
+ task_completion_requires:
30
+ - git_commit # Must commit changes
31
+ - no_uncommitted_changes # No pending changes allowed
32
+
33
+ # Verification message
34
+ verification_prompt: |
35
+ ⚠️ MANDATORY: Before marking this task as complete:
36
+ 1. Stage all related changes: git add <files>
37
+ 2. Commit with conventional format: git commit -m "type(scope): description"
38
+ 3. Verify: git status (should show "nothing to commit")
39
+
16
40
  # Commit message rules (Conventional Commits)
17
41
  commit_convention:
18
42
  format: "<type>(<scope>): <description>"
@@ -38,6 +38,28 @@ Divergent idea generation and requirements exploration stage
38
38
  - **Secondary**: ClaudeCode (structuring, feasibility review)
39
39
  - **Mode**: YOLO (Container) - autonomous execution mode
40
40
 
41
+ ## Parallel Execution Protocol
42
+
43
+ ### Models
44
+ - **Primary**: Gemini (creative ideation)
45
+ - **Secondary**: ClaudeCode (structural organization)
46
+
47
+ ### Execution
48
+ 1. Gemini: Generate `output_gemini.md`
49
+ 2. ClaudeCode: Generate `output_claudecode.md`
50
+ 3. ClaudeCode (Synthesizer): Synthesize → `ideas.md`
51
+
52
+ ### Output Files
53
+ - `output_gemini.md` - Gemini results
54
+ - `output_claudecode.md` - ClaudeCode results
55
+ - `ideas.md` - Final synthesized result
56
+
57
+ ### Synthesis Criteria
58
+ 1. Extract commonalities first
59
+ 2. Analyze differences and select best
60
+ 3. Integrate unique insights
61
+ 4. Filter low-quality content
62
+
41
63
  ## Goals
42
64
  1. Divergent ideation based on project brief
43
65
  2. In-depth analysis of user requirements
@@ -33,6 +33,28 @@ System architecture and technology stack decision stage
33
33
  - **Primary**: Gemini (architecture design, diagrams)
34
34
  - **Mode**: Plan Mode - structured design
35
35
 
36
+ ## Parallel Execution Protocol
37
+
38
+ ### Models
39
+ - **Primary**: Gemini (architecture design)
40
+ - **Secondary**: ClaudeCode (technical validation)
41
+
42
+ ### Execution
43
+ 1. Gemini: Generate `output_gemini.md`
44
+ 2. ClaudeCode: Generate `output_claudecode.md`
45
+ 3. ClaudeCode (Synthesizer): Synthesize → `architecture.md`
46
+
47
+ ### Output Files
48
+ - `output_gemini.md` - Gemini results
49
+ - `output_claudecode.md` - ClaudeCode results
50
+ - `architecture.md` - Final synthesized result
51
+
52
+ ### Synthesis Criteria
53
+ 1. Extract commonalities first
54
+ 2. Analyze differences and select best
55
+ 3. Integrate unique insights
56
+ 4. Filter low-quality content
57
+
36
58
  ## Goals
37
59
  1. System architecture design
38
60
  2. Final technology stack decision
@@ -33,6 +33,28 @@ User interface and experience design stage
33
33
  - **Primary**: Gemini (creative UI design)
34
34
  - **Mode**: Plan Mode
35
35
 
36
+ ## Parallel Execution Protocol
37
+
38
+ ### Models
39
+ - **Primary**: Gemini (creative UI design)
40
+ - **Secondary**: ClaudeCode (UX validation)
41
+
42
+ ### Execution
43
+ 1. Gemini: Generate `output_gemini.md`
44
+ 2. ClaudeCode: Generate `output_claudecode.md`
45
+ 3. ClaudeCode (Synthesizer): Synthesize → `wireframes.md`
46
+
47
+ ### Output Files
48
+ - `output_gemini.md` - Gemini results
49
+ - `output_claudecode.md` - ClaudeCode results
50
+ - `wireframes.md` - Final synthesized result
51
+
52
+ ### Synthesis Criteria
53
+ 1. Extract commonalities first
54
+ 2. Analyze differences and select best
55
+ 3. Integrate unique insights
56
+ 4. Filter low-quality content
57
+
36
58
  ## Goals
37
59
  1. Wireframe design
38
60
  2. User flow definition
@@ -111,6 +111,50 @@ cd project-name
111
111
  | `/next` | Sprint remaining → Next Sprint / Complete → Stage 07 |
112
112
  | `/next --stage` | Force Stage transition (skip Sprints, not recommended) |
113
113
 
114
+ ---
115
+
116
+ ## ⚠️ Mandatory Git Commit Rule
117
+
118
+ > **CRITICAL**: Starting from Stage 06, git commit is REQUIRED after every task completion.
119
+
120
+ ### Per-Task Commit Protocol
121
+ After completing each task:
122
+
123
+ 1. **Stage changes**
124
+ ```bash
125
+ git add <relevant-files>
126
+ ```
127
+
128
+ 2. **Commit with conventional format**
129
+ ```bash
130
+ git commit -m "feat(impl): <task description>"
131
+ ```
132
+
133
+ 3. **Verify clean state**
134
+ ```bash
135
+ git status # Should show "nothing to commit"
136
+ ```
137
+
138
+ ### Commit Message Format
139
+ | Task Type | Format | Example |
140
+ |-----------|--------|---------|
141
+ | New feature | `feat(impl): ...` | `feat(impl): add user login form` |
142
+ | Component | `feat(impl): ...` | `feat(impl): create Button component` |
143
+ | API | `feat(impl): ...` | `feat(impl): implement auth API endpoint` |
144
+ | Style | `style(impl): ...` | `style(impl): add responsive styles` |
145
+
146
+ ### ❌ Prohibited
147
+ - Proceeding to next task without committing
148
+ - Batching multiple tasks into single commit
149
+ - WIP or meaningless commit messages
150
+
151
+ ### ✅ Required
152
+ - One commit per task (minimum)
153
+ - Meaningful, descriptive commit messages
154
+ - Clean working directory before next task
155
+
156
+ ---
157
+
114
158
  ### Sprint Completion Criteria
115
159
 
116
160
  Each Sprint completion requires:
@@ -38,6 +38,28 @@ Code quality improvement and optimization stage
38
38
  - **Secondary**: ClaudeCode (complex refactoring)
39
39
  - **Mode**: Deep Dive - in-depth code analysis
40
40
 
41
+ ## Parallel Execution Protocol
42
+
43
+ ### Models
44
+ - **Primary**: Codex (code optimization)
45
+ - **Secondary**: ClaudeCode (code review)
46
+
47
+ ### Execution
48
+ 1. Codex: Generate `output_codex.md`
49
+ 2. ClaudeCode: Generate `output_claudecode.md`
50
+ 3. ClaudeCode (Synthesizer): Synthesize → `refactoring_report.md`
51
+
52
+ ### Output Files
53
+ - `output_codex.md` - Codex results
54
+ - `output_claudecode.md` - ClaudeCode results
55
+ - `refactoring_report.md` - Final synthesized result
56
+
57
+ ### Synthesis Criteria
58
+ 1. Extract commonalities first
59
+ 2. Analyze differences and select best
60
+ 3. Integrate unique insights
61
+ 4. Filter low-quality content
62
+
41
63
  ## Goals
42
64
  1. Code quality improvement
43
65
  2. Duplication removal
@@ -101,6 +123,48 @@ Goals: Improve readability, optimize performance"
101
123
 
102
124
  ---
103
125
 
126
+ ## ⚠️ Mandatory Git Commit Rule
127
+
128
+ > **CRITICAL**: Git commit is REQUIRED after every task completion in this stage.
129
+
130
+ ### Per-Task Commit Protocol
131
+ After completing each task:
132
+
133
+ 1. **Stage changes**
134
+ ```bash
135
+ git add <relevant-files>
136
+ ```
137
+
138
+ 2. **Commit with conventional format**
139
+ ```bash
140
+ git commit -m "refactor(refactor): <task description>"
141
+ ```
142
+
143
+ 3. **Verify clean state**
144
+ ```bash
145
+ git status # Should show "nothing to commit"
146
+ ```
147
+
148
+ ### Commit Message Format
149
+ | Task Type | Format | Example |
150
+ |-----------|--------|---------|
151
+ | Code cleanup | `refactor(refactor): ...` | `refactor(refactor): extract auth logic to service` |
152
+ | Performance | `perf(refactor): ...` | `perf(refactor): optimize database queries` |
153
+ | Duplication removal | `refactor(refactor): ...` | `refactor(refactor): consolidate API handlers` |
154
+ | Architecture | `refactor(refactor): ...` | `refactor(refactor): apply repository pattern` |
155
+
156
+ ### ❌ Prohibited
157
+ - Proceeding to next task without committing
158
+ - Batching multiple tasks into single commit
159
+ - WIP or meaningless commit messages
160
+
161
+ ### ✅ Required
162
+ - One commit per task (minimum)
163
+ - Meaningful, descriptive commit messages
164
+ - Clean working directory before next task
165
+
166
+ ---
167
+
104
168
  ## ⚠️ AI Usage Recording (Required)
105
169
 
106
170
  > **Important**: This stage requires Codex CLI.
@@ -78,6 +78,50 @@ Quality assurance and code review stage
78
78
  - Fix and verify
79
79
  - Regression testing
80
80
 
81
+ ---
82
+
83
+ ## ⚠️ Mandatory Git Commit Rule
84
+
85
+ > **CRITICAL**: Git commit is REQUIRED after every task completion in this stage.
86
+
87
+ ### Per-Task Commit Protocol
88
+ After completing each task:
89
+
90
+ 1. **Stage changes**
91
+ ```bash
92
+ git add <relevant-files>
93
+ ```
94
+
95
+ 2. **Commit with conventional format**
96
+ ```bash
97
+ git commit -m "fix(qa): <task description>"
98
+ ```
99
+
100
+ 3. **Verify clean state**
101
+ ```bash
102
+ git status # Should show "nothing to commit"
103
+ ```
104
+
105
+ ### Commit Message Format
106
+ | Task Type | Format | Example |
107
+ |-----------|--------|---------|
108
+ | Bug fix | `fix(qa): ...` | `fix(qa): fix login validation bug` |
109
+ | Security fix | `fix(qa): ...` | `fix(qa): sanitize user input` |
110
+ | Code review fix | `fix(qa): ...` | `fix(qa): address code review comments` |
111
+ | Test fix | `fix(qa): ...` | `fix(qa): fix flaky test in auth module` |
112
+
113
+ ### ❌ Prohibited
114
+ - Proceeding to next task without committing
115
+ - Batching multiple tasks into single commit
116
+ - WIP or meaningless commit messages
117
+
118
+ ### ✅ Required
119
+ - One commit per task (minimum)
120
+ - Meaningful, descriptive commit messages
121
+ - Clean working directory before next task
122
+
123
+ ---
124
+
81
125
  ## Completion Criteria
82
126
  - [ ] Code review complete
83
127
  - [ ] Security inspection passed
@@ -35,6 +35,28 @@ Test code writing and E2E testing stage
35
35
  - **Mode**: Sandbox + Playwright
36
36
  - **MCP**: playwright server integration
37
37
 
38
+ ## Parallel Execution Protocol
39
+
40
+ ### Models
41
+ - **Primary**: Codex (test generation)
42
+ - **Secondary**: ClaudeCode (test validation)
43
+
44
+ ### Execution
45
+ 1. Codex: Generate `output_codex.md`
46
+ 2. ClaudeCode: Generate `output_claudecode.md`
47
+ 3. ClaudeCode (Synthesizer): Synthesize → `tests/`
48
+
49
+ ### Output Files
50
+ - `output_codex.md` - Codex results
51
+ - `output_claudecode.md` - ClaudeCode results
52
+ - `tests/` - Final synthesized test files
53
+
54
+ ### Synthesis Criteria
55
+ 1. Extract commonalities first
56
+ 2. Analyze differences and select best
57
+ 3. Integrate unique insights
58
+ 4. Filter low-quality content
59
+
38
60
  ## Goals
39
61
  1. Unit test writing
40
62
  2. Integration test writing
@@ -108,6 +130,50 @@ npx playwright install
108
130
  - **Functions**: 80%
109
131
  - **Lines**: 80%
110
132
 
133
+ ---
134
+
135
+ ## ⚠️ Mandatory Git Commit Rule
136
+
137
+ > **CRITICAL**: Git commit is REQUIRED after every task completion in this stage.
138
+
139
+ ### Per-Task Commit Protocol
140
+ After completing each task:
141
+
142
+ 1. **Stage changes**
143
+ ```bash
144
+ git add <relevant-files>
145
+ ```
146
+
147
+ 2. **Commit with conventional format**
148
+ ```bash
149
+ git commit -m "test(test): <task description>"
150
+ ```
151
+
152
+ 3. **Verify clean state**
153
+ ```bash
154
+ git status # Should show "nothing to commit"
155
+ ```
156
+
157
+ ### Commit Message Format
158
+ | Task Type | Format | Example |
159
+ |-----------|--------|---------|
160
+ | Unit test | `test(test): ...` | `test(test): add user service unit tests` |
161
+ | Integration test | `test(test): ...` | `test(test): add API integration tests` |
162
+ | E2E test | `test(test): ...` | `test(test): add auth E2E tests` |
163
+ | Test fix | `test(test): ...` | `test(test): fix flaky async test` |
164
+
165
+ ### ❌ Prohibited
166
+ - Proceeding to next task without committing
167
+ - Batching multiple tasks into single commit
168
+ - WIP or meaningless commit messages
169
+
170
+ ### ✅ Required
171
+ - One commit per task (minimum)
172
+ - Meaningful, descriptive commit messages
173
+ - Clean working directory before next task
174
+
175
+ ---
176
+
111
177
  ## Completion Criteria
112
178
  - [ ] Unit tests written (coverage 80%+)
113
179
  - [ ] Integration tests written
@@ -97,6 +97,50 @@ jobs:
97
97
  - **AWS**: Enterprise
98
98
  - **Cloudflare**: Edge
99
99
 
100
+ ---
101
+
102
+ ## ⚠️ Mandatory Git Commit Rule
103
+
104
+ > **CRITICAL**: Git commit is REQUIRED after every task completion in this stage.
105
+
106
+ ### Per-Task Commit Protocol
107
+ After completing each task:
108
+
109
+ 1. **Stage changes**
110
+ ```bash
111
+ git add <relevant-files>
112
+ ```
113
+
114
+ 2. **Commit with conventional format**
115
+ ```bash
116
+ git commit -m "ci(deploy): <task description>"
117
+ ```
118
+
119
+ 3. **Verify clean state**
120
+ ```bash
121
+ git status # Should show "nothing to commit"
122
+ ```
123
+
124
+ ### Commit Message Format
125
+ | Task Type | Format | Example |
126
+ |-----------|--------|---------|
127
+ | CI pipeline | `ci(deploy): ...` | `ci(deploy): configure GitHub Actions CI` |
128
+ | CD pipeline | `ci(deploy): ...` | `ci(deploy): add Vercel deployment workflow` |
129
+ | Config | `chore(deploy): ...` | `chore(deploy): add environment variables` |
130
+ | Monitoring | `ci(deploy): ...` | `ci(deploy): configure Sentry error tracking` |
131
+
132
+ ### ❌ Prohibited
133
+ - Proceeding to next task without committing
134
+ - Batching multiple tasks into single commit
135
+ - WIP or meaningless commit messages
136
+
137
+ ### ✅ Required
138
+ - One commit per task (minimum)
139
+ - Meaningful, descriptive commit messages
140
+ - Clean working directory before next task
141
+
142
+ ---
143
+
100
144
  ## Completion Criteria
101
145
  - [ ] CI pipeline configured
102
146
  - [ ] CD pipeline configured