ccsetup 1.0.9 → 1.1.1
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 +106 -16
- package/bin/create-project.js +88 -15
- package/package.json +4 -3
- package/template/GEMINI.md +126 -0
- package/template/agents/README.md +179 -25
- package/template/agents/ai-engineer.md +31 -0
- package/template/agents/api-documenter.md +31 -0
- package/template/agents/architect-review.md +42 -0
- package/template/agents/backend-architect.md +29 -0
- package/template/agents/business-analyst.md +34 -0
- package/template/agents/c-pro.md +34 -0
- package/template/agents/cloud-architect.md +31 -0
- package/template/agents/code-reviewer.md +28 -0
- package/template/agents/content-marketer.md +34 -0
- package/template/agents/context-manager.md +63 -0
- package/template/agents/cpp-pro.md +37 -0
- package/template/agents/customer-support.md +34 -0
- package/template/agents/data-engineer.md +31 -0
- package/template/agents/data-scientist.md +28 -0
- package/template/agents/database-admin.md +31 -0
- package/template/agents/database-optimizer.md +31 -0
- package/template/agents/debugger.md +29 -0
- package/template/agents/deployment-engineer.md +31 -0
- package/template/agents/devops-troubleshooter.md +31 -0
- package/template/agents/dx-optimizer.md +62 -0
- package/template/agents/error-detective.md +31 -0
- package/template/agents/frontend-developer.md +30 -0
- package/template/agents/golang-pro.md +31 -0
- package/template/agents/graphql-architect.md +31 -0
- package/template/agents/incident-responder.md +73 -0
- package/template/agents/javascript-pro.md +34 -0
- package/template/agents/legacy-modernizer.md +31 -0
- package/template/agents/ml-engineer.md +31 -0
- package/template/agents/mlops-engineer.md +56 -0
- package/template/agents/mobile-developer.md +31 -0
- package/template/agents/network-engineer.md +31 -0
- package/template/agents/payment-integration.md +31 -0
- package/template/agents/performance-engineer.md +31 -0
- package/template/agents/prompt-engineer.md +58 -0
- package/template/agents/python-pro.md +31 -0
- package/template/agents/quant-analyst.md +31 -0
- package/template/agents/risk-manager.md +40 -0
- package/template/agents/rust-pro.md +34 -0
- package/template/agents/sales-automator.md +34 -0
- package/template/agents/search-specialist.md +58 -0
- package/template/agents/security-auditor.md +31 -0
- package/template/agents/sql-pro.md +34 -0
- package/template/agents/terraform-specialist.md +34 -0
- package/template/agents/test-automator.md +31 -0
package/README.md
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
[](https://opensource.org/licenses/MIT)
|
|
6
6
|
[](https://www.npmjs.com/package/ccsetup)
|
|
7
7
|
|
|
8
|
-
Quick setup for Claude Code projects with built-in agents, ticket system, planning tools and agent orchestration workflow.
|
|
8
|
+
Quick setup for Claude Code projects with built-in 50+ agents, ticket system, planning tools and agent orchestration workflow.
|
|
9
9
|
|
|
10
10
|
## Installation
|
|
11
11
|
|
|
@@ -32,21 +32,25 @@ Options:
|
|
|
32
32
|
--agents Interactive agent selection mode
|
|
33
33
|
--all-agents Include all agents without prompting
|
|
34
34
|
--no-agents Skip agent selection entirely
|
|
35
|
+
--browse-agents Copy all agents to /agents folder for browsing
|
|
35
36
|
--help, -h Show help message
|
|
36
37
|
|
|
37
38
|
Examples:
|
|
38
|
-
ccsetup
|
|
39
|
-
ccsetup my-project
|
|
40
|
-
ccsetup . --force
|
|
41
|
-
ccsetup my-app --dry-run
|
|
42
|
-
ccsetup --agents
|
|
43
|
-
ccsetup my-app --all-agents
|
|
39
|
+
ccsetup # Create in current directory
|
|
40
|
+
ccsetup my-project # Create in new directory
|
|
41
|
+
ccsetup . --force # Overwrite files in current directory
|
|
42
|
+
ccsetup my-app --dry-run # Preview changes without creating files
|
|
43
|
+
ccsetup --agents # Interactive agent selection only
|
|
44
|
+
ccsetup my-app --all-agents # Include all agents automatically
|
|
45
|
+
ccsetup --browse-agents # Copy all agents for manual selection
|
|
44
46
|
```
|
|
45
47
|
|
|
46
48
|
## What's Included
|
|
47
49
|
|
|
48
50
|
The boilerplate template creates:
|
|
51
|
+
|
|
49
52
|
- **CLAUDE.md** - Project instructions for Claude
|
|
53
|
+
- **GEMINI.md** - (Optional) Waterfall Architect prompt for comprehensive task planning - optimized for Gemini's larger context window
|
|
50
54
|
- **agents/** - Specialized AI agents (planner, coder, checker, etc.)
|
|
51
55
|
- **tickets/** - Task tracking system
|
|
52
56
|
- **plans/** - Project planning documents
|
|
@@ -56,6 +60,7 @@ The boilerplate template creates:
|
|
|
56
60
|
## Key Features
|
|
57
61
|
|
|
58
62
|
- 🎯 **Interactive Agent Selection** - Choose which agents to include during setup
|
|
63
|
+
- 📚 **Browse Mode** - Copy all 50+ agents to explore and manually select later
|
|
59
64
|
- 🔄 **Agent Orchestration Workflows** - Pre-defined workflows that automatically coordinate multiple agents for complex tasks
|
|
60
65
|
- 🔒 **Smart Conflict Resolution** - Handle existing files with skip/rename/overwrite options
|
|
61
66
|
- 📁 **.claude Directory Support** - Automatic creation of Claude Code directory structure
|
|
@@ -73,6 +78,7 @@ The boilerplate template creates:
|
|
|
73
78
|
## Usage
|
|
74
79
|
|
|
75
80
|
1. Create a new project:
|
|
81
|
+
|
|
76
82
|
```bash
|
|
77
83
|
npx ccsetup my-awesome-project
|
|
78
84
|
cd my-awesome-project
|
|
@@ -97,22 +103,50 @@ When running in the current directory (`npx ccsetup .`), it will check for Claud
|
|
|
97
103
|
|
|
98
104
|
## Using Agents
|
|
99
105
|
|
|
100
|
-
The boilerplate includes
|
|
106
|
+
The boilerplate includes 50+ specialized agents covering all aspects of development:
|
|
107
|
+
|
|
108
|
+
### Core Development Agents
|
|
101
109
|
|
|
102
110
|
- **planner.md** - Strategic planning and task breakdown
|
|
103
111
|
- **coder.md** - Implementation and development
|
|
104
112
|
- **checker.md** - Testing and quality assurance
|
|
105
113
|
- **researcher.md** - Research and information gathering
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
- **
|
|
114
|
+
|
|
115
|
+
### Language Specialists
|
|
116
|
+
|
|
117
|
+
- **python-pro.md**, **golang-pro.md**, **rust-pro.md**, **javascript-pro.md**, **c-pro.md**, **cpp-pro.md**, **sql-pro.md**
|
|
118
|
+
|
|
119
|
+
### Infrastructure & Operations
|
|
120
|
+
|
|
121
|
+
- **devops-troubleshooter.md**, **cloud-architect.md**, **terraform-specialist.md**, **database-admin.md**, **network-engineer.md**
|
|
122
|
+
|
|
123
|
+
### Quality & Security
|
|
124
|
+
|
|
125
|
+
- **code-reviewer.md**, **security-auditor.md**, **test-automator.md**, **performance-engineer.md**
|
|
126
|
+
|
|
127
|
+
### And Many More!
|
|
128
|
+
|
|
129
|
+
Over 50 specialized agents for frontend, backend, blockchain, ML/AI, business analysis, and more!
|
|
130
|
+
|
|
131
|
+
📖 **[View all agents with detailed descriptions →](https://github.com/MrMarciaOng/ccsetup/blob/main/template/agents/README.md)**
|
|
110
132
|
|
|
111
133
|
### Interactive Agent Selection
|
|
112
134
|
|
|
113
|
-
During setup, ccsetup will prompt you to
|
|
135
|
+
During setup, ccsetup will prompt you to either:
|
|
136
|
+
|
|
137
|
+
1. **Browse Mode** - Get all 50+ agents to explore later
|
|
138
|
+
2. **Select Specific Agents** - Choose from curated list
|
|
114
139
|
|
|
115
140
|
```bash
|
|
141
|
+
🤖 How would you like to set up agents for your Claude Code project?
|
|
142
|
+
|
|
143
|
+
Use arrow keys to navigate, Enter to select
|
|
144
|
+
|
|
145
|
+
> Browse Mode - Copy all 50+ agents to /agents folder (explore later)
|
|
146
|
+
Select Agents - Choose specific agents to include now
|
|
147
|
+
Skip - Don't include any agents
|
|
148
|
+
|
|
149
|
+
# If you choose "Select Agents":
|
|
116
150
|
🤖 Select agents to include in your Claude Code project
|
|
117
151
|
|
|
118
152
|
Use arrow keys to navigate, space to select/deselect, 'a' to toggle all
|
|
@@ -129,11 +163,13 @@ Choose your agents:
|
|
|
129
163
|
```
|
|
130
164
|
|
|
131
165
|
You can also use flags to control agent selection:
|
|
166
|
+
|
|
132
167
|
- `--all-agents` - Include all available agents
|
|
133
168
|
- `--no-agents` - Skip agent selection entirely
|
|
134
169
|
- `--agents` - Preview available agents without creating a project
|
|
135
170
|
|
|
136
171
|
Example:
|
|
172
|
+
|
|
137
173
|
```bash
|
|
138
174
|
# Include all agents without prompting
|
|
139
175
|
npx ccsetup my-project --all-agents
|
|
@@ -145,6 +181,46 @@ npx ccsetup my-project --no-agents
|
|
|
145
181
|
npx ccsetup --agents
|
|
146
182
|
```
|
|
147
183
|
|
|
184
|
+
### Browse Mode - New Feature! 📚
|
|
185
|
+
|
|
186
|
+
With 50+ specialized agents available, browse mode lets you explore all agents at your leisure:
|
|
187
|
+
|
|
188
|
+
```bash
|
|
189
|
+
# Copy all agents to /agents folder for browsing
|
|
190
|
+
npx ccsetup my-project --browse-agents
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
In browse mode:
|
|
194
|
+
|
|
195
|
+
- All 50+ agents are copied to your project's `/agents` folder
|
|
196
|
+
- You can read through each agent to understand their capabilities
|
|
197
|
+
- Manually copy the ones you want to `~/.claude/agents` when ready
|
|
198
|
+
- No overwhelming selection process during setup!
|
|
199
|
+
|
|
200
|
+
Example workflow:
|
|
201
|
+
|
|
202
|
+
```bash
|
|
203
|
+
# 1. Create project with browse mode
|
|
204
|
+
npx ccsetup my-project --browse-agents
|
|
205
|
+
|
|
206
|
+
# 2. Explore agents
|
|
207
|
+
cd my-project/agents
|
|
208
|
+
ls # See all available agents
|
|
209
|
+
|
|
210
|
+
# 3. Read agent descriptions
|
|
211
|
+
cat code-reviewer.md
|
|
212
|
+
|
|
213
|
+
# 4. Copy desired agents to activate them
|
|
214
|
+
cp code-reviewer.md ~/.claude/agents/
|
|
215
|
+
cp python-pro.md ~/.claude/agents/
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
This approach is perfect when you:
|
|
219
|
+
|
|
220
|
+
- Want to explore all available agents
|
|
221
|
+
- Prefer to choose agents based on your project needs as they arise
|
|
222
|
+
- Don't want to be overwhelmed with 50+ choices during setup
|
|
223
|
+
|
|
148
224
|
### Conflict Resolution
|
|
149
225
|
|
|
150
226
|
When existing files are detected, ccsetup offers smart conflict resolution:
|
|
@@ -160,10 +236,11 @@ Conflict resolution options:
|
|
|
160
236
|
2) rename (r) - Save template files with -ccsetup suffix
|
|
161
237
|
3) overwrite (o) - Replace with template versions
|
|
162
238
|
|
|
163
|
-
Your choice for CLAUDE.md [s/r/o]:
|
|
239
|
+
Your choice for CLAUDE.md [s/r/o]:
|
|
164
240
|
```
|
|
165
241
|
|
|
166
242
|
Categories are handled separately:
|
|
243
|
+
|
|
167
244
|
- **CLAUDE.md** - Project instructions (warns before overwriting)
|
|
168
245
|
- **Agents** - AI agent files
|
|
169
246
|
- **Documentation** - docs/ folder files
|
|
@@ -250,11 +327,13 @@ The template includes powerful agent orchestration workflows that guide Claude t
|
|
|
250
327
|
### 💡 How to Use Agent Orchestration
|
|
251
328
|
|
|
252
329
|
1. **Read the orchestration guide**:
|
|
330
|
+
|
|
253
331
|
```
|
|
254
332
|
"Read docs/agent-orchestration.md to understand available workflows"
|
|
255
333
|
```
|
|
256
334
|
|
|
257
335
|
2. **Choose your workflow**:
|
|
336
|
+
|
|
258
337
|
- Feature Development: Complex new features
|
|
259
338
|
- Bug Fix: Investigating and fixing issues
|
|
260
339
|
- Refactoring: Improving code quality
|
|
@@ -264,6 +343,7 @@ The template includes powerful agent orchestration workflows that guide Claude t
|
|
|
264
343
|
- QA: Quality assurance
|
|
265
344
|
|
|
266
345
|
3. **Let Claude guide you**:
|
|
346
|
+
|
|
267
347
|
```
|
|
268
348
|
"I need to [your task]. Which workflow should we use?"
|
|
269
349
|
```
|
|
@@ -280,24 +360,28 @@ The orchestration ensures nothing is missed and follows best practices automatic
|
|
|
280
360
|
After setting up your project with `ccsetup`:
|
|
281
361
|
|
|
282
362
|
1. **Open Claude Code** in your project directory:
|
|
363
|
+
|
|
283
364
|
```bash
|
|
284
365
|
cd my-awesome-project
|
|
285
366
|
claude
|
|
286
367
|
```
|
|
287
368
|
|
|
288
369
|
2. **Let Claude understand your project** by asking:
|
|
370
|
+
|
|
289
371
|
- "Read the CLAUDE.md file to understand this project"
|
|
290
372
|
- "Check the roadmap in docs/ROADMAP.md"
|
|
291
373
|
- "What agents are available in the agents directory?"
|
|
292
374
|
- "Read the README files in docs, tickets, and plans folders to understand the workflow"
|
|
293
375
|
|
|
294
376
|
3. **Start working** with Claude:
|
|
377
|
+
|
|
295
378
|
- Use the planner agent: "Use the planner agent to help me design a user authentication system"
|
|
296
379
|
- Create tickets: "Create a ticket for implementing user login"
|
|
297
380
|
- Implement features: "Use the coder agent to implement the login functionality"
|
|
298
381
|
- Review code: "Use the checker agent to review the code we just wrote"
|
|
299
382
|
|
|
300
383
|
4. **Important setup steps**:
|
|
384
|
+
|
|
301
385
|
- **Update ROADMAP.md**: Define your project's goals, features, and development phases
|
|
302
386
|
- **Read folder documentation**: Each folder (docs/, tickets/, plans/) has a README explaining its purpose and format
|
|
303
387
|
- **Customize CLAUDE.md**: Add project-specific instructions, commands, and context
|
|
@@ -312,13 +396,15 @@ After setting up your project with `ccsetup`:
|
|
|
312
396
|
## Features
|
|
313
397
|
|
|
314
398
|
### Core Features
|
|
399
|
+
|
|
315
400
|
- ✅ Pre-configured project structure for Claude Code
|
|
316
|
-
- 🤖
|
|
401
|
+
- 🤖 50+ specialized agents from the [wshobson/agents](https://github.com/wshobson/agents) collection - [view all →](https://github.com/MrMarciaOng/ccsetup/blob/main/template/agents/README.md)
|
|
317
402
|
- 🎫 Built-in ticket and planning system
|
|
318
403
|
- 📋 Ready-to-use boilerplate with best practices
|
|
319
404
|
- 📁 Automatic .claude directory integration
|
|
320
405
|
|
|
321
406
|
### CLI Features
|
|
407
|
+
|
|
322
408
|
- 🎯 Interactive agent selection with descriptions
|
|
323
409
|
- 🔄 Smart conflict resolution (skip/rename/overwrite)
|
|
324
410
|
- 👀 Dry-run mode to preview changes
|
|
@@ -327,7 +413,9 @@ After setting up your project with `ccsetup`:
|
|
|
327
413
|
- 🛡️ Security validations for file operations
|
|
328
414
|
|
|
329
415
|
### Agent Orchestration
|
|
416
|
+
|
|
330
417
|
The template includes `docs/agent-orchestration.md` which defines workflows for:
|
|
418
|
+
|
|
331
419
|
- **Feature Development** - Researcher → Planner → Coder → Checker
|
|
332
420
|
- **Bug Fixes** - Researcher → Coder → Checker
|
|
333
421
|
- **Refactoring** - Researcher → Planner → Coder → Checker
|
|
@@ -340,6 +428,8 @@ The template includes `docs/agent-orchestration.md` which defines workflows for:
|
|
|
340
428
|
|
|
341
429
|
Born from our discussions in TechOverflow with [vichannnnn](https://github.com/vichannnnn) and [nasdin](https://github.com/nasdin)
|
|
342
430
|
|
|
431
|
+
The 44 specialized agents collection is from [wshobson/agents](https://github.com/wshobson/agents) - an amazing collection of Claude Code subagents for every development need!
|
|
432
|
+
|
|
343
433
|
## License
|
|
344
434
|
|
|
345
|
-
MIT
|
|
435
|
+
MIT
|
package/bin/create-project.js
CHANGED
|
@@ -12,7 +12,8 @@ const flags = {
|
|
|
12
12
|
help: false,
|
|
13
13
|
allAgents: false,
|
|
14
14
|
noAgents: false,
|
|
15
|
-
agents: false
|
|
15
|
+
agents: false,
|
|
16
|
+
browseAgents: false
|
|
16
17
|
};
|
|
17
18
|
|
|
18
19
|
let projectName = '.';
|
|
@@ -32,6 +33,8 @@ for (let i = 0; i < args.length; i++) {
|
|
|
32
33
|
flags.noAgents = true;
|
|
33
34
|
} else if (arg === '--agents') {
|
|
34
35
|
flags.agents = true;
|
|
36
|
+
} else if (arg === '--browse-agents') {
|
|
37
|
+
flags.browseAgents = true;
|
|
35
38
|
} else if (!arg.startsWith('-')) {
|
|
36
39
|
projectName = arg;
|
|
37
40
|
}
|
|
@@ -48,15 +51,17 @@ Options:
|
|
|
48
51
|
--agents Interactive agent selection mode
|
|
49
52
|
--all-agents Include all agents without prompting
|
|
50
53
|
--no-agents Skip agent selection entirely
|
|
54
|
+
--browse-agents Copy all agents to /agents folder for browsing
|
|
51
55
|
--help, -h Show this help message
|
|
52
56
|
|
|
53
57
|
Examples:
|
|
54
|
-
ccsetup
|
|
55
|
-
ccsetup my-project
|
|
56
|
-
ccsetup . --force
|
|
57
|
-
ccsetup my-app --dry-run
|
|
58
|
-
ccsetup --agents
|
|
59
|
-
ccsetup my-app --all-agents
|
|
58
|
+
ccsetup # Create in current directory
|
|
59
|
+
ccsetup my-project # Create in new directory
|
|
60
|
+
ccsetup . --force # Overwrite files in current directory
|
|
61
|
+
ccsetup my-app --dry-run # Preview changes without creating files
|
|
62
|
+
ccsetup --agents # Interactive agent selection only
|
|
63
|
+
ccsetup my-app --all-agents # Include all agents automatically
|
|
64
|
+
ccsetup --browse-agents # Copy all agents for manual selection
|
|
60
65
|
`);
|
|
61
66
|
process.exit(0);
|
|
62
67
|
}
|
|
@@ -83,6 +88,11 @@ if (flags.allAgents && flags.noAgents) {
|
|
|
83
88
|
process.exit(1);
|
|
84
89
|
}
|
|
85
90
|
|
|
91
|
+
if (flags.browseAgents && (flags.allAgents || flags.noAgents || flags.agents)) {
|
|
92
|
+
console.error('Error: --browse-agents cannot be used with other agent flags');
|
|
93
|
+
process.exit(1);
|
|
94
|
+
}
|
|
95
|
+
|
|
86
96
|
// Validate the project name
|
|
87
97
|
if (projectName !== '.') {
|
|
88
98
|
try {
|
|
@@ -658,19 +668,60 @@ async function main() {
|
|
|
658
668
|
if (flags.noAgents) {
|
|
659
669
|
selectedAgentFiles = [];
|
|
660
670
|
console.log('\n⏭️ Skipping agent selection (--no-agents flag)');
|
|
671
|
+
} else if (flags.browseAgents) {
|
|
672
|
+
selectedAgentFiles = [];
|
|
673
|
+
console.log('\n📚 Browse mode enabled - all agents will be copied to /agents folder');
|
|
674
|
+
console.log(' You can manually copy desired agents to ~/.claude/agents later');
|
|
661
675
|
} else if (flags.allAgents) {
|
|
662
676
|
selectedAgentFiles = availableAgents.map(a => a.file).filter(validateAgentFile);
|
|
663
677
|
console.log(`\n✅ Including all ${selectedAgentFiles.length} agents (--all-agents flag)`);
|
|
664
678
|
} else if (!flags.dryRun) {
|
|
679
|
+
// Interactive mode selection
|
|
680
|
+
console.log('\n🤖 How would you like to set up agents for your Claude Code project?\n');
|
|
681
|
+
console.log('Use arrow keys to navigate, Enter to select\n');
|
|
682
|
+
|
|
665
683
|
// Close readline interface before using inquirer
|
|
666
684
|
if (rl) {
|
|
667
685
|
rl.close();
|
|
668
686
|
rl = null;
|
|
669
687
|
}
|
|
670
688
|
|
|
671
|
-
//
|
|
672
|
-
|
|
673
|
-
|
|
689
|
+
// Import select for mode selection
|
|
690
|
+
const selectModule = await import('@inquirer/select');
|
|
691
|
+
const select = selectModule.default;
|
|
692
|
+
|
|
693
|
+
const agentMode = await select({
|
|
694
|
+
message: 'Choose your setup mode:',
|
|
695
|
+
choices: [
|
|
696
|
+
{
|
|
697
|
+
name: 'Browse Mode - Copy all 50+ agents to /agents folder (explore later)',
|
|
698
|
+
value: 'browse'
|
|
699
|
+
},
|
|
700
|
+
{
|
|
701
|
+
name: 'Select Agents - Choose specific agents to include now',
|
|
702
|
+
value: 'select'
|
|
703
|
+
},
|
|
704
|
+
{
|
|
705
|
+
name: 'Skip - Don\'t include any agents',
|
|
706
|
+
value: 'skip'
|
|
707
|
+
}
|
|
708
|
+
]
|
|
709
|
+
});
|
|
710
|
+
|
|
711
|
+
if (agentMode === 'browse') {
|
|
712
|
+
flags.browseAgents = true;
|
|
713
|
+
selectedAgentFiles = [];
|
|
714
|
+
console.log('\n📚 Browse mode selected - all agents will be copied to /agents folder');
|
|
715
|
+
console.log(' You can manually copy desired agents to ~/.claude/agents later');
|
|
716
|
+
} else if (agentMode === 'skip') {
|
|
717
|
+
flags.noAgents = true;
|
|
718
|
+
selectedAgentFiles = [];
|
|
719
|
+
console.log('\n⏭️ Skipping agent selection');
|
|
720
|
+
} else if (agentMode === 'select') {
|
|
721
|
+
// Interactive selection
|
|
722
|
+
selectedAgentFiles = await selectAgents(availableAgents);
|
|
723
|
+
console.log(`\n✅ Selected ${selectedAgentFiles.length} agent${selectedAgentFiles.length === 1 ? '' : 's'}`);
|
|
724
|
+
}
|
|
674
725
|
|
|
675
726
|
// Recreate readline interface after agent selection
|
|
676
727
|
if (!flags.force && !flags.dryRun) {
|
|
@@ -681,7 +732,8 @@ async function main() {
|
|
|
681
732
|
}
|
|
682
733
|
} else {
|
|
683
734
|
// In dry-run mode, show what would happen
|
|
684
|
-
console.log(`\nWould prompt for agent selection
|
|
735
|
+
console.log(`\nWould prompt for agent selection mode`);
|
|
736
|
+
console.log(`Would then prompt for agent selection from ${availableAgents.length} available agents`);
|
|
685
737
|
selectedAgentFiles = availableAgents.map(a => a.file).filter(validateAgentFile); // Include all for scanning purposes
|
|
686
738
|
}
|
|
687
739
|
|
|
@@ -724,8 +776,13 @@ async function main() {
|
|
|
724
776
|
dirConflicts.push(relativePath || '.');
|
|
725
777
|
}
|
|
726
778
|
|
|
727
|
-
//
|
|
728
|
-
|
|
779
|
+
// In browse mode, add ALL agent files
|
|
780
|
+
const agentFilesToProcess = flags.browseAgents
|
|
781
|
+
? availableAgents.map(a => a.file).filter(validateAgentFile)
|
|
782
|
+
: selectedAgentFiles;
|
|
783
|
+
|
|
784
|
+
// Add agent files
|
|
785
|
+
for (const agentFile of agentFilesToProcess) {
|
|
729
786
|
// Additional validation before processing
|
|
730
787
|
if (!validateAgentFile(agentFile)) {
|
|
731
788
|
console.warn(`⚠️ Skipping invalid agent file: ${agentFile}`);
|
|
@@ -1014,7 +1071,13 @@ async function main() {
|
|
|
1014
1071
|
if (renamedCount > 0) console.log(` 📄 ${renamedCount} template files ${flags.dryRun ? 'would be' : ''} saved with -ccsetup suffix`);
|
|
1015
1072
|
if (overwrittenCount > 0) console.log(` ♻️ ${overwrittenCount} files ${flags.dryRun ? 'would be' : ''} replaced with template versions`);
|
|
1016
1073
|
if (!flags.noAgents && !flags.dryRun) {
|
|
1017
|
-
|
|
1074
|
+
if (flags.browseAgents) {
|
|
1075
|
+
const agentCount = availableAgents.length;
|
|
1076
|
+
console.log(` 📚 ${agentCount} agent${agentCount === 1 ? '' : 's'} ${flags.dryRun ? 'would be' : ''} copied to /agents for browsing`);
|
|
1077
|
+
} else if (selectedAgentFiles.length > 0) {
|
|
1078
|
+
console.log(` 🤖 ${selectedAgentFiles.length} agent${selectedAgentFiles.length === 1 ? '' : 's'} ${flags.dryRun ? 'would be' : ''} included in /agents`);
|
|
1079
|
+
console.log(` 📝 Remember to update agent-orchestration.md with workflows for your agents`);
|
|
1080
|
+
}
|
|
1018
1081
|
}
|
|
1019
1082
|
if (claudeInitResult && claudeInitResult.createdItems.length > 0) {
|
|
1020
1083
|
console.log(` 📁 ${claudeInitResult.createdItems.length} items created in .claude directory`);
|
|
@@ -1034,7 +1097,17 @@ async function main() {
|
|
|
1034
1097
|
}
|
|
1035
1098
|
console.log(' 1. Edit CLAUDE.md to add your project-specific instructions');
|
|
1036
1099
|
console.log(' 2. Update docs/ROADMAP.md with your project goals');
|
|
1037
|
-
console.log(' 3.
|
|
1100
|
+
console.log(' 3. Update docs/agent-orchestration.md to define agent workflows');
|
|
1101
|
+
console.log(' 4. Start creating tickets in the tickets/ directory');
|
|
1102
|
+
|
|
1103
|
+
if (flags.browseAgents) {
|
|
1104
|
+
console.log('\n📚 Agent Browse Mode:');
|
|
1105
|
+
console.log(' - All available agents have been copied to the /agents folder');
|
|
1106
|
+
console.log(' - Browse through them to understand their capabilities');
|
|
1107
|
+
console.log(' - Copy desired agents to ~/.claude/agents to activate them');
|
|
1108
|
+
console.log(' - Example: cp agents/code-reviewer.md ~/.claude/agents/');
|
|
1109
|
+
console.log(' - Remember to update agent-orchestration.md with your custom workflows');
|
|
1110
|
+
}
|
|
1038
1111
|
|
|
1039
1112
|
if (renamedCount > 0) {
|
|
1040
1113
|
console.log('\n💡 Tip: Review the -ccsetup files to see template examples');
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ccsetup",
|
|
3
|
-
"version": "1.
|
|
4
|
-
"description": "Boilerplate for Claude Code projects with agents, tickets, plans
|
|
3
|
+
"version": "1.1.1",
|
|
4
|
+
"description": "Boilerplate for Claude Code projects with 50+ agents, tickets, plans, agent orchestration, and browse mode",
|
|
5
5
|
"bin": {
|
|
6
6
|
"ccsetup": "bin/create-project.js"
|
|
7
7
|
},
|
|
@@ -33,7 +33,8 @@
|
|
|
33
33
|
"node": ">=14.0.0"
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@inquirer/checkbox": "^4.0.4"
|
|
36
|
+
"@inquirer/checkbox": "^4.0.4",
|
|
37
|
+
"@inquirer/select": "^4.0.4"
|
|
37
38
|
},
|
|
38
39
|
"devDependencies": {
|
|
39
40
|
"jest": "^30.0.5"
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
# Persona: The Waterfall Architect
|
|
2
|
+
|
|
3
|
+
You are a **Senior Technical Product Manager** and **Solution Architect**, referred to as "The Architect." Your primary directive is to translate high-level feature requests into a master plan composed of atomic, sequential, and deeply detailed task specifications. You operate with a strict **waterfall methodology**. The master plan must be so comprehensive that it can be handed off to a third-party development house for implementation with zero ambiguity.
|
|
4
|
+
|
|
5
|
+
## Core Directives
|
|
6
|
+
|
|
7
|
+
1. **Total Context Awareness**: Before planning, you must achieve complete situational awareness of the project. Your first action for any new feature is to read and fully comprehend the entire technical landscape. This includes:
|
|
8
|
+
* **The Entire Codebase**: Recursively read all source files (`.go`, `.py`, `.ts`, etc.).
|
|
9
|
+
* **All Documentation**: Read all files in the `docs/` directory and any other `.md` files.
|
|
10
|
+
* **All Configurations**: Read all project configuration files (`.toml`, `.yaml`, `go.mod`, `package.json`, etc.).
|
|
11
|
+
* **Architectural Reality**: Synthesize this information to understand the project's true architecture, including:
|
|
12
|
+
* **Software Engineering Patterns**: CQRS (Command Query Responsibility Segregation), Event Sourcing, Domain-Driven Design, etc.
|
|
13
|
+
* **Technology Choices**:
|
|
14
|
+
* **Message Queue**: Watermill (Go), FastStream (Python), or other event streaming platforms
|
|
15
|
+
* **Database**: ScyllaDB, PostgreSQL, Redis, etc.
|
|
16
|
+
* **Frameworks**: FastAPI (Python), Gin/Echo (Go), Express/NestJS (TypeScript)
|
|
17
|
+
* **Critical Constraints**:
|
|
18
|
+
* **ScyllaDB Tablet Mode**: Does NOT support indexes, materialized views, or filters on non-primary key columns. This requires:
|
|
19
|
+
* Creating dedicated lookup tables for each query pattern
|
|
20
|
+
* Keeping lookup tables synchronized with main tables
|
|
21
|
+
* Using batch operations or event-driven updates for consistency
|
|
22
|
+
* **Event-Driven Architecture**: All state changes must be published as events
|
|
23
|
+
* **Async Processing**: Long-running operations must be handled asynchronously
|
|
24
|
+
|
|
25
|
+
2. **Waterfall Deconstruction**: Break down the high-level feature into a strict sequence of tasks. Each task must be a prerequisite for the next, creating a clear, linear path from start to finish. There should be no parallel work.
|
|
26
|
+
|
|
27
|
+
3. **Exhaustive Specification**: Author a ticket for each task. Each ticket must be self-contained and provide all necessary context, duplicated from other tickets if necessary. The developer should never need to refer to another ticket or ask for clarification.
|
|
28
|
+
|
|
29
|
+
## Task Generation Workflow
|
|
30
|
+
|
|
31
|
+
1. **Phase 1: Full Project Immersion**
|
|
32
|
+
* **Action**: Use `glob` to find all relevant files (`**/*.go`, `**/*.py`, `**/*.ts`, `docs/**/*.md`, etc.).
|
|
33
|
+
* **Action**: Use `read_many_files` to ingest the content of all identified files.
|
|
34
|
+
* **Output**: A deep internal understanding of the project's architecture, constraints, and conventions.
|
|
35
|
+
|
|
36
|
+
2. **Phase 2: Master Plan Formulation**
|
|
37
|
+
* **Action**: Mentally map out the entire sequence of steps required to implement the feature.
|
|
38
|
+
* **Action**: For each step in the sequence, generate a task specification using the template below.
|
|
39
|
+
|
|
40
|
+
## Task Specification Template
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
### **1. Task Metadata**
|
|
45
|
+
* **ID**: `[ProjectName-XXX]`
|
|
46
|
+
* **Title**: [A clear, descriptive title for this specific step]
|
|
47
|
+
* **Prerequisite Task**: `[ProjectName-YYY]`
|
|
48
|
+
|
|
49
|
+
### **2. Executive Summary**
|
|
50
|
+
* **Objective**: [A one-sentence description of what this specific task accomplishes.]
|
|
51
|
+
* **Role in Feature**: [Explain how this task fits into the overall feature sequence.]
|
|
52
|
+
|
|
53
|
+
### **3. Full Context Reiteration**
|
|
54
|
+
* **System Architecture**: [Reiterate the relevant architectural patterns, e.g., "This service uses CQRS. This task concerns the Command side."]
|
|
55
|
+
* **Technology Stack**: [Reiterate the specific libraries and versions for this task, e.g., "Use Watermill v1.2 for message publishing."]
|
|
56
|
+
* **Database Constraints**: [Reiterate all relevant database constraints, e.g., "Remember that ScyllaDB requires lookup tables for non-PK queries. This task must ensure the `user_email_lookup` table is updated atomically with the `users` table."]
|
|
57
|
+
|
|
58
|
+
### **3. Implementation Blueprint**
|
|
59
|
+
|
|
60
|
+
#### **Files to Create/Modify**
|
|
61
|
+
* **File Path**: `[Absolute path from project root]`
|
|
62
|
+
* **Action**: `[CREATE | MODIFY]`
|
|
63
|
+
* **Description**: [Detailed, step-by-step instructions for the changes. Be explicit. "Add a new method `updateEmail` to the `UserService` class." is not enough. You must specify the exact code to be added or changed.]
|
|
64
|
+
|
|
65
|
+
#### **Function/Method Signatures**
|
|
66
|
+
* **File Path**: `[Absolute path from project root]`
|
|
67
|
+
* **Signature**: `function updateUserEmail(userID: string, newEmail: string): Promise<void>`
|
|
68
|
+
* **Description**: [Detail the function's purpose, each parameter, the return value, and all possible error conditions that must be handled.]
|
|
69
|
+
|
|
70
|
+
#### **Database Operations**
|
|
71
|
+
* **Table**: `[table_name]`
|
|
72
|
+
* **Action**: `[INSERT | UPDATE | DELETE | SELECT]`
|
|
73
|
+
* **Exact Query/ORM Call**: [Provide the exact SQL query or ORM function call, e.g., `db.users.update({ where: { id: userID }, data: { email: newEmail } })`.]
|
|
74
|
+
|
|
75
|
+
#### **API Endpoints**
|
|
76
|
+
* **`[METHOD] /api/v1/endpoint`**:
|
|
77
|
+
* **Authentication**: `[Required | Optional | None]`
|
|
78
|
+
* **Request Body**: Define the JSON structure with types.
|
|
79
|
+
* **Success Response (200)**: Define the JSON structure.
|
|
80
|
+
* **Error Responses (4xx, 5xx)**: List potential error codes and their response bodies.
|
|
81
|
+
|
|
82
|
+
### **4. Quality Assurance**
|
|
83
|
+
* **Unit Tests**: List the critical scenarios to cover for new/modified functions.
|
|
84
|
+
* **Integration Tests**: Describe how this component interacts with others and what needs to be verified.
|
|
85
|
+
* **Security Checks**: List specific vulnerabilities to guard against (e.g., "Validate user input to prevent XSS").
|
|
86
|
+
|
|
87
|
+
### **5. Dependencies & Integration**
|
|
88
|
+
* **Prerequisites**: List any task IDs that must be completed first.
|
|
89
|
+
* **Events**: Specify any events to be emitted or listened for.
|
|
90
|
+
* **Downstream Impact**: Note any other systems or features affected by this change (e.g., "Requires cache invalidation for user profiles").
|
|
91
|
+
|
|
92
|
+
### **6. Definition of Done**
|
|
93
|
+
A checklist of all deliverables.
|
|
94
|
+
- [ ] All implemented functions have corresponding unit tests.
|
|
95
|
+
- [ ] Integration tests pass.
|
|
96
|
+
- [ ] Code adheres to the project's style guide.
|
|
97
|
+
- [ ] Documentation for new components is created.
|
|
98
|
+
- [ ] Task is reviewed and approved.
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
## Language-Specific Guidelines
|
|
103
|
+
|
|
104
|
+
### Go Development
|
|
105
|
+
* **Error Handling**: Always check and handle errors explicitly. Use `if err != nil { return fmt.Errorf("context: %w", err) }`
|
|
106
|
+
* **Context Usage**: Pass `context.Context` as the first parameter to functions that perform I/O
|
|
107
|
+
* **Interfaces**: Define interfaces in the package that uses them, not the package that implements them
|
|
108
|
+
* **Concurrency**: Use channels for communication, mutexes for state protection
|
|
109
|
+
* **Testing**: Use table-driven tests with `t.Run()` for subtests
|
|
110
|
+
* **Dependencies**: Check `go.mod` for exact versions and available packages
|
|
111
|
+
|
|
112
|
+
### TypeScript Development
|
|
113
|
+
* **Type Safety**: Never use `any`. Define explicit interfaces for all data structures
|
|
114
|
+
* **Async/Await**: Always use async/await instead of raw promises
|
|
115
|
+
* **Error Handling**: Use try-catch blocks or Result types for error handling
|
|
116
|
+
* **Null Safety**: Use optional chaining (`?.`) and nullish coalescing (`??`)
|
|
117
|
+
* **Testing**: Check if using Jest, Vitest, or another framework before writing tests
|
|
118
|
+
* **Module System**: Use ES modules (`import/export`) not CommonJS (`require/module.exports`)
|
|
119
|
+
|
|
120
|
+
### Python Development
|
|
121
|
+
* **Type Hints**: Use type hints for all function signatures and class attributes
|
|
122
|
+
* **Async**: Use `async/await` with FastAPI or similar async frameworks
|
|
123
|
+
* **Pydantic**: Use Pydantic V2 models for data validation (check version in requirements)
|
|
124
|
+
* **Error Handling**: Use specific exception types, not bare `except:`
|
|
125
|
+
* **Testing**: Check if using pytest, unittest, or another framework
|
|
126
|
+
* **Code Style**: Follow PEP 8 and use tools like black, ruff for formatting
|