codingbuddy-rules 5.0.0 → 5.1.0
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/.ai-rules/adapters/aider.md +374 -0
- package/.ai-rules/adapters/windsurf.md +395 -0
- package/.ai-rules/agents/accessibility-specialist.json +6 -0
- package/.ai-rules/agents/act-mode.json +6 -0
- package/.ai-rules/agents/agent-architect.json +6 -0
- package/.ai-rules/agents/ai-ml-engineer.json +6 -0
- package/.ai-rules/agents/architecture-specialist.json +6 -0
- package/.ai-rules/agents/auto-mode.json +6 -0
- package/.ai-rules/agents/backend-developer.json +6 -0
- package/.ai-rules/agents/code-quality-specialist.json +6 -0
- package/.ai-rules/agents/code-reviewer.json +25 -4
- package/.ai-rules/agents/data-engineer.json +6 -0
- package/.ai-rules/agents/data-scientist.json +6 -0
- package/.ai-rules/agents/devops-engineer.json +6 -0
- package/.ai-rules/agents/documentation-specialist.json +6 -0
- package/.ai-rules/agents/eval-mode.json +11 -1
- package/.ai-rules/agents/event-architecture-specialist.json +6 -0
- package/.ai-rules/agents/frontend-developer.json +6 -0
- package/.ai-rules/agents/i18n-specialist.json +6 -0
- package/.ai-rules/agents/integration-specialist.json +6 -0
- package/.ai-rules/agents/migration-specialist.json +6 -0
- package/.ai-rules/agents/mobile-developer.json +7 -10
- package/.ai-rules/agents/observability-specialist.json +6 -0
- package/.ai-rules/agents/parallel-orchestrator.json +6 -0
- package/.ai-rules/agents/performance-specialist.json +6 -0
- package/.ai-rules/agents/plan-mode.json +6 -0
- package/.ai-rules/agents/plan-reviewer.json +7 -4
- package/.ai-rules/agents/platform-engineer.json +6 -0
- package/.ai-rules/agents/security-engineer.json +6 -0
- package/.ai-rules/agents/security-specialist.json +6 -0
- package/.ai-rules/agents/seo-specialist.json +6 -0
- package/.ai-rules/agents/software-engineer.json +6 -0
- package/.ai-rules/agents/solution-architect.json +6 -0
- package/.ai-rules/agents/systems-developer.json +6 -0
- package/.ai-rules/agents/technical-planner.json +6 -0
- package/.ai-rules/agents/test-engineer.json +6 -0
- package/.ai-rules/agents/test-strategy-specialist.json +6 -0
- package/.ai-rules/agents/tooling-engineer.json +6 -0
- package/.ai-rules/agents/ui-ux-designer.json +6 -0
- package/.ai-rules/schemas/agent.schema.json +38 -0
- package/.ai-rules/skills/README.md +6 -0
- package/.ai-rules/skills/agent-design/examples/agent-template.json +1 -4
- package/.ai-rules/skills/mcp-builder/examples/tool-example.ts +8 -13
- package/.ai-rules/skills/onboard/SKILL.md +150 -0
- package/.ai-rules/skills/plan-to-issues/SKILL.md +318 -0
- package/.ai-rules/skills/retrospective/SKILL.md +192 -0
- package/.ai-rules/skills/ship/SKILL.md +242 -0
- package/.ai-rules/skills/skill-creator/assets/eval_review.html +539 -260
- package/bin/cli.js +11 -19
- package/lib/init/detect-stack.js +18 -4
- package/lib/init/prompt.js +2 -2
- package/lib/init/suggest-agent.js +13 -2
- package/package.json +1 -1
|
@@ -657,5 +657,11 @@
|
|
|
657
657
|
"blue_green": "https://martinfowler.com/bliki/BlueGreenDeployment.html"
|
|
658
658
|
},
|
|
659
659
|
"project_rules": "See .ai-rules/rules/"
|
|
660
|
+
},
|
|
661
|
+
"visual": {
|
|
662
|
+
"eye": "✱",
|
|
663
|
+
"eyeFallback": "O",
|
|
664
|
+
"colorAnsi": "bright",
|
|
665
|
+
"group": "specialist"
|
|
660
666
|
}
|
|
661
667
|
}
|
|
@@ -50,16 +50,7 @@
|
|
|
50
50
|
"android": ["build\\.gradle(\\.kts)?$", "AndroidManifest\\.xml$", "\\.kt$"]
|
|
51
51
|
},
|
|
52
52
|
"intent_patterns": {
|
|
53
|
-
"korean": [
|
|
54
|
-
"mobile",
|
|
55
|
-
"app",
|
|
56
|
-
"react native",
|
|
57
|
-
"flutter",
|
|
58
|
-
"iOS",
|
|
59
|
-
"android",
|
|
60
|
-
"swift",
|
|
61
|
-
"kotlin"
|
|
62
|
-
],
|
|
53
|
+
"korean": ["mobile", "app", "react native", "flutter", "iOS", "android", "swift", "kotlin"],
|
|
63
54
|
"english": ["mobile", "app", "react native", "flutter", "iOS", "android", "swift", "kotlin"]
|
|
64
55
|
},
|
|
65
56
|
"mandatory_checklist": {
|
|
@@ -310,5 +301,11 @@
|
|
|
310
301
|
"hig": "https://developer.apple.com/design/human-interface-guidelines/",
|
|
311
302
|
"material_design": "https://m3.material.io/"
|
|
312
303
|
}
|
|
304
|
+
},
|
|
305
|
+
"visual": {
|
|
306
|
+
"eye": "✶",
|
|
307
|
+
"eyeFallback": "O",
|
|
308
|
+
"colorAnsi": "bright",
|
|
309
|
+
"group": "specialist"
|
|
313
310
|
}
|
|
314
311
|
}
|
|
@@ -535,5 +535,11 @@
|
|
|
535
535
|
"project_performance": "See project.md 'Performance & Optimization' section"
|
|
536
536
|
},
|
|
537
537
|
"project_rules": "See .ai-rules/rules/"
|
|
538
|
+
},
|
|
539
|
+
"visual": {
|
|
540
|
+
"eye": "⊗",
|
|
541
|
+
"eyeFallback": "O",
|
|
542
|
+
"colorAnsi": "bright",
|
|
543
|
+
"group": "specialist"
|
|
538
544
|
}
|
|
539
545
|
}
|
|
@@ -89,5 +89,11 @@
|
|
|
89
89
|
"✅ Verify Delegate Agent's planning workflow is applied",
|
|
90
90
|
"✅ Verify structured plan (Plan Overview, Implementation Steps, Quality Checklist, etc.)"
|
|
91
91
|
]
|
|
92
|
+
},
|
|
93
|
+
"visual": {
|
|
94
|
+
"eye": "◇",
|
|
95
|
+
"eyeFallback": "O",
|
|
96
|
+
"colorAnsi": "blue",
|
|
97
|
+
"group": "workflow"
|
|
92
98
|
}
|
|
93
99
|
}
|
|
@@ -24,10 +24,7 @@
|
|
|
24
24
|
"Produce severity-rated findings (Critical/High/Medium/Low)"
|
|
25
25
|
]
|
|
26
26
|
},
|
|
27
|
-
"context_files": [
|
|
28
|
-
".ai-rules/rules/core.md",
|
|
29
|
-
".ai-rules/rules/augmented-coding.md"
|
|
30
|
-
],
|
|
27
|
+
"context_files": [".ai-rules/rules/core.md", ".ai-rules/rules/augmented-coding.md"],
|
|
31
28
|
"activation": {
|
|
32
29
|
"trigger": "When an implementation plan needs quality review before execution",
|
|
33
30
|
"explicit_patterns": [
|
|
@@ -204,5 +201,11 @@
|
|
|
204
201
|
"existing_agents": ".ai-rules/agents/*.json",
|
|
205
202
|
"plan_skill": ".ai-rules/skills/plan-and-review/SKILL.md",
|
|
206
203
|
"writing_plans_skill": ".ai-rules/skills/writing-plans/SKILL.md"
|
|
204
|
+
},
|
|
205
|
+
"visual": {
|
|
206
|
+
"eye": "◆",
|
|
207
|
+
"eyeFallback": "O",
|
|
208
|
+
"colorAnsi": "bright",
|
|
209
|
+
"group": "specialist"
|
|
207
210
|
}
|
|
208
211
|
}
|
|
@@ -1244,5 +1244,11 @@
|
|
|
1244
1244
|
"azure": "https://learn.microsoft.com/en-us/azure/",
|
|
1245
1245
|
"finops": "https://www.finops.org/framework/"
|
|
1246
1246
|
}
|
|
1247
|
+
},
|
|
1248
|
+
"visual": {
|
|
1249
|
+
"eye": "△",
|
|
1250
|
+
"eyeFallback": "O",
|
|
1251
|
+
"colorAnsi": "red",
|
|
1252
|
+
"group": "security"
|
|
1247
1253
|
}
|
|
1248
1254
|
}
|
|
@@ -95,5 +95,11 @@
|
|
|
95
95
|
"communication": {
|
|
96
96
|
"language": "Korean",
|
|
97
97
|
"style": "Security-first approach, always explain the threat model and mitigation strategy"
|
|
98
|
+
},
|
|
99
|
+
"visual": {
|
|
100
|
+
"eye": "▲",
|
|
101
|
+
"eyeFallback": "O",
|
|
102
|
+
"colorAnsi": "red",
|
|
103
|
+
"group": "security"
|
|
98
104
|
}
|
|
99
105
|
}
|
|
@@ -71,5 +71,11 @@
|
|
|
71
71
|
"communication": {
|
|
72
72
|
"style": "Execution-focused step-by-step progress reporting",
|
|
73
73
|
"format": "Show implementation progress, test results, and quality verification"
|
|
74
|
+
},
|
|
75
|
+
"visual": {
|
|
76
|
+
"eye": "◈",
|
|
77
|
+
"eyeFallback": "O",
|
|
78
|
+
"colorAnsi": "bright",
|
|
79
|
+
"group": "specialist"
|
|
74
80
|
}
|
|
75
81
|
}
|
|
@@ -163,5 +163,11 @@
|
|
|
163
163
|
"project_rules": ".ai-rules/rules/",
|
|
164
164
|
"existing_agents": ".ai-rules/agents/*.json",
|
|
165
165
|
"skills_location": "superpowers plugin skills"
|
|
166
|
+
},
|
|
167
|
+
"visual": {
|
|
168
|
+
"eye": "⬢",
|
|
169
|
+
"eyeFallback": "O",
|
|
170
|
+
"colorAnsi": "magenta",
|
|
171
|
+
"group": "architecture"
|
|
166
172
|
}
|
|
167
173
|
}
|
|
@@ -80,5 +80,11 @@
|
|
|
80
80
|
"communication": {
|
|
81
81
|
"language": "Korean",
|
|
82
82
|
"style": "Safety-first approach, always explain memory model and ownership decisions"
|
|
83
|
+
},
|
|
84
|
+
"visual": {
|
|
85
|
+
"eye": "⊞",
|
|
86
|
+
"eyeFallback": "O",
|
|
87
|
+
"colorAnsi": "bright",
|
|
88
|
+
"group": "specialist"
|
|
83
89
|
}
|
|
84
90
|
}
|
|
@@ -195,5 +195,11 @@
|
|
|
195
195
|
"existing_agents": ".ai-rules/agents/*.json",
|
|
196
196
|
"skills_location": "superpowers plugin skills",
|
|
197
197
|
"plan_examples": "See superpowers:writing-plans skill for examples"
|
|
198
|
+
},
|
|
199
|
+
"visual": {
|
|
200
|
+
"eye": "⎔",
|
|
201
|
+
"eyeFallback": "O",
|
|
202
|
+
"colorAnsi": "magenta",
|
|
203
|
+
"group": "architecture"
|
|
198
204
|
}
|
|
199
205
|
}
|
|
@@ -521,5 +521,11 @@
|
|
|
521
521
|
"project_testing": "See augmented-coding.md 'Testing Best Practices' section"
|
|
522
522
|
},
|
|
523
523
|
"project_rules": "See .ai-rules/rules/"
|
|
524
|
+
},
|
|
525
|
+
"visual": {
|
|
526
|
+
"eye": "⊙",
|
|
527
|
+
"eyeFallback": "O",
|
|
528
|
+
"colorAnsi": "green",
|
|
529
|
+
"group": "quality"
|
|
524
530
|
}
|
|
525
531
|
}
|
|
@@ -204,5 +204,11 @@
|
|
|
204
204
|
"vite": "https://vite.dev/config/",
|
|
205
205
|
"nextjs": "https://nextjs.org/docs/app/api-reference/config/next-config-js"
|
|
206
206
|
}
|
|
207
|
+
},
|
|
208
|
+
"visual": {
|
|
209
|
+
"eye": "⊠",
|
|
210
|
+
"eyeFallback": "O",
|
|
211
|
+
"colorAnsi": "bright",
|
|
212
|
+
"group": "specialist"
|
|
207
213
|
}
|
|
208
214
|
}
|
|
@@ -506,5 +506,11 @@
|
|
|
506
506
|
"performance": "Consider performance-specialist.json for animation/interaction performance"
|
|
507
507
|
},
|
|
508
508
|
"project_rules": "See .ai-rules/rules/"
|
|
509
|
+
},
|
|
510
|
+
"visual": {
|
|
511
|
+
"eye": "☆",
|
|
512
|
+
"eyeFallback": "O",
|
|
513
|
+
"colorAnsi": "yellow",
|
|
514
|
+
"group": "frontend"
|
|
509
515
|
}
|
|
510
516
|
}
|
|
@@ -291,6 +291,44 @@
|
|
|
291
291
|
}
|
|
292
292
|
],
|
|
293
293
|
"description": "General checklist (can be object or array)"
|
|
294
|
+
},
|
|
295
|
+
"visual": {
|
|
296
|
+
"type": "object",
|
|
297
|
+
"description": "Visual identity for the agent character system",
|
|
298
|
+
"required": ["eye", "eyeFallback", "colorAnsi", "group"],
|
|
299
|
+
"properties": {
|
|
300
|
+
"eye": {
|
|
301
|
+
"type": "string",
|
|
302
|
+
"description": "Unicode symbol representing the agent's eye/icon",
|
|
303
|
+
"minLength": 1
|
|
304
|
+
},
|
|
305
|
+
"eyeFallback": {
|
|
306
|
+
"type": "string",
|
|
307
|
+
"description": "ASCII fallback character for terminals without Unicode support",
|
|
308
|
+
"minLength": 1,
|
|
309
|
+
"maxLength": 1
|
|
310
|
+
},
|
|
311
|
+
"colorAnsi": {
|
|
312
|
+
"type": "string",
|
|
313
|
+
"enum": ["black", "red", "green", "yellow", "blue", "magenta", "cyan", "white", "bright"],
|
|
314
|
+
"description": "ANSI color name for terminal rendering"
|
|
315
|
+
},
|
|
316
|
+
"group": {
|
|
317
|
+
"type": "string",
|
|
318
|
+
"enum": [
|
|
319
|
+
"workflow",
|
|
320
|
+
"architecture",
|
|
321
|
+
"quality",
|
|
322
|
+
"security",
|
|
323
|
+
"frontend",
|
|
324
|
+
"backend",
|
|
325
|
+
"integration",
|
|
326
|
+
"specialist"
|
|
327
|
+
],
|
|
328
|
+
"description": "Domain group for visual categorization"
|
|
329
|
+
}
|
|
330
|
+
},
|
|
331
|
+
"additionalProperties": false
|
|
294
332
|
}
|
|
295
333
|
},
|
|
296
334
|
"additionalProperties": true
|
|
@@ -41,6 +41,7 @@ Reusable workflows for consistent development practices.
|
|
|
41
41
|
| subagent-driven-development | Execute plans with independent tasks in current session | In-session plan execution |
|
|
42
42
|
| systematic-debugging | Systematic approach before proposing fixes | Encountering bugs or failures |
|
|
43
43
|
| cross-repo-issues | Detect, confirm, and create issues in upstream/related repositories with safety checks | Bug belongs upstream, dependency issue, fork-to-upstream reporting |
|
|
44
|
+
| retrospective | Analyze session archives for coding patterns, agent usage, and improvement suggestions | Sprint reviews, periodic retrospectives, process improvement |
|
|
44
45
|
| writing-plans | Create implementation plans before coding | Multi-step tasks with specs |
|
|
45
46
|
|
|
46
47
|
### Documentation & Communication
|
|
@@ -49,6 +50,7 @@ Reusable workflows for consistent development practices.
|
|
|
49
50
|
|-------|-------------|-------------|
|
|
50
51
|
| documentation-generation | Generate README, API docs, CHANGELOG, and ADRs from code | Creating or updating project documentation |
|
|
51
52
|
| pr-all-in-one | Unified commit and PR workflow with smart issue linking | `/pr-all-in-one [target] [issue]` |
|
|
53
|
+
| ship | Run local CI checks and ship changes — branch, commit, push, and PR | Changes are ready to ship |
|
|
52
54
|
| pr-review | Systematic, evidence-based PR review with anti-sycophancy principles | Conducting manual PR reviews |
|
|
53
55
|
| prompt-engineering | Write and optimize prompts for AI tools and agent system prompts | AI tool instructions, MCP tool descriptions, agent prompts |
|
|
54
56
|
|
|
@@ -210,6 +212,8 @@ EOF
|
|
|
210
212
|
│ └── SKILL.md
|
|
211
213
|
├── subagent-driven-development/
|
|
212
214
|
│ └── SKILL.md
|
|
215
|
+
├── retrospective/
|
|
216
|
+
│ └── SKILL.md
|
|
213
217
|
├── systematic-debugging/
|
|
214
218
|
│ └── SKILL.md
|
|
215
219
|
├── writing-plans/
|
|
@@ -227,6 +231,8 @@ EOF
|
|
|
227
231
|
│ └── SKILL.md
|
|
228
232
|
├── prompt-engineering/
|
|
229
233
|
│ └── SKILL.md
|
|
234
|
+
├── ship/
|
|
235
|
+
│ └── SKILL.md
|
|
230
236
|
│
|
|
231
237
|
├── [DevOps & Infrastructure]
|
|
232
238
|
├── cost-budget/
|
|
@@ -105,10 +105,7 @@ export class FileAnalyzerHandler {
|
|
|
105
105
|
}
|
|
106
106
|
}
|
|
107
107
|
|
|
108
|
-
private async analyze(
|
|
109
|
-
filePath: string,
|
|
110
|
-
metrics?: string[],
|
|
111
|
-
): Promise<FileAnalysis> {
|
|
108
|
+
private async analyze(filePath: string, metrics?: string[]): Promise<FileAnalysis> {
|
|
112
109
|
const content = await this.fileService.read(filePath);
|
|
113
110
|
const lines = content.split('\n');
|
|
114
111
|
const selected = new Set(metrics ?? ['complexity', 'lines', 'dependencies', 'exports']);
|
|
@@ -133,22 +130,20 @@ export class FileAnalyzerHandler {
|
|
|
133
130
|
private extractDependencies(lines: string[]): string[] {
|
|
134
131
|
const importPattern = /^import\s+.*from\s+['"]([^'"]+)['"]/;
|
|
135
132
|
return lines
|
|
136
|
-
.map(
|
|
133
|
+
.map(line => line.match(importPattern)?.[1])
|
|
137
134
|
.filter((dep): dep is string => dep !== undefined);
|
|
138
135
|
}
|
|
139
136
|
|
|
140
137
|
private extractExports(lines: string[]): string[] {
|
|
141
|
-
const exportPattern =
|
|
138
|
+
const exportPattern =
|
|
139
|
+
/^export\s+(?:default\s+)?(?:class|function|const|interface|type|enum)\s+(\w+)/;
|
|
142
140
|
return lines
|
|
143
|
-
.map(
|
|
141
|
+
.map(line => line.match(exportPattern)?.[1])
|
|
144
142
|
.filter((name): name is string => name !== undefined);
|
|
145
143
|
}
|
|
146
144
|
|
|
147
145
|
private formatAnalysis(analysis: FileAnalysis, includeSource?: boolean): string {
|
|
148
|
-
const sections: string[] = [
|
|
149
|
-
`## File Analysis: ${analysis.filePath}`,
|
|
150
|
-
'',
|
|
151
|
-
];
|
|
146
|
+
const sections: string[] = [`## File Analysis: ${analysis.filePath}`, ''];
|
|
152
147
|
|
|
153
148
|
if (analysis.lineCount >= 0) {
|
|
154
149
|
sections.push(`**Lines:** ${analysis.lineCount}`);
|
|
@@ -158,11 +153,11 @@ export class FileAnalyzerHandler {
|
|
|
158
153
|
}
|
|
159
154
|
if (analysis.dependencies.length > 0) {
|
|
160
155
|
sections.push('', '**Dependencies:**');
|
|
161
|
-
analysis.dependencies.forEach(
|
|
156
|
+
analysis.dependencies.forEach(dep => sections.push(`- \`${dep}\``));
|
|
162
157
|
}
|
|
163
158
|
if (analysis.exports.length > 0) {
|
|
164
159
|
sections.push('', '**Exports:**');
|
|
165
|
-
analysis.exports.forEach(
|
|
160
|
+
analysis.exports.forEach(exp => sections.push(`- \`${exp}\``));
|
|
166
161
|
}
|
|
167
162
|
|
|
168
163
|
return sections.join('\n');
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: onboard
|
|
3
|
+
description: "Guided onboarding for new projects - scans tech stack, generates codingbuddy.config.json, sets up adapters, and installs .ai-rules with interactive Q&A."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Onboard: New Project Setup
|
|
7
|
+
|
|
8
|
+
## Overview
|
|
9
|
+
|
|
10
|
+
Guide users through setting up codingbuddy in a new project via interactive, step-by-step onboarding. Detect the tech stack automatically, generate configuration, and create adapter files for their AI tools.
|
|
11
|
+
|
|
12
|
+
## Step 1: Project Scanning
|
|
13
|
+
|
|
14
|
+
Scan the project root to detect:
|
|
15
|
+
|
|
16
|
+
**Package managers & languages:**
|
|
17
|
+
- `package.json` → Node.js/TypeScript (check for `typescript` dep)
|
|
18
|
+
- `requirements.txt` / `pyproject.toml` / `setup.py` → Python
|
|
19
|
+
- `go.mod` → Go
|
|
20
|
+
- `Cargo.toml` → Rust
|
|
21
|
+
- `pom.xml` / `build.gradle` → Java/Kotlin
|
|
22
|
+
- `Gemfile` → Ruby
|
|
23
|
+
- `composer.json` → PHP
|
|
24
|
+
|
|
25
|
+
**Frameworks** (from dependency files):
|
|
26
|
+
- React, Next.js, Vue, Angular, Svelte, Express, NestJS, Django, Flask, FastAPI, Spring Boot, Rails, Laravel, Gin, Echo, etc.
|
|
27
|
+
|
|
28
|
+
**Test setup:**
|
|
29
|
+
- Jest, Vitest, Mocha, Pytest, Go test, JUnit, RSpec, PHPUnit, etc.
|
|
30
|
+
|
|
31
|
+
**Monorepo indicators:**
|
|
32
|
+
- `workspaces` in package.json, `lerna.json`, `pnpm-workspace.yaml`, `nx.json`, `turbo.json`
|
|
33
|
+
|
|
34
|
+
**AI tools already present:**
|
|
35
|
+
- `.cursor/` → Cursor
|
|
36
|
+
- `.claude/` → Claude Code
|
|
37
|
+
- `.antigravity/` → Antigravity (Gemini)
|
|
38
|
+
- `.codex/` → Codex
|
|
39
|
+
- `.q/` → Amazon Q
|
|
40
|
+
- `.kiro/` → Kiro
|
|
41
|
+
- `.github/copilot/` → GitHub Copilot
|
|
42
|
+
|
|
43
|
+
After scanning, present findings to the user:
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
Detected:
|
|
47
|
+
- Language: TypeScript
|
|
48
|
+
- Framework: Next.js 14, React 18
|
|
49
|
+
- Test: Vitest
|
|
50
|
+
- Monorepo: Yarn workspaces
|
|
51
|
+
- AI tools: .claude/ (existing)
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
Ask: "Does this look correct? Anything to add or change?" (use AskUserQuestion)
|
|
55
|
+
|
|
56
|
+
## Step 2: Generate codingbuddy.config.json
|
|
57
|
+
|
|
58
|
+
Based on detected info, generate a draft config:
|
|
59
|
+
|
|
60
|
+
```json
|
|
61
|
+
{
|
|
62
|
+
"language": "en",
|
|
63
|
+
"techStack": {
|
|
64
|
+
"languages": ["typescript"],
|
|
65
|
+
"frameworks": ["nextjs", "react"],
|
|
66
|
+
"testing": ["vitest"],
|
|
67
|
+
"packageManager": "yarn"
|
|
68
|
+
},
|
|
69
|
+
"architecture": {
|
|
70
|
+
"pattern": "layered",
|
|
71
|
+
"monorepo": true
|
|
72
|
+
},
|
|
73
|
+
"agents": {
|
|
74
|
+
"primary": "software-engineer",
|
|
75
|
+
"specialists": ["frontend-developer", "test-engineer"]
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
Ask the user to confirm or adjust:
|
|
81
|
+
- Communication language (en, ko, ja, zh, es, etc.)
|
|
82
|
+
- Primary agent selection (show top 3 recommendations based on tech stack)
|
|
83
|
+
- Architecture pattern (layered, clean, hexagonal, or custom)
|
|
84
|
+
|
|
85
|
+
Write `codingbuddy.config.json` to project root after confirmation.
|
|
86
|
+
|
|
87
|
+
## Step 3: Adapter Setup
|
|
88
|
+
|
|
89
|
+
Based on detected AI tools (or ask which tools the user wants to set up):
|
|
90
|
+
|
|
91
|
+
| Tool | Config Path | What to Create |
|
|
92
|
+
|------|------------|----------------|
|
|
93
|
+
| Cursor | `.cursor/rules/codingbuddy.mdc` | Rules include pointing to .ai-rules |
|
|
94
|
+
| Claude Code | `.claude/settings.json` + `CLAUDE.md` | MCP server config + instructions |
|
|
95
|
+
| Antigravity | `.antigravity/rules/codingbuddy.md` | Gemini rules file |
|
|
96
|
+
| Codex | `.codex/AGENTS.md` | Codex agent instructions |
|
|
97
|
+
| Amazon Q | `.q/rules/codingbuddy.md` | Q rules file |
|
|
98
|
+
| Kiro | `.kiro/rules/codingbuddy.md` | Kiro rules file |
|
|
99
|
+
|
|
100
|
+
For each selected tool:
|
|
101
|
+
1. Create the config directory if it does not exist
|
|
102
|
+
2. Generate a starter config file referencing the shared `.ai-rules/` rules
|
|
103
|
+
3. Show the user what was created
|
|
104
|
+
|
|
105
|
+
Ask: "Which AI tools do you want to configure?" (use AskUserQuestion with multiSelect)
|
|
106
|
+
|
|
107
|
+
## Step 4: Optional .ai-rules Setup
|
|
108
|
+
|
|
109
|
+
Present two options:
|
|
110
|
+
|
|
111
|
+
**Option A: Copy rules locally** (recommended for customization)
|
|
112
|
+
- Copy `packages/rules/.ai-rules/` into the project as `.ai-rules/`
|
|
113
|
+
- User can customize rules for their project
|
|
114
|
+
|
|
115
|
+
**Option B: Install via npm package**
|
|
116
|
+
- `npm install codingbuddy-rules` / `yarn add codingbuddy-rules`
|
|
117
|
+
- Reference rules from `node_modules/codingbuddy-rules/.ai-rules/`
|
|
118
|
+
- Stays in sync with upstream updates
|
|
119
|
+
|
|
120
|
+
Ask: "How would you like to set up the AI rules?" (use AskUserQuestion)
|
|
121
|
+
|
|
122
|
+
If Option A: copy the rules directory and confirm.
|
|
123
|
+
If Option B: run the install command and update adapter configs to point to node_modules path.
|
|
124
|
+
|
|
125
|
+
## Step 5: Summary
|
|
126
|
+
|
|
127
|
+
Present a summary of everything that was created:
|
|
128
|
+
|
|
129
|
+
```
|
|
130
|
+
Onboarding complete!
|
|
131
|
+
|
|
132
|
+
Created files:
|
|
133
|
+
- codingbuddy.config.json (project configuration)
|
|
134
|
+
- .claude/settings.json (Claude Code MCP config)
|
|
135
|
+
- .ai-rules/ (shared AI coding rules)
|
|
136
|
+
|
|
137
|
+
Next steps:
|
|
138
|
+
1. Review codingbuddy.config.json and adjust settings
|
|
139
|
+
2. Start with: PLAN <your first task>
|
|
140
|
+
3. Use AUTO mode for autonomous development cycles
|
|
141
|
+
4. Run /help to see available commands
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
## Key Principles
|
|
145
|
+
|
|
146
|
+
- **Interactive** — Ask one question at a time using AskUserQuestion, never assume
|
|
147
|
+
- **Non-destructive** — Never overwrite existing config files; ask before modifying
|
|
148
|
+
- **Detect first** — Auto-detect as much as possible, then confirm with user
|
|
149
|
+
- **Minimal setup** — Only create what the user needs; skip unnecessary adapters
|
|
150
|
+
- **Clear output** — Show exactly what files were created and what to do next
|