create-ai-project 1.11.2
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/.claude/agents/acceptance-test-generator.md +316 -0
- package/.claude/agents/code-reviewer.md +193 -0
- package/.claude/agents/document-reviewer.md +182 -0
- package/.claude/agents/prd-creator.md +186 -0
- package/.claude/agents/quality-fixer.md +295 -0
- package/.claude/agents/requirement-analyzer.md +161 -0
- package/.claude/agents/rule-advisor.md +194 -0
- package/.claude/agents/task-decomposer.md +291 -0
- package/.claude/agents/task-executor.md +270 -0
- package/.claude/agents/technical-designer.md +343 -0
- package/.claude/agents/work-planner.md +181 -0
- package/.claude/agents-en/acceptance-test-generator.md +256 -0
- package/.claude/agents-en/code-reviewer.md +195 -0
- package/.claude/agents-en/design-sync.md +225 -0
- package/.claude/agents-en/document-reviewer.md +190 -0
- package/.claude/agents-en/integration-test-reviewer.md +195 -0
- package/.claude/agents-en/prd-creator.md +196 -0
- package/.claude/agents-en/quality-fixer-frontend.md +334 -0
- package/.claude/agents-en/quality-fixer.md +291 -0
- package/.claude/agents-en/requirement-analyzer.md +165 -0
- package/.claude/agents-en/rule-advisor.md +194 -0
- package/.claude/agents-en/task-decomposer.md +291 -0
- package/.claude/agents-en/task-executor-frontend.md +276 -0
- package/.claude/agents-en/task-executor.md +272 -0
- package/.claude/agents-en/technical-designer-frontend.md +441 -0
- package/.claude/agents-en/technical-designer.md +371 -0
- package/.claude/agents-en/work-planner.md +216 -0
- package/.claude/agents-ja/acceptance-test-generator.md +256 -0
- package/.claude/agents-ja/code-reviewer.md +195 -0
- package/.claude/agents-ja/design-sync.md +225 -0
- package/.claude/agents-ja/document-reviewer.md +192 -0
- package/.claude/agents-ja/integration-test-reviewer.md +195 -0
- package/.claude/agents-ja/prd-creator.md +194 -0
- package/.claude/agents-ja/quality-fixer-frontend.md +335 -0
- package/.claude/agents-ja/quality-fixer.md +292 -0
- package/.claude/agents-ja/requirement-analyzer.md +164 -0
- package/.claude/agents-ja/rule-advisor.md +194 -0
- package/.claude/agents-ja/task-decomposer.md +291 -0
- package/.claude/agents-ja/task-executor-frontend.md +276 -0
- package/.claude/agents-ja/task-executor.md +272 -0
- package/.claude/agents-ja/technical-designer-frontend.md +442 -0
- package/.claude/agents-ja/technical-designer.md +370 -0
- package/.claude/agents-ja/work-planner.md +213 -0
- package/.claude/commands/build.md +78 -0
- package/.claude/commands/design.md +27 -0
- package/.claude/commands/implement.md +79 -0
- package/.claude/commands/plan.md +43 -0
- package/.claude/commands/project-inject.md +76 -0
- package/.claude/commands/refine-rule.md +206 -0
- package/.claude/commands/review.md +78 -0
- package/.claude/commands/sync-rules.md +116 -0
- package/.claude/commands/task.md +13 -0
- package/.claude/commands-en/build.md +77 -0
- package/.claude/commands-en/design.md +39 -0
- package/.claude/commands-en/front-build.md +103 -0
- package/.claude/commands-en/front-design.md +42 -0
- package/.claude/commands-en/front-plan.md +40 -0
- package/.claude/commands-en/implement.md +75 -0
- package/.claude/commands-en/plan.md +45 -0
- package/.claude/commands-en/project-inject.md +76 -0
- package/.claude/commands-en/refine-rule.md +208 -0
- package/.claude/commands-en/review.md +78 -0
- package/.claude/commands-en/sync-rules.md +116 -0
- package/.claude/commands-en/task.md +13 -0
- package/.claude/commands-ja/build.md +75 -0
- package/.claude/commands-ja/design.md +37 -0
- package/.claude/commands-ja/front-build.md +103 -0
- package/.claude/commands-ja/front-design.md +42 -0
- package/.claude/commands-ja/front-plan.md +40 -0
- package/.claude/commands-ja/implement.md +73 -0
- package/.claude/commands-ja/plan.md +43 -0
- package/.claude/commands-ja/project-inject.md +76 -0
- package/.claude/commands-ja/refine-rule.md +206 -0
- package/.claude/commands-ja/review.md +78 -0
- package/.claude/commands-ja/sync-rules.md +116 -0
- package/.claude/commands-ja/task.md +13 -0
- package/.claude/settings.local.json +74 -0
- package/.husky/pre-commit +1 -0
- package/.husky/pre-push +3 -0
- package/.madgerc +14 -0
- package/.tsprunerc +11 -0
- package/CLAUDE.en.md +102 -0
- package/CLAUDE.ja.md +102 -0
- package/CLAUDE.md +111 -0
- package/LICENSE +21 -0
- package/README.ja.md +233 -0
- package/README.md +243 -0
- package/bin/create-project.js +87 -0
- package/biome.json +51 -0
- package/docs/adr/template-en.md +64 -0
- package/docs/adr/template-ja.md +64 -0
- package/docs/design/template-en.md +281 -0
- package/docs/design/template-ja.md +285 -0
- package/docs/guides/en/quickstart.md +111 -0
- package/docs/guides/en/rule-editing-guide.md +266 -0
- package/docs/guides/en/sub-agents.md +343 -0
- package/docs/guides/en/use-cases.md +308 -0
- package/docs/guides/ja/quickstart.md +112 -0
- package/docs/guides/ja/rule-editing-guide.md +266 -0
- package/docs/guides/ja/sub-agents.md +343 -0
- package/docs/guides/ja/use-cases.md +290 -0
- package/docs/guides/sub-agents.md +306 -0
- package/docs/plans/20250123-integration-test-improvement.md +993 -0
- package/docs/plans/template-en.md +130 -0
- package/docs/plans/template-ja.md +130 -0
- package/docs/prd/template-en.md +109 -0
- package/docs/prd/template-ja.md +109 -0
- package/docs/rules/ai-development-guide.md +260 -0
- package/docs/rules/architecture/implementation-approach.md +136 -0
- package/docs/rules/documentation-criteria.md +180 -0
- package/docs/rules/project-context.md +38 -0
- package/docs/rules/rules-index.yaml +137 -0
- package/docs/rules/technical-spec.md +47 -0
- package/docs/rules/typescript-testing.md +188 -0
- package/docs/rules/typescript.md +166 -0
- package/docs/rules-en/architecture/implementation-approach.md +136 -0
- package/docs/rules-en/coding-standards.md +333 -0
- package/docs/rules-en/documentation-criteria.md +184 -0
- package/docs/rules-en/frontend/technical-spec.md +143 -0
- package/docs/rules-en/frontend/typescript-testing.md +124 -0
- package/docs/rules-en/frontend/typescript.md +131 -0
- package/docs/rules-en/integration-e2e-testing.md +149 -0
- package/docs/rules-en/project-context.md +38 -0
- package/docs/rules-en/rules-index.yaml +211 -0
- package/docs/rules-en/technical-spec.md +86 -0
- package/docs/rules-en/typescript-testing.md +149 -0
- package/docs/rules-en/typescript.md +116 -0
- package/docs/rules-ja/architecture/implementation-approach.md +136 -0
- package/docs/rules-ja/coding-standards.md +333 -0
- package/docs/rules-ja/documentation-criteria.md +180 -0
- package/docs/rules-ja/frontend/technical-spec.md +143 -0
- package/docs/rules-ja/frontend/typescript-testing.md +124 -0
- package/docs/rules-ja/frontend/typescript.md +131 -0
- package/docs/rules-ja/integration-e2e-testing.md +149 -0
- package/docs/rules-ja/project-context.md +38 -0
- package/docs/rules-ja/rules-index.yaml +196 -0
- package/docs/rules-ja/technical-spec.md +86 -0
- package/docs/rules-ja/typescript-testing.md +149 -0
- package/docs/rules-ja/typescript.md +116 -0
- package/package.json +98 -0
- package/scripts/check-unused-exports.js +69 -0
- package/scripts/cleanup-test-processes.sh +32 -0
- package/scripts/post-setup.js +110 -0
- package/scripts/set-language.js +310 -0
- package/scripts/setup-project.js +199 -0
- package/scripts/show-coverage.js +74 -0
- package/src/index.ts +11 -0
- package/templates/.gitignore.template +52 -0
- package/tsconfig.json +50 -0
- package/vitest.config.mjs +47 -0
package/README.ja.md
ADDED
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
# AI ć³ć¼ćć£ć³ć°ćććøć§ćÆć ćć¤ć©ć¼ćć¬ć¼ć š¤
|
|
2
|
+
|
|
3
|
+
*ä»ć®čØčŖć§čŖć: [English](README.md)*
|
|
4
|
+
|
|
5
|
+
[](https://www.typescriptlang.org/)
|
|
6
|
+
[](https://nodejs.org/)
|
|
7
|
+
[](https://claude.ai/code)
|
|
8
|
+
[](https://opensource.org/licenses/MIT)
|
|
9
|
+
[](https://github.com/shinpr/ai-coding-project-boilerplate/pulls)
|
|
10
|
+
|
|
11
|
+
ā” **ćć®ćć¤ć©ć¼ćć¬ć¼ććÆä»„äøć®ćććŖéēŗč
ć®ććć®ćć¼ć«ć§ć**
|
|
12
|
+
- AIćę“»ēØćć¦**ććććÆć·ć§ć³åč³Ŗć®TypeScriptćććøć§ćÆć**ćéēŗććć
|
|
13
|
+
- é·ęéć®AIć³ć¼ćć£ć³ć°ć§čµ·ćć**ć³ć³ććć¹ćęÆęø**ćåéæććć
|
|
14
|
+
- **å°éAIćØć¼ćøć§ć³ć**ć§éēŗć®ćÆć¼ćÆććć¼ćęØęŗåććć
|
|
15
|
+
|
|
16
|
+
## š ē®ę¬”
|
|
17
|
+
1. [ćÆć¤ććÆć¹ćæć¼ćļ¼3ć¹ćććļ¼](#-ćÆć¤ććÆć¹ćæć¼ć3ć¹ććć)
|
|
18
|
+
2. [ćŖććµććØć¼ćøć§ć³ćļ¼](#-ćŖććµććØć¼ćøć§ć³ć)
|
|
19
|
+
3. [å®ćććøć§ćÆćć®ęę](#-å®ćććøć§ćÆćć®ęę)
|
|
20
|
+
4. [ććć„ć”ć³ćļ¼ć¬ć¤ć](#-ććć„ć”ć³ćć¬ć¤ć)
|
|
21
|
+
5. [ć¹ć©ćć·ć„ć³ćć³ć](#-ć¹ć©ćć·ć„ć³ćć³ć)
|
|
22
|
+
6. [éēŗćÆć¼ćÆććć¼](#-claude-code-ćÆć¼ćÆććć¼)
|
|
23
|
+
7. [ćććøć§ćÆćę§ę](#-ćććøć§ćÆćę§ę)
|
|
24
|
+
8. [ććć±ć¼ćøććć¼ćøć£ć¼ć®čØå®](#-ććć±ć¼ćøććć¼ćøć£ć¼ć®čØå®)
|
|
25
|
+
9. [å¤čØčŖåƾåæ](#-å¤čØčŖåƾåæ)
|
|
26
|
+
10. [ććććč³Ŗå](#-ććććč³Ŗå)
|
|
27
|
+
|
|
28
|
+
> **ć©ćć使ćć¹ćļ¼**
|
|
29
|
+
> - **ćć®ćć¤ć©ć¼ćć¬ć¼ć**ć使ć ā **Claude Code**ć§**TypeScript Ć ćµććØć¼ćøć§ć³ć**ć«ęé©åćć**精度ćę大å**ćććå “å
|
|
30
|
+
> - **[claude-code-workflows](https://github.com/shinpr/claude-code-workflows)**ć使ć ā **Claude Code**ć§**ć©ććŖćććøć§ćÆćć§ć2ć³ćć³ćć§å§ćććć**ć**ććć°ć©ćć³ć°čØčŖéä¾å**ć®ćÆć¼ćÆććć¼
|
|
31
|
+
> - **[Agentic Code](https://github.com/shinpr/agentic-code)**ć使ć ā **čØå®äøč¦**ć§**ć©ććŖćć¼ć«**ć§ć**ććć°ć©ćć³ć°čØčŖć®ęå®ćŖć**éēŗćććå “åļ¼Codex CLI/Cursor/Aiderēļ¼
|
|
32
|
+
|
|
33
|
+
## ā” ćÆć¤ććÆć¹ćæć¼ćļ¼3ć¹ćććļ¼
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
# 1. ćććøć§ćÆćä½ęļ¼30ē§ļ¼
|
|
37
|
+
npx create-ai-project my-project --lang=ja
|
|
38
|
+
|
|
39
|
+
# 2. ä¾åé¢äæć¤ć³ć¹ćć¼ć«ļ¼čŖåļ¼
|
|
40
|
+
cd my-project && npm install
|
|
41
|
+
|
|
42
|
+
# 3. Claude Codećčµ·åćć¦čØå®
|
|
43
|
+
claude # Claude Codećčµ·å
|
|
44
|
+
/project-inject # ćććøć§ćÆćć³ć³ććć¹ććčØå®
|
|
45
|
+
/implement <ććŖćć®ä½ćććę©č½> # éēŗéå§ļ¼
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
> š” **åćć¦ć®ę¹ćÆļ¼** [ćÆć¤ććÆć¹ćæć¼ćć¬ć¤ć](docs/guides/ja/quickstart.md)ć§č©³ē“°ćŖć»ććć¢ććęé ć確čŖ
|
|
49
|
+
|
|
50
|
+
## š ćŖććµććØć¼ćøć§ć³ćļ¼
|
|
51
|
+
|
|
52
|
+
**å¾ę„ć®AIć³ć¼ćć£ć³ć°ć®åé”**
|
|
53
|
+
- ā é·ęéć®ć»ćć·ć§ć³ć§ć³ć³ććć¹ćć失ć
|
|
54
|
+
- ā ęéćØćØćć«ć³ć¼ćåč³Ŗćä½äø
|
|
55
|
+
- ā 大č¦ęØ”ćæć¹ćÆć§é »ē¹ćŖć»ćć·ć§ć³åčµ·åćåæ
č¦
|
|
56
|
+
|
|
57
|
+
**ćµććØć¼ćøć§ć³ćć«ćć解決**
|
|
58
|
+
- ā
å°éēćŖåäøć®å½¹å²ć«åå²ļ¼čØčØćå®č£
ćć¬ćć„ć¼ļ¼
|
|
59
|
+
- ā
ć³ć³ććć¹ććåøøć«ę°é®®ć«äæć”ćåč³Ŗćäøå®ć«ē¶ę
|
|
60
|
+
- ā
åč³Ŗä½äøćŖćć§č¦ęØ”ęć®ćććæć¹ćÆćå¦ē
|
|
61
|
+
|
|
62
|
+
åćµććØć¼ćøć§ć³ććÆ1ć¤ć®ćæć¹ćÆć«éäøćć¾ćććć®ēµęćć³ć³ććć¹ććÆęÆęøćććåč³Ŗćē¶ęććć¾ćć
|
|
63
|
+
|
|
64
|
+
š [ćµććØć¼ćøć§ć³ćć«ć¤ćć¦č©³ććļ¼Anthropic docsļ¼](https://docs.anthropic.com/en/docs/claude-code/sub-agents)
|
|
65
|
+
|
|
66
|
+
### šø ćć¢
|
|
67
|
+
|
|
68
|
+

|
|
69
|
+
|
|
70
|
+
*ćµććØć¼ćøć§ć³ććé£ęŗćć¦ććććÆć·ć§ć³åč³Ŗć®TypeScriptćććøć§ćÆććę§ēÆććę§å*
|
|
71
|
+
|
|
72
|
+
## šÆ å®ćććøć§ćÆćć®ęę
|
|
73
|
+
|
|
74
|
+
### [Sub agents MCP Server](https://github.com/shinpr/sub-agents-mcp)
|
|
75
|
+
**å
容**: Claude Code/Cursor CLIććµććØć¼ćøć§ć³ćåććMCPćµć¼ćć¼
|
|
76
|
+
**ęé**: 2ę„é ā **TypeScript 30ćć”ć¤ć«ććć«ćć¹ćć«ćć¬ććø**
|
|
77
|
+
**ēµę**: ććććÆć·ć§ć³ē°å¢ć«ćććć¤ęøćæć3åć§ć»ććć¢ććåÆč½
|
|
78
|
+
|
|
79
|
+
### [MCP Image Generator](https://github.com/shinpr/mcp-image)
|
|
80
|
+
**å
容**: Gemini APIēµē±ć®AIē»åēę
|
|
81
|
+
**ęé**: 1.5ę„é ā **é«åŗ¦ćŖę©č½ćęć¤ćÆćŖćØć¤ćć£ććć¼ć«**
|
|
82
|
+
**ēµę**: ćć«ćē»åćć¬ć³ćć£ć³ć°ććć£ć©ćÆćæć¼äøč²«ę§ććÆć³ć³ćć³ćēµ±å
|
|
83
|
+
|
|
84
|
+
> š” **ćć¤ć³ć**: é©åćŖć«ć¼ć« + ćµććØć¼ćøć§ć³ć = ē“ ę©ćććććÆć·ć§ć³åč³Ŗć®ć³ć¼ććēęć§ćć
|
|
85
|
+
|
|
86
|
+
## š ććć„ć”ć³ćļ¼ć¬ć¤ć
|
|
87
|
+
|
|
88
|
+
- **[ćÆć¤ććÆć¹ćæć¼ćć¬ć¤ć](docs/guides/ja/quickstart.md)** - 5åć§åćć
|
|
89
|
+
- **[ć¦ć¼ć¹ć±ć¼ć¹ļ¼ć³ćć³ć](docs/guides/ja/use-cases.md)** - ę„åøøćÆć¼ćÆććć¼ć®ćŖćć”ć¬ć³ć¹
|
|
90
|
+
- **[ć«ć¼ć«ē·Øéć¬ć¤ć](docs/guides/ja/rule-editing-guide.md)** - ćććøć§ćÆćć«åććć¦ć«ć¹ćæćć¤ćŗ
|
|
91
|
+
- **[čØčØęę³](https://qiita.com/shinpr/items/98771c2b8d2e15cafcd5)** - ćŖććććę©č½ććć®ć
|
|
92
|
+
|
|
93
|
+
## š ć¹ć©ćć·ć„ć³ćć³ć
|
|
94
|
+
|
|
95
|
+
Claude Codeć§å©ēØć§ććäø»č¦ćŖć³ćć³ćļ¼
|
|
96
|
+
|
|
97
|
+
| ć³ćć³ć | ē®ē | 使ēØå “é¢ |
|
|
98
|
+
|---------|------|----------|
|
|
99
|
+
| `/implement` | č¦ä»¶ććå®č£
ć¾ć§ć®äøč²«ććéēŗ | ę°ę©č½éēŗļ¼Backendļ¼ |
|
|
100
|
+
| `/task` | ć«ć¼ć«ć«åŗć„ććåäøćæć¹ćÆć®å®č” | ćć°äæ®ę£ćå°č¦ęØ”ćŖå¤ę“ |
|
|
101
|
+
| `/design` | čØčØęøć®ä½ę | ć¢ć¼ćććÆćć£ć®čØē»ęļ¼Backendļ¼ |
|
|
102
|
+
| `/plan` | čØčØęøććä½ę„čØē»ęøćä½ę | čØčØęæčŖå¾ļ¼Backendļ¼ |
|
|
103
|
+
| `/build` | ę¢åć®čØē»ććå®č” | ä½ę„ć®åéęļ¼Backendļ¼ |
|
|
104
|
+
| `/review` | ć³ć¼ćć®ęŗę ę§ē¢ŗčŖ | å®č£
å®äŗå¾ |
|
|
105
|
+
| `/front-design` | ććć³ććØć³ćčØčØęøć®ä½ę | React/Viteć¢ć¼ćććÆćć£čØē»ę |
|
|
106
|
+
| `/front-plan` | ććć³ććØć³ćä½ę„čØē»ęøćä½ę | ććć³ććØć³ćčØčØęæčŖå¾ |
|
|
107
|
+
| `/front-build` | ććć³ććØć³ćå®č£
ć®å®č” | Reactć³ć³ćć¼ćć³ćéēŗ |
|
|
108
|
+
|
|
109
|
+
[ć³ćć³ćć®č©³ē“°ćÆćć”ć ā](docs/guides/ja/use-cases.md)
|
|
110
|
+
|
|
111
|
+
## š¤ Claude Code ćÆć¼ćÆććć¼
|
|
112
|
+
|
|
113
|
+
```mermaid
|
|
114
|
+
graph LR
|
|
115
|
+
A[č¦ä»¶] --> B[č¦ęØ”å¤å®]
|
|
116
|
+
B -->|å°č¦ęØ”| C[ē“ę„å®č£
]
|
|
117
|
+
B -->|äøč¦ęØ”| D[čØčØ ā å®č£
]
|
|
118
|
+
B -->|大č¦ęØ”| E[PRD ā čØčØ ā å®č£
]
|
|
119
|
+
|
|
120
|
+
C --> F[åč³Ŗćć§ć㯠ā ć³ććć]
|
|
121
|
+
D --> F
|
|
122
|
+
E --> F
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
### åä½ć®ä»ēµćæ
|
|
126
|
+
|
|
127
|
+
1. **č¦ä»¶åę**: `/implement`ć³ćć³ćććæć¹ćÆć®č¦ęØ”ćå¤ęćć¾ć
|
|
128
|
+
2. **ććć„ć”ć³ćēę**: åæ
č¦ć«åæćć¦ććć„ć”ć³ćļ¼PRDćDesign DocćWork Planļ¼ćä½ęćć¾ć
|
|
129
|
+
3. **ćæć¹ćÆå®č”**: å°éć®ćØć¼ćøć§ć³ććåćć§ć¼ćŗćę
å½ćć¾ć
|
|
130
|
+
4. **åč³Ŗäæčؼ**: ćć¹ććåćć§ććÆćåæ
č¦ć«åæććäæ®ę£ćč”ćć¾ć
|
|
131
|
+
5. **ć³ććć**: ćæć¹ćÆććØć«ę“ēćććć³ććććä½ęćć¾ć
|
|
132
|
+
|
|
133
|
+
## š ćććøć§ćÆćę§ę
|
|
134
|
+
|
|
135
|
+
```
|
|
136
|
+
ai-coding-project-boilerplate/
|
|
137
|
+
āāā .claude/ # AIćØć¼ćøć§ć³ćčØå®
|
|
138
|
+
ā āāā agents/ # å°éćµććØć¼ćøć§ć³ćå®ē¾©
|
|
139
|
+
ā āāā commands/ # ć¹ć©ćć·ć„ć³ćć³ćå®ē¾©
|
|
140
|
+
āāā docs/
|
|
141
|
+
ā āāā rules/ # éēŗć«ć¼ć«ļ¼ććæć¼ć³
|
|
142
|
+
ā āāā guides/ # ć¦ć¼ć¶ć¼ććć„ć”ć³ć
|
|
143
|
+
ā āāā adr/ # ć¢ć¼ćććÆćć£ę±ŗå®
|
|
144
|
+
ā āāā design/ # čØčØććć„ć”ć³ć
|
|
145
|
+
ā āāā prd/ # 製åč¦ä»¶
|
|
146
|
+
āāā src/ # ććŖćć®ć½ć¼ć¹ć³ć¼ć
|
|
147
|
+
āāā scripts/ # ć¦ć¼ćć£ćŖćć£ć¹ćÆćŖćć
|
|
148
|
+
āāā CLAUDE.md # Claude CodečØå®
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
## š§ ććć±ć¼ćøććć¼ćøć£ć¼ć®čØå®
|
|
152
|
+
|
|
153
|
+
ćć®ćć¤ć©ć¼ćć¬ć¼ććÆććć©ć«ćć§npmć使ēØćć¾ćććbunćpnpmćŖć©å„½ćæć®ććć±ć¼ćøććć¼ćøć£ć¼ć«åćęæććććØćć§ćć¾ćć
|
|
154
|
+
|
|
155
|
+
`package.json`ć«ćÆ2ć¤ć®ē°å¢ä¾åčØå®ćććć¾ćļ¼
|
|
156
|
+
|
|
157
|
+
- **`packageManager`**: 使ēØććććć±ć¼ćøććć¼ćøć£ć¼ćØćć¼ćøć§ć³
|
|
158
|
+
- **`scripts`**: åć¹ćÆćŖććć®å®č”ć³ćć³ć
|
|
159
|
+
|
|
160
|
+
ććććå¤ę“ćććØćClaude CodeććććčŖčććé©åćŖć³ćć³ćć§å®č”ćć¾ćć
|
|
161
|
+
|
|
162
|
+
### bunć«åćęæććå “å
|
|
163
|
+
|
|
164
|
+
```json
|
|
165
|
+
{
|
|
166
|
+
"packageManager": "bun@1.3.3",
|
|
167
|
+
"scripts": {
|
|
168
|
+
"build": "bun run tsc && tsc-alias",
|
|
169
|
+
"dev": "bun run src/index.ts",
|
|
170
|
+
"test": "bun test",
|
|
171
|
+
"check": "bunx @biomejs/biome check src",
|
|
172
|
+
"check:all": "bun run check && bun run lint && bun run format:check && bun run check:unused && bun run check:deps && bun run build && bun test"
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
äøčØćÆä»£č”Øä¾ć§ććć«ć¼ć«ććµććØć¼ćøć§ć³ćå®ē¾©ć§čØåććć¦ććć¹ćÆćŖćććÆä»„äøć®éćć§ććåæ
č¦ć«åæćć¦ęøćęćć¦ćć ććļ¼
|
|
178
|
+
|
|
179
|
+
`build`, `build:frontend`, `dev`, `preview`, `type-check`, `test`, `test:coverage`, `test:coverage:fresh`, `test:safe`, `cleanup:processes`, `check`, `check:fix`, `check:code`, `check:unused`, `check:deps`, `check:all`, `format`, `format:check`, `lint`, `lint:fix`
|
|
180
|
+
|
|
181
|
+
## š å¤čØčŖåƾåæ
|
|
182
|
+
|
|
183
|
+
ę„ę¬čŖćØč±čŖć«åƾåæćć¦ćć¾ćļ¼
|
|
184
|
+
|
|
185
|
+
```bash
|
|
186
|
+
npm run lang:ja # ę„ę¬čŖć«åćęæć
|
|
187
|
+
npm run lang:en # č±čŖć«åćęæć
|
|
188
|
+
npm run lang:status # ē¾åØć®čØčŖčØå®ć確čŖ
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
čØčŖćåćęæćććØćčØå®ćć”ć¤ć«ćć«ć¼ć«ććØć¼ćøć§ć³ćå®ē¾©ćčŖåēć«ę“ę°ććć¾ćć
|
|
192
|
+
|
|
193
|
+
## š¤ ććććč³Ŗå
|
|
194
|
+
|
|
195
|
+
**Q: ćµććØć¼ćøć§ć³ććÆć©ć®ććć«åä½ćć¾ććļ¼**
|
|
196
|
+
A: `/implement`ć`/task`ć³ćć³ćć使ēØćććØććæć¹ćÆć«åæćć¦é©åćŖćØć¼ćøć§ć³ććčŖåēć«éøęćććå®č”ććć¾ćć
|
|
197
|
+
|
|
198
|
+
**Q: ćØć©ć¼ćēŗēććå “åć®åƾå¦ę³ćÆļ¼**
|
|
199
|
+
A: quality-fixerćå¤ćć®åé”ćčŖåēć«ę¤åŗć»äæ®ę£ćć¾ććčŖåäæ®ę£ć§ććŖćå “åćÆćå
·ä½ēćŖåƾå¦ę¹ę³ććę”å
ćć¾ćć
|
|
200
|
+
|
|
201
|
+
**Q: ćććøć§ćÆćć«åćććć«ć¹ćæćć¤ćŗćÆåÆč½ć§ććļ¼**
|
|
202
|
+
A: ćÆććåÆč½ć§ćć`/project-inject`ć³ćć³ććå®č”ćć¦ććććøć§ćÆćåŗęć®čØå®ćč”ć£ć¦ćć ććć
|
|
203
|
+
|
|
204
|
+
**Q: åŗę¬ēćŖéēŗć®ęµććęćć¦ćć ććć**
|
|
205
|
+
A: ååćÆ`/project-inject`ć§ćććøć§ćÆćčØå®ćč”ćććć®å¾ćÆ`/implement`ć§ę©č½éēŗćåč³Ŗćć§ććÆćć³ććććØććęµćć«ćŖćć¾ćć
|
|
206
|
+
|
|
207
|
+
**Q: GitHub CopilotćCursorćØćÆć©ćéćć¾ććļ¼**
|
|
208
|
+
A: ćććć®ćć¼ć«ćÆć³ć¼ćčØčæ°ć®ęÆę“ć«ē¹åćć¦ćć¾ćććę¬ćć¤ć©ć¼ćć¬ć¼ććÆéēŗććć»ć¹å
Øä½ććµćć¼ćććä»ēµćæćęä¾ćć¦ćć¾ćć
|
|
209
|
+
|
|
210
|
+
## š¤ ćµććØć¼ćøć§ć³ćäøč¦§
|
|
211
|
+
|
|
212
|
+
| ćØć¼ćøć§ć³ć | ę
å½é å | 使ēØććććæć¤ćć³ć° |
|
|
213
|
+
|------------|---------|------------------|
|
|
214
|
+
| **requirement-analyzer** | ćæć¹ćÆč¦ęØ”ć®å¤å® | `/implement`ć³ćć³ćå®č”ę |
|
|
215
|
+
| **technical-designer** | čØčØććć„ć”ć³ćć®ä½ę | äøč¦ęØ”ć»å¤§č¦ęØ”ę©č½ć®éēŗę |
|
|
216
|
+
| **document-reviewer** | ććć„ć”ć³ćåč³Ŗćć§ć㯠| ććć„ć”ć³ćä½ęå¾ |
|
|
217
|
+
| **design-sync** | Design Docéć®ę“åę§ę¤čؼ | Design Docä½ęå¾ |
|
|
218
|
+
| **acceptance-test-generator** | ACćććć¹ćć¹ć±ć«ćć³ēę | čØčØęæčŖå¾ |
|
|
219
|
+
| **work-planner** | ćæć¹ćÆć®åč§£ćØčØē» | čØčØå®äŗå¾ |
|
|
220
|
+
| **task-executor** | å®č£
ä½ę„ | éēŗćć§ć¼ćŗ |
|
|
221
|
+
| **quality-fixer** | åč³Ŗåé”ć®äæ®ę£ | ćØć©ć¼ćč¦åć®ę¤åŗę |
|
|
222
|
+
| **code-reviewer** | ć³ć¼ćć¬ćć„ć¼ | `/review`ć³ćć³ćå®č”ę |
|
|
223
|
+
| **integration-test-reviewer** | ćć¹ćå®č£
åč³Ŗć®ę¤čؼ | ćć¹ćå®č£
å¾ |
|
|
224
|
+
|
|
225
|
+
[ćØć¼ćøć§ć³ćć®č©³ē“° ā](.claude/agents-ja/)
|
|
226
|
+
|
|
227
|
+
## š ć©ć¤ć»ć³ć¹
|
|
228
|
+
|
|
229
|
+
MIT License - čŖē±ć«ä½æēØć»ę¹å¤ć»é
åøåÆč½
|
|
230
|
+
|
|
231
|
+
## šÆ ćć®ćććøć§ćÆćć«ć¤ćć¦
|
|
232
|
+
|
|
233
|
+
AI Coding Project BoilerplatećÆćAIćę“»ēØććéēŗć«ććć¦ćć³ć¼ćåč³ŖćØéēŗå¹ēć®ćć©ć³ć¹ćéč¦ćć¦čØčØććć¦ćć¾ćććµććØć¼ćøć§ć³ćć«ććå½¹å²åę
ćØć³ć³ććć¹ćē®”ēć«ćććTypeScriptćććøć§ćÆćć®å¹ēēćŖéēŗććµćć¼ććć¾ćć
|
package/README.md
ADDED
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
# AI Coding Project Boilerplate š¤
|
|
2
|
+
|
|
3
|
+
*Read this in other languages: [ę„ę¬čŖ](README.ja.md)*
|
|
4
|
+
|
|
5
|
+
[](https://www.typescriptlang.org/)
|
|
6
|
+
[](https://nodejs.org/)
|
|
7
|
+
[](https://claude.ai/code)
|
|
8
|
+
[](https://opensource.org/licenses/MIT)
|
|
9
|
+
[](https://github.com/shinpr/ai-coding-project-boilerplate/pulls)
|
|
10
|
+
|
|
11
|
+
ā” **This boilerplate is for developers who want to:**
|
|
12
|
+
- Build **production-ready TypeScript projects** faster with AI
|
|
13
|
+
- Avoid **context exhaustion** in long AI coding sessions
|
|
14
|
+
- Standardize team workflows with **specialized AI agents**
|
|
15
|
+
|
|
16
|
+
## š Table of Contents
|
|
17
|
+
1. [Quick Start (3 Steps)](#-quick-start-3-steps)
|
|
18
|
+
2. [Why Sub Agents?](#-why-sub-agents)
|
|
19
|
+
3. [Real Projects & Results](#-real-world-results)
|
|
20
|
+
4. [Documentation & Guides](#-documentation--guides)
|
|
21
|
+
5. [Slash Commands](#-slash-commands)
|
|
22
|
+
6. [Development Workflow](#-claude-code-workflow)
|
|
23
|
+
7. [Project Structure](#-project-structure)
|
|
24
|
+
8. [Package Manager Configuration](#-package-manager-configuration)
|
|
25
|
+
9. [Multilingual Support](#-multilingual-support)
|
|
26
|
+
10. [FAQ](#-faq)
|
|
27
|
+
|
|
28
|
+
> **Which one should you use?**
|
|
29
|
+
> - **Use this Boilerplate** if you want to **maximize precision** with **TypeScript Ć Sub-agent** setup optimized for **Claude Code**.
|
|
30
|
+
> - **Use [claude-code-workflows](https://github.com/shinpr/claude-code-workflows)** if you're on **Claude Code** and want to **start with any project** in **2 commands** and **language-agnostic** workflows.
|
|
31
|
+
> - **Use [Agentic Code](https://github.com/shinpr/agentic-code)** if you want **zero-config**, **tool-agnostic** workflows **without language restrictions** (Codex CLI/Cursor/Aider etc.).
|
|
32
|
+
|
|
33
|
+
## ā” Quick Start (3 Steps)
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
# 1. Create your project (30 seconds)
|
|
37
|
+
npx create-ai-project my-project
|
|
38
|
+
|
|
39
|
+
# 2. Install dependencies (automatic)
|
|
40
|
+
cd my-project && npm install
|
|
41
|
+
|
|
42
|
+
# 3. Launch Claude Code and configure
|
|
43
|
+
claude # Launch Claude Code
|
|
44
|
+
/project-inject # Configure project context
|
|
45
|
+
/implement <your feature> # Start building!
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
> š” **First time?** Check the [Quick Start Guide](docs/guides/en/quickstart.md) for detailed setup instructions
|
|
49
|
+
|
|
50
|
+
## š Why Sub Agents?
|
|
51
|
+
|
|
52
|
+
**Traditional AI coding struggles with:**
|
|
53
|
+
- ā Losing context in long sessions
|
|
54
|
+
- ā Declining code quality over time
|
|
55
|
+
- ā Frequent session restarts for large tasks
|
|
56
|
+
|
|
57
|
+
**Sub agents solve this by:**
|
|
58
|
+
- ā
Splitting work into specialized roles (design, implementation, review)
|
|
59
|
+
- ā
Keeping context fresh and quality consistent
|
|
60
|
+
- ā
Handling large projects without degradation
|
|
61
|
+
|
|
62
|
+
Each agent focuses on one thing and does it well. No context exhaustion, no quality drop.
|
|
63
|
+
|
|
64
|
+
š [Learn more about Sub Agents (Anthropic docs)](https://docs.anthropic.com/en/docs/claude-code/sub-agents)
|
|
65
|
+
|
|
66
|
+
### šø Demo
|
|
67
|
+
|
|
68
|
+

|
|
69
|
+
|
|
70
|
+
*Sub agents working together to build a production-ready TypeScript project*
|
|
71
|
+
|
|
72
|
+
## šÆ Real-World Results
|
|
73
|
+
|
|
74
|
+
### ā±ļø Time Comparison
|
|
75
|
+
- **Without this boilerplate**: ~1 week for setup + infrastructure
|
|
76
|
+
- **With this boilerplate**: ~2 days to production-ready application
|
|
77
|
+
|
|
78
|
+
### Success Stories
|
|
79
|
+
|
|
80
|
+
#### [Sub agents MCP Server](https://github.com/shinpr/sub-agents-mcp)
|
|
81
|
+
**What**: MCP server enabling Claude Code/Cursor CLI as sub agents
|
|
82
|
+
**Time**: 2 days ā **30 TypeScript files with full test coverage**
|
|
83
|
+
**Result**: Production-deployed, 3-minute setup
|
|
84
|
+
|
|
85
|
+
#### [MCP Image Generator](https://github.com/shinpr/mcp-image)
|
|
86
|
+
**What**: AI image generation via Gemini API
|
|
87
|
+
**Time**: 1.5 days ā **Complete creative tool with advanced features**
|
|
88
|
+
**Result**: Multi-image blending, character consistency, one-command integration
|
|
89
|
+
|
|
90
|
+
> š” **Key Insight**: Proper rules + sub agents = production-quality code at AI speed
|
|
91
|
+
|
|
92
|
+
## š Documentation & Guides
|
|
93
|
+
|
|
94
|
+
- **[Quick Start Guide](docs/guides/en/quickstart.md)** - Get running in 5 minutes
|
|
95
|
+
- **[Use Cases & Commands](docs/guides/en/use-cases.md)** - Daily workflow reference
|
|
96
|
+
- **[Rule Editing Guide](docs/guides/en/rule-editing-guide.md)** - Customize for your project
|
|
97
|
+
- **[Design Philosophy](https://dev.to/shinpr/zero-context-exhaustion-building-production-ready-ai-coding-teams-with-claude-code-sub-agents-31b)** - Why it works (770K tokens without exhaustion)
|
|
98
|
+
|
|
99
|
+
## š Slash Commands
|
|
100
|
+
|
|
101
|
+
Essential commands for Claude Code:
|
|
102
|
+
|
|
103
|
+
| Command | Purpose | When to Use |
|
|
104
|
+
|---------|---------|-------------|
|
|
105
|
+
| `/implement` | End-to-end feature development | New features (Backend) |
|
|
106
|
+
| `/task` | Single task with rule precision | Bug fixes, small changes |
|
|
107
|
+
| `/design` | Create design docs only | Architecture planning (Backend) |
|
|
108
|
+
| `/plan` | Create work plan from design | After design approval (Backend) |
|
|
109
|
+
| `/build` | Execute from existing plan | Resume work (Backend) |
|
|
110
|
+
| `/review` | Check code compliance | Post-implementation |
|
|
111
|
+
| `/front-design` | Create frontend design docs | React/Vite architecture planning |
|
|
112
|
+
| `/front-plan` | Create frontend work plan | After frontend design approval |
|
|
113
|
+
| `/front-build` | Execute frontend implementation | React component development |
|
|
114
|
+
|
|
115
|
+
[Full command reference ā](docs/guides/en/use-cases.md)
|
|
116
|
+
|
|
117
|
+
## š¤ Claude Code Workflow
|
|
118
|
+
|
|
119
|
+
```mermaid
|
|
120
|
+
graph LR
|
|
121
|
+
A[Requirements] --> B[Scale Detection]
|
|
122
|
+
B -->|Small| C[Direct Implementation]
|
|
123
|
+
B -->|Medium| D[Design ā Implementation]
|
|
124
|
+
B -->|Large| E[PRD ā Design ā Implementation]
|
|
125
|
+
|
|
126
|
+
C --> F[Quality Check ā Commit]
|
|
127
|
+
D --> F
|
|
128
|
+
E --> F
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
### How It Works
|
|
132
|
+
|
|
133
|
+
1. **Requirement Analysis**: `/implement` command analyzes task scale
|
|
134
|
+
2. **Document Generation**: Creates necessary docs (PRD, Design Doc, Work Plan)
|
|
135
|
+
3. **Task Execution**: Specialized agents handle each phase
|
|
136
|
+
4. **Quality Assurance**: Automatic testing, type checking, and fixes
|
|
137
|
+
5. **Commit & Continue**: Clean commits for each completed task
|
|
138
|
+
|
|
139
|
+
## š Project Structure
|
|
140
|
+
|
|
141
|
+
```
|
|
142
|
+
ai-coding-project-boilerplate/
|
|
143
|
+
āāā .claude/ # AI agent configurations
|
|
144
|
+
ā āāā agents/ # Specialized sub-agent definitions
|
|
145
|
+
ā āāā commands/ # Slash command definitions
|
|
146
|
+
āāā docs/
|
|
147
|
+
ā āāā rules/ # Development rules & patterns
|
|
148
|
+
ā āāā guides/ # User documentation
|
|
149
|
+
ā āāā adr/ # Architecture decisions
|
|
150
|
+
ā āāā design/ # Design documents
|
|
151
|
+
ā āāā prd/ # Product requirements
|
|
152
|
+
āāā src/ # Your source code
|
|
153
|
+
āāā scripts/ # Utility scripts
|
|
154
|
+
āāā CLAUDE.md # Claude Code configuration
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
## š§ Package Manager Configuration
|
|
158
|
+
|
|
159
|
+
This boilerplate uses npm by default, but you can switch to your preferred package manager like bun or pnpm.
|
|
160
|
+
|
|
161
|
+
There are two environment-dependent settings in `package.json`:
|
|
162
|
+
|
|
163
|
+
- **`packageManager`**: The package manager and version to use
|
|
164
|
+
- **`scripts`**: The execution commands for each script
|
|
165
|
+
|
|
166
|
+
When you change these, Claude Code will recognize them and execute with the appropriate commands.
|
|
167
|
+
|
|
168
|
+
### Switching to bun
|
|
169
|
+
|
|
170
|
+
```json
|
|
171
|
+
{
|
|
172
|
+
"packageManager": "bun@1.3.3",
|
|
173
|
+
"scripts": {
|
|
174
|
+
"build": "bun run tsc && tsc-alias",
|
|
175
|
+
"dev": "bun run src/index.ts",
|
|
176
|
+
"test": "bun test",
|
|
177
|
+
"check": "bunx @biomejs/biome check src",
|
|
178
|
+
"check:all": "bun run check && bun run lint && bun run format:check && bun run check:unused && bun run check:deps && bun run build && bun test"
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
The above are representative examples. The following scripts are referenced in rules and sub-agent definitions. Update them as needed:
|
|
184
|
+
|
|
185
|
+
`build`, `build:frontend`, `dev`, `preview`, `type-check`, `test`, `test:coverage`, `test:coverage:fresh`, `test:safe`, `cleanup:processes`, `check`, `check:fix`, `check:code`, `check:unused`, `check:deps`, `check:all`, `format`, `format:check`, `lint`, `lint:fix`
|
|
186
|
+
|
|
187
|
+
## š Multilingual Support
|
|
188
|
+
|
|
189
|
+
Full support for English and Japanese:
|
|
190
|
+
|
|
191
|
+
```bash
|
|
192
|
+
npm run lang:en # Switch to English
|
|
193
|
+
npm run lang:ja # Switch to Japanese
|
|
194
|
+
npm run lang:status # Check current language
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
Automatically updates all configurations, rules, and agent definitions.
|
|
198
|
+
|
|
199
|
+
## š¤ FAQ
|
|
200
|
+
|
|
201
|
+
**Q: How do sub agents work?**
|
|
202
|
+
A: Just use `/implement` or `/task`. The right agents activate automatically.
|
|
203
|
+
|
|
204
|
+
**Q: What if there are errors?**
|
|
205
|
+
A: quality-fixer auto-fixes most issues. If not, it provides clear instructions.
|
|
206
|
+
|
|
207
|
+
**Q: Can I customize for my project?**
|
|
208
|
+
A: Yes! Run `/project-inject` to configure project-specific context.
|
|
209
|
+
|
|
210
|
+
**Q: What's the typical workflow?**
|
|
211
|
+
A: `/project-inject` (once) ā `/implement` (features) ā auto quality checks ā commit
|
|
212
|
+
|
|
213
|
+
**Q: How is this different from Copilot/Cursor?**
|
|
214
|
+
A: Those help write code. This manages entire development lifecycle with specialized agents.
|
|
215
|
+
|
|
216
|
+
## š¤ Complete Sub Agents Roster
|
|
217
|
+
|
|
218
|
+
| Agent | Specialization | Activation |
|
|
219
|
+
|-------|---------------|------------|
|
|
220
|
+
| **requirement-analyzer** | Scale assessment | Start of `/implement` |
|
|
221
|
+
| **technical-designer** | Design documentation | Medium/large features |
|
|
222
|
+
| **document-reviewer** | Document quality check | After document creation |
|
|
223
|
+
| **design-sync** | Design Doc consistency | After Design Doc creation |
|
|
224
|
+
| **acceptance-test-generator** | Test skeleton from ACs | After design approval |
|
|
225
|
+
| **work-planner** | Task breakdown | After design approval |
|
|
226
|
+
| **task-executor** | Implementation | During build phase |
|
|
227
|
+
| **quality-fixer** | Automated fixes | On any quality issue |
|
|
228
|
+
| **code-reviewer** | Compliance check | `/review` command |
|
|
229
|
+
| **integration-test-reviewer** | Test implementation quality | After test implementation |
|
|
230
|
+
|
|
231
|
+
[Full agent list ā](.claude/agents-en/)
|
|
232
|
+
|
|
233
|
+
## š License
|
|
234
|
+
|
|
235
|
+
MIT License - Free to use, modify, and distribute
|
|
236
|
+
|
|
237
|
+
## šÆ About This Project
|
|
238
|
+
|
|
239
|
+
The AI Coding Project Boilerplate is engineered to maximize AI coding productivity while maintaining human-level code quality. By leveraging specialized sub agents and context engineering, it enables teams to build production-ready TypeScript applications at unprecedented speed.
|
|
240
|
+
|
|
241
|
+
---
|
|
242
|
+
|
|
243
|
+
Happy Coding with Claude Code! š¤āØ
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
const { spawn } = require('child_process');
|
|
4
|
+
const path = require('path');
|
|
5
|
+
const fs = require('fs');
|
|
6
|
+
|
|
7
|
+
// Parse command line arguments
|
|
8
|
+
const args = process.argv.slice(2);
|
|
9
|
+
|
|
10
|
+
if (args.length === 0 || args[0] === '--help' || args[0] === '-h') {
|
|
11
|
+
console.log(`
|
|
12
|
+
š AI Coding Project Boilerplate
|
|
13
|
+
|
|
14
|
+
Usage:
|
|
15
|
+
npx create-ai-project <project-name> [options]
|
|
16
|
+
npm init ai-project <project-name> [options]
|
|
17
|
+
|
|
18
|
+
Options:
|
|
19
|
+
--lang=<language> Set the project language (ja or en, default: en)
|
|
20
|
+
--help, -h Show this help message
|
|
21
|
+
|
|
22
|
+
Examples:
|
|
23
|
+
npx create-ai-project my-project
|
|
24
|
+
npx create-ai-project my-project --lang=ja
|
|
25
|
+
npm init ai-project my-project --lang=ja
|
|
26
|
+
`);
|
|
27
|
+
process.exit(0);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
const projectName = args[0];
|
|
31
|
+
const options = args.slice(1);
|
|
32
|
+
|
|
33
|
+
// Parse language option
|
|
34
|
+
let language = 'en'; // default
|
|
35
|
+
for (const opt of options) {
|
|
36
|
+
if (opt.startsWith('--lang=')) {
|
|
37
|
+
language = opt.split('=')[1];
|
|
38
|
+
if (!['ja', 'en'].includes(language)) {
|
|
39
|
+
console.error(`ā Invalid language: ${language}. Supported languages are: ja, en`);
|
|
40
|
+
process.exit(1);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
// Validate project name
|
|
46
|
+
const validNamePattern = /^[a-z0-9-._]+$/;
|
|
47
|
+
if (!validNamePattern.test(projectName)) {
|
|
48
|
+
console.error(`ā Invalid project name: ${projectName}`);
|
|
49
|
+
console.error(' Project name must contain only lowercase letters, numbers, hyphens, dots, and underscores.');
|
|
50
|
+
process.exit(1);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
// Check if directory already exists
|
|
54
|
+
const projectPath = path.resolve(process.cwd(), projectName);
|
|
55
|
+
if (fs.existsSync(projectPath)) {
|
|
56
|
+
console.error(`ā Directory already exists: ${projectPath}`);
|
|
57
|
+
process.exit(1);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
console.log(`\nš Creating new AI coding project: ${projectName}`);
|
|
61
|
+
console.log(`š Location: ${projectPath}`);
|
|
62
|
+
console.log(`š Language: ${language}\n`);
|
|
63
|
+
|
|
64
|
+
// Run setup script
|
|
65
|
+
const setupScript = path.join(__dirname, '..', 'scripts', 'setup-project.js');
|
|
66
|
+
const setupProcess = spawn('node', [setupScript, projectName, language], {
|
|
67
|
+
stdio: 'inherit',
|
|
68
|
+
cwd: process.cwd() // ē¾åØć®ä½ę„ćć£ć¬ćÆććŖć使ēØ
|
|
69
|
+
});
|
|
70
|
+
|
|
71
|
+
setupProcess.on('close', (code) => {
|
|
72
|
+
if (code !== 0) {
|
|
73
|
+
console.error(`\nā Setup failed with exit code ${code}`);
|
|
74
|
+
process.exit(code);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
console.log(`\nā
Project created successfully!`);
|
|
78
|
+
console.log(`\nš Next steps:`);
|
|
79
|
+
console.log(` cd ${projectName}`);
|
|
80
|
+
console.log(` npm install`);
|
|
81
|
+
console.log(` npm run dev\n`);
|
|
82
|
+
});
|
|
83
|
+
|
|
84
|
+
setupProcess.on('error', (err) => {
|
|
85
|
+
console.error(`\nā Failed to execute setup script: ${err.message}`);
|
|
86
|
+
process.exit(1);
|
|
87
|
+
});
|
package/biome.json
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://biomejs.dev/schemas/1.9.4/schema.json",
|
|
3
|
+
"organizeImports": {
|
|
4
|
+
"enabled": true
|
|
5
|
+
},
|
|
6
|
+
"formatter": {
|
|
7
|
+
"enabled": true,
|
|
8
|
+
"formatWithErrors": false,
|
|
9
|
+
"indentStyle": "space",
|
|
10
|
+
"indentWidth": 2,
|
|
11
|
+
"lineWidth": 100
|
|
12
|
+
},
|
|
13
|
+
"linter": {
|
|
14
|
+
"enabled": true,
|
|
15
|
+
"rules": {
|
|
16
|
+
"recommended": true,
|
|
17
|
+
"style": {
|
|
18
|
+
"noNonNullAssertion": "off"
|
|
19
|
+
},
|
|
20
|
+
"suspicious": {
|
|
21
|
+
"noExplicitAny": "warn"
|
|
22
|
+
},
|
|
23
|
+
"complexity": {
|
|
24
|
+
"useLiteralKeys": "off"
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
"overrides": [
|
|
29
|
+
{
|
|
30
|
+
"include": ["**/__tests__/**/*.ts", "**/*.test.ts", "**/*.spec.ts"],
|
|
31
|
+
"linter": {
|
|
32
|
+
"rules": {
|
|
33
|
+
"suspicious": {
|
|
34
|
+
"noExplicitAny": "off"
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
],
|
|
40
|
+
"javascript": {
|
|
41
|
+
"formatter": {
|
|
42
|
+
"semicolons": "asNeeded",
|
|
43
|
+
"quoteStyle": "single",
|
|
44
|
+
"trailingCommas": "es5"
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
"files": {
|
|
48
|
+
"include": ["src/**/*.ts", "src/**/*.js"],
|
|
49
|
+
"ignore": ["node_modules/**", "dist/**"]
|
|
50
|
+
}
|
|
51
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# [ADR Number] [Title]
|
|
2
|
+
|
|
3
|
+
## Status
|
|
4
|
+
|
|
5
|
+
[Proposed | Accepted | Deprecated | Superseded]
|
|
6
|
+
|
|
7
|
+
## Context
|
|
8
|
+
|
|
9
|
+
[Describe the background and reasons why this decision is needed. Include the essence of the problem, current challenges, and constraints]
|
|
10
|
+
|
|
11
|
+
## Decision
|
|
12
|
+
|
|
13
|
+
[Describe the actual decision made. Aim for specific and clear descriptions]
|
|
14
|
+
|
|
15
|
+
### Decision Details
|
|
16
|
+
|
|
17
|
+
| Item | Content |
|
|
18
|
+
|------|---------|
|
|
19
|
+
| **Decision** | [The decision in one sentence] |
|
|
20
|
+
| **Why now** | [Why this needs to happen now (timing rationale)] |
|
|
21
|
+
| **Why this** | [Why this option over alternatives (1-3 lines)] |
|
|
22
|
+
| **Known unknowns** | [At least one uncertainty at this point] |
|
|
23
|
+
| **Kill criteria** | [One signal that should trigger reversal of this decision] |
|
|
24
|
+
|
|
25
|
+
## Rationale
|
|
26
|
+
|
|
27
|
+
[Explain why this decision was made and why it is the best option compared to alternatives]
|
|
28
|
+
|
|
29
|
+
### Options Considered
|
|
30
|
+
|
|
31
|
+
1. **Option 1**: [Description]
|
|
32
|
+
- Pros: [List advantages]
|
|
33
|
+
- Cons: [List disadvantages]
|
|
34
|
+
|
|
35
|
+
2. **Option 2**: [Description]
|
|
36
|
+
- Pros: [List advantages]
|
|
37
|
+
- Cons: [List disadvantages]
|
|
38
|
+
|
|
39
|
+
3. **Option 3 (Selected)**: [Description]
|
|
40
|
+
- Pros: [List advantages]
|
|
41
|
+
- Cons: [List disadvantages]
|
|
42
|
+
|
|
43
|
+
## Consequences
|
|
44
|
+
|
|
45
|
+
### Positive Consequences
|
|
46
|
+
|
|
47
|
+
- [List positive impacts on the project or system]
|
|
48
|
+
|
|
49
|
+
### Negative Consequences
|
|
50
|
+
|
|
51
|
+
- [List negative impacts or trade-offs that need to be accepted]
|
|
52
|
+
|
|
53
|
+
### Neutral Consequences
|
|
54
|
+
|
|
55
|
+
- [List changes that are neither good nor bad]
|
|
56
|
+
|
|
57
|
+
## Implementation Guidance
|
|
58
|
+
|
|
59
|
+
[Principled direction only. Implementation procedures go to Design Doc]
|
|
60
|
+
Example: "Use dependency injection" ā, "Implement in Phase 1" ā
|
|
61
|
+
|
|
62
|
+
## Related Information
|
|
63
|
+
|
|
64
|
+
- [Links to related ADRs, documents, issues, PRs, etc.]
|