create-ai-project 1.11.2 → 1.12.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/.claude/agents-en/acceptance-test-generator.md +13 -13
- package/.claude/agents-en/code-reviewer.md +8 -10
- package/.claude/agents-en/design-sync.md +6 -5
- package/.claude/agents-en/document-reviewer.md +8 -7
- package/.claude/agents-en/integration-test-reviewer.md +5 -4
- package/.claude/agents-en/prd-creator.md +7 -6
- package/.claude/agents-en/quality-fixer-frontend.md +3 -14
- package/.claude/agents-en/quality-fixer.md +9 -20
- package/.claude/agents-en/requirement-analyzer.md +8 -7
- package/.claude/agents-en/rule-advisor.md +57 -128
- package/.claude/agents-en/task-decomposer.md +4 -10
- package/.claude/agents-en/task-executor-frontend.md +4 -16
- package/.claude/agents-en/task-executor.md +5 -16
- package/.claude/agents-en/technical-designer-frontend.md +17 -15
- package/.claude/agents-en/technical-designer.md +13 -15
- package/.claude/agents-en/work-planner.md +9 -14
- package/.claude/agents-ja/acceptance-test-generator.md +9 -15
- package/.claude/agents-ja/code-reviewer.md +3 -11
- package/.claude/agents-ja/design-sync.md +2 -6
- package/.claude/agents-ja/document-reviewer.md +4 -9
- package/.claude/agents-ja/integration-test-reviewer.md +2 -5
- package/.claude/agents-ja/prd-creator.md +3 -7
- package/.claude/agents-ja/quality-fixer-frontend.md +2 -13
- package/.claude/agents-ja/quality-fixer.md +7 -18
- package/.claude/agents-ja/requirement-analyzer.md +5 -8
- package/.claude/agents-ja/rule-advisor.md +57 -128
- package/.claude/agents-ja/task-decomposer.md +4 -10
- package/.claude/agents-ja/task-executor-frontend.md +3 -15
- package/.claude/agents-ja/task-executor.md +3 -17
- package/.claude/agents-ja/technical-designer-frontend.md +17 -15
- package/.claude/agents-ja/technical-designer.md +13 -15
- package/.claude/agents-ja/work-planner.md +9 -14
- package/.claude/commands-en/build.md +2 -2
- package/.claude/commands-en/design.md +1 -1
- package/.claude/commands-en/implement.md +8 -8
- package/.claude/commands-en/plan.md +3 -3
- package/.claude/commands-en/project-inject.md +4 -4
- package/.claude/commands-en/{refine-rule.md → refine-skill.md} +47 -48
- package/.claude/commands-en/{sync-rules.md → sync-skills.md} +29 -29
- package/.claude/commands-ja/build.md +2 -2
- package/.claude/commands-ja/design.md +1 -1
- package/.claude/commands-ja/implement.md +8 -8
- package/.claude/commands-ja/plan.md +3 -3
- package/.claude/commands-ja/project-inject.md +4 -4
- package/.claude/{commands/refine-rule.md → commands-ja/refine-skill.md} +25 -25
- package/.claude/{commands/sync-rules.md → commands-ja/sync-skills.md} +28 -28
- package/{docs/rules-en/coding-standards.md → .claude/skills-en/coding-standards/SKILL.md} +21 -108
- package/{docs/rules-en/documentation-criteria.md → .claude/skills-en/documentation-criteria/SKILL.md} +40 -42
- package/{docs/adr/template-en.md → .claude/skills-en/documentation-criteria/references/adr-template.md} +1 -1
- package/{docs/design/template-en.md → .claude/skills-en/documentation-criteria/references/design-template.md} +11 -31
- package/{docs/plans/template-en.md → .claude/skills-en/documentation-criteria/references/plan-template.md} +4 -4
- package/{docs/prd/template-en.md → .claude/skills-en/documentation-criteria/references/prd-template.md} +1 -1
- package/{docs/rules-en/frontend/technical-spec.md → .claude/skills-en/frontend/technical-spec/SKILL.md} +17 -13
- package/{docs/rules-en/frontend/typescript.md → .claude/skills-en/frontend/typescript-rules/SKILL.md} +17 -12
- package/{docs/rules-en/frontend/typescript-testing.md → .claude/skills-en/frontend/typescript-testing/SKILL.md} +11 -6
- package/{docs/rules-en/architecture/implementation-approach.md → .claude/skills-en/implementation-approach/SKILL.md} +7 -2
- package/{docs/rules-en/integration-e2e-testing.md → .claude/skills-en/integration-e2e-testing/SKILL.md} +15 -18
- package/{docs/rules-en/project-context.md → .claude/skills-en/project-context/SKILL.md} +7 -3
- package/.claude/skills-en/subagents-orchestration-guide/SKILL.md +224 -0
- package/.claude/skills-en/task-analyzer/SKILL.md +131 -0
- package/{docs/rules-en/rules-index.yaml → .claude/skills-en/task-analyzer/references/skills-index.yaml} +34 -20
- package/{docs/rules-en/technical-spec.md → .claude/skills-en/technical-spec/SKILL.md} +6 -6
- package/{docs/rules-en/typescript.md → .claude/skills-en/typescript-rules/SKILL.md} +15 -10
- package/{docs/rules-en/typescript-testing.md → .claude/skills-en/typescript-testing/SKILL.md} +10 -4
- package/{docs/rules-ja/coding-standards.md → .claude/skills-ja/coding-standards/SKILL.md} +12 -99
- package/{docs/rules-ja/documentation-criteria.md → .claude/skills-ja/documentation-criteria/SKILL.md} +18 -5
- package/.claude/skills-ja/documentation-criteria/references/adr-template.md +64 -0
- package/.claude/skills-ja/documentation-criteria/references/design-template.md +261 -0
- package/{docs/plans/template-ja.md → .claude/skills-ja/documentation-criteria/references/plan-template.md} +38 -38
- package/{docs/prd/template-ja.md → .claude/skills-ja/documentation-criteria/references/prd-template.md} +33 -33
- package/{docs/rules-ja/frontend/technical-spec.md → .claude/skills-ja/frontend/technical-spec/SKILL.md} +13 -9
- package/.claude/skills-ja/frontend/typescript-rules/SKILL.md +315 -0
- package/{docs/rules-ja/frontend/typescript-testing.md → .claude/skills-ja/frontend/typescript-testing/SKILL.md} +93 -5
- package/{docs/rules/architecture/implementation-approach.md → .claude/skills-ja/implementation-approach/SKILL.md} +10 -5
- package/{docs/rules-ja/integration-e2e-testing.md → .claude/skills-ja/integration-e2e-testing/SKILL.md} +5 -8
- package/{docs/rules-ja/project-context.md → .claude/skills-ja/project-context/SKILL.md} +7 -3
- package/.claude/skills-ja/subagents-orchestration-guide/SKILL.md +212 -0
- package/.claude/skills-ja/task-analyzer/SKILL.md +131 -0
- package/{docs/rules-ja/rules-index.yaml → .claude/skills-ja/task-analyzer/references/skills-index.yaml} +34 -19
- package/{docs/rules-ja/technical-spec.md → .claude/skills-ja/technical-spec/SKILL.md} +6 -6
- package/{docs/rules-ja/typescript.md → .claude/skills-ja/typescript-rules/SKILL.md} +16 -11
- package/{docs/rules-ja/typescript-testing.md → .claude/skills-ja/typescript-testing/SKILL.md} +11 -5
- package/CLAUDE.en.md +6 -6
- package/CLAUDE.ja.md +6 -6
- package/CLAUDE.md +19 -28
- package/README.ja.md +39 -10
- package/README.md +39 -10
- package/package.json +1 -1
- package/scripts/set-language.js +35 -53
- package/scripts/setup-project.js +4 -1
- package/.claude/agents/acceptance-test-generator.md +0 -316
- package/.claude/agents/code-reviewer.md +0 -193
- package/.claude/agents/document-reviewer.md +0 -182
- package/.claude/agents/prd-creator.md +0 -186
- package/.claude/agents/quality-fixer.md +0 -295
- package/.claude/agents/requirement-analyzer.md +0 -161
- package/.claude/agents/rule-advisor.md +0 -194
- package/.claude/agents/task-decomposer.md +0 -291
- package/.claude/agents/task-executor.md +0 -270
- package/.claude/agents/technical-designer.md +0 -343
- package/.claude/agents/work-planner.md +0 -181
- package/.claude/commands/build.md +0 -78
- package/.claude/commands/design.md +0 -27
- package/.claude/commands/implement.md +0 -79
- package/.claude/commands/plan.md +0 -43
- package/.claude/commands/project-inject.md +0 -76
- package/.claude/commands/review.md +0 -78
- package/.claude/commands/task.md +0 -13
- package/.claude/commands-ja/refine-rule.md +0 -206
- package/.claude/commands-ja/sync-rules.md +0 -116
- package/.claude/settings.local.json +0 -74
- package/docs/adr/template-ja.md +0 -64
- package/docs/design/template-ja.md +0 -285
- package/docs/guides/en/sub-agents.md +0 -343
- package/docs/guides/ja/sub-agents.md +0 -343
- package/docs/guides/sub-agents.md +0 -306
- package/docs/plans/20250123-integration-test-improvement.md +0 -993
- package/docs/rules/ai-development-guide.md +0 -260
- package/docs/rules/documentation-criteria.md +0 -180
- package/docs/rules/project-context.md +0 -38
- package/docs/rules/rules-index.yaml +0 -137
- package/docs/rules/technical-spec.md +0 -47
- package/docs/rules/typescript-testing.md +0 -188
- package/docs/rules/typescript.md +0 -166
- package/docs/rules-ja/architecture/implementation-approach.md +0 -136
- package/docs/rules-ja/frontend/typescript.md +0 -131
package/CLAUDE.ja.md
CHANGED
|
@@ -26,8 +26,8 @@ AI実行精度最大化のための中核ルール。全ての指示はこのフ
|
|
|
26
26
|
**実行ルール**:
|
|
27
27
|
- `pending → in_progress`時: rule-advisorの出力が必須
|
|
28
28
|
- **rule-advisor実行後**: 必ずTodoWriteを以下の形式で更新
|
|
29
|
-
1.
|
|
30
|
-
2. taskEssenceを各タスクの完了判断基準として記録
|
|
29
|
+
1. metaCognitiveGuidance.firstStepをTodoの先頭タスクとして追加
|
|
30
|
+
2. metaCognitiveGuidance.taskEssenceを各タスクの完了判断基準として記録
|
|
31
31
|
3. warningPatternsを実行中の確認項目として記録
|
|
32
32
|
- TodoWriteなしでEditツール使用: ルール違反として停止
|
|
33
33
|
- 各タスクのステータス更新時: 実施内容の記録を必須化(空白不可)
|
|
@@ -55,15 +55,15 @@ AI実行精度最大化のための中核ルール。全ての指示はこのフ
|
|
|
55
55
|
- 表面的な作業内容と根本目的の区別
|
|
56
56
|
- 「quick fix」vs「proper solution」の判定
|
|
57
57
|
|
|
58
|
-
2. **
|
|
59
|
-
-
|
|
58
|
+
2. **selectedSkills(適用スキル)を確認**
|
|
59
|
+
- 選択されたスキルが適切か判断
|
|
60
60
|
- 必要なセクションを読み込む
|
|
61
61
|
|
|
62
|
-
3. **
|
|
62
|
+
3. **metaCognitiveGuidance.pastFailures(過去の失敗)を認識**
|
|
63
63
|
- 同じ失敗を繰り返さないよう注意
|
|
64
64
|
- 提示された回避策を意識
|
|
65
65
|
|
|
66
|
-
4. **
|
|
66
|
+
4. **metaCognitiveGuidance.firstStep(初動アクション)を実行**
|
|
67
67
|
- 推奨されたツールから開始
|
|
68
68
|
- 計画的に進める
|
|
69
69
|
|
package/CLAUDE.md
CHANGED
|
@@ -25,28 +25,28 @@ AI実行精度最大化のための中核ルール。全ての指示はこのフ
|
|
|
25
25
|
### TodoWriteとメタ認知の統合
|
|
26
26
|
**実行ルール**:
|
|
27
27
|
- `pending → in_progress`時: rule-advisorの出力が必須
|
|
28
|
-
- **rule-advisor実行後**: 必ずTodoWrite
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
28
|
+
- **rule-advisor実行後**: 必ずTodoWriteを以下の形式で更新
|
|
29
|
+
1. metaCognitiveGuidance.firstStepをTodoの先頭タスクとして追加
|
|
30
|
+
2. metaCognitiveGuidance.taskEssenceを各タスクの完了判断基準として記録
|
|
31
|
+
3. warningPatternsを実行中の確認項目として記録
|
|
32
32
|
- TodoWriteなしでEditツール使用: ルール違反として停止
|
|
33
33
|
- 各タスクのステータス更新時: 実施内容の記録を必須化(空白不可)
|
|
34
34
|
|
|
35
35
|
### 実行前提条件
|
|
36
|
-
1. **rule-advisor
|
|
36
|
+
1. **rule-advisorエージェント実行(Taskツールで呼び出すこと)** → JSONレスポンスが存在すること
|
|
37
37
|
2. **TodoWriteのタスク** → in_progressステータスが存在すること
|
|
38
38
|
3. **ユーザー承認記録** → Edit/Write前に明示的承認があること
|
|
39
39
|
4. **品質チェック結果** → エラー0でなければ完了不可
|
|
40
40
|
|
|
41
|
-
###
|
|
42
|
-
- **any
|
|
43
|
-
|
|
44
|
-
- **
|
|
45
|
-
|
|
46
|
-
-
|
|
47
|
-
理由:最重要原則(調査OK、実装STOP
|
|
48
|
-
-
|
|
49
|
-
|
|
41
|
+
### 必須の代替パターン
|
|
42
|
+
- **any型の代わり** → unknown型と型ガードを使用
|
|
43
|
+
理由:型安全性を確保し、実行時エラーを防止するため
|
|
44
|
+
- **Edit使用時** → 必ずTodoWriteでタスク管理を先行
|
|
45
|
+
理由:進捗追跡と品質保証を可能にするため
|
|
46
|
+
- **Edit/Write/MultiEdit使用時** → ユーザー承認を取得してから実行
|
|
47
|
+
理由:最重要原則(調査OK、実装STOP)を遵守するため
|
|
48
|
+
- **完了宣言時** → 品質チェックエラー0を確認してから宣言
|
|
49
|
+
理由:完全なコードのみをマージするため
|
|
50
50
|
|
|
51
51
|
## メタ認知実行(タスク開始時必須)
|
|
52
52
|
|
|
@@ -55,15 +55,15 @@ AI実行精度最大化のための中核ルール。全ての指示はこのフ
|
|
|
55
55
|
- 表面的な作業内容と根本目的の区別
|
|
56
56
|
- 「quick fix」vs「proper solution」の判定
|
|
57
57
|
|
|
58
|
-
2. **
|
|
59
|
-
-
|
|
58
|
+
2. **selectedSkills(適用スキル)を確認**
|
|
59
|
+
- 選択されたスキルが適切か判断
|
|
60
60
|
- 必要なセクションを読み込む
|
|
61
61
|
|
|
62
|
-
3. **
|
|
62
|
+
3. **metaCognitiveGuidance.pastFailures(過去の失敗)を認識**
|
|
63
63
|
- 同じ失敗を繰り返さないよう注意
|
|
64
64
|
- 提示された回避策を意識
|
|
65
65
|
|
|
66
|
-
4. **
|
|
66
|
+
4. **metaCognitiveGuidance.firstStep(初動アクション)を実行**
|
|
67
67
|
- 推奨されたツールから開始
|
|
68
68
|
- 計画的に進める
|
|
69
69
|
|
|
@@ -99,13 +99,4 @@ AI実行精度最大化のための中核ルール。全ての指示はこのフ
|
|
|
99
99
|
- **同一ファイル3回編集**: リファクタリング検討の強制停止
|
|
100
100
|
|
|
101
101
|
### 一時ファイル作成ルール
|
|
102
|
-
作業中ファイルは`tmp/`ディレクトリ使用。完了時削除。
|
|
103
|
-
|
|
104
|
-
### 専門エージェント積極活用(PROACTIVELY)
|
|
105
|
-
- **品質関連キーワード検出時**: プロジェクトタイプに応じたquality-fixer必須実行
|
|
106
|
-
- **Backend**: quality-fixer使用
|
|
107
|
-
- **Frontend**: quality-fixer-frontend使用(Lighthouse、Bundle size対応)
|
|
108
|
-
- 型エラー、ビルドエラー、lintエラー、フォーマット警告
|
|
109
|
-
- テスト失敗、品質チェック、検証タスク
|
|
110
|
-
- **タスク開始時**: rule-advisor必須実行
|
|
111
|
-
- TodoWrite作成前に実行し、結果を反映
|
|
102
|
+
作業中ファイルは`tmp/`ディレクトリ使用。完了時削除。
|
package/README.ja.md
CHANGED
|
@@ -16,14 +16,15 @@
|
|
|
16
16
|
## 📖 目次
|
|
17
17
|
1. [クイックスタート(3ステップ)](#-クイックスタート3ステップ)
|
|
18
18
|
2. [なぜサブエージェント?](#-なぜサブエージェント)
|
|
19
|
-
3. [
|
|
20
|
-
4. [
|
|
21
|
-
5. [
|
|
22
|
-
6. [
|
|
23
|
-
7. [
|
|
24
|
-
8. [
|
|
25
|
-
9. [
|
|
26
|
-
10. [
|
|
19
|
+
3. [スキルシステム](#-スキルシステム)
|
|
20
|
+
4. [実プロジェクトの成果](#-実プロジェクトの成果)
|
|
21
|
+
5. [ドキュメント&ガイド](#-ドキュメントガイド)
|
|
22
|
+
6. [スラッシュコマンド](#-スラッシュコマンド)
|
|
23
|
+
7. [開発ワークフロー](#-claude-code-ワークフロー)
|
|
24
|
+
8. [プロジェクト構成](#-プロジェクト構成)
|
|
25
|
+
9. [パッケージマネージャーの設定](#-パッケージマネージャーの設定)
|
|
26
|
+
10. [多言語対応](#-多言語対応)
|
|
27
|
+
11. [よくある質問](#-よくある質問)
|
|
27
28
|
|
|
28
29
|
> **どれを使うべき?**
|
|
29
30
|
> - **このボイラープレート**を使う → **Claude Code**で**TypeScript × サブエージェント**に最適化し、**精度を最大化**したい場合
|
|
@@ -69,6 +70,27 @@ claude # Claude Codeを起動
|
|
|
69
70
|
|
|
70
71
|
*サブエージェントが連携してプロダクション品質のTypeScriptプロジェクトを構築する様子*
|
|
71
72
|
|
|
73
|
+
## 🎨 スキルシステム
|
|
74
|
+
|
|
75
|
+
このボイラープレートでは、自律的(Agentic)な実装ワークフローで用いられている原理原則を、日常のタスクにおいても必要に応じて参照できるようスキルとして提供しています。
|
|
76
|
+
|
|
77
|
+
### 適用されるスキル
|
|
78
|
+
|
|
79
|
+
| スキル | 目的 |
|
|
80
|
+
|--------|------|
|
|
81
|
+
| `coding-standards` | 汎用コーディング原則、アンチパターン、デバッグ |
|
|
82
|
+
| `typescript-rules` | TypeScript型安全性、非同期パターン、リファクタリング |
|
|
83
|
+
| `typescript-testing` | Vitest、TDD、カバレッジ要件 |
|
|
84
|
+
| `documentation-criteria` | PRD、ADR、Design Doc基準 |
|
|
85
|
+
| `technical-spec` | アーキテクチャ、環境設定、ビルドコマンド |
|
|
86
|
+
| `implementation-approach` | 戦略パターン、タスク分解 |
|
|
87
|
+
| `integration-e2e-testing` | 統合/E2Eテスト設計、ROIベース選択 |
|
|
88
|
+
| `project-context` | プロジェクト固有の設定(カスタマイズ可能) |
|
|
89
|
+
|
|
90
|
+
**フロントエンド専用スキル**も`frontend/`配下で利用可能(例:`frontend/typescript-rules`)。
|
|
91
|
+
|
|
92
|
+
👉 [スキルの仕組みについて(Claude Code docs)](https://code.claude.com/docs/ja/skills)
|
|
93
|
+
|
|
72
94
|
## 🎯 実プロジェクトの成果
|
|
73
95
|
|
|
74
96
|
### [Sub agents MCP Server](https://github.com/shinpr/sub-agents-mcp)
|
|
@@ -136,9 +158,16 @@ graph LR
|
|
|
136
158
|
ai-coding-project-boilerplate/
|
|
137
159
|
├── .claude/ # AIエージェント設定
|
|
138
160
|
│ ├── agents/ # 専門サブエージェント定義
|
|
139
|
-
│
|
|
161
|
+
│ ├── commands/ # スラッシュコマンド定義
|
|
162
|
+
│ └── skills/ # 自動コンテキスト読み込み用スキル
|
|
163
|
+
│ ├── coding-standards/
|
|
164
|
+
│ ├── typescript-rules/
|
|
165
|
+
│ ├── typescript-testing/
|
|
166
|
+
│ ├── documentation-criteria/
|
|
167
|
+
│ ├── technical-spec/
|
|
168
|
+
│ ├── project-context/
|
|
169
|
+
│ └── frontend/ # フロントエンド専用スキル
|
|
140
170
|
├── docs/
|
|
141
|
-
│ ├── rules/ # 開発ルール&パターン
|
|
142
171
|
│ ├── guides/ # ユーザードキュメント
|
|
143
172
|
│ ├── adr/ # アーキテクチャ決定
|
|
144
173
|
│ ├── design/ # 設計ドキュメント
|
package/README.md
CHANGED
|
@@ -16,14 +16,15 @@
|
|
|
16
16
|
## 📖 Table of Contents
|
|
17
17
|
1. [Quick Start (3 Steps)](#-quick-start-3-steps)
|
|
18
18
|
2. [Why Sub Agents?](#-why-sub-agents)
|
|
19
|
-
3. [
|
|
20
|
-
4. [
|
|
21
|
-
5. [
|
|
22
|
-
6. [
|
|
23
|
-
7. [
|
|
24
|
-
8. [
|
|
25
|
-
9. [
|
|
26
|
-
10. [
|
|
19
|
+
3. [Skills System](#-skills-system)
|
|
20
|
+
4. [Real Projects & Results](#-real-world-results)
|
|
21
|
+
5. [Documentation & Guides](#-documentation--guides)
|
|
22
|
+
6. [Slash Commands](#-slash-commands)
|
|
23
|
+
7. [Development Workflow](#-claude-code-workflow)
|
|
24
|
+
8. [Project Structure](#-project-structure)
|
|
25
|
+
9. [Package Manager Configuration](#-package-manager-configuration)
|
|
26
|
+
10. [Multilingual Support](#-multilingual-support)
|
|
27
|
+
11. [FAQ](#-faq)
|
|
27
28
|
|
|
28
29
|
> **Which one should you use?**
|
|
29
30
|
> - **Use this Boilerplate** if you want to **maximize precision** with **TypeScript × Sub-agent** setup optimized for **Claude Code**.
|
|
@@ -69,6 +70,27 @@ Each agent focuses on one thing and does it well. No context exhaustion, no qual
|
|
|
69
70
|
|
|
70
71
|
*Sub agents working together to build a production-ready TypeScript project*
|
|
71
72
|
|
|
73
|
+
## 🎨 Skills System
|
|
74
|
+
|
|
75
|
+
This boilerplate provides the principles used in agentic implementation workflows as skills, making them available for reference in everyday tasks as needed.
|
|
76
|
+
|
|
77
|
+
### Applied Skills
|
|
78
|
+
|
|
79
|
+
| Skill | Purpose |
|
|
80
|
+
|-------|---------|
|
|
81
|
+
| `coding-standards` | Universal coding principles, anti-patterns, debugging |
|
|
82
|
+
| `typescript-rules` | TypeScript type safety, async patterns, refactoring |
|
|
83
|
+
| `typescript-testing` | Vitest, TDD, coverage requirements |
|
|
84
|
+
| `documentation-criteria` | PRD, ADR, Design Doc standards |
|
|
85
|
+
| `technical-spec` | Architecture, environment, build commands |
|
|
86
|
+
| `implementation-approach` | Strategy patterns, task decomposition |
|
|
87
|
+
| `integration-e2e-testing` | Integration/E2E test design, ROI-based selection |
|
|
88
|
+
| `project-context` | Project-specific configuration (customizable) |
|
|
89
|
+
|
|
90
|
+
**Frontend-specific skills** are also available under `frontend/` (e.g., `frontend/typescript-rules`).
|
|
91
|
+
|
|
92
|
+
👉 [Learn how Skills work (Claude Code docs)](https://code.claude.com/docs/en/skills)
|
|
93
|
+
|
|
72
94
|
## 🎯 Real-World Results
|
|
73
95
|
|
|
74
96
|
### ⏱️ Time Comparison
|
|
@@ -142,9 +164,16 @@ graph LR
|
|
|
142
164
|
ai-coding-project-boilerplate/
|
|
143
165
|
├── .claude/ # AI agent configurations
|
|
144
166
|
│ ├── agents/ # Specialized sub-agent definitions
|
|
145
|
-
│
|
|
167
|
+
│ ├── commands/ # Slash command definitions
|
|
168
|
+
│ └── skills/ # Skills for automatic context loading
|
|
169
|
+
│ ├── coding-standards/
|
|
170
|
+
│ ├── typescript-rules/
|
|
171
|
+
│ ├── typescript-testing/
|
|
172
|
+
│ ├── documentation-criteria/
|
|
173
|
+
│ ├── technical-spec/
|
|
174
|
+
│ ├── project-context/
|
|
175
|
+
│ └── frontend/ # Frontend-specific skills
|
|
146
176
|
├── docs/
|
|
147
|
-
│ ├── rules/ # Development rules & patterns
|
|
148
177
|
│ ├── guides/ # User documentation
|
|
149
178
|
│ ├── adr/ # Architecture decisions
|
|
150
179
|
│ ├── design/ # Design documents
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-ai-project",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.12.1",
|
|
4
4
|
"packageManager": "npm@10.8.2",
|
|
5
5
|
"description": "TypeScript project boilerplate optimized for Claude Code development with comprehensive development rules, architecture patterns, and quality assurance tools",
|
|
6
6
|
"keywords": [
|
package/scripts/set-language.js
CHANGED
|
@@ -12,15 +12,6 @@ const LANGUAGE_PATHS = {
|
|
|
12
12
|
source: (lang) => `CLAUDE.${lang}.md`,
|
|
13
13
|
target: 'CLAUDE.md'
|
|
14
14
|
},
|
|
15
|
-
rules: {
|
|
16
|
-
source: (lang) => `docs/rules-${lang}`,
|
|
17
|
-
target: 'docs/rules'
|
|
18
|
-
},
|
|
19
|
-
guides: {
|
|
20
|
-
source: (lang) => `docs/guides/${lang}`,
|
|
21
|
-
target: 'docs/guides/sub-agents.md',
|
|
22
|
-
sourceFile: (lang) => `docs/guides/${lang}/sub-agents.md`
|
|
23
|
-
},
|
|
24
15
|
commands: {
|
|
25
16
|
source: (lang) => `.claude/commands-${lang}`,
|
|
26
17
|
target: '.claude/commands'
|
|
@@ -28,6 +19,10 @@ const LANGUAGE_PATHS = {
|
|
|
28
19
|
agents: {
|
|
29
20
|
source: (lang) => `.claude/agents-${lang}`,
|
|
30
21
|
target: '.claude/agents'
|
|
22
|
+
},
|
|
23
|
+
skills: {
|
|
24
|
+
source: (lang) => `.claude/skills-${lang}`,
|
|
25
|
+
target: '.claude/skills'
|
|
31
26
|
}
|
|
32
27
|
};
|
|
33
28
|
|
|
@@ -148,35 +143,7 @@ function switchLanguage(targetLang) {
|
|
|
148
143
|
hasErrors = true;
|
|
149
144
|
}
|
|
150
145
|
|
|
151
|
-
// 2. Switch
|
|
152
|
-
const rulesSource = LANGUAGE_PATHS.rules.source(targetLang);
|
|
153
|
-
const rulesTarget = LANGUAGE_PATHS.rules.target;
|
|
154
|
-
|
|
155
|
-
if (fs.existsSync(rulesSource)) {
|
|
156
|
-
removeDirectory(rulesTarget);
|
|
157
|
-
copyDirectory(rulesSource, rulesTarget);
|
|
158
|
-
console.log(`✅ Updated ${rulesTarget}`);
|
|
159
|
-
} else {
|
|
160
|
-
console.warn(`⚠️ ${rulesSource} does not exist`);
|
|
161
|
-
hasErrors = true;
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
// 3. Switch docs/guides/sub-agents.md
|
|
166
|
-
const guideSource = LANGUAGE_PATHS.guides.sourceFile(targetLang);
|
|
167
|
-
const guideTarget = LANGUAGE_PATHS.guides.target;
|
|
168
|
-
|
|
169
|
-
if (fs.existsSync(guideSource)) {
|
|
170
|
-
if (fs.existsSync(guideTarget)) {
|
|
171
|
-
fs.unlinkSync(guideTarget);
|
|
172
|
-
}
|
|
173
|
-
copyFile(guideSource, guideTarget);
|
|
174
|
-
console.log(`✅ Updated ${guideTarget}`);
|
|
175
|
-
} else {
|
|
176
|
-
console.warn(`⚠️ ${guideSource} does not exist`);
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
// 4. Switch .claude/commands (only if exists)
|
|
146
|
+
// 2. Switch .claude/commands (only if exists)
|
|
180
147
|
const commandsSource = LANGUAGE_PATHS.commands.source(targetLang);
|
|
181
148
|
const commandsTarget = LANGUAGE_PATHS.commands.target;
|
|
182
149
|
|
|
@@ -186,16 +153,26 @@ function switchLanguage(targetLang) {
|
|
|
186
153
|
console.log(`✅ Updated ${commandsTarget}`);
|
|
187
154
|
}
|
|
188
155
|
|
|
189
|
-
//
|
|
156
|
+
// 3. Switch .claude/agents (only if exists)
|
|
190
157
|
const agentsSource = LANGUAGE_PATHS.agents.source(targetLang);
|
|
191
158
|
const agentsTarget = LANGUAGE_PATHS.agents.target;
|
|
192
|
-
|
|
159
|
+
|
|
193
160
|
if (fs.existsSync(agentsSource)) {
|
|
194
161
|
removeDirectory(agentsTarget);
|
|
195
162
|
copyDirectory(agentsSource, agentsTarget);
|
|
196
163
|
console.log(`✅ Updated ${agentsTarget}`);
|
|
197
164
|
}
|
|
198
165
|
|
|
166
|
+
// 4. Switch .claude/skills (only if exists)
|
|
167
|
+
const skillsSource = LANGUAGE_PATHS.skills.source(targetLang);
|
|
168
|
+
const skillsTarget = LANGUAGE_PATHS.skills.target;
|
|
169
|
+
|
|
170
|
+
if (fs.existsSync(skillsSource)) {
|
|
171
|
+
removeDirectory(skillsTarget);
|
|
172
|
+
copyDirectory(skillsSource, skillsTarget);
|
|
173
|
+
console.log(`✅ Updated ${skillsTarget}`);
|
|
174
|
+
}
|
|
175
|
+
|
|
199
176
|
// Save configuration
|
|
200
177
|
const config = {
|
|
201
178
|
current: targetLang,
|
|
@@ -226,25 +203,30 @@ function showStatus() {
|
|
|
226
203
|
console.log('📁 File existence check:');
|
|
227
204
|
for (const lang of SUPPORTED_LANGUAGES) {
|
|
228
205
|
console.log(`\n ${lang.toUpperCase()} language files:`);
|
|
229
|
-
|
|
206
|
+
|
|
230
207
|
// CLAUDE.md
|
|
231
208
|
const claudeFile = LANGUAGE_PATHS.claude.source(lang);
|
|
232
209
|
console.log(` ${claudeFile}: ${fs.existsSync(claudeFile) ? '✅' : '❌'}`);
|
|
233
|
-
|
|
234
|
-
//
|
|
235
|
-
const
|
|
236
|
-
console.log(` ${
|
|
237
|
-
|
|
238
|
-
//
|
|
239
|
-
const
|
|
240
|
-
console.log(` ${
|
|
241
|
-
|
|
210
|
+
|
|
211
|
+
// .claude/commands
|
|
212
|
+
const commandsDir = LANGUAGE_PATHS.commands.source(lang);
|
|
213
|
+
console.log(` ${commandsDir}: ${fs.existsSync(commandsDir) ? '✅' : '❌'}`);
|
|
214
|
+
|
|
215
|
+
// .claude/agents
|
|
216
|
+
const agentsDir = LANGUAGE_PATHS.agents.source(lang);
|
|
217
|
+
console.log(` ${agentsDir}: ${fs.existsSync(agentsDir) ? '✅' : '❌'}`);
|
|
218
|
+
|
|
219
|
+
// .claude/skills
|
|
220
|
+
const skillsDir = LANGUAGE_PATHS.skills.source(lang);
|
|
221
|
+
console.log(` ${skillsDir}: ${fs.existsSync(skillsDir) ? '✅' : '❌'}`);
|
|
222
|
+
|
|
242
223
|
}
|
|
243
|
-
|
|
224
|
+
|
|
244
225
|
console.log('\n📝 Currently active files:');
|
|
245
226
|
console.log(` CLAUDE.md: ${fs.existsSync('CLAUDE.md') ? '✅' : '❌'}`);
|
|
246
|
-
console.log(`
|
|
247
|
-
console.log(`
|
|
227
|
+
console.log(` .claude/commands: ${fs.existsSync('.claude/commands') ? '✅' : '❌'}`);
|
|
228
|
+
console.log(` .claude/agents: ${fs.existsSync('.claude/agents') ? '✅' : '❌'}`);
|
|
229
|
+
console.log(` .claude/skills: ${fs.existsSync('.claude/skills') ? '✅' : '❌'}`);
|
|
248
230
|
}
|
|
249
231
|
|
|
250
232
|
/**
|
package/scripts/setup-project.js
CHANGED
|
@@ -30,6 +30,7 @@ const excludeList = [
|
|
|
30
30
|
'docs/guides/sub-agents.md',
|
|
31
31
|
'.claude/commands',
|
|
32
32
|
'.claude/agents',
|
|
33
|
+
'.claude/skills',
|
|
33
34
|
'bin', // Exclude bin directory for production use
|
|
34
35
|
'templates' // Exclude templates directory for production use
|
|
35
36
|
];
|
|
@@ -137,6 +138,7 @@ docs/guides/ja/
|
|
|
137
138
|
docs/guides/en/
|
|
138
139
|
.claude/commands-*/
|
|
139
140
|
.claude/agents-*/
|
|
141
|
+
.claude/skills-*/
|
|
140
142
|
`;
|
|
141
143
|
|
|
142
144
|
// Remove current language-related exclusions and add new ones
|
|
@@ -147,7 +149,8 @@ docs/guides/en/
|
|
|
147
149
|
!trimmed.startsWith('docs/rules/') &&
|
|
148
150
|
!trimmed.startsWith('docs/guides/sub-agents.md') &&
|
|
149
151
|
!trimmed.startsWith('.claude/commands/') &&
|
|
150
|
-
!trimmed.startsWith('.claude/agents/')
|
|
152
|
+
!trimmed.startsWith('.claude/agents/') &&
|
|
153
|
+
!trimmed.startsWith('.claude/skills/');
|
|
151
154
|
});
|
|
152
155
|
|
|
153
156
|
content = filteredLines.join('\n') + languageExclusions;
|