yodogawa 2.0.0 → 2.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +39 -0
- package/LICENSE +21 -0
- package/README.md +66 -22
- package/bin/cli.js +3 -7
- package/package.json +2 -2
- package/scripts/create-task.sh +77 -0
- package/scripts/init-project-docs.sh +90 -0
- package/scripts/init-task-doc.sh +77 -0
- package/skills/a-001-setup-doc-structure/SKILL.md +67 -100
- package/skills/a-001-setup-doc-structure/reference/directory-structure.md +48 -0
- package/skills/a-002-initialize-project/SKILL.md +125 -289
- package/skills/a-002-initialize-project/examples/nfr-baseline.md +38 -0
- package/skills/a-002-initialize-project/reference/hearing-questions.md +92 -0
- package/skills/a-002-initialize-project/reference/structure-check.md +48 -0
- package/skills/a-003-create-scenarios/SKILL.md +99 -142
- package/skills/a-003-create-scenarios/examples/gherkin-templates.md +71 -0
- package/skills/a-003-create-scenarios/reference/structure-check.md +46 -0
- package/skills/a-004-define-domain-model/SKILL.md +99 -144
- package/skills/a-004-define-domain-model/reference/event-storming-guide.md +71 -0
- package/skills/a-005-create-domain-diagram/SKILL.md +94 -120
- package/skills/a-005-create-domain-diagram/examples/mermaid-templates.md +73 -0
- package/skills/a-005-create-domain-diagram/reference/structure-check.md +43 -0
- package/skills/a-006-review-requirements-domain/SKILL.md +85 -144
- package/skills/a-006-review-requirements-domain/examples/review-report-template.md +58 -0
- package/skills/a-006-review-requirements-domain/reference/consistency-checks.md +60 -0
- package/skills/a-007-define-tech-stack/SKILL.md +102 -130
- package/skills/a-007-define-tech-stack/examples/stack-interview.md +83 -0
- package/skills/a-007-define-tech-stack/reference/structure-check.md +51 -0
- package/skills/a-008-define-repository-structure/SKILL.md +99 -129
- package/skills/a-008-define-repository-structure/examples/structure-templates.md +108 -0
- package/skills/a-008-define-repository-structure/reference/structure-check.md +55 -0
- package/skills/a-009-define-screen-design/SKILL.md +106 -130
- package/skills/a-009-define-screen-design/examples/screen-templates.md +66 -0
- package/skills/a-009-define-screen-design/reference/structure-check.md +47 -0
- package/skills/a-010-define-design-system/SKILL.md +134 -212
- package/skills/a-010-define-design-system/examples/css-tokens.md +71 -0
- package/skills/a-010-define-design-system/reference/component-catalog.md +44 -0
- package/skills/a-011-define-data-model/SKILL.md +121 -134
- package/skills/a-011-define-data-model/examples/erd-templates.md +108 -0
- package/skills/a-011-define-data-model/reference/structure-check.md +56 -0
- package/skills/a-012-define-api-spec/SKILL.md +108 -132
- package/skills/a-012-define-api-spec/examples/api-templates.md +117 -0
- package/skills/a-012-define-api-spec/reference/structure-check.md +49 -0
- package/skills/a-013-define-architecture/SKILL.md +101 -128
- package/skills/a-013-define-architecture/examples/architecture-templates.md +98 -0
- package/skills/a-013-define-architecture/reference/structure-check.md +53 -0
- package/skills/a-014-define-infrastructure/SKILL.md +113 -130
- package/skills/a-014-define-infrastructure/examples/infrastructure-templates.md +97 -0
- package/skills/a-014-define-infrastructure/reference/structure-check.md +63 -0
- package/skills/a-015-review-design/SKILL.md +88 -140
- package/skills/a-015-review-design/examples/review-report-template.md +59 -0
- package/skills/a-015-review-design/reference/consistency-checks.md +47 -0
- package/skills/b-001-create-task-directory/SKILL.md +62 -78
- package/skills/b-001-create-task-directory/examples/naming-convention.md +39 -0
- package/skills/b-002-create-task-definition/SKILL.md +115 -172
- package/skills/b-002-create-task-definition/examples/hearing-and-criteria.md +49 -0
- package/skills/b-002-create-task-definition/reference/structure-check.md +42 -0
- package/skills/b-003-create-task-research/SKILL.md +129 -454
- package/skills/b-003-create-task-research/examples/research-tables.md +63 -0
- package/skills/b-003-create-task-research/reference/investigation-guide.md +106 -0
- package/skills/b-004-create-task-implementation/SKILL.md +99 -100
- package/skills/b-004-create-task-implementation/examples/phase-step-template.md +57 -0
- package/skills/b-004-create-task-implementation/reference/structure-check.md +34 -0
- package/skills/b-005-review-task/SKILL.md +117 -324
- package/skills/b-005-review-task/examples/review-report-template.md +62 -0
- package/skills/b-005-review-task/reference/assessment-criteria.md +79 -0
- package/skills/b-005-review-task/reference/consistency-checks.md +69 -0
- package/skills/c-001-implement-task/SKILL.md +186 -521
- package/skills/c-001-implement-task/examples/commit-and-pr.md +92 -0
- package/skills/c-001-implement-task/examples/task-list-format.md +50 -0
- package/skills/c-001-implement-task/reference/implementation-loop.md +65 -0
- package/skills/c-001-implement-task/reference/validation-loop.md +66 -0
- package/skills/c-002-update-documentation/SKILL.md +159 -853
- package/skills/c-002-update-documentation/examples/project-doc-updates.md +190 -0
- package/skills/c-002-update-documentation/examples/task-doc-updates.md +102 -0
- package/skills/c-002-update-documentation/reference/doc-structure-and-checks.md +100 -0
- package/templates/tasks/task-template/a-definition.md +1 -1
- package/templates/tasks/task-template/b-research.md +1 -1
- package/templates/tasks/task-template/c-implementation.md +2 -2
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# 非機能要件の標準ベースライン
|
|
2
|
+
|
|
3
|
+
SKILL.md 手順6で「標準的な設定で仮置き」する際の提案値。
|
|
4
|
+
|
|
5
|
+
## Web アプリケーションの一般的な目標値
|
|
6
|
+
|
|
7
|
+
### パフォーマンス
|
|
8
|
+
|
|
9
|
+
- ページ読み込み: 3 秒以内
|
|
10
|
+
- API 応答: 500ms 以内
|
|
11
|
+
|
|
12
|
+
### セキュリティ
|
|
13
|
+
|
|
14
|
+
- HTTPS 必須
|
|
15
|
+
- パスワードはハッシュ化(bcrypt 推奨)
|
|
16
|
+
- 認証方式: 基本認証 / OAuth
|
|
17
|
+
|
|
18
|
+
### 可用性
|
|
19
|
+
|
|
20
|
+
- 稼働率: 99.5%(平日日中)
|
|
21
|
+
- 日次バックアップ
|
|
22
|
+
|
|
23
|
+
### スケーラビリティ
|
|
24
|
+
|
|
25
|
+
- 想定同時接続数の 2 倍のバースト耐性
|
|
26
|
+
- 水平スケーリング可能なアーキテクチャ
|
|
27
|
+
|
|
28
|
+
### ユーザビリティ
|
|
29
|
+
|
|
30
|
+
- WCAG 2.1 レベル AA 準拠(アクセシビリティ)
|
|
31
|
+
- 対応ブラウザ: 最新 2 バージョン(Chrome / Safari / Edge / Firefox)
|
|
32
|
+
- レスポンシブデザイン(PC / タブレット / モバイル)
|
|
33
|
+
|
|
34
|
+
### 保守性
|
|
35
|
+
|
|
36
|
+
- 構造化ログ(JSON 形式)
|
|
37
|
+
- 監視: APM + アラート通知
|
|
38
|
+
- デプロイ: 日次 or オンデマンド
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
# ヒアリング質問集
|
|
2
|
+
|
|
3
|
+
SKILL.md 手順3〜7で各テンプレートに記入する際のヒアリング質問一覧。
|
|
4
|
+
|
|
5
|
+
## 手順3: システム概要
|
|
6
|
+
|
|
7
|
+
### 背景
|
|
8
|
+
|
|
9
|
+
- 「このシステムで解決しようとしている**具体的な問題や課題**は何ですか?」
|
|
10
|
+
- 「その問題はなぜ重要ですか?放置した場合のリスクは?」
|
|
11
|
+
- 「問題の影響を受けるステークホルダー(ユーザー、組織、チームなど)は誰ですか?」
|
|
12
|
+
- 「具体的な数値やデータ(作業時間、コスト、離脱率など)があれば教えてください。」
|
|
13
|
+
|
|
14
|
+
### 目的
|
|
15
|
+
|
|
16
|
+
- 「このシステムが提供する**具体的な価値や解決策**は何ですか?」
|
|
17
|
+
- 「期待される成果や変化を、測定可能な形で表現できますか?(例: 作業時間 50%削減)」
|
|
18
|
+
- 「どのように問題を解決するか、具体的なメカニズムや仕組みを教えてください。」
|
|
19
|
+
|
|
20
|
+
## 手順4: 実装済み機能一覧
|
|
21
|
+
|
|
22
|
+
### コード調査のヒントと提案
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
find src app lib -maxdepth 2 -type d 2>/dev/null
|
|
26
|
+
find . -type f -name "*Controller*" -o -name "*Service*" -o -name "*Component*" | head -n 20
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
提案例:
|
|
30
|
+
|
|
31
|
+
- 「`src/auth` ディレクトリが見つかりました。認証機能(ログイン、登録など)は実装済みですか?」
|
|
32
|
+
- 「`PaymentController` があります。決済機能は稼働していますか?」
|
|
33
|
+
|
|
34
|
+
### ヒアリング項目
|
|
35
|
+
|
|
36
|
+
- 「既に実装済みの機能はありますか?(提案した機能含む)」
|
|
37
|
+
- **Category 1**(大分類: ユーザー管理、コンテンツなど)
|
|
38
|
+
- **Category 2**(中分類: 認証、プロフィールなど)
|
|
39
|
+
- **機能名**(ユーザー視点の名称)
|
|
40
|
+
- **説明**(何ができるか)
|
|
41
|
+
- **機能 ID**(FN-XXX 形式、連番)
|
|
42
|
+
|
|
43
|
+
## 手順5: 予定機能一覧
|
|
44
|
+
|
|
45
|
+
### 差分分析からの提案例
|
|
46
|
+
|
|
47
|
+
- 「システム概要で『〇〇機能』への言及がありましたが、まだ実装されていないようです。予定機能に追加しますか?」
|
|
48
|
+
- 「現在の実装に『××』が含まれていますが、関連する『△△機能』は将来的に必要ですか?」
|
|
49
|
+
|
|
50
|
+
### ヒアリング項目
|
|
51
|
+
|
|
52
|
+
- **Category 1** / **Category 2**
|
|
53
|
+
- **機能名**(アイデア段階でも可)
|
|
54
|
+
- **説明**(目的や価値を中心に)
|
|
55
|
+
|
|
56
|
+
※ 機能 ID・優先度はこの段階では確定させず、柔軟性を重視して記載しない。
|
|
57
|
+
|
|
58
|
+
## 手順6: 非機能要件
|
|
59
|
+
|
|
60
|
+
### パフォーマンス
|
|
61
|
+
|
|
62
|
+
- 「ページ読み込み時間の目標は?」
|
|
63
|
+
- 「API レスポンス時間の目標は?」
|
|
64
|
+
- 「想定される同時接続ユーザー数、データ量は?」
|
|
65
|
+
|
|
66
|
+
### セキュリティ
|
|
67
|
+
|
|
68
|
+
- 「認証方式、機密データの扱い、コンプライアンス要件は?」
|
|
69
|
+
|
|
70
|
+
### 可用性・信頼性
|
|
71
|
+
|
|
72
|
+
- 「稼働率目標、許容ダウンタイム、バックアップ要件は?」
|
|
73
|
+
|
|
74
|
+
### スケーラビリティ
|
|
75
|
+
|
|
76
|
+
- 「ユーザー数の成長予測、ピーク時のトラフィック想定は?」
|
|
77
|
+
|
|
78
|
+
### ユーザビリティ・保守性
|
|
79
|
+
|
|
80
|
+
- 「アクセシビリティ、対応言語、デバイス、ブラウザは?」
|
|
81
|
+
- 「ログ・監視要件、デプロイ頻度は?」
|
|
82
|
+
|
|
83
|
+
## 手順7: ユーザーストーリー
|
|
84
|
+
|
|
85
|
+
### 提案テンプレート
|
|
86
|
+
|
|
87
|
+
「[役割]として、[〇〇機能]を使いたい、なぜなら[価値]だから」
|
|
88
|
+
|
|
89
|
+
### ヒアリング項目
|
|
90
|
+
|
|
91
|
+
- 「他に主要なユーザージャーニーがあれば教えてください([役割]として、[目的]がしたい、なぜなら[理由])」
|
|
92
|
+
- 各ストーリーの優先度、受け入れ基準
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# 構造チェックコマンド集
|
|
2
|
+
|
|
3
|
+
SKILL.md 手順9で使う、生成済みドキュメントの構造確認用コマンド。
|
|
4
|
+
|
|
5
|
+
## 5ドキュメントの必須セクション/テーブル検証
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
# 01-system-overview.md: 主要セクションの確認
|
|
9
|
+
grep "## 背景" docs/project/01-requirements/01-system-overview.md && echo "OK" || echo "MISSING: 背景"
|
|
10
|
+
grep "## 目的" docs/project/01-requirements/01-system-overview.md && echo "OK" || echo "MISSING: 目的"
|
|
11
|
+
|
|
12
|
+
# 02-features-implemented.md: テーブルヘッダー
|
|
13
|
+
grep "| 機能ID | Category 1 |" docs/project/01-requirements/02-features-implemented.md \
|
|
14
|
+
&& echo "OK" || echo "MISSING: Table Header"
|
|
15
|
+
|
|
16
|
+
# 03-features-planned.md: テーブルヘッダー
|
|
17
|
+
grep "| Category 1 | Category 2 |" docs/project/01-requirements/03-features-planned.md \
|
|
18
|
+
&& echo "OK" || echo "MISSING: Table Header"
|
|
19
|
+
|
|
20
|
+
# 04-non-functional-requirements.md: テーブルヘッダー
|
|
21
|
+
grep "| カテゴリ | 要件 |" docs/project/01-requirements/04-non-functional-requirements.md \
|
|
22
|
+
&& echo "OK" || echo "MISSING: Table Header"
|
|
23
|
+
|
|
24
|
+
# 05-user-stories.md: テーブルヘッダー
|
|
25
|
+
grep "| ストーリーID | ストーリー |" docs/project/01-requirements/05-user-stories.md \
|
|
26
|
+
&& echo "OK" || echo "MISSING: Table Header"
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## チェックリスト
|
|
30
|
+
|
|
31
|
+
- [ ] すべてのファイルが存在する
|
|
32
|
+
- [ ] 各ファイルがテンプレートの基本構造を維持している(主要セクション・テーブル)
|
|
33
|
+
- [ ] プレースホルダーが適切な内容に置き換わっている
|
|
34
|
+
|
|
35
|
+
## Git への追加(オプション)
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
git add docs/project/01-requirements/
|
|
39
|
+
git status
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
推奨コミットメッセージ:
|
|
43
|
+
|
|
44
|
+
```
|
|
45
|
+
docs: 要件定義ドキュメントの作成
|
|
46
|
+
|
|
47
|
+
- システム概要、機能要件、非機能要件、ユーザーストーリーを追加
|
|
48
|
+
```
|
|
@@ -1,142 +1,99 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: a-003-create-scenarios
|
|
3
|
-
description:
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
grep "Feature:" docs/project/behavior/01-scenarios.md && echo "OK" || echo "MISSING: Feature definition"
|
|
101
|
-
# Scenario定義の確認
|
|
102
|
-
grep "Scenario:" docs/project/behavior/01-scenarios.md && echo "OK" || echo "MISSING: Scenario definition"
|
|
103
|
-
```
|
|
104
|
-
|
|
105
|
-
2. **チェックリスト**:
|
|
106
|
-
- [ ] `docs/project/behavior/01-scenarios.md` が作成されている
|
|
107
|
-
- [ ] シナリオ一覧テーブルが更新されている
|
|
108
|
-
- [ ] 各FeatureがGherkin形式で記述されている
|
|
109
|
-
- [ ] 正常系と異常系のシナリオが網羅されている
|
|
110
|
-
|
|
111
|
-
### 8. Git への追加(オプション)
|
|
112
|
-
|
|
113
|
-
- ユーザーに確認:「作成したシナリオドキュメントを Git に追加しますか?」
|
|
114
|
-
- 「はい」の場合、以下を実行:
|
|
115
|
-
|
|
116
|
-
```bash
|
|
117
|
-
git add docs/project/behavior/
|
|
118
|
-
git status
|
|
119
|
-
```
|
|
120
|
-
|
|
121
|
-
- 推奨コミットメッセージ:
|
|
122
|
-
|
|
123
|
-
```
|
|
124
|
-
docs: 振る舞い仕様(シナリオ)の作成
|
|
125
|
-
|
|
126
|
-
- ユーザーストーリーに基づくGherkinシナリオを追加
|
|
127
|
-
- 正常系・異常系・境界値ケースを定義
|
|
128
|
-
```
|
|
129
|
-
|
|
130
|
-
## 完了条件
|
|
131
|
-
|
|
132
|
-
- `docs/project/behavior/01-scenarios.md` が作成されている。
|
|
133
|
-
- ユーザーストーリーに対応する具体的なシナリオ(Given-When-Then)が記述されている。
|
|
134
|
-
- シナリオ一覧テーブルがメンテナンスされている。
|
|
135
|
-
- ユーザーが内容を承認している。
|
|
136
|
-
|
|
137
|
-
## エスカレーション
|
|
138
|
-
|
|
139
|
-
- ユーザーストーリーが不明確でシナリオ化できない場合:
|
|
140
|
-
- 「ユーザーストーリーの詳細化が必要です。`InitializeProject` ワークフローに戻って要件を明確にしましょう。」と提案する。
|
|
141
|
-
- 実装詳細への依存が強すぎる場合:
|
|
142
|
-
- 「UI操作(ボタンクリック等)ではなく、ユーザーの意図(登録する等)に焦点を当てた記述に変更しましょう。」とリファクタリングを提案する。
|
|
1
|
+
---
|
|
2
|
+
name: a-003-create-scenarios
|
|
3
|
+
description: ユーザーストーリーから Gherkin 形式のシナリオを生成し、BDD で振る舞いを定義する。要件定義後、ドメインモデル設計前の振る舞い明確化に使用。
|
|
4
|
+
disable-model-invocation: true
|
|
5
|
+
allowed-tools: Read, Write, Edit, Bash, Grep, Glob
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# CreateScenarios (a-003)
|
|
9
|
+
|
|
10
|
+
## 目的
|
|
11
|
+
|
|
12
|
+
- ユーザーストーリーから具体的なシナリオ(振る舞い)を抽出し、Gherkin 形式で記述する。
|
|
13
|
+
- Given-When-Then 構造で、開発者・QA・ステークホルダーが共通理解できる実行可能なドキュメントを作成する。
|
|
14
|
+
- ハッピーパス(正常系)からエラーケース、境界値テストまでを網羅的に定義する。
|
|
15
|
+
|
|
16
|
+
## 前提
|
|
17
|
+
|
|
18
|
+
- `docs/project/01-requirements/05-user-stories.md` が作成されていること(`/a-002-initialize-project` 実行済み)。
|
|
19
|
+
- `docs/project/02-behavior/` ディレクトリが存在すること(未作成なら `/a-001-setup-doc-structure`)。
|
|
20
|
+
- ユーザーが各機能の具体的な動作例を説明できること。
|
|
21
|
+
|
|
22
|
+
## 手順
|
|
23
|
+
|
|
24
|
+
### 1. ディレクトリと前提条件の確認
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
ls -la docs/project/02-behavior/ 2>/dev/null || echo "ディレクトリが存在しません"
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
`docs/project/01-requirements/05-user-stories.md` を読み込み、シナリオ化対象を把握する。
|
|
31
|
+
|
|
32
|
+
### 2. テンプレートの準備
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
SCRIPT_DIR=$(for d in .claude .agents; do [ -d "$d" ] && echo "$d" && break; done)
|
|
36
|
+
cp "$SCRIPT_DIR/templates/project/02-behavior/01-scenarios.md" "docs/project/02-behavior/01-scenarios.md"
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### 3. 分析と提案
|
|
40
|
+
|
|
41
|
+
ユーザーストーリーを機能(Feature)単位にグルーピングし、ハッピーパスと代表的なエラーケースの案を提示。
|
|
42
|
+
|
|
43
|
+
- 「機能: [機能名] (US-XXX)」
|
|
44
|
+
- 「シナリオ案1: [ハッピーパス] / シナリオ案2: [エラーケース]」
|
|
45
|
+
|
|
46
|
+
### 4. ヒアリングと記入
|
|
47
|
+
|
|
48
|
+
機能ごとに以下を詰めて `docs/project/02-behavior/01-scenarios.md` を更新する。Gherkin 記述例は [examples/gherkin-templates.md](examples/gherkin-templates.md) を参照。
|
|
49
|
+
|
|
50
|
+
- **Feature 情報**: 機能名、As a/I want/So that、Background(共通前提)
|
|
51
|
+
- **ハッピーパス**: Given-When-Then で最も基本的な成功シナリオ
|
|
52
|
+
- **エラーケース・境界値**: 必要に応じて Scenario Outline(Examples テーブル)を使用
|
|
53
|
+
- **タグ付け**: `@SC-XXX` ID 採番、`@smoke` `@happy-path` `@error-handling` 等
|
|
54
|
+
|
|
55
|
+
UI 操作の詳細ではなく、ユーザーの意図を記述するよう注意する。
|
|
56
|
+
|
|
57
|
+
### 5. シナリオ一覧テーブルの更新
|
|
58
|
+
|
|
59
|
+
ドキュメント冒頭の一覧テーブルに、全シナリオの ID・機能・シナリオ名・優先度を記載する。テーブル例は [examples/gherkin-templates.md](examples/gherkin-templates.md#シナリオ一覧テーブル例) を参照。
|
|
60
|
+
|
|
61
|
+
### 6. レビューと確認
|
|
62
|
+
|
|
63
|
+
ユーザーに提示し、実際の動作の正確性、抜け漏れ、非技術者への理解可能性を確認する。質問例は [reference/structure-check.md](reference/structure-check.md#レビュー確認質問) を参照。
|
|
64
|
+
|
|
65
|
+
### 7. 構造チェック
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
grep "Feature:" docs/project/02-behavior/01-scenarios.md \
|
|
69
|
+
&& grep "Scenario:" docs/project/02-behavior/01-scenarios.md \
|
|
70
|
+
&& echo "OK" || echo "MISSING SECTION"
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
詳細なチェックリストは [reference/structure-check.md](reference/structure-check.md#チェックリスト) を参照。
|
|
74
|
+
|
|
75
|
+
### 8. Git への追加(任意)
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
git add docs/project/02-behavior/
|
|
79
|
+
git commit -m "docs: 振る舞い仕様(シナリオ)の作成"
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
詳細は [reference/structure-check.md](reference/structure-check.md#git-への追加任意) を参照。
|
|
83
|
+
|
|
84
|
+
## 完了条件
|
|
85
|
+
|
|
86
|
+
- `docs/project/02-behavior/01-scenarios.md` が作成されている。
|
|
87
|
+
- ユーザーストーリーに対応する具体的なシナリオ(Given-When-Then)が記述されている。
|
|
88
|
+
- シナリオ一覧テーブルがメンテナンスされている。
|
|
89
|
+
- ユーザーが内容を承認している。
|
|
90
|
+
|
|
91
|
+
## エスカレーション
|
|
92
|
+
|
|
93
|
+
- **ユーザーストーリーが不明確でシナリオ化できない**: 「`/a-002-initialize-project` に戻って要件を明確にしましょう。」
|
|
94
|
+
- **実装詳細への依存が強すぎる**: 「UI 操作(ボタンクリック等)ではなく、ユーザーの意図(登録する等)に焦点を当てた記述に変更しましょう。」
|
|
95
|
+
|
|
96
|
+
## 参考
|
|
97
|
+
|
|
98
|
+
- [examples/gherkin-templates.md](examples/gherkin-templates.md) — Feature / Scenario / Scenario Outline の記述例、タグ付けガイド、一覧テーブル例
|
|
99
|
+
- [reference/structure-check.md](reference/structure-check.md) — 構造確認コマンド、チェックリスト、レビュー観点、Git 追加例
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# Gherkin シナリオ記述例とタグ
|
|
2
|
+
|
|
3
|
+
SKILL.md 手順3〜5 で使用する Gherkin 形式のテンプレートとタグ付けのサンプル。
|
|
4
|
+
|
|
5
|
+
## Feature 定義の形式
|
|
6
|
+
|
|
7
|
+
```gherkin
|
|
8
|
+
Feature: [機能名]
|
|
9
|
+
As a [役割]
|
|
10
|
+
I want [やりたいこと]
|
|
11
|
+
So that [得られる価値]
|
|
12
|
+
|
|
13
|
+
Background:
|
|
14
|
+
Given [共通の前提条件]
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## ハッピーパスのシナリオ例
|
|
18
|
+
|
|
19
|
+
```gherkin
|
|
20
|
+
@SC-001 @smoke @happy-path
|
|
21
|
+
Scenario: 正常にログインできる
|
|
22
|
+
Given ユーザーは登録済みである
|
|
23
|
+
When 正しいメールアドレスとパスワードを入力する
|
|
24
|
+
And ログインボタンを押下する
|
|
25
|
+
Then ダッシュボード画面が表示される
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
- UI 操作(「ボタンをクリック」)ではなく、ユーザーの意図(「ログインする」)を優先する。
|
|
29
|
+
- 複数ステップは `And` / `But` で繋ぐ。
|
|
30
|
+
|
|
31
|
+
## エラーケース・境界値(Scenario Outline)
|
|
32
|
+
|
|
33
|
+
```gherkin
|
|
34
|
+
@SC-002 @error-handling
|
|
35
|
+
Scenario Outline: 不正な入力でログインに失敗する
|
|
36
|
+
Given ユーザーは登録済みである
|
|
37
|
+
When <email> と <password> を入力する
|
|
38
|
+
Then <message> が表示される
|
|
39
|
+
|
|
40
|
+
Examples:
|
|
41
|
+
| email | password | message |
|
|
42
|
+
| invalid@mail | correctPw1 | メール形式が不正です |
|
|
43
|
+
| test@example.com | | パスワードが必要です |
|
|
44
|
+
| test@example.com | wrong | 認証に失敗しました |
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## タグ付けガイド
|
|
48
|
+
|
|
49
|
+
- `@SC-XXX`: シナリオ ID(必須)
|
|
50
|
+
- `@smoke`: リリース前の最小確認対象
|
|
51
|
+
- `@happy-path`: 正常系
|
|
52
|
+
- `@error-handling`: エラーケース
|
|
53
|
+
- `@regression`: 実装済み機能のリグレッション
|
|
54
|
+
- 優先度別: `@high`, `@medium`, `@low`
|
|
55
|
+
|
|
56
|
+
## シナリオ一覧テーブル例
|
|
57
|
+
|
|
58
|
+
| シナリオID | 機能 | シナリオ名 | 優先度 |
|
|
59
|
+
|:--|:--|:--|:--|
|
|
60
|
+
| SC-001 | 認証 | 正常ログイン | High |
|
|
61
|
+
| SC-002 | 認証 | 入力エラー | High |
|
|
62
|
+
| SC-003 | 登録 | メール認証完了 | Medium |
|
|
63
|
+
|
|
64
|
+
## コミットメッセージ例
|
|
65
|
+
|
|
66
|
+
```text
|
|
67
|
+
docs: 振る舞い仕様(シナリオ)の作成
|
|
68
|
+
|
|
69
|
+
- ユーザーストーリーに基づく Gherkin シナリオを追加
|
|
70
|
+
- 正常系・異常系・境界値ケースを定義
|
|
71
|
+
```
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# 構造チェックとレビュー観点
|
|
2
|
+
|
|
3
|
+
SKILL.md 手順6〜7 で使う構造確認コマンドとレビュー観点。
|
|
4
|
+
|
|
5
|
+
## セクション存在確認
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
# シナリオ一覧テーブルの確認
|
|
9
|
+
grep "| シナリオID | 機能 |" docs/project/02-behavior/01-scenarios.md && echo "OK" || echo "MISSING: Table Header"
|
|
10
|
+
# Feature 定義の確認
|
|
11
|
+
grep "Feature:" docs/project/02-behavior/01-scenarios.md && echo "OK" || echo "MISSING: Feature definition"
|
|
12
|
+
# Scenario 定義の確認
|
|
13
|
+
grep "Scenario:" docs/project/02-behavior/01-scenarios.md && echo "OK" || echo "MISSING: Scenario definition"
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## チェックリスト
|
|
17
|
+
|
|
18
|
+
- [ ] `docs/project/02-behavior/01-scenarios.md` が作成されている
|
|
19
|
+
- [ ] シナリオ一覧テーブルが更新されている
|
|
20
|
+
- [ ] 各 Feature が Gherkin 形式で記述されている
|
|
21
|
+
- [ ] 正常系と異常系のシナリオが網羅されている
|
|
22
|
+
- [ ] Empty State や境界値も考慮されている
|
|
23
|
+
- [ ] タグ(@SC-XXX, @smoke 等)が付与されている
|
|
24
|
+
|
|
25
|
+
## レビュー確認質問
|
|
26
|
+
|
|
27
|
+
- 「シナリオは実際の動作を正しく表現していますか?」
|
|
28
|
+
- 「漏れているケース(エラー、境界値)はありませんか?」
|
|
29
|
+
- 「非技術者でも理解できる表現になっていますか?」
|
|
30
|
+
- 「UI 操作に依存せず、ユーザーの意図を表現できていますか?」
|
|
31
|
+
|
|
32
|
+
## Git への追加(任意)
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
git add docs/project/02-behavior/
|
|
36
|
+
git status
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
推奨コミットメッセージ:
|
|
40
|
+
|
|
41
|
+
```text
|
|
42
|
+
docs: 振る舞い仕様(シナリオ)の作成
|
|
43
|
+
|
|
44
|
+
- ユーザーストーリーに基づく Gherkin シナリオを追加
|
|
45
|
+
- 正常系・異常系・境界値ケースを定義
|
|
46
|
+
```
|