@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,89 +1,91 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: analyzing-requirements
|
|
3
|
-
description:
|
|
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
|
-
|
|
10
|
+
RDRA の価値は、要件を「何となくの要望リスト」ではなく「なぜそれが必要か」の根拠付きで構造化できること。各層の出力が次の層の入力になるため、トレーサビリティが自然に確保される。
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
## 参照ドキュメントとテンプレート
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
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
|
-
|
|
22
|
+
## RDRA の 4 層構造
|
|
19
23
|
|
|
20
|
-
|
|
24
|
+
各層は上から下に向かって具体化されていく。上位層が曖昧だと下位層の定義がブレるため、この順序で進めることが重要。
|
|
21
25
|
|
|
22
|
-
###
|
|
26
|
+
### 層 1: システム価値
|
|
23
27
|
|
|
24
|
-
|
|
28
|
+
「なぜこのシステムが必要か」を明確にする。インセプションデッキの「なぜやるのか」をシステムの文脈で具体化する。
|
|
25
29
|
|
|
26
|
-
|
|
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
|
-
|
|
54
|
+
- **情報モデル**: システムが扱う主要なエンティティとリレーション
|
|
55
|
+
- **状態モデル**: 主要エンティティの状態遷移
|
|
52
56
|
|
|
53
|
-
|
|
54
|
-
- **制限事項**: テンプレート @docs/template/要件定義.md は絶対に編集しないこと
|
|
55
|
-
- **推奨事項**: ステークホルダーとの合意形成を行いながら進める
|
|
57
|
+
## 作成の進め方
|
|
56
58
|
|
|
57
|
-
###
|
|
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
|
-
|
|
66
|
+
### 途中から再開・更新
|
|
62
67
|
|
|
63
|
-
|
|
64
|
-
**受入条件**:
|
|
68
|
+
既存の `docs/requirements/requirements_definition.md` がある場合は、まずその内容を確認する。不足している層や更新が必要な部分のみを修正する。
|
|
65
69
|
|
|
66
|
-
|
|
67
|
-
- [ ] 要求モデルが定義されている
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
NG:
|
|
70
|
+
**Example:**
|
|
71
71
|
|
|
72
|
-
```
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
72
|
+
```
|
|
73
|
+
ユーザー: 「システムコンテキストは作った。業務フローを整理したい」
|
|
74
|
+
回答: 層 2(システム外部環境)の業務フロー作成に進む。
|
|
75
|
+
既存のシステムコンテキスト図のアクターを起点に、
|
|
76
|
+
各アクターの業務プロセスを PlantUML アクティビティ図で可視化する。
|
|
76
77
|
```
|
|
77
78
|
|
|
78
|
-
##
|
|
79
|
-
|
|
80
|
-
### 新規プロジェクトで要件定義を開始
|
|
79
|
+
## 注意事項
|
|
81
80
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
81
|
+
- 入力ドキュメントが未作成でも、プロジェクト情報から直接作成可能。完璧な入力を待つより進める方が効果的
|
|
82
|
+
- テンプレートは編集禁止。コピーして成果物を作成する
|
|
83
|
+
- 各層の成果物には PlantUML を活用し、テキストだけでなく図で表現する
|
|
84
|
+
- タスク項目(リスト)の前には空行を入れる(Markdown Lint 準拠)
|
|
85
85
|
|
|
86
|
-
|
|
86
|
+
## 関連スキル
|
|
87
87
|
|
|
88
|
-
|
|
89
|
-
|
|
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
|
-
|
|
10
|
+
技術スタックの選定はプロジェクトの生産性と保守性に直結する。LTS バージョンの選択、サポート期限の把握、アップグレード計画の策定を怠ると、プロジェクト後半でセキュリティリスクと移行コストが膨らむ。
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
## 参照ドキュメントとテンプレート
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
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
|
-
|
|
22
|
+
## バックエンド技術スタック
|
|
19
23
|
|
|
20
|
-
|
|
24
|
+
アーキテクチャパターンに適合する技術を選定する。チームの習熟度とコミュニティの活性度も考慮せよ。
|
|
21
25
|
|
|
22
|
-
|
|
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
|
-
|
|
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
|
-
|
|
65
|
-
|
|
66
|
-
- **前提条件**: アーキテクチャ設計が完了していること
|
|
67
|
-
- **制限事項**: LTS バージョンを優先して選定すること
|
|
68
|
-
- **推奨事項**: セキュリティパッチの適用計画を含める
|
|
70
|
+
## 作成の進め方
|
|
69
71
|
|
|
70
|
-
|
|
72
|
+
1. アーキテクチャドキュメント(バックエンド・フロントエンド・インフラ)を確認する
|
|
73
|
+
2. 各レイヤーに最適な技術を選定し、選定理由を記録する
|
|
74
|
+
3. 表形式で `docs/design/tech_stack.md` として出力する
|
|
71
75
|
|
|
72
|
-
|
|
76
|
+
## 途中から再開する場合
|
|
73
77
|
|
|
74
|
-
|
|
78
|
+
既存の `docs/design/tech_stack.md` がある場合は、まずその内容を確認する。追加が必要な技術や、バージョン更新が必要な部分のみを修正する。
|
|
75
79
|
|
|
76
|
-
|
|
77
|
-
**受入条件**:
|
|
80
|
+
**Example:**
|
|
78
81
|
|
|
79
|
-
- [ ] 技術スタック一覧が作成されている
|
|
80
|
-
- [ ] バージョン情報が記載されている
|
|
81
82
|
```
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
**受入条件**:
|
|
87
|
-
- [ ] 技術スタック一覧が作成されている
|
|
88
|
-
- [ ] バージョン情報が記載されている
|
|
83
|
+
ユーザー: 「バックエンドの技術スタックは決めた。フロントエンドを選定したい」
|
|
84
|
+
回答: 既存の tech_stack.md のバックエンド技術を確認し、
|
|
85
|
+
バックエンド API との連携を考慮してフロントエンド技術を選定する。
|
|
86
|
+
フレームワーク→状態管理→UI ライブラリ→テスト→ビルドの順で選定する。
|
|
89
87
|
```
|
|
90
88
|
|
|
91
|
-
##
|
|
92
|
-
|
|
93
|
-
### アーキテクチャに基づく技術スタック選定
|
|
89
|
+
## 注意事項
|
|
94
90
|
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
91
|
+
- アーキテクチャ設計が完了していることが前提。未完了でも進めて構わない
|
|
92
|
+
- LTS バージョンを優先し、セキュリティパッチの適用計画を含める
|
|
93
|
+
- 既存プロジェクトの場合は `package.json` や `pom.xml` を確認し、現状を把握してから提案する
|
|
94
|
+
- タスク項目(リスト)の前には空行を入れる(Markdown Lint 準拠)
|
|
98
95
|
|
|
99
|
-
|
|
96
|
+
## 関連スキル
|
|
100
97
|
|
|
101
|
-
|
|
102
|
-
|
|
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
|
-
|
|
10
|
+
テスト戦略はアーキテクチャと表裏一体。レイヤードアーキテクチャならピラミッド型、マイクロサービスならダイヤモンド型が適合しやすい。テスト形状を間違えると、テストの実行時間が爆発するか、品質保証が不十分になる。
|
|
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 | ユーザーストーリー |
|
|
22
|
+
| 入力 | @docs/design/architecture_backend.md | バックエンドアーキテクチャ |
|
|
23
|
+
| 入力 | @docs/design/architecture_frontend.md | フロントエンドアーキテクチャ |
|
|
24
|
+
| 成果物 | `docs/design/test_strategy.md` | テスト戦略 |
|
|
15
25
|
|
|
16
|
-
|
|
26
|
+
## テスト形状の選択
|
|
17
27
|
|
|
18
|
-
|
|
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
|
-
|
|
30
|
+
- **ピラミッド型(ユニット重視)**: ビジネスロジックが複雑でドメイン層が厚い場合に適する。ユニットテストを土台に高速なフィードバックを得る
|
|
31
|
+
- **ダイヤモンド型(統合テスト重視)**: マイクロサービスや外部連携が多い場合に適する。サービス間の結合点を重点的にテストする
|
|
32
|
+
- **逆ピラミッド型(E2E 重視)**: UI 中心のアプリケーションやレガシーシステムの保護に適する。ただし実行時間とメンテナンスコストが高いことを認識せよ
|
|
26
33
|
|
|
27
|
-
|
|
34
|
+
## テストレベルの定義
|
|
28
35
|
|
|
29
|
-
|
|
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
|
-
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
**受入条件**:
|
|
77
|
-
- [ ] テスト形状が選択されている
|
|
78
|
-
- [ ] カバレッジ目標が設定されている
|
|
71
|
+
ユーザー: 「テスト形状はピラミッド型に決めた。カバレッジ目標を設定したい」
|
|
72
|
+
回答: 既存の test_strategy.md のテスト形状を確認し、
|
|
73
|
+
ピラミッド型に基づいてテストレベルごとのカバレッジ目標を設定する。
|
|
74
|
+
ユニット→統合→E2E の順に目標値と測定方法を定義する。
|
|
79
75
|
```
|
|
80
76
|
|
|
81
|
-
##
|
|
77
|
+
## 注意事項
|
|
78
|
+
|
|
79
|
+
- アーキテクチャ設計が完了していることが前提。未完了でも進めて構わない
|
|
80
|
+
- テスト戦略はアーキテクチャパターンに適合させる。パターンとの不整合は無駄なテストを生む
|
|
81
|
+
- TDD/BDD の適用を検討し、開発プロセスとテスト戦略を一体化する
|
|
82
|
+
- タスク項目(リスト)の前には空行を入れる(Markdown Lint 準拠)
|
|
82
83
|
|
|
83
|
-
|
|
84
|
+
## 関連スキル
|
|
84
85
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
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
|
|
3
|
+
description: PlantUML を使用した画面遷移図・画面イメージ(salt 図)の作成と UI 設計を支援。「画面設計をしたい」「画面遷移図を作りたい」「UI を設計したい」「ワイヤーフレームを作りたい」「画面一覧を整理したい」といった場面で発動する。UI を先に設計することで、フロントエンド実装時の「画面が決まっていない」手戻りを防ぐ。
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# UI
|
|
6
|
+
# UI 設計
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
PlantUML のステートチャート図(画面遷移)と salt 図(画面イメージ)を使用して UI を設計する。
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
UI 設計はユーザーとシステムの接点を定義する活動。ユースケースが「何ができるか」を定義するのに対し、UI 設計は「どのように操作するか」を定義する。画面遷移と画面レイアウトを先に決めることで、フロントエンド実装の方向性が確定する。
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
## 参照ドキュメントとテンプレート
|
|
13
13
|
|
|
14
|
-
|
|
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
|
-
|
|
26
|
+
## 画面一覧作成
|
|
17
27
|
|
|
18
|
-
|
|
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
|
-
|
|
30
|
+
- **ユースケースからの画面識別**: 各ユースケースのアクターが操作する画面を列挙する
|
|
31
|
+
- **画面の目的と機能の定義**: 各画面で「何を見る」「何を操作する」を明確にする
|
|
26
32
|
|
|
27
|
-
|
|
33
|
+
## 画面遷移図作成
|
|
28
34
|
|
|
29
|
-
|
|
35
|
+
PlantUML のステートチャート図を使用して画面間の遷移を定義する。遷移条件(ボタンクリック、バリデーション成功等)を必ず明記せよ。
|
|
30
36
|
|
|
31
|
-
|
|
37
|
+
## 画面イメージ作成
|
|
32
38
|
|
|
33
|
-
|
|
34
|
-
- 画面の目的と機能を定義
|
|
39
|
+
PlantUML の salt 図を使用して画面レイアウトを定義する。入力項目・ボタン・表示項目の配置を決定する。ピクセル単位の精度は不要だが、情報の優先順位とグルーピングを正確に表現せよ。
|
|
35
40
|
|
|
36
|
-
|
|
41
|
+
## インタラクション設計
|
|
37
42
|
|
|
38
|
-
|
|
39
|
-
- 画面間の遷移条件を定義
|
|
43
|
+
ユーザー操作フローとシステムのフィードバックを定義する。エラー時のユーザー体験は正常時以上に重要。
|
|
40
44
|
|
|
41
|
-
|
|
45
|
+
- **ユーザー操作フローの定義**: 主要な操作シナリオをステップバイステップで記述する
|
|
46
|
+
- **エラー処理・フィードバックの設計**: バリデーションエラー、通信エラー、タイムアウト時の表示と回復方法を定義する
|
|
42
47
|
|
|
43
|
-
|
|
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
|
-
|
|
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
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
**受入条件**:
|
|
76
|
-
- [ ] 画面一覧が作成されている
|
|
77
|
-
- [ ] 画面遷移図が作成されている
|
|
62
|
+
ユーザー: 「画面一覧は作った。画面遷移図を作りたい」
|
|
63
|
+
回答: 既存の ui_design.md の画面一覧を確認し、
|
|
64
|
+
各画面間の遷移を PlantUML ステートチャート図で定義する。
|
|
65
|
+
遷移条件(ボタン操作・バリデーション結果)を明記する。
|
|
78
66
|
```
|
|
79
67
|
|
|
80
|
-
##
|
|
68
|
+
## 注意事項
|
|
69
|
+
|
|
70
|
+
- 要件定義とユースケースが完了していることが前提。未完了でも進めて構わない
|
|
71
|
+
- 画面遷移には PlantUML のステートチャート図、画面イメージには PlantUML の salt 図を使用する
|
|
72
|
+
- ユーザビリティを考慮し、一貫性のある UI を設計する。操作パターンの統一が使いやすさの基本
|
|
73
|
+
- タスク項目(リスト)の前には空行を入れる(Markdown Lint 準拠)
|
|
81
74
|
|
|
82
|
-
|
|
75
|
+
## 関連スキル
|
|
83
76
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
77
|
+
- `orchestrating-analysis` — 分析フェーズ全体のワークフロー案内
|
|
78
|
+
- `analyzing-usecases` — 入力となるユースケース・ユーザーストーリー
|
|
79
|
+
- `analyzing-architecture` — フロントエンドアーキテクチャとの整合性
|
|
80
|
+
- `developing-frontend` — 後続のフロントエンド TDD 実装
|