@k2works/claude-code-booster 1.13.0 → 2.0.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/bin/claude-code-booster +5 -7
- package/lib/assets/.claude/README.md +73 -19
- package/lib/assets/.claude/agents/xp-architect.md +250 -0
- package/lib/assets/.claude/agents/xp-executive.md +207 -0
- package/lib/assets/.claude/agents/xp-interaction-designer.md +239 -0
- package/lib/assets/.claude/agents/xp-product-manager.md +245 -0
- package/lib/assets/.claude/agents/xp-programmer.md +268 -0
- package/lib/assets/.claude/agents/xp-project-manager.md +229 -0
- package/lib/assets/.claude/agents/xp-technical-writer.md +224 -0
- package/lib/assets/.claude/agents/xp-tester.md +265 -0
- package/lib/assets/.claude/agents/xp-user-representative.md +204 -0
- package/lib/assets/.claude/skills/ai-agent-guidelines/SKILL.md +49 -57
- package/lib/assets/.claude/skills/analyzing-architecture/SKILL.md +54 -58
- package/lib/assets/.claude/skills/analyzing-business/SKILL.md +52 -74
- package/lib/assets/.claude/skills/analyzing-data-model/SKILL.md +50 -53
- package/lib/assets/.claude/skills/analyzing-domain-model/SKILL.md +56 -56
- package/lib/assets/.claude/skills/analyzing-inception-deck/SKILL.md +56 -109
- package/lib/assets/.claude/skills/analyzing-non-functional/SKILL.md +61 -57
- package/lib/assets/.claude/skills/analyzing-operation/SKILL.md +61 -57
- package/lib/assets/.claude/skills/analyzing-requirements/SKILL.md +57 -55
- package/lib/assets/.claude/skills/analyzing-tech-stack/SKILL.md +66 -67
- package/lib/assets/.claude/skills/analyzing-test-strategy/SKILL.md +58 -56
- package/lib/assets/.claude/skills/analyzing-ui-design/SKILL.md +51 -57
- package/lib/assets/.claude/skills/analyzing-usecases/SKILL.md +45 -60
- package/lib/assets/.claude/skills/creating-adr/SKILL.md +38 -40
- package/lib/assets/.claude/skills/developing-backend/SKILL.md +49 -55
- package/lib/assets/.claude/skills/developing-frontend/SKILL.md +47 -50
- package/lib/assets/.claude/skills/developing-release/SKILL.md +60 -95
- package/lib/assets/.claude/skills/generating-slides/SKILL.md +58 -100
- package/lib/assets/.claude/skills/git-commit/SKILL.md +27 -52
- package/lib/assets/.claude/skills/killing-processes/SKILL.md +16 -70
- package/lib/assets/.claude/skills/operating-backup/SKILL.md +59 -0
- package/lib/assets/.claude/skills/operating-cicd/SKILL.md +54 -0
- package/lib/assets/.claude/skills/operating-deploy/SKILL.md +67 -0
- package/lib/assets/.claude/skills/{managing-docs → operating-docs}/SKILL.md +1 -1
- package/lib/assets/.claude/skills/operating-provision/SKILL.md +77 -0
- package/lib/assets/.claude/skills/operating-setup/SKILL.md +63 -0
- package/lib/assets/.claude/skills/orchestrating-analysis/SKILL.md +65 -95
- package/lib/assets/.claude/skills/orchestrating-development/SKILL.md +60 -155
- package/lib/assets/.claude/skills/orchestrating-operation/SKILL.md +158 -0
- package/lib/assets/.claude/skills/orchestrating-project/SKILL.md +60 -119
- package/lib/assets/.claude/skills/planning-releases/SKILL.md +63 -168
- package/lib/assets/.claude/skills/syncing-github-project/SKILL.md +62 -266
- package/lib/assets/.claude/skills/tracking-progress/SKILL.md +49 -122
- package/lib/assets/CLAUDE.md +7 -2
- package/lib/assets/README.md +3 -34
- package/lib/assets/docs/development/index.md +14 -8
- package/lib/assets/docs/reference//351/201/213/347/224/250/343/202/271/343/202/257/343/203/252/343/203/227/343/203/210/344/275/234/346/210/220/343/202/254/343/202/244/343/203/211.md +421 -0
- package/lib/assets/docs/reference//351/226/213/347/231/272/343/202/254/343/202/244/343/203/211.md +69 -5
- package/lib/assets/docs/template/AWS/343/202/271/343/203/206/343/203/274/343/202/270/343/203/263/343/202/260/347/222/260/345/242/203/343/202/273/343/203/203/343/203/210/343/202/242/343/203/203/343/203/227/346/211/213/351/240/206/346/233/270.md +1366 -0
- package/lib/assets/docs/template/AWS/343/203/227/343/203/255/343/203/200/343/202/257/343/202/267/343/203/247/343/203/263/347/222/260/345/242/203/343/202/273/343/203/203/343/203/210/343/202/242/343/203/203/343/203/227/346/211/213/351/240/206/346/233/270.md +634 -0
- package/lib/assets/docs/template//343/202/242/343/203/227/343/203/252/343/202/261/343/203/274/343/202/267/343/203/247/343/203/263/351/226/213/347/231/272/347/222/260/345/242/203/343/202/273/343/203/203/343/203/210/343/202/242/343/203/203/343/203/227/346/211/213/351/240/206/346/233/270.md +547 -0
- package/lib/assets/docs/template//343/202/244/343/203/206/343/203/254/343/203/274/343/202/267/343/203/247/343/203/263/350/250/210/347/224/273.md +123 -1
- package/lib/assets/docs/template//350/250/255/350/250/210.md +12 -2
- package/lib/assets/docs/template//351/226/213/347/231/272/347/222/260/345/242/203/343/202/273/343/203/203/343/203/210/343/202/242/343/203/203/343/203/227/346/211/213/351/240/206/346/233/270.md +688 -0
- package/package.json +1 -1
- package/lib/assets/.claude/SKILLS_TEMPLATE.md +0 -100
- package/lib/assets/.claude/agents/roles/.gitkeep +0 -0
- package/lib/assets/.claude/skills/managing-operations/DEPLOY.md +0 -77
- package/lib/assets/.claude/skills/managing-operations/SETUP_CSHARP.md +0 -80
- package/lib/assets/.claude/skills/managing-operations/SETUP_FRONTEND.md +0 -84
- package/lib/assets/.claude/skills/managing-operations/SETUP_JAVA.md +0 -75
- package/lib/assets/.claude/skills/managing-operations/SKILL.md +0 -156
|
@@ -1,87 +1,72 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: analyzing-usecases
|
|
3
|
-
description:
|
|
3
|
+
description: 要件定義からユースケースとユーザーストーリーを体系的に作成。ビジネスユースケース→システムユースケース→ユーザーストーリーの順に導出し、トレーサビリティを維持する。「ユースケースを作成したい」「ユーザーストーリーを書きたい」「要件定義からストーリーを導出したい」「受け入れ基準を定義したい」といった場面で発動する。ユースケースとストーリーを構造的に紐づけることで、開発フェーズでの「なぜこの機能を作るのか」が常に追跡可能になる。
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
#
|
|
6
|
+
# ユースケース・ユーザーストーリー作成
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
要件定義からユースケースを抽出し、ユーザーストーリーまで一貫したトレーサビリティを維持しながら作成する。
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
ビジネスユースケース→システムユースケース→ユーザーストーリーの 3 段階で具体化することで、「ビジネス要求」と「実装タスク」の間の論理的なつながりを保証する。
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
## 参照ドキュメントとテンプレート
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
| 種類 | パス | 備考 |
|
|
15
|
+
|------|------|------|
|
|
16
|
+
| ガイド | @docs/reference/ユースケース作成ガイド.md | ユースケース作成の進め方詳細 |
|
|
17
|
+
| テンプレート | @docs/template/完全形式のユースケース.md | 編集禁止。参照のみ |
|
|
18
|
+
| 入力 | @docs/requirements/requirements_definition.md | 要件定義 |
|
|
19
|
+
| 成果物 | `docs/requirements/business_usecase.md` | ビジネスユースケース |
|
|
20
|
+
| 成果物 | `docs/requirements/system_usecase.md` | システムユースケース |
|
|
21
|
+
| 成果物 | `docs/requirements/user_story.md` | ユーザーストーリー |
|
|
15
22
|
|
|
16
|
-
|
|
23
|
+
## 作成の 3 ステップ
|
|
17
24
|
|
|
18
|
-
|
|
25
|
+
### ステップ 1: ビジネスユースケース作成
|
|
19
26
|
|
|
20
|
-
|
|
27
|
+
要件定義からビジネスレベルのユースケースを抽出する。システムの詳細には踏み込まず、業務目標とアクターの関係を定義する。
|
|
21
28
|
|
|
22
|
-
-
|
|
29
|
+
- 要件定義のシステム外部環境(層 2)を起点にアクターとユースケースを識別する
|
|
30
|
+
- アクターとユースケースの関係を PlantUML で図示する
|
|
23
31
|
|
|
24
|
-
###
|
|
32
|
+
### ステップ 2: システムユースケース作成
|
|
25
33
|
|
|
26
|
-
|
|
27
|
-
- @docs/requirements/system_usecase.md - システムユースケース
|
|
28
|
-
- @docs/requirements/user_story.md - ユーザーストーリー
|
|
34
|
+
ビジネスユースケースをシステム境界の視点で詳細化する。「システムが何を提供するか」を明確にする。
|
|
29
35
|
|
|
30
|
-
|
|
36
|
+
- ビジネスユースケースの各項目をシステムレベルに分解する
|
|
37
|
+
- システム境界を明確にし、テンプレートの完全形式で記述する
|
|
31
38
|
|
|
32
|
-
|
|
39
|
+
### ステップ 3: ユーザーストーリー作成
|
|
33
40
|
|
|
34
|
-
|
|
35
|
-
- アクターとユースケースの関係を定義
|
|
41
|
+
システムユースケースから開発可能な粒度のユーザーストーリーを導出する。
|
|
36
42
|
|
|
37
|
-
|
|
43
|
+
- 「〜として、〜したい。なぜなら〜だからだ」の形式で記述する
|
|
44
|
+
- 各ストーリーに受け入れ基準を定義する
|
|
45
|
+
- ユースケースとの対応関係を明記してトレーサビリティを確保する
|
|
38
46
|
|
|
39
|
-
|
|
40
|
-
- システム境界を明確化
|
|
47
|
+
## 途中から再開・更新
|
|
41
48
|
|
|
42
|
-
|
|
49
|
+
既存の成果物がある場合は、まず現在の状態を確認する。不足しているステップや更新が必要な部分のみを修正する。
|
|
43
50
|
|
|
44
|
-
|
|
45
|
-
- 受け入れ基準の定義
|
|
51
|
+
**Example:**
|
|
46
52
|
|
|
47
|
-
#### トレーサビリティ維持
|
|
48
|
-
|
|
49
|
-
- ユースケースとユーザーストーリー間のトレーサビリティを確保
|
|
50
|
-
|
|
51
|
-
### 6. 注意事項
|
|
52
|
-
|
|
53
|
-
- **前提条件**: @docs/requirements/requirements_definition.md が存在すること
|
|
54
|
-
- **制限事項**:
|
|
55
|
-
- テンプレート @docs/template/完全形式のユースケース.md は絶対に編集しないこと
|
|
56
|
-
- user_story.md にはユーザーストーリーのみ記述する
|
|
57
|
-
- リリース計画とイテレーション計画は別途作成する
|
|
58
|
-
- **推奨事項**: ユースケースとユーザーストーリーでトレーサビリティを維持する
|
|
59
|
-
|
|
60
|
-
### 7. 記述ルール
|
|
61
|
-
|
|
62
|
-
タスク項目などは一行開けて記述する。
|
|
63
|
-
|
|
64
|
-
OK:
|
|
65
|
-
|
|
66
|
-
```markdown
|
|
67
|
-
**受入条件**:
|
|
68
|
-
|
|
69
|
-
- [ ] ビジネスユースケースが作成されている
|
|
70
|
-
- [ ] ユーザーストーリーが作成されている
|
|
71
53
|
```
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
- [ ] ビジネスユースケースが作成されている
|
|
78
|
-
- [ ] ユーザーストーリーが作成されている
|
|
54
|
+
ユーザー: 「ビジネスユースケースは作った。ユーザーストーリーを書きたい」
|
|
55
|
+
回答: ステップ 2(システムユースケース)の存在を確認する。
|
|
56
|
+
未作成ならステップ 2 から開始。作成済みならステップ 3 に進む。
|
|
57
|
+
既存のビジネスユースケースのアクターとユースケースを起点に、
|
|
58
|
+
システムユースケースを詳細化してからユーザーストーリーを導出する。
|
|
79
59
|
```
|
|
80
60
|
|
|
81
|
-
##
|
|
61
|
+
## 注意事項
|
|
62
|
+
|
|
63
|
+
- 入力の `requirements_definition.md` が存在しない場合は `analyzing-requirements` を先に実行する
|
|
64
|
+
- テンプレートは編集禁止。参照のみとし、成果物は別ファイルに作成する
|
|
65
|
+
- `user_story.md` にはユーザーストーリーのみ記述する。リリース計画・イテレーション計画は `planning-releases` で別途作成する
|
|
66
|
+
- タスク項目(リスト)の前には空行を入れる(Markdown Lint 準拠)
|
|
82
67
|
|
|
83
|
-
|
|
68
|
+
## 関連スキル
|
|
84
69
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
70
|
+
- `analyzing-requirements` — 前段の要件定義(RDRA 2.0)
|
|
71
|
+
- `planning-releases` — 後続のリリース・イテレーション計画
|
|
72
|
+
- `orchestrating-analysis` — 分析フェーズ全体のワークフロー案内
|
|
@@ -1,32 +1,20 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: creating-adr
|
|
3
|
-
description: Architecture Decision Record
|
|
3
|
+
description: Architecture Decision Record(ADR)の作成・管理を支援。技術的意思決定の背景・決定・影響をテンプレートに沿って記録する。「ADR を作成したい」「アーキテクチャの決定を記録したい」「技術選定の理由を残したい」「設計判断を文書化したい」といった場面で発動する。意思決定の経緯を記録することで、将来「なぜこの技術を選んだのか」が追跡可能になり、同じ議論の繰り返しを防ぐ。
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# ADR
|
|
6
|
+
# ADR 作成
|
|
7
7
|
|
|
8
|
-
アーキテクチャ決定記録(ADR
|
|
8
|
+
アーキテクチャ決定記録(ADR)を作成・管理する。技術的意思決定のコンテキスト・決定内容・影響を構造化して記録する。
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
ADR の価値は「決定そのもの」ではなく「なぜその決定に至ったか」を残すこと。代替案と却下理由を含めることで、将来の見直し時に同じ検討を繰り返さずに済む。
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
ADR は `docs/adr/` ディレクトリに以下の命名規則で保存:
|
|
15
|
-
|
|
16
|
-
```
|
|
17
|
-
docs/adr/
|
|
18
|
-
├── 001-backend-architecture-pattern.md
|
|
19
|
-
├── 002-backend-framework.md
|
|
20
|
-
├── 003-frontend-framework.md
|
|
21
|
-
└── 004-database.md
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
### 2. ADR テンプレート
|
|
12
|
+
## ADR テンプレート
|
|
25
13
|
|
|
26
14
|
```markdown
|
|
27
15
|
# ADR-NNN: タイトル
|
|
28
16
|
|
|
29
|
-
簡潔な説明(1行で決定内容を要約)。
|
|
17
|
+
簡潔な説明(1 行で決定内容を要約)。
|
|
30
18
|
|
|
31
19
|
日付: YYYY-MM-DD
|
|
32
20
|
|
|
@@ -75,7 +63,7 @@ docs/adr/
|
|
|
75
63
|
- 関連 ADR: ADR-XXX
|
|
76
64
|
```
|
|
77
65
|
|
|
78
|
-
|
|
66
|
+
## ステータスの種類
|
|
79
67
|
|
|
80
68
|
| ステータス | 説明 |
|
|
81
69
|
|-----------|------|
|
|
@@ -84,32 +72,42 @@ docs/adr/
|
|
|
84
72
|
| 廃止 | 無効になった決定 |
|
|
85
73
|
| 置換 | 別の ADR で置き換えられた |
|
|
86
74
|
|
|
87
|
-
|
|
75
|
+
## 作成の進め方
|
|
88
76
|
|
|
89
|
-
|
|
90
|
-
- **ファイル名**: `NNN-kebab-case-title.md` 形式(例: `006-cache-strategy.md`)
|
|
91
|
-
- **配置場所**: 必ず `docs/adr/` ディレクトリに配置
|
|
92
|
-
- **ドキュメント更新**: 新規 ADR 作成時は `docs/index.md` と `mkdocs.yml` も更新が必要
|
|
93
|
-
- **コミット禁止**: ユーザーの指示があるまでコミットしない
|
|
77
|
+
### 新規 ADR の作成
|
|
94
78
|
|
|
95
|
-
|
|
79
|
+
1. `docs/adr/` ディレクトリ内の既存 ADR の最大番号を確認する
|
|
80
|
+
2. 次の連番でテンプレートに基づいて ADR を作成する
|
|
81
|
+
3. `docs/index.md` と `mkdocs.yml` を更新する
|
|
96
82
|
|
|
97
|
-
|
|
98
|
-
2. **コンテキストの明確化**: なぜこの決定が必要なのか背景を説明
|
|
99
|
-
3. **代替案の記録**: 検討した選択肢と却下理由を残す
|
|
100
|
-
4. **影響の両面記載**: ポジティブ・ネガティブ両方の影響を記載
|
|
101
|
-
5. **コンプライアンス項目**: 決定が守られていることを確認する方法を記載
|
|
83
|
+
### 既存設計からの ADR 抽出
|
|
102
84
|
|
|
103
|
-
|
|
85
|
+
1. アーキテクチャ設計ドキュメントを読み込む
|
|
86
|
+
2. 主要な技術的意思決定を識別する
|
|
87
|
+
3. 各決定を ADR として記録する
|
|
104
88
|
|
|
105
|
-
|
|
89
|
+
## 途中から再開・更新
|
|
106
90
|
|
|
107
|
-
|
|
108
|
-
2. 次の連番でテンプレートに基づいて ADR を作成
|
|
109
|
-
3. `docs/index.md` と `mkdocs.yml` を更新
|
|
91
|
+
既存の ADR がある場合は `docs/adr/` の内容を確認する。ステータス変更や新規 ADR の追記のみを行う。
|
|
110
92
|
|
|
111
|
-
|
|
93
|
+
**Example:**
|
|
112
94
|
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
95
|
+
```
|
|
96
|
+
ユーザー: 「フレームワークを変更する決定を記録したい」
|
|
97
|
+
回答: docs/adr/ の最大番号を確認し、次の連番で ADR を作成する。
|
|
98
|
+
既存の関連 ADR があればステータスを「置換」に変更し、
|
|
99
|
+
新しい ADR の「コンテキスト」に経緯を記載する。
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
## 注意事項
|
|
103
|
+
|
|
104
|
+
- 採番は `001` から連番。ファイル名は `NNN-kebab-case-title.md` 形式(例: `006-cache-strategy.md`)
|
|
105
|
+
- 配置場所は必ず `docs/adr/`。新規作成時は `docs/index.md` と `mkdocs.yml` も更新する
|
|
106
|
+
- ユーザーの指示があるまでコミットしない
|
|
107
|
+
- コンテキストの明確化・代替案の記録・影響の両面記載・コンプライアンス項目を必ず含める
|
|
108
|
+
|
|
109
|
+
## 関連スキル
|
|
110
|
+
|
|
111
|
+
- `analyzing-architecture` — アーキテクチャ設計(ADR の主な発生源)
|
|
112
|
+
- `analyzing-tech-stack` — 技術スタック選定(ADR として記録すべき決定)
|
|
113
|
+
- `git-commit` — ADR 作成後のコミット
|
|
@@ -1,37 +1,39 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: developing-backend
|
|
3
|
-
description: バックエンド開発の TDD
|
|
3
|
+
description: バックエンド開発の TDD ワークフローを支援。Red-Green-Refactor サイクルとインサイドアウトアプローチで品質の高いバックエンドを実装する。「バックエンドを実装したい」「API を作りたい」「サーバーサイドの機能を追加したい」「バックエンドのテストを書きたい」といった場面で発動する。TDD で開発することで、リファクタリングの安全網を確保し、変更を楽に安全にできるコードを維持する。
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
#
|
|
6
|
+
# バックエンド開発
|
|
7
7
|
|
|
8
|
-
TDD
|
|
8
|
+
TDD サイクルに従いバックエンドを開発する。インサイドアウトアプローチ(データ層→ドメイン層→API 層)で、内側から外側へ段階的に構築する。
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
インサイドアウトの利点は、ドメインロジックのテストが外部依存なしで書けること。テストの実行速度が速く、フィードバックループを短く保てる。
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
## 参照ドキュメント
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
14
|
+
| 種類 | パス |
|
|
15
|
+
|------|------|
|
|
16
|
+
| ワークフロー | @docs/reference/コーディングとテストガイド.md |
|
|
17
|
+
| アーキテクチャ | @docs/design/architecture_backend.md |
|
|
18
|
+
| データモデル | @docs/design/data-model.md |
|
|
19
|
+
| ドメインモデル | @docs/design/domain-model.md |
|
|
20
|
+
| 技術スタック | @docs/design/tech_stack.md |
|
|
21
|
+
| テスト戦略 | @docs/design/test_strategy.md |
|
|
20
22
|
|
|
21
|
-
|
|
23
|
+
## TDD サイクル
|
|
22
24
|
|
|
23
|
-
|
|
25
|
+
10-15 分で 1 サイクルを完了させる。サイクルが長引くなら、タスクの粒度が大きすぎる。
|
|
24
26
|
|
|
25
|
-
1. **Red
|
|
26
|
-
2. **Green
|
|
27
|
-
3. **Refactor
|
|
27
|
+
1. **Red**: 失敗するテストを最初に書く
|
|
28
|
+
2. **Green**: テストを通す最小限のコードを実装する
|
|
29
|
+
3. **Refactor**: 重複を除去し設計を改善する
|
|
28
30
|
|
|
29
|
-
|
|
31
|
+
## アプローチ
|
|
30
32
|
|
|
31
|
-
-
|
|
32
|
-
- **アウトサイドイン**: API
|
|
33
|
+
- **インサイドアウト**(推奨): データ層から開始し上位層へ展開する
|
|
34
|
+
- **アウトサイドイン**: API から開始しドメインロジックを段階的に実装する
|
|
33
35
|
|
|
34
|
-
|
|
36
|
+
## テストコマンド
|
|
35
37
|
|
|
36
38
|
```bash
|
|
37
39
|
# 全テスト実行
|
|
@@ -44,20 +46,18 @@ cd apps/backend && ./gradlew test --tests "UserServiceTest"
|
|
|
44
46
|
cd apps/backend && ./gradlew jacocoTestReport
|
|
45
47
|
```
|
|
46
48
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
バックエンドには Swagger UI が組み込まれています。
|
|
49
|
+
## API ドキュメント
|
|
50
50
|
|
|
51
51
|
```bash
|
|
52
52
|
# バックエンドを起動
|
|
53
53
|
cd apps/backend && ./gradlew bootRun
|
|
54
|
-
|
|
55
54
|
# Swagger UI: http://localhost:8080/swagger-ui.html
|
|
56
55
|
# OpenAPI JSON: http://localhost:8080/v3/api-docs
|
|
57
|
-
# OpenAPI YAML: http://localhost:8080/api-docs.yaml
|
|
58
56
|
```
|
|
59
57
|
|
|
60
|
-
|
|
58
|
+
## 品質チェックリスト
|
|
59
|
+
|
|
60
|
+
コミット前に必ず確認する。
|
|
61
61
|
|
|
62
62
|
- [ ] すべてのテストがパス
|
|
63
63
|
- [ ] ESLint/コンパイラの警告がゼロ
|
|
@@ -65,42 +65,36 @@ cd apps/backend && ./gradlew bootRun
|
|
|
65
65
|
- [ ] 単一の論理的作業単位を表現
|
|
66
66
|
- [ ] コミットメッセージが変更内容を明確に説明
|
|
67
67
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
長時間の開発セッションでは Context limit reached エラーを回避するため、タスクの区切りごとに `/compact` を実施してコンテキストを圧縮する。
|
|
68
|
+
## 途中から再開
|
|
71
69
|
|
|
72
|
-
|
|
70
|
+
開発セッションの途中から再開する場合は、まず現在のテスト状態を確認する。
|
|
73
71
|
|
|
74
|
-
|
|
75
|
-
- ユーザーストーリー 1 件の実装が完了したとき
|
|
76
|
-
- コミット完了後、次のタスクに着手する前
|
|
77
|
-
- テストスイートの実行と結果確認が完了したとき
|
|
72
|
+
**Example:**
|
|
78
73
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
74
|
+
```
|
|
75
|
+
ユーザー: 「ユーザー認証の Entity と Repository は実装済み。Service 層に進みたい」
|
|
76
|
+
回答: 既存テストを実行して Green 状態を確認する。
|
|
77
|
+
Service 層の失敗するテスト(Red)を書いてから実装に進む。
|
|
78
|
+
Repository の戻り値を使った Service のビジネスロジックをテストする。
|
|
79
|
+
```
|
|
84
80
|
|
|
85
|
-
|
|
81
|
+
## コンテキスト管理
|
|
86
82
|
|
|
87
|
-
|
|
88
|
-
- **制限事項**: TDD の三原則を厳密に守る(テストなしでプロダクションコードを書かない)
|
|
89
|
-
- **推奨事項**: コミット前に必ず品質チェックリストを実行
|
|
90
|
-
- 作業完了後に対象のイテレーション @docs/development/iteration_plan-N.md の進捗を更新する
|
|
83
|
+
タスクの区切りごとに `/compact` を実施して Context limit reached エラーを回避する。
|
|
91
84
|
|
|
92
|
-
|
|
85
|
+
- TDD サイクルを数回繰り返した後、ユーザーストーリー完了時、コミット完了後に実施する
|
|
86
|
+
- `/compact` 前に現在の作業状態と次のタスクをメモとして出力する
|
|
93
87
|
|
|
94
|
-
|
|
88
|
+
## 注意事項
|
|
95
89
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
90
|
+
- Java/Gradle のテスト環境が設定済みであること(前提条件)
|
|
91
|
+
- TDD の三原則を厳密に守る。テストなしでプロダクションコードを書かない
|
|
92
|
+
- コミット前に必ず品質チェックリストを実行する
|
|
93
|
+
- 作業完了後に対象の @docs/development/iteration_plan-N.md の進捗を更新する
|
|
94
|
+
- TODO 駆動開発でタスクを細かく分割し、Rule of Three で 3 回同じコードが現れたらリファクタリングする
|
|
100
95
|
|
|
101
|
-
|
|
96
|
+
## 関連スキル
|
|
102
97
|
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
4. **Rule of Three**: 同じコードが 3 回現れたらリファクタリング
|
|
98
|
+
- `developing-frontend` — フロントエンド TDD 開発
|
|
99
|
+
- `orchestrating-development` — 開発フェーズ全体のワークフロー
|
|
100
|
+
- `git-commit` — Conventional Commits 準拠のコミット
|
|
@@ -1,36 +1,38 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: developing-frontend
|
|
3
|
-
description: フロントエンド開発の TDD
|
|
3
|
+
description: フロントエンド開発の TDD ワークフローを支援。Red-Green-Refactor サイクルとアウトサイドインアプローチで品質の高い UI を実装する。「フロントエンドを実装したい」「画面を作りたい」「コンポーネントを追加したい」「フロントエンドのテストを書きたい」といった場面で発動する。TDD で開発することで、UI の振る舞いを自動テストで保証し、安全なリファクタリングを可能にする。
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
#
|
|
6
|
+
# フロントエンド開発
|
|
7
7
|
|
|
8
|
-
TDD
|
|
8
|
+
TDD サイクルに従いフロントエンドを開発する。アウトサイドインアプローチ(UI 層→ロジック層→データ層)で、ユーザー視点から内側へ段階的に構築する。
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
アウトサイドインの利点は、ユーザーが実際に操作する画面から始めるため、不要な機能を作らずに済むこと。テストがユーザーの振る舞いに基づくため、実装の詳細に依存しにくい。
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
## 参照ドキュメント
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
14
|
+
| 種類 | パス |
|
|
15
|
+
|------|------|
|
|
16
|
+
| ワークフロー | @docs/reference/コーディングとテストガイド.md |
|
|
17
|
+
| アーキテクチャ | @docs/design/architecture_frontend.md |
|
|
18
|
+
| UI 設計 | @docs/design/ui-design.md |
|
|
19
|
+
| 技術スタック | @docs/design/tech_stack.md |
|
|
20
|
+
| テスト戦略 | @docs/design/test_strategy.md |
|
|
19
21
|
|
|
20
|
-
|
|
22
|
+
## TDD サイクル
|
|
21
23
|
|
|
22
|
-
|
|
24
|
+
10-15 分で 1 サイクルを完了させる。サイクルが長引くなら、タスクの粒度が大きすぎる。
|
|
23
25
|
|
|
24
|
-
1. **Red
|
|
25
|
-
2. **Green
|
|
26
|
-
3. **Refactor
|
|
26
|
+
1. **Red**: 失敗するテストを最初に書く
|
|
27
|
+
2. **Green**: テストを通す最小限のコードを実装する
|
|
28
|
+
3. **Refactor**: 重複を除去し設計を改善する
|
|
27
29
|
|
|
28
|
-
|
|
30
|
+
## アプローチ
|
|
29
31
|
|
|
30
|
-
-
|
|
31
|
-
- **インサイドアウト**: ユーティリティ/hooks
|
|
32
|
+
- **アウトサイドイン**(推奨): UI から開始しロジックを段階的に実装する
|
|
33
|
+
- **インサイドアウト**: ユーティリティ/hooks から開始し上位層へ展開する
|
|
32
34
|
|
|
33
|
-
|
|
35
|
+
## テストコマンド
|
|
34
36
|
|
|
35
37
|
```bash
|
|
36
38
|
# 全テスト実行
|
|
@@ -46,7 +48,9 @@ cd apps/frontend && npm run test:coverage
|
|
|
46
48
|
cd apps/frontend && npm run test:e2e
|
|
47
49
|
```
|
|
48
50
|
|
|
49
|
-
|
|
51
|
+
## 品質チェックリスト
|
|
52
|
+
|
|
53
|
+
コミット前に必ず確認する。
|
|
50
54
|
|
|
51
55
|
- [ ] すべてのテストがパス
|
|
52
56
|
- [ ] ESLint の警告がゼロ
|
|
@@ -54,43 +58,36 @@ cd apps/frontend && npm run test:e2e
|
|
|
54
58
|
- [ ] 単一の論理的作業単位を表現
|
|
55
59
|
- [ ] コミットメッセージが変更内容を明確に説明
|
|
56
60
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
長時間の開発セッションでは Context limit reached エラーを回避するため、タスクの区切りごとに `/compact` を実施してコンテキストを圧縮する。
|
|
60
|
-
|
|
61
|
-
**`/compact` を実施するタイミング**:
|
|
61
|
+
## 途中から再開
|
|
62
62
|
|
|
63
|
-
|
|
64
|
-
- コンポーネント 1 件の実装が完了したとき
|
|
65
|
-
- コミット完了後、次のタスクに着手する前
|
|
66
|
-
- テストスイートの実行と結果確認が完了したとき
|
|
63
|
+
開発セッションの途中から再開する場合は、まず現在のテスト状態を確認する。
|
|
67
64
|
|
|
68
|
-
|
|
65
|
+
**Example:**
|
|
69
66
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
67
|
+
```
|
|
68
|
+
ユーザー: 「ログイン画面のコンポーネントは作った。バリデーションを追加したい」
|
|
69
|
+
回答: 既存テストを実行して Green 状態を確認する。
|
|
70
|
+
バリデーションの失敗するテスト(Red)を書いてから実装に進む。
|
|
71
|
+
ユーザーが不正な入力をした場合のエラー表示をテストする。
|
|
72
|
+
```
|
|
73
73
|
|
|
74
|
-
|
|
74
|
+
## コンテキスト管理
|
|
75
75
|
|
|
76
|
-
|
|
77
|
-
- **制限事項**: TDD の三原則を厳密に守る(テストなしでプロダクションコードを書かない)
|
|
78
|
-
- **推奨事項**: コミット前に必ず品質チェックリストを実行
|
|
79
|
-
- 作業完了後に対象のイテレーション @docs/development/iteration_plan-N.md の進捗を更新する
|
|
76
|
+
タスクの区切りごとに `/compact` を実施して Context limit reached エラーを回避する。
|
|
80
77
|
|
|
81
|
-
|
|
78
|
+
- TDD サイクルを数回繰り返した後、コンポーネント完了時、コミット完了後に実施する
|
|
79
|
+
- `/compact` 前に現在の作業状態と次のタスクをメモとして出力する
|
|
82
80
|
|
|
83
|
-
|
|
81
|
+
## 注意事項
|
|
84
82
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
83
|
+
- Node.js/npm のテスト環境が設定済みであること(前提条件)
|
|
84
|
+
- TDD の三原則を厳密に守る。テストなしでプロダクションコードを書かない
|
|
85
|
+
- コミット前に必ず品質チェックリストを実行する
|
|
86
|
+
- 作業完了後に対象の @docs/development/iteration_plan-N.md の進捗を更新する
|
|
87
|
+
- コンポーネントは単一責任の原則に従い小さく保つ。TODO 駆動で分割し、Rule of Three でリファクタリングする
|
|
89
88
|
|
|
90
|
-
|
|
89
|
+
## 関連スキル
|
|
91
90
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
4. **Rule of Three**: 同じコードが 3 回現れたらリファクタリング
|
|
96
|
-
5. **コンポーネント分割**: 単一責任の原則に従いコンポーネントを小さく保つ
|
|
91
|
+
- `developing-backend` — バックエンド TDD 開発
|
|
92
|
+
- `orchestrating-development` — 開発フェーズ全体のワークフロー
|
|
93
|
+
- `git-commit` — Conventional Commits 準拠のコミット
|