claude-symphony 0.0.6 → 0.0.7
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 +32 -28
- package/package.json +1 -1
- package/template/config/git.yaml +24 -0
- package/template/stages/06-implementation/CLAUDE.md +44 -0
- package/template/stages/07-refactoring/CLAUDE.md +42 -0
- package/template/stages/08-qa/CLAUDE.md +44 -0
- package/template/stages/09-testing/CLAUDE.md +44 -0
- package/template/stages/10-deployment/CLAUDE.md +44 -0
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 (
|
|
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 (
|
|
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)
|
|
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('
|
|
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.
|
|
349
|
-
console.log(' 3.
|
|
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.
|
|
352
|
-
console.log(' 2.
|
|
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('
|
|
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
package/template/config/git.yaml
CHANGED
|
@@ -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>"
|
|
@@ -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:
|
|
@@ -101,6 +101,48 @@ Goals: Improve readability, optimize performance"
|
|
|
101
101
|
|
|
102
102
|
---
|
|
103
103
|
|
|
104
|
+
## ⚠️ Mandatory Git Commit Rule
|
|
105
|
+
|
|
106
|
+
> **CRITICAL**: Git commit is REQUIRED after every task completion in this stage.
|
|
107
|
+
|
|
108
|
+
### Per-Task Commit Protocol
|
|
109
|
+
After completing each task:
|
|
110
|
+
|
|
111
|
+
1. **Stage changes**
|
|
112
|
+
```bash
|
|
113
|
+
git add <relevant-files>
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
2. **Commit with conventional format**
|
|
117
|
+
```bash
|
|
118
|
+
git commit -m "refactor(refactor): <task description>"
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
3. **Verify clean state**
|
|
122
|
+
```bash
|
|
123
|
+
git status # Should show "nothing to commit"
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
### Commit Message Format
|
|
127
|
+
| Task Type | Format | Example |
|
|
128
|
+
|-----------|--------|---------|
|
|
129
|
+
| Code cleanup | `refactor(refactor): ...` | `refactor(refactor): extract auth logic to service` |
|
|
130
|
+
| Performance | `perf(refactor): ...` | `perf(refactor): optimize database queries` |
|
|
131
|
+
| Duplication removal | `refactor(refactor): ...` | `refactor(refactor): consolidate API handlers` |
|
|
132
|
+
| Architecture | `refactor(refactor): ...` | `refactor(refactor): apply repository pattern` |
|
|
133
|
+
|
|
134
|
+
### ❌ Prohibited
|
|
135
|
+
- Proceeding to next task without committing
|
|
136
|
+
- Batching multiple tasks into single commit
|
|
137
|
+
- WIP or meaningless commit messages
|
|
138
|
+
|
|
139
|
+
### ✅ Required
|
|
140
|
+
- One commit per task (minimum)
|
|
141
|
+
- Meaningful, descriptive commit messages
|
|
142
|
+
- Clean working directory before next task
|
|
143
|
+
|
|
144
|
+
---
|
|
145
|
+
|
|
104
146
|
## ⚠️ AI Usage Recording (Required)
|
|
105
147
|
|
|
106
148
|
> **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
|
|
@@ -108,6 +108,50 @@ npx playwright install
|
|
|
108
108
|
- **Functions**: 80%
|
|
109
109
|
- **Lines**: 80%
|
|
110
110
|
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
## ⚠️ Mandatory Git Commit Rule
|
|
114
|
+
|
|
115
|
+
> **CRITICAL**: Git commit is REQUIRED after every task completion in this stage.
|
|
116
|
+
|
|
117
|
+
### Per-Task Commit Protocol
|
|
118
|
+
After completing each task:
|
|
119
|
+
|
|
120
|
+
1. **Stage changes**
|
|
121
|
+
```bash
|
|
122
|
+
git add <relevant-files>
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
2. **Commit with conventional format**
|
|
126
|
+
```bash
|
|
127
|
+
git commit -m "test(test): <task description>"
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
3. **Verify clean state**
|
|
131
|
+
```bash
|
|
132
|
+
git status # Should show "nothing to commit"
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
### Commit Message Format
|
|
136
|
+
| Task Type | Format | Example |
|
|
137
|
+
|-----------|--------|---------|
|
|
138
|
+
| Unit test | `test(test): ...` | `test(test): add user service unit tests` |
|
|
139
|
+
| Integration test | `test(test): ...` | `test(test): add API integration tests` |
|
|
140
|
+
| E2E test | `test(test): ...` | `test(test): add auth E2E tests` |
|
|
141
|
+
| Test fix | `test(test): ...` | `test(test): fix flaky async test` |
|
|
142
|
+
|
|
143
|
+
### ❌ Prohibited
|
|
144
|
+
- Proceeding to next task without committing
|
|
145
|
+
- Batching multiple tasks into single commit
|
|
146
|
+
- WIP or meaningless commit messages
|
|
147
|
+
|
|
148
|
+
### ✅ Required
|
|
149
|
+
- One commit per task (minimum)
|
|
150
|
+
- Meaningful, descriptive commit messages
|
|
151
|
+
- Clean working directory before next task
|
|
152
|
+
|
|
153
|
+
---
|
|
154
|
+
|
|
111
155
|
## Completion Criteria
|
|
112
156
|
- [ ] Unit tests written (coverage 80%+)
|
|
113
157
|
- [ ] 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
|