@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.
Files changed (63) 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//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
  49. package/lib/assets/docs/reference//351/226/213/347/231/272/343/202/254/343/202/244/343/203/211.md +69 -5
  50. 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
  51. 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
  52. 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
  53. 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
  54. package/lib/assets/docs/template//350/250/255/350/250/210.md +12 -2
  55. 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
  56. package/package.json +1 -1
  57. package/lib/assets/.claude/SKILLS_TEMPLATE.md +0 -100
  58. package/lib/assets/.claude/agents/roles/.gitkeep +0 -0
  59. package/lib/assets/.claude/skills/managing-operations/DEPLOY.md +0 -77
  60. package/lib/assets/.claude/skills/managing-operations/SETUP_CSHARP.md +0 -80
  61. package/lib/assets/.claude/skills/managing-operations/SETUP_FRONTEND.md +0 -84
  62. package/lib/assets/.claude/skills/managing-operations/SETUP_JAVA.md +0 -75
  63. package/lib/assets/.claude/skills/managing-operations/SKILL.md +0 -156
@@ -1,89 +1,91 @@
1
1
  ---
2
2
  name: analyzing-requirements
3
- description: 要件定義を支援。RDRA 2.0 に基づくシステム価値、外部環境、境界の分析。要件定義やシステム分析の検討時に使用。
3
+ description: RDRA 2.0 に基づく体系的な要件定義を支援。システム価値→外部環境→境界→内部構造の 4 層で要件を整理。「要件定義を始めたい」「システムの要求を整理したい」「RDRA で分析したい」「業務フローを整理したい」「システムコンテキストを作りたい」といった場面で発動する。要件を体系的に整理することで、開発フェーズでの「何を作ればいいかわからない」問題を防ぐ。
4
4
  ---
5
5
 
6
- # 要件定義支援
6
+ # 要件定義
7
7
 
8
- RDRA モデルに基づいた体系的な要件定義を作成します。
8
+ RDRA 2.0(リレーションシップ駆動要件分析)に基づき、システム価値→外部環境→境界→内部構造の 4 層で要件を体系的に整理する。
9
9
 
10
- ## Instructions
10
+ RDRA の価値は、要件を「何となくの要望リスト」ではなく「なぜそれが必要か」の根拠付きで構造化できること。各層の出力が次の層の入力になるため、トレーサビリティが自然に確保される。
11
11
 
12
- ### 1. 参照ドキュメント
12
+ ## 参照ドキュメントとテンプレート
13
13
 
14
- - @docs/reference/要件定義支援.md - 要件定義の進め方ガイド
15
- - @docs/analysis/business_architecture.md
16
- - @docs/analysis/inception_deck.md
14
+ | 種類 | パス | 備考 |
15
+ |------|------|------|
16
+ | ガイド | @docs/reference/要件定義ガイド.md | RDRA 2.0 の進め方詳細 |
17
+ | テンプレート | @docs/template/要件定義.md | 編集禁止。コピーして使用する |
18
+ | 入力 | @docs/analysis/business_architecture.md | ビジネスアーキテクチャ分析書 |
19
+ | 入力 | @docs/analysis/inception-deck.md | インセプションデッキ |
20
+ | 成果物 | `docs/requirements/requirements_definition.md` | テンプレートを基に作成 |
17
21
 
18
- ### 2. テンプレート
22
+ ## RDRA の 4 層構造
19
23
 
20
- - @docs/template/要件定義.md - 要件定義テンプレート(**編集禁止**)
24
+ 各層は上から下に向かって具体化されていく。上位層が曖昧だと下位層の定義がブレるため、この順序で進めることが重要。
21
25
 
22
- ### 3. 成果物
26
+ ### 1: システム価値
23
27
 
24
- - @docs/requirements/requirements_definition.md
28
+ 「なぜこのシステムが必要か」を明確にする。インセプションデッキの「なぜやるのか」をシステムの文脈で具体化する。
25
29
 
26
- ### 4. 作業内容
30
+ - **システムコンテキスト図**: システムとアクター(人・外部システム)の関係を PlantUML で図示
31
+ - **要求モデル**: ステークホルダーの要求を構造化して一覧化
27
32
 
28
- #### システム価値の明確化
33
+ ### 層 2: システム外部環境
29
34
 
30
- - システムコンテキスト図の作成
31
- - 要求モデルの定義
35
+ 「どのような業務の中でシステムが使われるか」を整理する。ビジネスアーキテクチャ分析書のバリューストリームや組織マップが入力になる。
32
36
 
33
- #### システム外部環境の分析
37
+ - **ビジネスコンテキスト**: 業務の全体像とシステムの位置づけ
38
+ - **ビジネスユースケース**: 業務レベルのユースケース識別
39
+ - **業務フロー**: 業務プロセスの可視化(PlantUML アクティビティ図)
40
+ - **利用シーン**: ユーザーがシステムを使う具体的な場面
34
41
 
35
- - ビジネスコンテキストの把握
36
- - ビジネスユースケースの識別
37
- - 業務フローの整理
38
- - 利用シーンの特定
42
+ ### 層 3: システム境界
39
43
 
40
- #### システム境界の定義
44
+ 「システムの内と外の接点は何か」を定義する。外部環境の分析結果から、システムが担う範囲を確定する。
41
45
 
42
- - ユースケース複合図の作成
43
- - 画面・帳票モデルの定義
44
- - イベントモデルの設計
46
+ - **ユースケース複合図**: システムユースケースとアクターの関係
47
+ - **画面・帳票モデル**: ユーザーインターフェースの概要定義
48
+ - **イベントモデル**: システムが受け取る・発信するイベント
45
49
 
46
- #### システム内部構造の設計
50
+ ### 層 4: システム内部構造
47
51
 
48
- - 情報モデルの作成
49
- - 状態モデルの定義
52
+ 「システム内部でどのような情報をどう扱うか」を設計する。後続のデータモデル設計・ドメインモデル設計の基礎になる。
50
53
 
51
- ### 5. 注意事項
54
+ - **情報モデル**: システムが扱う主要なエンティティとリレーション
55
+ - **状態モデル**: 主要エンティティの状態遷移
52
56
 
53
- - **前提条件**: @docs/requirements/requirements_definition.md が無ければ新規要件定義を開始
54
- - **制限事項**: テンプレート @docs/template/要件定義.md は絶対に編集しないこと
55
- - **推奨事項**: ステークホルダーとの合意形成を行いながら進める
57
+ ## 作成の進め方
56
58
 
57
- ### 6. 記述ルール
59
+ ### 新規作成
58
60
 
59
- タスク項目などは一行開けて記述する。
61
+ 1. 入力ドキュメント(ビジネスアーキテクチャ分析書、インセプションデッキ)の有無を確認する。なければ基本情報をヒアリングする
62
+ 2. テンプレート(@docs/template/要件定義.md)を読み込む
63
+ 3. 層 1 から順に 4 層を作成する。各層で PlantUML を活用して視覚化する
64
+ 4. `docs/requirements/requirements_definition.md` として出力する
60
65
 
61
- OK:
66
+ ### 途中から再開・更新
62
67
 
63
- ```markdown
64
- **受入条件**:
68
+ 既存の `docs/requirements/requirements_definition.md` がある場合は、まずその内容を確認する。不足している層や更新が必要な部分のみを修正する。
65
69
 
66
- - [ ] システムコンテキスト図が作成されている
67
- - [ ] 要求モデルが定義されている
68
- ```
69
-
70
- NG:
70
+ **Example:**
71
71
 
72
- ```markdown
73
- **受入条件**:
74
- - [ ] システムコンテキスト図が作成されている
75
- - [ ] 要求モデルが定義されている
72
+ ```
73
+ ユーザー: 「システムコンテキストは作った。業務フローを整理したい」
74
+ 回答: 2(システム外部環境)の業務フロー作成に進む。
75
+ 既存のシステムコンテキスト図のアクターを起点に、
76
+ 各アクターの業務プロセスを PlantUML アクティビティ図で可視化する。
76
77
  ```
77
78
 
78
- ## Examples
79
-
80
- ### 新規プロジェクトで要件定義を開始
79
+ ## 注意事項
81
80
 
82
- 1. プロジェクトの基本情報を確認
83
- 2. @docs/reference/要件定義支援.md に基づいて RDRA モデルで要件定義
84
- 3. テンプレートの構造に従って成果物を作成
81
+ - 入力ドキュメントが未作成でも、プロジェクト情報から直接作成可能。完璧な入力を待つより進める方が効果的
82
+ - テンプレートは編集禁止。コピーして成果物を作成する
83
+ - 各層の成果物には PlantUML を活用し、テキストだけでなく図で表現する
84
+ - タスク項目(リスト)の前には空行を入れる(Markdown Lint 準拠)
85
85
 
86
- ### 既存要件の詳細化
86
+ ## 関連スキル
87
87
 
88
- 1. 既存の @docs/requirements/requirements_definition.md を読み込む
89
- 2. 不足している項目を分析し改善提案を作成
88
+ - `analyzing-business` 前段のビジネスアーキテクチャ分析
89
+ - `analyzing-inception-deck` — 前段のインセプションデッキ
90
+ - `analyzing-usecases` — 後続のユースケース・ユーザーストーリー詳細化
91
+ - `orchestrating-analysis` — 分析フェーズ全体のワークフロー案内
@@ -1,102 +1,101 @@
1
1
  ---
2
2
  name: analyzing-tech-stack
3
- description: 技術スタック選定を支援。フレームワーク、ライブラリ、インフラの選定と評価。技術選定や構成の検討時に使用。
3
+ description: アーキテクチャ設計に基づく技術スタックの選定と表形式の一覧作成を支援。「技術スタックを選定したい」「フレームワークを決めたい」「使用ライブラリを整理したい」「バージョンを確認したい」「技術構成を一覧化したい」といった場面で発動する。技術スタックを事前に選定・一覧化することで、開発中の「バージョン不整合」「サポート切れ」問題を防ぐ。
4
4
  ---
5
5
 
6
- # 技術スタック選定支援
6
+ # 技術スタック選定
7
7
 
8
- 表形式の技術スタック一覧を作成します。
8
+ アーキテクチャ設計に基づき、バックエンド・フロントエンド・インフラの各レイヤーに最適な技術を選定し、表形式の技術スタック一覧を作成する。
9
9
 
10
- ## Instructions
10
+ 技術スタックの選定はプロジェクトの生産性と保守性に直結する。LTS バージョンの選択、サポート期限の把握、アップグレード計画の策定を怠ると、プロジェクト後半でセキュリティリスクと移行コストが膨らむ。
11
11
 
12
- ### 1. 入力
12
+ ## 参照ドキュメントとテンプレート
13
13
 
14
- - @docs/design/architecture_backend.md - バックエンドアーキテクチャ
15
- - @docs/design/architecture_frontend.md - フロントエンドアーキテクチャ
16
- - @docs/design/architecture_infrastructure.md - インフラストラクチャアーキテクチャ
14
+ | 種類 | パス | 備考 |
15
+ |------|------|------|
16
+ | テンプレート | @docs/template/設計.md | 編集禁止。コピーして使用する |
17
+ | 入力 | @docs/design/architecture_backend.md | バックエンドアーキテクチャ |
18
+ | 入力 | @docs/design/architecture_frontend.md | フロントエンドアーキテクチャ |
19
+ | 入力 | @docs/design/architecture_infrastructure.md | インフラストラクチャアーキテクチャ |
20
+ | 成果物 | `docs/design/tech_stack.md` | 技術スタック一覧 |
17
21
 
18
- ### 2. 成果物
22
+ ## バックエンド技術スタック
19
23
 
20
- - @docs/design/tech_stack.md - 技術スタック一覧
24
+ アーキテクチャパターンに適合する技術を選定する。チームの習熟度とコミュニティの活性度も考慮せよ。
21
25
 
22
- ### 3. 作業内容
26
+ - **言語・フレームワーク**: アーキテクチャパターンのサポート状況を確認して選定する
27
+ - **ORM・データベースドライバ**: データアクセス層の要件に合った技術を選定する
28
+ - **テストフレームワーク**: TDD に必要なモック・アサーションライブラリを含めて選定する
29
+ - **ビルドツール**: ビルド速度とプラグインエコシステムを考慮して選定する
23
30
 
24
- #### バックエンド技術スタック
31
+ ## フロントエンド技術スタック
25
32
 
26
- - 言語・フレームワーク
27
- - ORM・データベースドライバ
28
- - テストフレームワーク
29
- - ビルドツール
33
+ UI 設計とフロントエンドアーキテクチャの要件に基づいて選定する。
30
34
 
31
- #### フロントエンド技術スタック
35
+ - **フレームワーク**: SPA/SSR/SSG の要件に合ったフレームワークを選定する
36
+ - **状態管理ライブラリ**: アプリケーションの状態の複雑さに応じて選定する
37
+ - **UI コンポーネントライブラリ**: デザインシステムとの整合性を考慮する
38
+ - **テストフレームワーク**: ユニットテスト・E2E テストの両方をカバーする
39
+ - **ビルドツール**: バンドルサイズ最適化とビルド速度を考慮する
32
40
 
33
- - フレームワーク
34
- - 状態管理ライブラリ
35
- - UI コンポーネントライブラリ
36
- - テストフレームワーク
37
- - ビルドツール
41
+ ## インフラ技術スタック
38
42
 
39
- #### インフラ技術スタック
43
+ 非機能要件(可用性・スケーラビリティ)を実現する技術を選定する。
40
44
 
41
- - クラウドサービス
42
- - コンテナ技術
43
- - CI/CD ツール
44
- - 監視ツール
45
+ - **クラウドサービス**: コスト・リージョン・サービス充実度で選定する
46
+ - **コンテナ技術**: オーケストレーション方式を含めて選定する
47
+ - **CI/CD ツール**: パイプラインの柔軟性と既存ツールとの連携を考慮する
48
+ - **監視ツール**: 非機能要件の監視項目をカバーできるツールを選定する
45
49
 
46
- #### バージョン管理
50
+ ## バージョン管理
47
51
 
48
- - 各技術のバージョン
49
- - サポート期限
50
- - アップグレード計画
52
+ すべての技術に対してバージョンとサポート期限を記録する。サポート切れの技術を使い続けることはセキュリティリスクに直結する。
51
53
 
52
- ### 4. 出力フォーマット
54
+ - **各技術のバージョン**: LTS バージョンを優先して選定する
55
+ - **サポート期限**: EOL(End of Life)日を記録する
56
+ - **アップグレード計画**: メジャーバージョンアップの時期と影響を事前に把握する
57
+
58
+ ## 出力フォーマット
53
59
 
54
60
  ```markdown
55
- | カテゴリ | 技術 | バージョン | 用途 |
56
- |---------|------|-----------|------|
57
- | 言語 | Java | 25 | バックエンド開発 |
58
- | フレームワーク | Spring Boot | 4.x | Web アプリケーション |
59
- | ORM | MyBatis | 3.x | データアクセス |
60
- | DB | PostgreSQL | 16 | データストア |
61
- | テスト | JUnit 5 | 5.11+ | ユニットテスト |
61
+ | カテゴリ | 技術 | バージョン | 用途 | サポート期限 |
62
+ |---------|------|-----------|------|-------------|
63
+ | 言語 | Java | 25 | バックエンド開発 | 2028-09 |
64
+ | フレームワーク | Spring Boot | 4.x | Web アプリケーション | - |
65
+ | ORM | MyBatis | 3.x | データアクセス | - |
66
+ | DB | PostgreSQL | 16 | データストア | 2028-11 |
67
+ | テスト | JUnit 5 | 5.11+ | ユニットテスト | - |
62
68
  ```
63
69
 
64
- ### 5. 注意事項
65
-
66
- - **前提条件**: アーキテクチャ設計が完了していること
67
- - **制限事項**: LTS バージョンを優先して選定すること
68
- - **推奨事項**: セキュリティパッチの適用計画を含める
70
+ ## 作成の進め方
69
71
 
70
- ### 6. 記述ルール
72
+ 1. アーキテクチャドキュメント(バックエンド・フロントエンド・インフラ)を確認する
73
+ 2. 各レイヤーに最適な技術を選定し、選定理由を記録する
74
+ 3. 表形式で `docs/design/tech_stack.md` として出力する
71
75
 
72
- タスク項目などは一行開けて記述する。
76
+ ## 途中から再開する場合
73
77
 
74
- OK:
78
+ 既存の `docs/design/tech_stack.md` がある場合は、まずその内容を確認する。追加が必要な技術や、バージョン更新が必要な部分のみを修正する。
75
79
 
76
- ```markdown
77
- **受入条件**:
80
+ **Example:**
78
81
 
79
- - [ ] 技術スタック一覧が作成されている
80
- - [ ] バージョン情報が記載されている
81
82
  ```
82
-
83
- NG:
84
-
85
- ```markdown
86
- **受入条件**:
87
- - [ ] 技術スタック一覧が作成されている
88
- - [ ] バージョン情報が記載されている
83
+ ユーザー: 「バックエンドの技術スタックは決めた。フロントエンドを選定したい」
84
+ 回答: 既存の tech_stack.md のバックエンド技術を確認し、
85
+ バックエンド API との連携を考慮してフロントエンド技術を選定する。
86
+ フレームワーク→状態管理→UI ライブラリ→テスト→ビルドの順で選定する。
89
87
  ```
90
88
 
91
- ## Examples
92
-
93
- ### アーキテクチャに基づく技術スタック選定
89
+ ## 注意事項
94
90
 
95
- 1. アーキテクチャドキュメントを読み込む
96
- 2. 各レイヤーに最適な技術を選定
97
- 3. 表形式で技術スタック一覧を作成
91
+ - アーキテクチャ設計が完了していることが前提。未完了でも進めて構わない
92
+ - LTS バージョンを優先し、セキュリティパッチの適用計画を含める
93
+ - 既存プロジェクトの場合は `package.json` や `pom.xml` を確認し、現状を把握してから提案する
94
+ - タスク項目(リスト)の前には空行を入れる(Markdown Lint 準拠)
98
95
 
99
- ### 既存技術スタックの整理
96
+ ## 関連スキル
100
97
 
101
- 1. `package.json` `pom.xml` を確認
102
- 2. 現在の技術スタックを整理し最新化提案を作成
98
+ - `orchestrating-analysis` 分析フェーズ全体のワークフロー案内
99
+ - `analyzing-architecture` — 前段のアーキテクチャ設計(技術選定の基盤)
100
+ - `analyzing-test-strategy` — テストフレームワーク選定との整合性
101
+ - `managing-operations` — 選定技術の環境構築
@@ -1,87 +1,89 @@
1
1
  ---
2
2
  name: analyzing-test-strategy
3
- description: テスト戦略を策定。テストピラミッド設計、テスト種別の定義、カバレッジ目標の設定。テスト計画や品質戦略の検討時に使用。
3
+ description: テストピラミッド設計、テスト種別の定義、カバレッジ目標の設定を含むテスト戦略を策定。「テスト戦略を決めたい」「テスト計画を立てたい」「カバレッジ目標を設定したい」「テストピラミッドを設計したい」「TDD/BDD の方針を決めたい」といった場面で発動する。テスト戦略を先に策定することで、開発中の「何をどこまでテストすべきか」の迷いを排除する。
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/test_strategy.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
+ - **ダイヤモンド型(統合テスト重視)**: マイクロサービスや外部連携が多い場合に適する。サービス間の結合点を重点的にテストする
32
+ - **逆ピラミッド型(E2E 重視)**: UI 中心のアプリケーションやレガシーシステムの保護に適する。ただし実行時間とメンテナンスコストが高いことを認識せよ
26
33
 
27
- - @docs/design/test_strategy.md - テスト戦略
34
+ ## テストレベルの定義
28
35
 
29
- ### 4. 作業内容
36
+ 各テストレベルの責務を明確に定義する。テストレベル間で検証内容が重複すると、テストスイート全体の実行時間が不必要に増える。
30
37
 
31
- #### テスト形状の選択
38
+ - **ユニットテスト**: 単一クラス/関数の振る舞いを検証する。外部依存はモックする
39
+ - **統合テスト**: コンポーネント間の連携を検証する。DB やメッセージキューとの結合を含む
40
+ - **E2E テスト**: ユーザーシナリオに基づいてシステム全体を検証する
41
+ - **受け入れテスト**: ユーザーストーリーの受入条件を検証する
32
42
 
33
- - ピラミッド型(ユニット重視)
34
- - ダイヤモンド型(統合テスト重視)
35
- - 逆ピラミッド型(E2E 重視)
43
+ ## テスト戦略の策定
36
44
 
37
- #### テストレベルの定義
45
+ 具体的な数値目標とツール選定を行う。曖昧な「十分にテストする」ではなく、測定可能な基準を設定せよ。
38
46
 
39
- - ユニットテスト
40
- - 統合テスト
41
- - E2E テスト
42
- - 受け入れテスト
47
+ - **カバレッジ目標**: テストレベルごとのカバレッジ目標を設定する(例: ユニット 80%、統合 60%)
48
+ - **テストツールの選定**: 技術スタックに適合するテストツールを選定する
49
+ - **CI/CD との連携**: テスト実行のタイミングと失敗時の振る舞いを定義する
43
50
 
44
- #### テスト戦略の策定
51
+ ## トレーサビリティの確保
45
52
 
46
- - カバレッジ目標
47
- - テストツールの選定
48
- - CI/CD との連携
53
+ 要件からテストケースまでの追跡を可能にする。「この機能はどのテストで保証されているか」を常に回答可能にせよ。
49
54
 
50
- #### トレーサビリティの確保
55
+ - **要件とテストケースのマッピング**: ユーザーストーリーの受入条件とテストケースを対応づける
51
56
 
52
- - 要件とテストケースのマッピング
57
+ ## 作成の進め方
53
58
 
54
- ### 5. 注意事項
59
+ 1. アーキテクチャドキュメント(バックエンド・フロントエンド)を確認する
60
+ 2. @docs/reference/テスト戦略ガイド.md を読み込む
61
+ 3. テスト形状→テストレベル→カバレッジ目標→ツール選定の順に策定する
62
+ 4. `docs/design/test_strategy.md` として出力する
55
63
 
56
- - **前提条件**: アーキテクチャ設計が完了していること
57
- - **制限事項**: テスト戦略はアーキテクチャパターンに適合させること
58
- - **推奨事項**: TDD/BDD の適用を検討する
64
+ ## 途中から再開する場合
59
65
 
60
- ### 6. 記述ルール
66
+ 既存の `docs/design/test_strategy.md` がある場合は、まずその内容を確認する。不足しているテストレベルの定義や更新が必要な部分のみを修正する。
61
67
 
62
- タスク項目などは一行開けて記述する。
68
+ **Example:**
63
69
 
64
- OK:
65
-
66
- ```markdown
67
- **受入条件**:
68
-
69
- - [ ] テスト形状が選択されている
70
- - [ ] カバレッジ目標が設定されている
71
70
  ```
72
-
73
- NG:
74
-
75
- ```markdown
76
- **受入条件**:
77
- - [ ] テスト形状が選択されている
78
- - [ ] カバレッジ目標が設定されている
71
+ ユーザー: 「テスト形状はピラミッド型に決めた。カバレッジ目標を設定したい」
72
+ 回答: 既存の test_strategy.md のテスト形状を確認し、
73
+ ピラミッド型に基づいてテストレベルごとのカバレッジ目標を設定する。
74
+ ユニット→統合→E2E の順に目標値と測定方法を定義する。
79
75
  ```
80
76
 
81
- ## Examples
77
+ ## 注意事項
78
+
79
+ - アーキテクチャ設計が完了していることが前提。未完了でも進めて構わない
80
+ - テスト戦略はアーキテクチャパターンに適合させる。パターンとの不整合は無駄なテストを生む
81
+ - TDD/BDD の適用を検討し、開発プロセスとテスト戦略を一体化する
82
+ - タスク項目(リスト)の前には空行を入れる(Markdown Lint 準拠)
82
83
 
83
- ### アーキテクチャに適したテスト戦略の策定
84
+ ## 関連スキル
84
85
 
85
- 1. バックエンド・フロントエンドのアーキテクチャを読み込む
86
- 2. @docs/reference/テスト戦略ガイド.md に基づいてテスト戦略を策定
87
- 3. テスト形状、テストレベル、カバレッジ目標を定義
86
+ - `orchestrating-analysis` — 分析フェーズ全体のワークフロー案内
87
+ - `analyzing-architecture` — テスト形状選択の基盤となるアーキテクチャ設計
88
+ - `analyzing-tech-stack` — テストツール選定との整合性
89
+ - `analyzing-non-functional` — 性能テストの基準となる非機能要件
@@ -1,86 +1,80 @@
1
1
  ---
2
2
  name: analyzing-ui-design
3
- description: UI 設計を支援。画面遷移図、画面イメージ、コンポーネント設計。UI/UX 設計やフロントエンド画面の検討時に使用。
3
+ description: PlantUML を使用した画面遷移図・画面イメージ(salt 図)の作成と UI 設計を支援。「画面設計をしたい」「画面遷移図を作りたい」「UI を設計したい」「ワイヤーフレームを作りたい」「画面一覧を整理したい」といった場面で発動する。UI を先に設計することで、フロントエンド実装時の「画面が決まっていない」手戻りを防ぐ。
4
4
  ---
5
5
 
6
- # UI 設計支援
6
+ # UI 設計
7
7
 
8
- 画面遷移図と画面イメージを PlantUML で設計します。
8
+ PlantUML のステートチャート図(画面遷移)と salt 図(画面イメージ)を使用して UI を設計する。
9
9
 
10
- ## Instructions
10
+ UI 設計はユーザーとシステムの接点を定義する活動。ユースケースが「何ができるか」を定義するのに対し、UI 設計は「どのように操作するか」を定義する。画面遷移と画面レイアウトを先に決めることで、フロントエンド実装の方向性が確定する。
11
11
 
12
- ### 1. 参照ドキュメント
12
+ ## 参照ドキュメントとテンプレート
13
13
 
14
- - @docs/reference/UI設計ガイド.md - UI 設計の進め方
14
+ | 種類 | パス | 備考 |
15
+ |------|------|------|
16
+ | ガイド | @docs/reference/UI設計ガイド.md | UI 設計の進め方詳細 |
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/ui_design.md` | UI 設計 |
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/ui_design.md - UI 設計
33
+ ## 画面遷移図作成
28
34
 
29
- ### 4. 作業内容
35
+ PlantUML のステートチャート図を使用して画面間の遷移を定義する。遷移条件(ボタンクリック、バリデーション成功等)を必ず明記せよ。
30
36
 
31
- #### 画面一覧作成
37
+ ## 画面イメージ作成
32
38
 
33
- - ユースケースから必要な画面を識別
34
- - 画面の目的と機能を定義
39
+ PlantUML の salt 図を使用して画面レイアウトを定義する。入力項目・ボタン・表示項目の配置を決定する。ピクセル単位の精度は不要だが、情報の優先順位とグルーピングを正確に表現せよ。
35
40
 
36
- #### 画面遷移図作成
41
+ ## インタラクション設計
37
42
 
38
- - PlantUML のステートチャート図を使用
39
- - 画面間の遷移条件を定義
43
+ ユーザー操作フローとシステムのフィードバックを定義する。エラー時のユーザー体験は正常時以上に重要。
40
44
 
41
- #### 画面イメージ作成
45
+ - **ユーザー操作フローの定義**: 主要な操作シナリオをステップバイステップで記述する
46
+ - **エラー処理・フィードバックの設計**: バリデーションエラー、通信エラー、タイムアウト時の表示と回復方法を定義する
42
47
 
43
- - PlantUML の salt 図を使用
44
- - 入力項目・ボタン・表示項目のレイアウト
48
+ ## 作成の進め方
45
49
 
46
- #### インタラクション設計
50
+ 1. 入力ドキュメント(ユーザーストーリー、フロントエンドアーキテクチャ)を確認する
51
+ 2. @docs/reference/UI設計ガイド.md を読み込む
52
+ 3. 画面一覧→画面遷移図→画面イメージ→インタラクション設計の順に作成する
53
+ 4. `docs/design/ui_design.md` として出力する
47
54
 
48
- - ユーザー操作フローの定義
49
- - エラー処理・フィードバックの設計
55
+ ## 途中から再開する場合
50
56
 
51
- ### 5. 注意事項
57
+ 既存の `docs/design/ui_design.md` がある場合は、まずその内容を確認する。不足している画面や更新が必要な遷移のみを修正する。
52
58
 
53
- - **前提条件**: 要件定義とユースケースが完了していること
54
- - **制限事項**:
55
- - 画面遷移には PlantUML のステートチャート図を使用すること
56
- - 画面イメージには PlantUML の salt 図を使用すること
57
- - **推奨事項**: ユーザビリティを考慮し、一貫性のある UI を設計する
59
+ **Example:**
58
60
 
59
- ### 6. 記述ルール
60
-
61
- タスク項目などは一行開けて記述する。
62
-
63
- OK:
64
-
65
- ```markdown
66
- **受入条件**:
67
-
68
- - [ ] 画面一覧が作成されている
69
- - [ ] 画面遷移図が作成されている
70
61
  ```
71
-
72
- NG:
73
-
74
- ```markdown
75
- **受入条件**:
76
- - [ ] 画面一覧が作成されている
77
- - [ ] 画面遷移図が作成されている
62
+ ユーザー: 「画面一覧は作った。画面遷移図を作りたい」
63
+ 回答: 既存の ui_design.md の画面一覧を確認し、
64
+ 各画面間の遷移を PlantUML ステートチャート図で定義する。
65
+ 遷移条件(ボタン操作・バリデーション結果)を明記する。
78
66
  ```
79
67
 
80
- ## Examples
68
+ ## 注意事項
69
+
70
+ - 要件定義とユースケースが完了していることが前提。未完了でも進めて構わない
71
+ - 画面遷移には PlantUML のステートチャート図、画面イメージには PlantUML の salt 図を使用する
72
+ - ユーザビリティを考慮し、一貫性のある UI を設計する。操作パターンの統一が使いやすさの基本
73
+ - タスク項目(リスト)の前には空行を入れる(Markdown Lint 準拠)
81
74
 
82
- ### ユーザーストーリーに基づく画面設計
75
+ ## 関連スキル
83
76
 
84
- 1. ユーザーストーリーとフロントエンドアーキテクチャを読み込む
85
- 2. @docs/reference/UI設計ガイド.md に基づいて設計
86
- 3. 画面一覧、画面遷移図、画面イメージを作成
77
+ - `orchestrating-analysis` — 分析フェーズ全体のワークフロー案内
78
+ - `analyzing-usecases` — 入力となるユースケース・ユーザーストーリー
79
+ - `analyzing-architecture` — フロントエンドアーキテクチャとの整合性
80
+ - `developing-frontend` — 後続のフロントエンド TDD 実装