@k2works/claude-code-booster 1.13.0 → 2.0.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.
Files changed (64) hide show
  1. package/bin/claude-code-booster +5 -7
  2. package/lib/assets/.claude/README.md +73 -19
  3. package/lib/assets/.claude/agents/xp-architect.md +250 -0
  4. package/lib/assets/.claude/agents/xp-executive.md +207 -0
  5. package/lib/assets/.claude/agents/xp-interaction-designer.md +239 -0
  6. package/lib/assets/.claude/agents/xp-product-manager.md +245 -0
  7. package/lib/assets/.claude/agents/xp-programmer.md +268 -0
  8. package/lib/assets/.claude/agents/xp-project-manager.md +229 -0
  9. package/lib/assets/.claude/agents/xp-technical-writer.md +224 -0
  10. package/lib/assets/.claude/agents/xp-tester.md +265 -0
  11. package/lib/assets/.claude/agents/xp-user-representative.md +204 -0
  12. package/lib/assets/.claude/skills/ai-agent-guidelines/SKILL.md +49 -57
  13. package/lib/assets/.claude/skills/analyzing-architecture/SKILL.md +54 -58
  14. package/lib/assets/.claude/skills/analyzing-business/SKILL.md +52 -74
  15. package/lib/assets/.claude/skills/analyzing-data-model/SKILL.md +50 -53
  16. package/lib/assets/.claude/skills/analyzing-domain-model/SKILL.md +56 -56
  17. package/lib/assets/.claude/skills/analyzing-inception-deck/SKILL.md +56 -109
  18. package/lib/assets/.claude/skills/analyzing-non-functional/SKILL.md +61 -57
  19. package/lib/assets/.claude/skills/analyzing-operation/SKILL.md +61 -57
  20. package/lib/assets/.claude/skills/analyzing-requirements/SKILL.md +57 -55
  21. package/lib/assets/.claude/skills/analyzing-tech-stack/SKILL.md +66 -67
  22. package/lib/assets/.claude/skills/analyzing-test-strategy/SKILL.md +58 -56
  23. package/lib/assets/.claude/skills/analyzing-ui-design/SKILL.md +51 -57
  24. package/lib/assets/.claude/skills/analyzing-usecases/SKILL.md +45 -60
  25. package/lib/assets/.claude/skills/creating-adr/SKILL.md +38 -40
  26. package/lib/assets/.claude/skills/developing-backend/SKILL.md +49 -55
  27. package/lib/assets/.claude/skills/developing-frontend/SKILL.md +47 -50
  28. package/lib/assets/.claude/skills/developing-release/SKILL.md +60 -95
  29. package/lib/assets/.claude/skills/generating-slides/SKILL.md +58 -100
  30. package/lib/assets/.claude/skills/git-commit/SKILL.md +27 -52
  31. package/lib/assets/.claude/skills/killing-processes/SKILL.md +16 -70
  32. package/lib/assets/.claude/skills/operating-backup/SKILL.md +59 -0
  33. package/lib/assets/.claude/skills/operating-cicd/SKILL.md +54 -0
  34. package/lib/assets/.claude/skills/operating-deploy/SKILL.md +67 -0
  35. package/lib/assets/.claude/skills/{managing-docs → operating-docs}/SKILL.md +1 -1
  36. package/lib/assets/.claude/skills/operating-provision/SKILL.md +77 -0
  37. package/lib/assets/.claude/skills/operating-setup/SKILL.md +63 -0
  38. package/lib/assets/.claude/skills/orchestrating-analysis/SKILL.md +65 -95
  39. package/lib/assets/.claude/skills/orchestrating-development/SKILL.md +60 -155
  40. package/lib/assets/.claude/skills/orchestrating-operation/SKILL.md +158 -0
  41. package/lib/assets/.claude/skills/orchestrating-project/SKILL.md +60 -119
  42. package/lib/assets/.claude/skills/planning-releases/SKILL.md +63 -168
  43. package/lib/assets/.claude/skills/syncing-github-project/SKILL.md +62 -266
  44. package/lib/assets/.claude/skills/tracking-progress/SKILL.md +49 -122
  45. package/lib/assets/CLAUDE.md +7 -2
  46. package/lib/assets/README.md +3 -34
  47. package/lib/assets/docs/development/index.md +14 -8
  48. package/lib/assets/docs/reference//343/202/250/343/202/257/343/202/271/343/203/210/343/203/252/343/203/274/343/203/240/343/203/227/343/203/255/343/202/260/343/203/251/343/203/237/343/203/263/343/202/260.md +29 -39
  49. 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
  50. package/lib/assets/docs/reference//351/226/213/347/231/272/343/202/254/343/202/244/343/203/211.md +69 -5
  51. 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
  52. 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
  53. 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
  54. 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
  55. package/lib/assets/docs/template//350/250/255/350/250/210.md +12 -2
  56. 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
  57. package/package.json +1 -1
  58. package/lib/assets/.claude/SKILLS_TEMPLATE.md +0 -100
  59. package/lib/assets/.claude/agents/roles/.gitkeep +0 -0
  60. package/lib/assets/.claude/skills/managing-operations/DEPLOY.md +0 -77
  61. package/lib/assets/.claude/skills/managing-operations/SETUP_CSHARP.md +0 -80
  62. package/lib/assets/.claude/skills/managing-operations/SETUP_FRONTEND.md +0 -84
  63. package/lib/assets/.claude/skills/managing-operations/SETUP_JAVA.md +0 -75
  64. package/lib/assets/.claude/skills/managing-operations/SKILL.md +0 -156
@@ -1,87 +1,83 @@
1
1
  ---
2
2
  name: analyzing-architecture
3
- description: アーキテクチャ設計を支援。バックエンド・フロントエンド・インフラのアーキテクチャパターン選択と設計ドキュメント作成。アーキテクチャ設計やシステム構成の検討時に使用。
3
+ description: バックエンド・フロントエンド・インフラのアーキテクチャパターン選択と設計ドキュメント作成を支援。「アーキテクチャを設計したい」「システム構成を検討したい」「レイヤード/ヘキサゴナル/クリーンどれが適切か」「CQRS を導入すべきか」「フロントエンドのアーキテクチャを決めたい」といった場面で発動する。アーキテクチャを早期に設計することで、開発フェーズでの技術的負債の蓄積を防ぐ。
4
4
  ---
5
5
 
6
- # アーキテクチャ設計支援
6
+ # アーキテクチャ設計
7
7
 
8
- 業務領域とデータ構造の複雑さに基づくアーキテクチャパターンの選択を支援します。
8
+ 業務領域とデータ構造の複雑さに基づき、バックエンド・フロントエンド・インフラの各アーキテクチャパターンを選択し設計ドキュメントを作成する。
9
9
 
10
- ## Instructions
10
+ アーキテクチャは後から変えるコストが最も高い設計判断。要件定義の段階で適切なパターンを選定することで、開発全体の方向性を確定し、手戻りを最小化する。
11
11
 
12
- ### 1. 参照ドキュメント
12
+ ## 参照ドキュメントとテンプレート
13
13
 
14
- - @docs/reference/アーキテクチャ設計ガイド.md - アーキテクチャ設計の進め方
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 | ユーザーストーリー |
22
+ | 成果物 | `docs/design/architecture_backend.md` | バックエンドアーキテクチャ |
23
+ | 成果物 | `docs/design/architecture_frontend.md` | フロントエンドアーキテクチャ |
24
+ | 成果物 | `docs/design/architecture_infrastructure.md` | インフラストラクチャアーキテクチャ |
15
25
 
16
- ### 2. 入力
26
+ ## バックエンドアーキテクチャ設計
17
27
 
18
- - @docs/requirements/requirements_definition.md - 要件定義
19
- - @docs/requirements/business_usecase.md - ビジネスユースケース
20
- - @docs/requirements/system_usecase.md - システムユースケース
21
- - @docs/requirements/user_story.md - ユーザーストーリー
28
+ 業務ロジックの複雑さに応じてパターンを選択する。単純な CRUD ならレイヤードで十分だが、ドメインが複雑な場合はヘキサゴナルやクリーンアーキテクチャを採用せよ。
22
29
 
23
- ### 3. 成果物
30
+ - **アーキテクチャパターンの選択**: レイヤード、ヘキサゴナル、クリーン等から要件に最適なものを選定する
31
+ - **CQRS/イベントソーシングの適用判断**: 読み書きの特性が大きく異なる場合に検討する。過剰適用は複雑さを増すだけなので慎重に判断せよ
32
+ - **API 設計方針**: REST/GraphQL/gRPC の選択基準を明確にする
24
33
 
25
- - @docs/design/architecture_backend.md - バックエンドアーキテクチャ
26
- - @docs/design/architecture_frontend.md - フロントエンドアーキテクチャ
27
- - @docs/design/architecture_infrastructure.md - インフラストラクチャアーキテクチャ
34
+ ## フロントエンドアーキテクチャ設計
28
35
 
29
- ### 4. 作業内容
36
+ ユーザー体験とチームのスキルセットを考慮して設計する。フレームワーク選定はプロジェクト全体に影響するため、ADR で判断根拠を残せ。
30
37
 
31
- #### バックエンドアーキテクチャ設計
38
+ - **フレームワーク選定**: プロジェクト要件に合ったフレームワークを選択する
39
+ - **状態管理パターン**: アプリケーションの状態の複雑さに応じて適切なパターンを選定する
40
+ - **コンポーネント設計方針**: 再利用性と保守性を両立する設計指針を定める
32
41
 
33
- - アーキテクチャパターンの選択(レイヤード、ヘキサゴナル、クリーン等)
34
- - CQRS/イベントソーシングの適用判断
35
- - API 設計方針
42
+ ## インフラストラクチャアーキテクチャ設計
36
43
 
37
- #### フロントエンドアーキテクチャ設計
44
+ 非機能要件(可用性・スケーラビリティ)を実現するインフラ構成を設計する。運用コストとの兼ね合いも考慮せよ。
38
45
 
39
- - フレームワーク選定
40
- - 状態管理パターン
41
- - コンポーネント設計方針
46
+ - **クラウド/オンプレミス選定**: コスト・セキュリティ・運用負荷を総合的に判断する
47
+ - **コンテナ化戦略**: コンテナ化の適用範囲とオーケストレーション方式を決定する
48
+ - **CI/CD パイプライン設計**: ビルド・テスト・デプロイの自動化方針を定める
42
49
 
43
- #### インフラストラクチャアーキテクチャ設計
50
+ ## 作成の進め方
44
51
 
45
- - クラウド/オンプレミス選定
46
- - コンテナ化戦略
47
- - CI/CD パイプライン設計
52
+ 1. 入力ドキュメント(要件定義、ユースケース、ユーザーストーリー)を確認する。なければ基本情報をヒアリングする
53
+ 2. @docs/reference/アーキテクチャ設計ガイド.md を読み込む
54
+ 3. バックエンド→フロントエンド→インフラの順に設計する。各アーキテクチャの選定理由を明記せよ
55
+ 4. 重要な設計判断は ADR(Architecture Decision Record)で記録する
48
56
 
49
- ### 5. 注意事項
57
+ ## 途中から再開する場合
50
58
 
51
- - **前提条件**: 要件定義とユースケースが完了していること
52
- - **制限事項**: アーキテクチャ決定は ADR(Architecture Decision Record)で記録すること
53
- - **推奨事項**: 業務の複雑さとチームのスキルセットを考慮して選択する
59
+ 既存の `docs/design/architecture_*.md` がある場合は、まずその内容を確認する。不足している領域や更新が必要な部分のみを修正する。
54
60
 
55
- ### 6. 記述ルール
61
+ **Example:**
56
62
 
57
- タスク項目などは一行開けて記述する。
58
-
59
- OK:
60
-
61
- ```markdown
62
- **受入条件**:
63
-
64
- - [ ] ログアウトボタンをクリックするとログアウトできる
65
- - [ ] ログアウト後、ログイン画面に遷移する
66
63
  ```
67
-
68
- NG:
69
-
70
- ```markdown
71
- **受入条件**:
72
- - [ ] ログアウトボタンをクリックするとログアウトできる
73
- - [ ] ログアウト後、ログイン画面に遷移する
64
+ ユーザー: 「バックエンドはクリーンアーキテクチャで決めた。フロントエンドを設計したい」
65
+ 回答: 既存の architecture_backend.md を確認し、
66
+ バックエンドの API 設計方針を踏まえてフロントエンドアーキテクチャ設計に進む。
67
+ フレームワーク選定→状態管理→コンポーネント設計の順で作成する。
74
68
  ```
75
69
 
76
- ## Examples
77
-
78
- ### 要件に基づくアーキテクチャ設計
70
+ ## 注意事項
79
71
 
80
- 1. 要件定義とユーザーストーリーを読み込む
81
- 2. @docs/reference/アーキテクチャ設計ガイド.md に基づいて設計
82
- 3. バックエンド・フロントエンド・インフラの各アーキテクチャドキュメントを作成
72
+ - 要件定義とユースケースが完了していることが前提。未完了でもプロジェクト情報から進めて構わない
73
+ - アーキテクチャ決定は必ず ADR で記録する。「なぜその選択をしたか」が後で最も重要になる
74
+ - 業務の複雑さとチームのスキルセットを考慮して選択する。技術的に「正しい」選択よりチームが運用できる選択を優先せよ
75
+ - タスク項目(リスト)の前には空行を入れる(Markdown Lint 準拠)
83
76
 
84
- ### 技術的制約がある場合
77
+ ## 関連スキル
85
78
 
86
- 1. 既存の `package.json` `pom.xml` を確認
87
- 2. 既存技術スタックを考慮したアーキテクチャ選択を提案
79
+ - `orchestrating-analysis` 分析フェーズ全体のワークフロー案内
80
+ - `analyzing-requirements` — 前段の要件定義
81
+ - `analyzing-domain-model` — 後続のドメインモデル設計
82
+ - `analyzing-data-model` — 後続のデータモデル設計
83
+ - `analyzing-tech-stack` — 後続の技術スタック選定
@@ -1,117 +1,95 @@
1
1
  ---
2
2
  name: analyzing-business
3
- description: ビジネスアーキテクチャ分析を支援。要件定義の前段階として、ビジネスモデルキャンバス、バリューストリーム、ケイパビリティマップ、組織マップ、情報マップ、ビジネスシナリオの作成。ビジネスアーキテクチャやビジネス構造の検討時に使用。
3
+ description: ビジネスアーキテクチャ分析を支援。要件定義の前段階として、ビジネスモデルキャンバス、バリューストリーム、ケイパビリティマップ、組織マップ、情報マップ、ビジネスシナリオを作成。「ビジネスモデルを整理したい」「バリューストリームを描きたい」「ケイパビリティマップを作りたい」「事業構造を分析したい」といった場面で発動する。ビジネスの全体像を理解してからシステム要件に落とし込むことで、本当に必要な機能を見極められる。
4
4
  ---
5
5
 
6
- # ビジネスアーキテクチャ分析支援
6
+ # ビジネスアーキテクチャ分析
7
7
 
8
- 要件定義の前段階として、エンタープライズがどのように価値を生み出し、顧客に提供するかの構造を体系的に整理・設計します。本スキルの成果物は後続の要件定義(`analyzing-requirements`)やユースケース分析(`analyzing-usecases`)の入力となります。
8
+ エンタープライズがどのように価値を生み出し、顧客に提供するかの構造を体系的に整理する。この分析は要件定義の前段階として行い、成果物は後続の `analyzing-requirements`(要件定義)や `analyzing-usecases`(ユースケース分析)の入力になる。
9
9
 
10
- ## Instructions
10
+ ビジネスの構造を先に理解することで、「何を作るか」ではなく「なぜ作るか」からシステムを設計でき、本当に価値のある機能に集中できる。
11
11
 
12
- ### 1. 参照ドキュメント
12
+ ## 参照ドキュメント
13
13
 
14
- - @docs/reference/ビジネスアーキテクチャ分析ガイド.md - ビジネスアーキテクチャ分析の進め方
14
+ - @docs/reference/ビジネスアーキテクチャ分析ガイド.md 分析手法とフレームワークの詳細。各成果物の作成方法はこのガイドに従う。
15
15
 
16
- ### 2. テンプレート
16
+ ## テンプレートと成果物
17
17
 
18
- - @docs/template/ビジネスアーキテクチャ.md - ビジネスアーキテクチャテンプレート(**編集禁止**)
18
+ | 種類 | パス | 備考 |
19
+ |------|------|------|
20
+ | テンプレート | @docs/template/ビジネスアーキテクチャ.md | 編集禁止。コピーして使用する |
21
+ | 成果物 | `docs/analysis/business_architecture.md` | テンプレートを基に作成 |
19
22
 
20
- ### 3. 入力
23
+ ## 分析の進め方
21
24
 
22
- - プロジェクトの基本情報(ビジョン、ミッション、ビジネス概要)
23
- - ステークホルダーからのヒアリング情報
25
+ 以下の順序で進める。各ステップの出力が次のステップの入力になるため、この順序を守ることで整合性の高い分析ができる。
24
26
 
25
- ### 4. 成果物
27
+ ### 1. プリンシプルの定義
26
28
 
27
- - @docs/analysis/business_architecture.md - ビジネスアーキテクチャ分析書
29
+ ビジョン・ミッション・価値観に基づく方針を最初に固める。プリンシプルが曖昧だと、後続の分析で判断軸がブレる。
28
30
 
29
- ### 5. 作業内容
31
+ - **ガイディングプリンシプル**: ビジネス・アプリケーション・データ・テクノロジーの各アーキテクチャに対する方針
32
+ - **ビジネスプリンシプル**: ビジネスにおける原則原理
30
33
 
31
- #### プリンシプルの定義
34
+ ### 2. ビジネスモデルの整理
32
35
 
33
- - ガイディングプリンシプル(ビジョン、ミッション、価値観に基づく方針)の策定
34
- - ビジネスプリンシプル(ビジネスにおける原則原理)の定義
36
+ ビジネスモデルキャンバスを作成し、ビジネスの全体構造を 9 つの要素で可視化する。
35
37
 
36
- #### ビジネスモデルの整理
38
+ - 顧客セグメント、価値提案、チャネル、顧客関係
39
+ - 主要活動、主要リソース、主要パートナー
40
+ - 収益源、コスト構造
37
41
 
38
- - ビジネスモデルキャンバスの作成
39
- - 顧客セグメント、価値提案、チャネル、顧客関係の整理
40
- - 主要活動、主要リソース、主要パートナーの特定
41
- - 収益源、コスト構造の明確化
42
+ ### 3. バリューストリームの設計
42
43
 
43
- #### バリューストリームの設計
44
+ 価値がどのように流れるかを可視化する。バリューストリームはケイパビリティモデルの土台になるため、ケイパビリティより先に作成する。
44
45
 
45
46
  - バリュー(価値)の分析
46
47
  - バリューストリームマップの作成
47
48
  - 各ステージでの価値増加の可視化
48
49
 
49
- #### ビジネスケイパビリティモデルの構築
50
+ ### 4. ケイパビリティモデルの構築
50
51
 
51
- - ビジネスケイパビリティの特定(戦略・コア・サポート)
52
- - ケイパビリティの階層化とレベリング
53
- - ヒートマッピングによる成熟度評価
54
- - ケイパビリティとバリューストリームのマッピング
55
-
56
- #### 組織マップの作成
57
-
58
- - 部門・組織構造の整理
59
- - 組織とケイパビリティの対応付け
52
+ 組織が持つ能力を体系的に整理する。バリューストリームの各ステージに必要なケイパビリティを紐付けることで、どの能力に投資すべきかが見える。
60
53
 
61
- #### 情報マップの作成
54
+ - ケイパビリティの特定(戦略・コア・サポート)
55
+ - 階層化とレベリング
56
+ - ヒートマッピングによる成熟度評価
57
+ - バリューストリームとのマッピング
62
58
 
63
- - ビジネスエンティティの特定
64
- - エンティティ間のリレーション整理
59
+ ### 5. 組織マップの作成
65
60
 
66
- #### ビジネスシナリオの策定
61
+ 部門・組織構造を整理し、ケイパビリティとの対応付けを行う。
67
62
 
68
- - 問題の特定と文書化
69
- - ビジネス・技術環境のモデル化
70
- - ゴールと期待する結果の定義
71
- - ヒューマンアクター・コンピュータアクターの特定
63
+ ### 6. 情報マップの作成
72
64
 
73
- ### 6. 注意事項
65
+ ビジネスエンティティを特定し、エンティティ間のリレーションを整理する。後続のデータモデル設計の基礎になる。
74
66
 
75
- - **前提条件**: プロジェクトの基本情報(ビジョン、ミッション、ビジネス概要)が提供されていること
76
- - **制限事項**: ビジネスアーキテクチャの決定は ADR で記録すること
77
- - **推奨事項**: バリューストリームを先に作成し、その後ケイパビリティモデルを構築する
67
+ ### 7. ビジネスシナリオの策定
78
68
 
79
- ### 7. 記述ルール
69
+ 問題を特定・文書化し、ゴールと期待する結果を定義する。ヒューマンアクター・コンピュータアクターを特定し、後続のユースケース分析の入力とする。
80
70
 
81
- タスク項目などは一行開けて記述する。
71
+ ## 途中から再開する場合
82
72
 
83
- OK:
73
+ 既存の `docs/analysis/business_architecture.md` がある場合は、まずその内容を確認する。完了済みのセクションはスキップし、未着手または更新が必要なセクションから再開する。
84
74
 
85
- ```markdown
86
- **受入条件**:
75
+ **Example:**
87
76
 
88
- - [ ] ビジネスモデルキャンバスが作成されている
89
- - [ ] バリューストリームマップが作成されている
90
77
  ```
91
-
92
- NG:
93
-
94
- ```markdown
95
- **受入条件**:
96
- - [ ] ビジネスモデルキャンバスが作成されている
97
- - [ ] バリューストリームマップが作成されている
78
+ ユーザー: 「ビジネスモデルキャンバスは作った。次は?」
79
+ 回答: バリューストリームの設計に進む。ビジネスモデルキャンバスで特定した
80
+ 主要活動を基に、価値の流れを可視化する。
98
81
  ```
99
82
 
100
- ## Examples
101
-
102
- ### 新規プロジェクトでビジネスアーキテクチャを設計
103
-
104
- 1. プロジェクトの基本情報とビジネス概要を確認
105
- 2. @docs/reference/ビジネスアーキテクチャ分析ガイド.md に基づいて分析
106
- 3. ビジネスモデルキャンバス → バリューストリーム → ケイパビリティモデルの順に作成
107
-
108
- ### 既存ビジネスの分析・改善
83
+ ## 注意事項
109
84
 
110
- 1. 既存の @docs/design/business_architecture.md を読み込む
111
- 2. ヒートマッピングで成熟度を評価し改善提案を作成
85
+ - プロジェクトの基本情報(ビジョン、ミッション、ビジネス概要)が提供されていることを確認してから分析を開始する
86
+ - ビジネスアーキテクチャの重要な決定は ADR(`creating-adr`)で記録する
87
+ - 成果物は PlantUML を活用して視覚的に文書化する
88
+ - タスク項目(リスト)の前には空行を入れる(Markdown Lint 準拠)
112
89
 
113
- ### 関連スキル
90
+ ## 関連スキル
114
91
 
115
- - `analyzing-requirements` : 後続の要件定義(本スキルの成果物が入力となる)
116
- - `analyzing-usecases` : 後続のビジネスユースケース詳細化
117
- - `analyzing-architecture` : 後続のシステムアーキテクチャ設計への橋渡し
92
+ - `analyzing-requirements` 後続の要件定義(本スキルの成果物が入力)
93
+ - `analyzing-usecases` 後続のビジネスユースケース詳細化
94
+ - `analyzing-architecture` 後続のシステムアーキテクチャ設計への橋渡し
95
+ - `orchestrating-analysis` — 分析フェーズ全体のワークフロー案内
@@ -1,80 +1,77 @@
1
1
  ---
2
2
  name: analyzing-data-model
3
- description: データモデル設計を支援。ER 図作成、テーブル定義、リレーション設計。データベース設計やテーブル構造の検討時に使用。
3
+ description: PlantUML の ER 図を使用したデータモデル設計を支援。概念→論理データモデルの段階的設計とテーブル定義。「データモデルを設計したい」「ER 図を作りたい」「テーブル定義を作成したい」「データベース設計を始めたい」「正規化を検討したい」といった場面で発動する。データモデルを先に設計することで、実装時のテーブル設計の手戻りを防ぐ。
4
4
  ---
5
5
 
6
- # データモデル設計支援
6
+ # データモデル設計
7
7
 
8
- PlantUML の ER 図を使用してデータモデルを設計します。
8
+ PlantUML の ER 図を使用して、概念データモデル→論理データモデルの順でデータモデルを設計する。
9
9
 
10
- ## Instructions
10
+ データモデルはシステムの「記憶」を定義する設計。ドメインモデルが業務ロジックの構造を表すのに対し、データモデルはデータの永続化構造を定義する。両者の整合性がシステム全体の一貫性を保証する。
11
11
 
12
- ### 1. 参照ドキュメント
12
+ ## 参照ドキュメントとテンプレート
13
13
 
14
- - @docs/reference/データモデル設計ガイド.md - データモデル設計の進め方
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 | ユーザーストーリー |
22
+ | 入力 | @docs/design/architecture_backend.md | バックエンドアーキテクチャ |
23
+ | 入力 | @docs/design/architecture_frontend.md | フロントエンドアーキテクチャ |
24
+ | 成果物 | `docs/design/data-model.md` | データモデル設計 |
15
25
 
16
- ### 2. 入力
26
+ ## 概念データモデル作成
17
27
 
18
- - @docs/requirements/requirements_definition.md - 要件定義
19
- - @docs/requirements/business_usecase.md - ビジネスユースケース
20
- - @docs/requirements/system_usecase.md - システムユースケース
21
- - @docs/requirements/user_story.md - ユーザーストーリー
22
- - @docs/design/architecture_backend.md - バックエンドアーキテクチャ
23
- - @docs/design/architecture_frontend.md - フロントエンドアーキテクチャ
28
+ 業務の言葉でエンティティとリレーションシップを識別する。この段階では物理的な実装を考えない。ユースケースの「名詞」がエンティティ候補になる。
24
29
 
25
- ### 3. 成果物
30
+ - **エンティティの識別**: ユースケースとユーザーストーリーから管理対象を抽出する
31
+ - **リレーションシップの定義**: エンティティ間の関係(1:1、1:N、N:N)を明確にする
26
32
 
27
- - @docs/design/data-model.md - データモデル設計
33
+ ## 論理データモデル作成
28
34
 
29
- ### 4. 作業内容
35
+ 概念モデルを具体的なテーブル構造に落とし込む。正規化は第 3 正規形を基本とし、パフォーマンス要件に応じて非正規化を検討せよ。
30
36
 
31
- #### 概念データモデル作成
37
+ - **テーブル定義**: カラム名、データ型、制約を定義する
38
+ - **主キー・外部キーの設計**: 識別子の戦略(自然キー/サロゲートキー)を決定する
39
+ - **正規化の適用**: 第 3 正規形まで正規化し、必要に応じて非正規化の判断を記録する
32
40
 
33
- - エンティティの識別
34
- - リレーションシップの定義
41
+ ## ER 図作成
35
42
 
36
- #### 論理データモデル作成
43
+ PlantUML を使用して ER 図を作成する。テーブル間の関係を可視化することで、設計レビューの効率が上がる。
37
44
 
38
- - テーブル定義
39
- - 主キー・外部キーの設計
40
- - 正規化の適用
45
+ ## 作成の進め方
41
46
 
42
- #### ER 図作成
47
+ 1. 入力ドキュメント(要件定義、アーキテクチャ設計)を確認する
48
+ 2. @docs/reference/データモデル設計ガイド.md を読み込む
49
+ 3. 概念データモデル→論理データモデルの順に作成する
50
+ 4. ドメインモデルとの整合性を確認しながら `docs/design/data-model.md` として出力する
43
51
 
44
- - PlantUML を使用した ER 図の作成
45
- - テーブル間の関係の可視化
52
+ ## 途中から再開する場合
46
53
 
47
- ### 5. 注意事項
54
+ 既存の `docs/design/data-model.md` がある場合は、まずその内容を確認する。不足しているエンティティや更新が必要なリレーションシップのみを修正する。
48
55
 
49
- - **前提条件**: 要件定義とアーキテクチャ設計が完了していること
50
- - **制限事項**: PlantUML の ER 図を使用すること
51
- - **推奨事項**: ドメインモデルとの整合性を確認しながら設計する
56
+ **Example:**
52
57
 
53
- ### 6. 記述ルール
54
-
55
- タスク項目などは一行開けて記述する。
56
-
57
- OK:
58
-
59
- ```markdown
60
- **受入条件**:
61
-
62
- - [ ] テーブル定義が完了している
63
- - [ ] ER 図が作成されている
64
58
  ```
65
-
66
- NG:
67
-
68
- ```markdown
69
- **受入条件**:
70
- - [ ] テーブル定義が完了している
71
- - [ ] ER 図が作成されている
59
+ ユーザー: 「概念モデルはできた。論理モデルを作りたい」
60
+ 回答: 既存の data-model.md の概念データモデルを確認し、
61
+ 各エンティティのテーブル定義(カラム・データ型・制約)を作成する。
62
+ 主キー・外部キーの設計を行い、ER 図を PlantUML で更新する。
72
63
  ```
73
64
 
74
- ## Examples
65
+ ## 注意事項
66
+
67
+ - 要件定義とアーキテクチャ設計が完了していることが前提。未完了でも進めて構わない
68
+ - ER 図は必ず PlantUML で作成する。テキストベースの図はバージョン管理と差分レビューに適している
69
+ - ドメインモデルとの整合性を常に確認する。データモデルとドメインモデルの乖離は実装時の混乱を招く
70
+ - タスク項目(リスト)の前には空行を入れる(Markdown Lint 準拠)
75
71
 
76
- ### 要件に基づくデータモデル設計
72
+ ## 関連スキル
77
73
 
78
- 1. 要件定義とバックエンドアーキテクチャを読み込む
79
- 2. @docs/reference/データモデル設計ガイド.md に基づいて設計
80
- 3. ドメインモデルとの整合性を確認しながらデータモデルを作成
74
+ - `orchestrating-analysis` — 分析フェーズ全体のワークフロー案内
75
+ - `analyzing-architecture` — 前段のアーキテクチャ設計
76
+ - `analyzing-domain-model` — 並行して進めるドメインモデル設計
77
+ - `analyzing-tech-stack` — 後続の技術スタック選定(DB 選定に影響)
@@ -1,88 +1,88 @@
1
1
  ---
2
2
  name: analyzing-domain-model
3
- description: ドメインモデル設計を支援。エンティティ、値オブジェクト、集約の設計。DDD やドメインモデリングの検討時に使用。
3
+ description: DDD の戦術的設計パターンに基づくドメインモデル設計を支援。エンティティ、値オブジェクト、集約、ドメインサービスの設計。「ドメインモデルを設計したい」「DDD で設計したい」「集約を定義したい」「エンティティと値オブジェクトを識別したい」「ユビキタス言語を整理したい」といった場面で発動する。ドメインモデルを先に設計することで、業務ロジックが実装コードに正しく反映される。
4
4
  ---
5
5
 
6
- # ドメインモデル設計支援
6
+ # ドメインモデル設計
7
7
 
8
- DDD の戦術的設計パターンに基づくドメインモデルを設計します。
8
+ DDD(ドメイン駆動設計)の戦術的設計パターンに基づき、エンティティ・値オブジェクト・集約・ドメインサービスを設計する。
9
9
 
10
- ## Instructions
10
+ ドメインモデルの価値は、業務の専門家と開発者が同じ言葉(ユビキタス言語)で会話できるようになること。モデルとコードが一致することで、「仕様と実装の乖離」という根本的な問題を解消する。
11
11
 
12
- ### 1. 参照ドキュメント
12
+ ## 参照ドキュメントとテンプレート
13
13
 
14
- - @docs/reference/ドメインモデル設計ガイド.md - ドメインモデル設計の進め方
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 | ユーザーストーリー |
22
+ | 入力 | @docs/design/architecture_backend.md | バックエンドアーキテクチャ |
23
+ | 入力 | @docs/design/architecture_frontend.md | フロントエンドアーキテクチャ |
24
+ | 成果物 | `docs/design/domain-model.md` | ドメインモデル設計 |
15
25
 
16
- ### 2. 入力
26
+ ## エンティティ定義
17
27
 
18
- - @docs/requirements/requirements_definition.md - 要件定義
19
- - @docs/requirements/business_usecase.md - ビジネスユースケース
20
- - @docs/requirements/system_usecase.md - システムユースケース
21
- - @docs/requirements/user_story.md - ユーザーストーリー
22
- - @docs/design/architecture_backend.md - バックエンドアーキテクチャ
23
- - @docs/design/architecture_frontend.md - フロントエンドアーキテクチャ
28
+ ライフサイクルを持ち、識別子で区別されるドメインオブジェクトを識別する。「同じ属性値でも別のものとして扱う必要がある」ものがエンティティ。
24
29
 
25
- ### 3. 成果物
30
+ - **ライフサイクルを持つドメインオブジェクトの識別**: ユースケースの動詞(作成・更新・削除)の対象がエンティティ候補
31
+ - **識別子の設計**: 自然キーかサロゲートキーかを決定する。ドメイン的に意味のある識別子があれば自然キーを優先せよ
26
32
 
27
- - @docs/design/domain-model.md - ドメインモデル設計
33
+ ## 値オブジェクト定義
28
34
 
29
- ### 4. 作業内容
35
+ 不変で識別子を持たないドメインオブジェクトを識別する。「属性値が同じなら同じもの」として扱えるものが値オブジェクト。プリミティブ型の代わりに値オブジェクトを使うことで、バリデーションとドメイン知識をカプセル化する。
30
36
 
31
- #### エンティティ定義
37
+ - **不変オブジェクトの識別**: 金額、メールアドレス、住所などの業務概念を値オブジェクト化する
38
+ - **バリデーションルールの定義**: 生成時にバリデーションを行い、不正な状態の値オブジェクトが存在できないようにする
32
39
 
33
- - ライフサイクルを持つドメインオブジェクトの識別
34
- - 識別子の設計
40
+ ## 集約の設計
35
41
 
36
- #### 値オブジェクト定義
42
+ トランザクション整合性の境界を定義する。集約が大きすぎると競合が発生し、小さすぎると整合性が保てない。適切な境界の見極めが最も重要。
37
43
 
38
- - 不変で識別子を持たないドメインオブジェクトの識別
39
- - バリデーションルールの定義
44
+ - **集約ルートの識別**: 外部からのアクセスポイントとなるエンティティを決定する
45
+ - **集約境界の定義**: トランザクション整合性が必要な範囲を最小限にせよ
46
+ - **不変条件の設計**: 集約内で常に満たすべきビジネスルールを明確にする
40
47
 
41
- #### 集約の設計
48
+ ## ドメインサービス定義
42
49
 
43
- - 集約ルートの識別
44
- - 集約境界の定義
45
- - 不変条件の設計
50
+ エンティティにも値オブジェクトにも属さないビジネスロジックを識別する。ドメインサービスは動詞で命名し、ステートレスに保て。
46
51
 
47
- #### ドメインサービス定義
52
+ ## ダイアグラム作成
48
53
 
49
- - エンティティに属さないビジネスロジックの識別
54
+ PlantUML を使用してクラス図・オブジェクト図を作成する。図はコードと同様にバージョン管理し、設計の変更を追跡可能にせよ。
50
55
 
51
- #### ダイアグラム作成
56
+ ## 作成の進め方
52
57
 
53
- - PlantUML を使用したクラス図・オブジェクト図の作成
58
+ 1. 入力ドキュメント(要件定義、ユースケース、アーキテクチャ設計)を確認する
59
+ 2. @docs/reference/ドメインモデル設計ガイド.md を読み込む
60
+ 3. ユビキタス言語の用語集を作成し、エンティティ→値オブジェクト→集約→ドメインサービスの順に設計する
61
+ 4. `docs/design/domain-model.md` として出力する
54
62
 
55
- ### 5. 注意事項
63
+ ## 途中から再開する場合
56
64
 
57
- - **前提条件**: 要件定義とアーキテクチャ設計が完了していること
58
- - **制限事項**: PlantUML を使用してダイアグラムを作成すること
59
- - **推奨事項**: ユビキタス言語を使用してドメインエキスパートと共通認識を持つ
65
+ 既存の `docs/design/domain-model.md` がある場合は、まずその内容を確認する。不足しているドメインオブジェクトや集約境界の見直しが必要な部分のみを修正する。
60
66
 
61
- ### 6. 記述ルール
67
+ **Example:**
62
68
 
63
- タスク項目などは一行開けて記述する。
64
-
65
- OK:
66
-
67
- ```markdown
68
- **受入条件**:
69
-
70
- - [ ] エンティティが定義されている
71
- - [ ] 集約境界が明確である
72
69
  ```
73
-
74
- NG:
75
-
76
- ```markdown
77
- **受入条件**:
78
- - [ ] エンティティが定義されている
79
- - [ ] 集約境界が明確である
70
+ ユーザー: 「エンティティは識別した。集約の境界を決めたい」
71
+ 回答: 既存の domain-model.md のエンティティ一覧を確認し、
72
+ トランザクション整合性が必要な範囲を分析して集約境界を定義する。
73
+ 集約ルートを決定し、不変条件を明記する。
80
74
  ```
81
75
 
82
- ## Examples
76
+ ## 注意事項
77
+
78
+ - 要件定義とアーキテクチャ設計が完了していることが前提。未完了でも進めて構わない
79
+ - ダイアグラムは必ず PlantUML で作成する
80
+ - ユビキタス言語を使用してドメインエキスパートと共通認識を持つ。コード上のクラス名・メソッド名もユビキタス言語に合わせよ
81
+ - タスク項目(リスト)の前には空行を入れる(Markdown Lint 準拠)
83
82
 
84
- ### ユースケースに基づくドメインモデル設計
83
+ ## 関連スキル
85
84
 
86
- 1. システムユースケースとユーザーストーリーを読み込む
87
- 2. @docs/reference/ドメインモデル設計ガイド.md に基づいて設計
88
- 3. エンティティ、値オブジェクト、集約を識別してドメインモデルを作成
85
+ - `orchestrating-analysis` — 分析フェーズ全体のワークフロー案内
86
+ - `analyzing-architecture` — 前段のアーキテクチャ設計
87
+ - `analyzing-data-model` — 並行して進めるデータモデル設計
88
+ - `analyzing-usecases` — 入力となるユースケース・ユーザーストーリー