@careerchain/stdd 0.1.0 → 0.1.2
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/assets/.claude/agents/implementer.md +4 -4
- package/assets/.claude/agents/plan-writer.md +7 -7
- package/assets/.claude/agents/qa-engineer.md +58 -6
- package/assets/.claude/agents/spec-reviewer.md +24 -18
- package/assets/.claude/agents/spec-writer.md +42 -38
- package/assets/.claude/agents/test-reviewer.md +21 -21
- package/assets/.claude/hooks/spec-first-check.sh +201 -0
- package/assets/.claude/rules/stdd-spec-first.md +36 -0
- package/assets/.claude/settings.json +16 -2
- package/assets/.claude/skills/auto-implement/SKILL.md +1 -1
- package/assets/.claude/skills/auto-implement/references/phases.md +14 -12
- package/assets/.claude/skills/documenting-plans/SKILL.md +3 -3
- package/assets/.claude/skills/documenting-specifications/SKILL.md +326 -300
- package/assets/.claude/skills/documenting-specifications/guides/error-handling.md +23 -21
- package/assets/.claude/skills/documenting-specifications/guides/stdd-violations.md +2 -2
- package/assets/.claude/skills/documenting-specifications/templates/api-spec-common.md +97 -0
- package/assets/.claude/skills/documenting-specifications/templates/architecture-common.md +188 -0
- package/assets/.claude/skills/documenting-specifications/templates/design-common.md +57 -0
- package/assets/.claude/skills/documenting-specifications/templates/requirements-common.md +104 -0
- package/assets/.claude/skills/documenting-specifications/templates/requirements.md +105 -125
- package/assets/.claude/skills/documenting-specifications/templates/table-definition-common.md +78 -0
- package/assets/.claude/skills/documenting-specifications/templates/tech-design.md +110 -183
- package/assets/.claude/skills/documenting-specifications/templates/test-plan.md +58 -0
- package/assets/.claude/skills/generating-wireframes/SKILL.md +10 -10
- package/assets/.claude/skills/generating-wireframes/guides/from-requirements.md +13 -13
- package/assets/.claude/skills/generating-wireframes/templates/index.html +1 -1
- package/assets/.claude/skills/introducing-stdd/SKILL.md +3 -0
- package/assets/.claude/skills/reverse-engineering-common-spec/SKILL.md +22 -11
- package/assets/.claude/skills/reverse-engineering-feature-spec/SKILL.md +53 -32
- package/assets/.claude/skills/reverse-engineering-feature-spec/guides/figma-capture.md +9 -9
- package/assets/.claude/skills/starting-new-with-stdd/SKILL.md +43 -17
- package/assets/.claude/skills/starting-new-with-stdd/templates/bootstrap-plan.md +16 -7
- package/assets/.claude/skills/tailoring-spec-format/SKILL.md +7 -7
- package/assets/.claude/skills/verifying-consistency/SKILL.md +1 -1
- package/assets/mcp.json +9 -0
- package/assets/stdd.config.yml.tpl +4 -0
- package/dist/cli.js +1 -0
- package/dist/cli.js.map +1 -1
- package/dist/install.js +20 -1
- package/dist/install.js.map +1 -1
- package/package.json +1 -1
- package/assets/.claude/docs/spec-driven-development-guide.md +0 -436
- package/assets/.claude/skills/documenting-specifications/templates/screen-items-definition.md +0 -179
|
@@ -12,30 +12,32 @@ REQUIREMENTS.mdとTECH_DESIGN.mdでエラーケースを記述する際のガイ
|
|
|
12
12
|
## REQUIREMENTS.md: ユーザー向けエラー
|
|
13
13
|
|
|
14
14
|
**原則**:
|
|
15
|
-
-
|
|
16
|
-
-
|
|
17
|
-
-
|
|
15
|
+
- エラーケースはユースケースの一部として扱う。主要フローは振る舞い(手順)に、例外・分岐・境界は **受入基準(EARS)** に落とす
|
|
16
|
+
- 各ユースケースに Priority を付与し、クリティカルなエラーは **P0/P1**、その他は **P2**
|
|
17
|
+
- 「もし〜ならば(IF)」「〜の場合(WHERE)」のパターンで、観測可能・検証可能な粒度に書く
|
|
18
18
|
|
|
19
19
|
**例**:
|
|
20
20
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
**
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
21
|
+
````markdown
|
|
22
|
+
#### ログイン(ID/パスワード)
|
|
23
|
+
|
|
24
|
+
**Priority**: P1
|
|
25
|
+
|
|
26
|
+
**振る舞い(手順)**
|
|
27
|
+
|
|
28
|
+
1. ユーザーは `/login` ページで ID/パスワードタブを選択する
|
|
29
|
+
2. ユーザーは メールアドレスとパスワードを入力する
|
|
30
|
+
3. ユーザーは「ログイン」ボタンをクリックする
|
|
31
|
+
4. システムは 認証を行い、成功すれば遷移先へ進める
|
|
32
|
+
|
|
33
|
+
**受入基準・制約(EARS)**
|
|
34
|
+
|
|
35
|
+
```
|
|
36
|
+
[IF] もし認証情報が無効ならば、システムは、エラーメッセージ「ログインに失敗しました。メールアドレスとパスワードを確認してください。」を表示し、ユーザーをログインページに留めること。
|
|
37
|
+
[常時] システムは、「メールアドレスが存在しない」と「パスワードが間違っている」をユーザーに区別させないこと(セキュリティのため)。
|
|
38
|
+
[WHEN] 認証に失敗したとき、システムは、ユーザーが再試行できる状態を保つこと。
|
|
38
39
|
```
|
|
40
|
+
````
|
|
39
41
|
|
|
40
42
|
## TECH_DESIGN.md: 技術的なエラーハンドリング
|
|
41
43
|
|
|
@@ -74,5 +76,5 @@ REQUIREMENTS.mdとTECH_DESIGN.mdでエラーケースを記述する際のガイ
|
|
|
74
76
|
|
|
75
77
|
- **REQUIREMENTS.md**: ユーザー視点 - どのエラーメッセージが表示され、次に何が起こるか
|
|
76
78
|
- **TECH_DESIGN.md**: 技術視点 - エラーコード、HTTPステータス、どう処理するか、どうテストするか
|
|
77
|
-
-
|
|
79
|
+
- エラーケースも通常のユースケースと同様にPriorityを付与
|
|
78
80
|
- TECH_DESIGN.mdでエラーケースを適切なテストレベルにマッピング
|
|
@@ -167,7 +167,7 @@ test('利用規約リンクが別タブで開く', async ({ page }) => {
|
|
|
167
167
|
- 「現在この方式を採用している理由」は書いてよい(設計根拠)。「以前の方式から変更した理由」は書かない(履歴)
|
|
168
168
|
|
|
169
169
|
2. **UIを変更した場合**
|
|
170
|
-
- REQUIREMENTS.md
|
|
170
|
+
- REQUIREMENTS.mdのユースケース(振る舞い+受入基準)、画面仕様を**現在のUIのみ**を反映する形で書き換える
|
|
171
171
|
- TECH_DESIGN.mdの画面設計セクションを書き換える
|
|
172
172
|
- **E2Eテスト、Integrationテストの両方を確認・更新**
|
|
173
173
|
|
|
@@ -178,7 +178,7 @@ test('利用規約リンクが別タブで開く', async ({ page }) => {
|
|
|
178
178
|
□ 2. TECH_DESIGN.mdのテスト総数を確認・更新
|
|
179
179
|
□ 3. TECH_DESIGN.mdの実装方法・技術的詳細を「現在の仕様のみ」に更新
|
|
180
180
|
□ 4. SSOT原則違反の禁止語(変更前/変更後/今回/既存/...)が含まれていないかgrep
|
|
181
|
-
□ 5. REQUIREMENTS.md
|
|
181
|
+
□ 5. REQUIREMENTS.mdのユースケース(振る舞い+受入基準)、画面仕様を確認
|
|
182
182
|
□ 6. E2Eテストが実装と整合しているか確認・更新
|
|
183
183
|
□ 7. Integrationテストが実装と整合しているか確認・更新
|
|
184
184
|
```
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
# API_SPEC.md テンプレート(common)
|
|
2
|
+
|
|
3
|
+
**目的**: プロジェクトの API 仕様(入出力契約)を集約する正典。各 feature の `TECH_DESIGN.md` は本書を**参照**し、エンドポイントを再定義しない。
|
|
4
|
+
|
|
5
|
+
**配置**: `docs/common/API_SPEC.md`(`.stdd.config.yml` の `docs.layout.common_api_spec` に従う)
|
|
6
|
+
|
|
7
|
+
## 章立ての骨格
|
|
8
|
+
|
|
9
|
+
- OpenAPI / Swagger 風の **Markdown テーブル**で記述する(実 YAML ではない)。
|
|
10
|
+
- エンドポイント単位に: **パス / メソッド / 概要 / パラメータ / リクエスト / レスポンス / エラー**。
|
|
11
|
+
- REST に限らず、RPC / Server Actions / GraphQL なども「操作単位」で同形式で表現できる。
|
|
12
|
+
- **API を持たない構成**(例: フロントから DB を直接参照)では本書は「該当なし」と明記してよい。
|
|
13
|
+
|
|
14
|
+
**含めない**:
|
|
15
|
+
|
|
16
|
+
- 各操作の**処理アルゴリズム**(どう集計・計算するか)→ 各 feature の `TECH_DESIGN.md`(ロジック設計)
|
|
17
|
+
- クライアント側のエラーハンドリング方針 → 各 feature の `TECH_DESIGN.md`(エラーハンドリング戦略)
|
|
18
|
+
- データ構造の定義 → [`TABLE_DEFINITION.md`](./table-definition-common.md)
|
|
19
|
+
|
|
20
|
+
## テンプレート構造
|
|
21
|
+
|
|
22
|
+
````markdown
|
|
23
|
+
# [サービス名] API 仕様
|
|
24
|
+
|
|
25
|
+
> API 入出力契約の正典(SSoT)。各機能の `TECH_DESIGN.md` は本書を参照する。
|
|
26
|
+
> 処理アルゴリズムは各 feature の `TECH_DESIGN.md`(ロジック設計)に置く。
|
|
27
|
+
>
|
|
28
|
+
> **最終更新**: [yyyy-mm-dd] / **ベース URL**: [https://example.com/api] / **認証**: [Bearer / Cookie 等]
|
|
29
|
+
|
|
30
|
+
## 共通仕様
|
|
31
|
+
|
|
32
|
+
- **認証**: [全エンドポイント共通の認証方式]
|
|
33
|
+
- **共通エラー形式**:
|
|
34
|
+
|
|
35
|
+
```json
|
|
36
|
+
{ "code": "ERROR_CODE", "message": "ユーザー向けメッセージ" }
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
- **共通エラーコード**:
|
|
40
|
+
|
|
41
|
+
| コード | HTTP | 意味 |
|
|
42
|
+
| --- | --- | --- |
|
|
43
|
+
| `UNAUTHORIZED` | 401 | 未認証 |
|
|
44
|
+
| `FORBIDDEN` | 403 | 権限なし |
|
|
45
|
+
| `VALIDATION_ERROR` | 400 | 入力検証エラー |
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## [リソース / 機能グループ名]
|
|
50
|
+
|
|
51
|
+
### POST /api/[resource] — [操作の概要]
|
|
52
|
+
|
|
53
|
+
[このエンドポイントが何をするかを 1 行で]
|
|
54
|
+
|
|
55
|
+
**パラメータ(パス / クエリ)**
|
|
56
|
+
|
|
57
|
+
| 名前 | 位置 | 型 | 必須 | 説明 |
|
|
58
|
+
| --- | --- | --- | --- | --- |
|
|
59
|
+
| [id] | path | string | ○ | ... |
|
|
60
|
+
| [page] | query | integer | – | ... |
|
|
61
|
+
|
|
62
|
+
**リクエストボディ**
|
|
63
|
+
|
|
64
|
+
| フィールド | 型 | 必須 | 説明 |
|
|
65
|
+
| --- | --- | --- | --- |
|
|
66
|
+
| [email] | string | ○ | メール形式・最大 255 |
|
|
67
|
+
|
|
68
|
+
**レスポンス(200 / 201)**
|
|
69
|
+
|
|
70
|
+
| フィールド | 型 | 説明 |
|
|
71
|
+
| --- | --- | --- |
|
|
72
|
+
| [user] | object | 作成されたユーザー(→ `TABLE_DEFINITION.md#users`) |
|
|
73
|
+
|
|
74
|
+
**エラー**
|
|
75
|
+
|
|
76
|
+
| コード | HTTP | 条件 |
|
|
77
|
+
| --- | --- | --- |
|
|
78
|
+
| `EMAIL_ALREADY_EXISTS` | 409 | メール重複 |
|
|
79
|
+
| `VALIDATION_ERROR` | 400 | 入力検証エラー |
|
|
80
|
+
|
|
81
|
+
### GET /api/[resource]/{id} — [操作の概要]
|
|
82
|
+
|
|
83
|
+
(同形式で繰り返す)
|
|
84
|
+
````
|
|
85
|
+
|
|
86
|
+
## 記述基準
|
|
87
|
+
|
|
88
|
+
- フィールド型は論理型(`string` / `integer` / `boolean` / `object` / `array` / `ISO8601` 等)で表記。
|
|
89
|
+
- レスポンスの実体(リソース)は `TABLE_DEFINITION.md` の該当テーブルへリンクして二重定義を避ける。
|
|
90
|
+
- エラーは「共通エラーコード」に集約し、エンドポイント固有のものだけ各操作の「エラー」表に記す。
|
|
91
|
+
|
|
92
|
+
## 記述しない内容(責務分界)
|
|
93
|
+
|
|
94
|
+
- 処理アルゴリズム・集計ロジック → 各 feature の `TECH_DESIGN.md`(ロジック設計)
|
|
95
|
+
- クライアントのエラー UX(リトライ / トースト等)→ 各 feature の `TECH_DESIGN.md`(エラーハンドリング戦略)
|
|
96
|
+
- データ構造 → `TABLE_DEFINITION.md`
|
|
97
|
+
- 履歴・経緯・version(SSoT 原則)
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
# ARCHITECTURE.md テンプレート(common)
|
|
2
|
+
|
|
3
|
+
**目的**: プロジェクト全体のシステム概要を俯瞰する正典。STDD における common ティアの技術設計で、各 feature の `TECH_DESIGN.md` の上位ティアにあたる(システム全体 = ARCHITECTURE / 機能単位 = TECH_DESIGN)。
|
|
4
|
+
|
|
5
|
+
**配置**: `docs/common/ARCHITECTURE.md`(`.stdd.config.yml` の `docs.layout.common_architecture` に従う)
|
|
6
|
+
|
|
7
|
+
## 章立ての骨格
|
|
8
|
+
|
|
9
|
+
「システム概要」に集約し、複数 feature が前提とする横断的な技術文脈を一箇所に固定する。
|
|
10
|
+
**データモデルは [`TABLE_DEFINITION.md`](./table-definition-common.md)、API 仕様は [`API_SPEC.md`](./api-spec-common.md) に外出し**し、本書には持たない。
|
|
11
|
+
|
|
12
|
+
| 節 | 内容 | 適用 |
|
|
13
|
+
| --- | --- | --- |
|
|
14
|
+
| 1.1 システム構成概要 | 全体構成・特徴・リポジトリ構成・レイヤ規約 | 常に |
|
|
15
|
+
| 1.2 使用技術スタック | フロント / バックエンド / テスト / CI・CD | 常に |
|
|
16
|
+
| 1.3 システム間連携 | 主要連携・連携方針・外部連携 | 常に |
|
|
17
|
+
| 1.4 データフロー概要 | 代表的なリクエストの流れ 1 本(シーケンス図) | 常に |
|
|
18
|
+
| 1.5 セキュリティ概要 | 認証・アクセス制御 / 通信 / データ保護 | 常に |
|
|
19
|
+
| 1.6 インフラ構成概要 | ホスティング / 可用性 / 運用・監視 | 常に |
|
|
20
|
+
|
|
21
|
+
**含めない**:
|
|
22
|
+
|
|
23
|
+
- データモデル(テーブル・カラム定義)→ [`TABLE_DEFINITION.md`](./table-definition-common.md)
|
|
24
|
+
- API 仕様(エンドポイント・契約)→ [`API_SPEC.md`](./api-spec-common.md)
|
|
25
|
+
- 機能単位のロジック設計・画面項目・テスト戦略 → 各 feature の `TECH_DESIGN.md` / `TEST_PLAN.md`
|
|
26
|
+
- 実装の進捗・履歴・変更経緯(SSoT として常に最新の構成のみ保持する)
|
|
27
|
+
|
|
28
|
+
**サービスの目的・アクター・業務要件**は同階層の [`REQUIREMENTS.md`](./requirements-common.md)(common)を参照する。
|
|
29
|
+
|
|
30
|
+
## 確度マーカーの運用
|
|
31
|
+
|
|
32
|
+
- 実装・ヒアリングから確信が持てない箇所は `※要確認` を文末に付す(リバース直後・前方設計時など)。確定後に除去する。
|
|
33
|
+
- 指標やデータの確からしさを区別する場合は `[可]`(直接算出可能)/ `[近似]`(代理母集団・近似指標)等のマークを併記する。
|
|
34
|
+
|
|
35
|
+
## テンプレート構造
|
|
36
|
+
|
|
37
|
+
プレースホルダを実値に置換し、不要な節・図は削除する。単一アプリ構成では複数アプリ前提の記述を畳む。
|
|
38
|
+
|
|
39
|
+
````markdown
|
|
40
|
+
# [サービス名] アーキテクチャ設計書
|
|
41
|
+
|
|
42
|
+
> **位置づけ**: 本書は [サービス名] 全体のシステム概要を俯瞰する正典(common ティアの技術設計)。
|
|
43
|
+
> サービスの目的・アクターなどのビジネス要件は [`REQUIREMENTS.md`](./REQUIREMENTS.md) を参照。
|
|
44
|
+
> データモデルは [`TABLE_DEFINITION.md`](./TABLE_DEFINITION.md)、API 仕様は [`API_SPEC.md`](./API_SPEC.md) を参照。
|
|
45
|
+
> 機能・画面単位の技術設計は `docs/<app>/<feature>/TECH_DESIGN.md` を参照。
|
|
46
|
+
>
|
|
47
|
+
> **最終更新**: [yyyy-mm-dd] / **基準ブランチ**: [main / develop 等]
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## 1. システム概要
|
|
52
|
+
|
|
53
|
+
### 1.1 システム構成概要
|
|
54
|
+
|
|
55
|
+
(本システムが何であるか・全体構成・特徴を端的に。1 枚の構成図を添える)
|
|
56
|
+
|
|
57
|
+
**全体構成**
|
|
58
|
+
|
|
59
|
+
- フロントエンド層: [技術・レンダリング方式・主要画面]
|
|
60
|
+
- バックエンド層: [新規構築 / 既存流用・責務の委譲先]
|
|
61
|
+
- データソース: [DB・主要テーブル群]
|
|
62
|
+
|
|
63
|
+
```mermaid
|
|
64
|
+
flowchart TB
|
|
65
|
+
subgraph Frontend["フロントエンド"]
|
|
66
|
+
APP["[アプリ]"]
|
|
67
|
+
end
|
|
68
|
+
subgraph Backend["バックエンド / データ基盤"]
|
|
69
|
+
AUTH["[認証]"]
|
|
70
|
+
DB[("[DB]")]
|
|
71
|
+
end
|
|
72
|
+
EXT["[外部サービス]"]
|
|
73
|
+
|
|
74
|
+
APP --> AUTH & DB
|
|
75
|
+
APP --> EXT
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
**特徴**
|
|
79
|
+
|
|
80
|
+
- [参照専用 / 書き込みあり 等の基本性質]
|
|
81
|
+
- [代理指標・近似の扱いなど、データ上の制約と方針]
|
|
82
|
+
|
|
83
|
+
**リポジトリ構成 / レイヤ規約**
|
|
84
|
+
|
|
85
|
+
```
|
|
86
|
+
[repo]/
|
|
87
|
+
├── [app]/ # (役割)
|
|
88
|
+
├── docs/ # 機能別 Spec + 全体ドキュメント (本書を含む)
|
|
89
|
+
└── .github/workflows/ # CI/CD
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
| レイヤー | 責務 | 依存方向 |
|
|
93
|
+
| --- | --- | --- |
|
|
94
|
+
| UI / アプリケーション層 | 表示・入力・ガード | 下位へのみ依存 |
|
|
95
|
+
| Service | ビジネスロジック | Repository の I/F に依存 |
|
|
96
|
+
| Repository | データアクセス | DB |
|
|
97
|
+
|
|
98
|
+
(依存は一方向。下位レイヤーは上位を知らない。アプリ間 import の禁止など固有ルールを追記)
|
|
99
|
+
|
|
100
|
+
### 1.2 使用技術スタック
|
|
101
|
+
|
|
102
|
+
**フロントエンド**
|
|
103
|
+
|
|
104
|
+
- [フレームワーク / 言語 / 主要ライブラリ]
|
|
105
|
+
|
|
106
|
+
**バックエンド / データ基盤**
|
|
107
|
+
|
|
108
|
+
- [DB / 認証 / データアクセス方式 / アクセス制御]
|
|
109
|
+
|
|
110
|
+
**テスト**
|
|
111
|
+
|
|
112
|
+
- [E2E / Integration / Unit の採用ツール]
|
|
113
|
+
|
|
114
|
+
**CI/CD・ホスティング**
|
|
115
|
+
|
|
116
|
+
- [ビルド・デプロイ自動化 / ホスティング先]
|
|
117
|
+
|
|
118
|
+
### 1.3 システム間連携
|
|
119
|
+
|
|
120
|
+
**主要連携**
|
|
121
|
+
|
|
122
|
+
1. [アプリ] ⇔ [連携先A]: [目的・方式]
|
|
123
|
+
2. [アプリ] ⇔ [連携先B]: [目的・方式]
|
|
124
|
+
|
|
125
|
+
**連携方針**
|
|
126
|
+
|
|
127
|
+
- [専用バックエンドを設けるか / 直接連携か 等の方針]
|
|
128
|
+
|
|
129
|
+
**外部連携**
|
|
130
|
+
|
|
131
|
+
- [外部システム連携。なければ「現時点で未定義」]
|
|
132
|
+
|
|
133
|
+
### 1.4 データフロー概要
|
|
134
|
+
|
|
135
|
+
(代表的なリクエストの流れを 1 本、シーケンス図で示す。機能個別のフローは各 feature の TECH_DESIGN に置く)
|
|
136
|
+
|
|
137
|
+
```mermaid
|
|
138
|
+
sequenceDiagram
|
|
139
|
+
participant UI as UI
|
|
140
|
+
participant App as アプリケーション層
|
|
141
|
+
participant Svc as Service
|
|
142
|
+
participant Repo as Repository
|
|
143
|
+
participant DB as DB
|
|
144
|
+
|
|
145
|
+
UI->>App: 呼び出し
|
|
146
|
+
App->>App: 認証 / 入力チェック
|
|
147
|
+
App->>Svc: 実行
|
|
148
|
+
Svc->>Repo: ビジネスロジック
|
|
149
|
+
Repo->>DB: CRUD
|
|
150
|
+
DB-->>Repo: rows
|
|
151
|
+
Repo-->>Svc: Entity / Model
|
|
152
|
+
Svc-->>App: 結果
|
|
153
|
+
App-->>UI: レスポンス
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
### 1.5 セキュリティ概要
|
|
157
|
+
|
|
158
|
+
- **認証・アクセス制御**: [方式・適用範囲]
|
|
159
|
+
- **セッション / トークン管理**: [保持・検証・失効方針]
|
|
160
|
+
- **通信**: [TLS 等]
|
|
161
|
+
- **データ保護**: [RLS・暗号化・機密情報の扱い]
|
|
162
|
+
|
|
163
|
+
### 1.6 インフラ構成概要
|
|
164
|
+
|
|
165
|
+
- **ホスティング**: [フロント / バックエンドの配置先]
|
|
166
|
+
- **データ・認証基盤**: [新規 / 既存流用・移行要否]
|
|
167
|
+
- **可用性**: [稼働率目標・メンテナンス方針]
|
|
168
|
+
- **CI/CD・運用・監視**: [自動化・監視・通知]
|
|
169
|
+
- **性能・拡張性**: [同時接続・対象ブラウザ・最適化方針]
|
|
170
|
+
|
|
171
|
+
---
|
|
172
|
+
|
|
173
|
+
## 付録・関連ドキュメント
|
|
174
|
+
|
|
175
|
+
- 共通要件定義: [`./REQUIREMENTS.md`](./REQUIREMENTS.md)
|
|
176
|
+
- テーブル定義: [`./TABLE_DEFINITION.md`](./TABLE_DEFINITION.md)
|
|
177
|
+
- API 仕様: [`./API_SPEC.md`](./API_SPEC.md)
|
|
178
|
+
- 機能別 Spec: `docs/<app>/<feature>/TECH_DESIGN.md`
|
|
179
|
+
````
|
|
180
|
+
|
|
181
|
+
## 記述しない内容(責務分界)
|
|
182
|
+
|
|
183
|
+
- サービスの目的・アクター・ビジネス要件 → common の [`REQUIREMENTS.md`](./requirements-common.md)
|
|
184
|
+
- テーブル・カラム定義 → common の [`TABLE_DEFINITION.md`](./table-definition-common.md)
|
|
185
|
+
- API 契約 → common の [`API_SPEC.md`](./api-spec-common.md)
|
|
186
|
+
- 機能個別のロジック設計・画面項目・テスト → 各 feature の `TECH_DESIGN.md` / `TEST_PLAN.md`
|
|
187
|
+
- 関数 / メソッドの具体実装コード。特定の型定義は載せない(データ構造は `TABLE_DEFINITION.md`、I/F は `API_SPEC.md`)
|
|
188
|
+
- 履歴・経緯・version(SSoT 原則)
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# DESIGN.md テンプレート(common・任意)
|
|
2
|
+
|
|
3
|
+
**目的**: プロジェクトのデザイン標準(デザイントークン・コンポーネント規約・レイアウト原則)を定義する正典。UI を持つ feature の実装・ワイヤーフレーム・画面項目定義が参照する。
|
|
4
|
+
|
|
5
|
+
**配置**: `docs/common/DESIGN.md`(`.stdd.config.yml` の `docs.layout.common_design` に従う)
|
|
6
|
+
|
|
7
|
+
**作成タイミング**(任意。以下に当てはまる場合に作成を検討):
|
|
8
|
+
|
|
9
|
+
- 複数画面で一貫した UI トークン / コンポーネントを共有する
|
|
10
|
+
- 既存デザインシステム(例: getdesign 等)をベースに標準化する
|
|
11
|
+
|
|
12
|
+
## 章立ての骨格
|
|
13
|
+
|
|
14
|
+
| 章 | 内容 |
|
|
15
|
+
| --- | --- |
|
|
16
|
+
| 1. デザイン原則 | トーン&マナー・アクセシビリティ方針 |
|
|
17
|
+
| 2. デザイントークン | カラー / タイポグラフィ / スペーシング / 角丸・影 |
|
|
18
|
+
| 3. コンポーネント規約 | ボタン / フォーム / テーブル / グラフ等の共通仕様 |
|
|
19
|
+
| 4. レイアウト原則 | グリッド / ブレークポイント / 余白 |
|
|
20
|
+
|
|
21
|
+
## テンプレート構造
|
|
22
|
+
|
|
23
|
+
````markdown
|
|
24
|
+
# [サービス名] デザイン標準
|
|
25
|
+
|
|
26
|
+
> UI を持つ機能の実装・ワイヤーフレームが参照する正典。
|
|
27
|
+
> ベースとするデザインシステム: [getdesign(apple) / 自社 等]
|
|
28
|
+
|
|
29
|
+
## 1. デザイン原則
|
|
30
|
+
|
|
31
|
+
- [トーン&マナー / 一貫性 / アクセシビリティの方針]
|
|
32
|
+
|
|
33
|
+
## 2. デザイントークン
|
|
34
|
+
|
|
35
|
+
| 種別 | トークン | 値 |
|
|
36
|
+
| --- | --- | --- |
|
|
37
|
+
| Color | `color.primary` | #... |
|
|
38
|
+
| Typography | `font.body` | ... |
|
|
39
|
+
| Spacing | `space.md` | 16px |
|
|
40
|
+
|
|
41
|
+
## 3. コンポーネント規約
|
|
42
|
+
|
|
43
|
+
- **ボタン**: [種別・状態・サイズ]
|
|
44
|
+
- **フォーム**: [入力・バリデーション表示]
|
|
45
|
+
- **テーブル / グラフ**: [共通描画方針]
|
|
46
|
+
|
|
47
|
+
## 4. レイアウト原則
|
|
48
|
+
|
|
49
|
+
- **グリッド / ブレークポイント**: ...
|
|
50
|
+
- **余白 / 階層**: ...
|
|
51
|
+
````
|
|
52
|
+
|
|
53
|
+
## 記述しない内容(責務分界)
|
|
54
|
+
|
|
55
|
+
- 画面ごとの項目・バリデーション → 各 feature の `TECH_DESIGN.md`(画面項目定義)
|
|
56
|
+
- 実装コード(CSS / コンポーネント実装) → 実装
|
|
57
|
+
- 履歴・経緯・version(SSoT 原則)
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
# REQUIREMENTS.md テンプレート(common)
|
|
2
|
+
|
|
3
|
+
**目的**: プロジェクト全体の要件を俯瞰する正典。各 feature の REQUIREMENTS.md はこれを前提とする。
|
|
4
|
+
|
|
5
|
+
**配置**: `docs/common/REQUIREMENTS.md`
|
|
6
|
+
|
|
7
|
+
## 章立ての骨格(3層 + コア/拡張)
|
|
8
|
+
|
|
9
|
+
feature と同じく **業務要件 → 機能要件(省略可能) → 非機能要件** の3層を骨格とする。
|
|
10
|
+
common は全体横断のため、前段に「サービス概要 / 登場アクター / 用語集」を置く。
|
|
11
|
+
機能要件はアーキテクチャ設計に関わる要件がある場合のみ記載する。
|
|
12
|
+
非機能要件・横断業務ルールはここで一元化する(feature は「common 準拠」で参照)。
|
|
13
|
+
|
|
14
|
+
| 区分 | セクション | 適用 |
|
|
15
|
+
| ------------------ | ------------------------------------------ | ---------- |
|
|
16
|
+
| 前段〔コア〕 | サービス概要 / 登場アクター / 用語集 | 常に |
|
|
17
|
+
| 業務要件〔コア〕 | 業務上の課題 / ビジネスゴール・KPI | 常に |
|
|
18
|
+
| 機能要件 | ※必要に応じて定義 | 該当時のみ |
|
|
19
|
+
| 非機能要件〔コア〕 | 性能・可用性・セキュリティ・横断業務ルール | 常に |
|
|
20
|
+
| スコープ外〔コア〕 | | 常に |
|
|
21
|
+
|
|
22
|
+
**記法**: ユースケースは **振る舞い(番号付き手順・主語明示)+ 受入基準(EARS)** の2部構成。横断業務ルールは EARS。
|
|
23
|
+
|
|
24
|
+
## テンプレート構造
|
|
25
|
+
|
|
26
|
+
````markdown
|
|
27
|
+
# [プロジェクト名] — 全体要件(common)
|
|
28
|
+
|
|
29
|
+
機能単位の要件は各 feature の `REQUIREMENTS.md` に置き、本書を前提とする。
|
|
30
|
+
|
|
31
|
+
## 1. サービス概要
|
|
32
|
+
|
|
33
|
+
(解決する課題・提供価値・基本性質)
|
|
34
|
+
|
|
35
|
+
## 2. 登場アクター
|
|
36
|
+
|
|
37
|
+
| アクター | 説明 | 権限 |
|
|
38
|
+
| -------- | ---- | ---- |
|
|
39
|
+
| | | |
|
|
40
|
+
|
|
41
|
+
## 3. 用語集(Glossary)
|
|
42
|
+
|
|
43
|
+
| 用語 | 定義 |
|
|
44
|
+
| ---- | ---- |
|
|
45
|
+
| | |
|
|
46
|
+
|
|
47
|
+
## 4. 業務要件
|
|
48
|
+
|
|
49
|
+
### 4.1 業務上の課題
|
|
50
|
+
|
|
51
|
+
| 課題 | 現状 |
|
|
52
|
+
| ---- | ---- |
|
|
53
|
+
| | |
|
|
54
|
+
|
|
55
|
+
### 4.2 ビジネスゴール / KPI
|
|
56
|
+
|
|
57
|
+
| ゴール | KPI | 目標値 |
|
|
58
|
+
| ------ | --- | ------ |
|
|
59
|
+
| | | |
|
|
60
|
+
|
|
61
|
+
## 5. 機能要件
|
|
62
|
+
|
|
63
|
+
## 6. 非機能要件
|
|
64
|
+
|
|
65
|
+
### 6.1 性能 / 可用性
|
|
66
|
+
|
|
67
|
+
### 6.2 セキュリティ / 認可
|
|
68
|
+
|
|
69
|
+
### 6.3 アクセシビリティ / ユーザビリティ
|
|
70
|
+
|
|
71
|
+
### 6.4 横断業務ルール
|
|
72
|
+
|
|
73
|
+
```
|
|
74
|
+
[常時] システムは、…すること。
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
## 7. スコープ外
|
|
78
|
+
````
|
|
79
|
+
|
|
80
|
+
## 記法・記載基準
|
|
81
|
+
|
|
82
|
+
- ユースケースは **振る舞い(番号付き手順・主語明示)+ 受入基準(EARS)** の2部構成(feature と同一ルール)。
|
|
83
|
+
- 横断業務ルールは EARS で一元化し、feature から「common 準拠 / 参照」として引く(複製しない)。
|
|
84
|
+
- 機能要件は コア(アプリ構成・全体ユースケース)+ 拡張(ダッシュボード構成・指標方針、該当時のみ)。
|
|
85
|
+
|
|
86
|
+
## 記載基準チェックリスト
|
|
87
|
+
|
|
88
|
+
```
|
|
89
|
+
□ コア章(前段・業務要件・機能要件のコア・非機能要件・スコープ外)が揃っている
|
|
90
|
+
□ 拡張章(ダッシュボード構成・指標方針)は該当時のみ
|
|
91
|
+
□ 用語集に、feature 横断で解釈が割れる用語が定義されている
|
|
92
|
+
□ 全体ユースケースに 振る舞い(手順・主語明示)+受入基準(EARS)がある
|
|
93
|
+
□ 横断業務ルールが EARS で一元化されている
|
|
94
|
+
□ 非機能要件が散在せず §6 に集約されている
|
|
95
|
+
□ 履歴・経緯・version 記述が無い(SSOT)
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
## 記述しない内容(責務分界)
|
|
99
|
+
|
|
100
|
+
- 機能個別の詳細要件(ユースケース・受入基準・指標)→ 各 feature の **REQUIREMENTS.md**
|
|
101
|
+
- システム構成図・レイヤ規約・技術スタック詳細 → common の **ARCHITECTURE.md**
|
|
102
|
+
- テーブル定義 → common の **TABLE_DEFINITION.md** / API 仕様 → common の **API_SPEC.md**
|
|
103
|
+
- E2E テストの実装詳細 → テストコード
|
|
104
|
+
- 履歴・経緯・version(SSOT 原則)
|