phasegate 0.191.0 → 0.212.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/CHANGELOG.md +20 -0
- package/README.ja.md +52 -15
- package/README.md +39 -11
- package/docs/ADR/030-injection-threat-model-and-trust-root.md +145 -0
- package/docs/guide/hooks-integration.md +50 -1
- package/docs/guide/installation.md +1 -1
- package/docs/guide/quick-vs-full-mode.md +1 -1
- package/docs/guide/skills-overview.md +7 -8
- package/package.json +1 -1
- package/scripts/harness/agent-integration/presentation/phasegate-status-context.ts +131 -63
- package/scripts/harness/agent-integration/presentation/session-start-hook.ts +31 -4
- package/scripts/harness/agent-integration/presentation/spotlight.ts +65 -0
- package/scripts/harness/ci-governance/application/dto/pin-integrity-input.ts +8 -0
- package/scripts/harness/ci-governance/application/dto/pin-integrity-output.ts +9 -0
- package/scripts/harness/ci-governance/application/dto/verify-integrity-input.ts +7 -0
- package/scripts/harness/ci-governance/application/dto/verify-integrity-output.ts +10 -0
- package/scripts/harness/ci-governance/application/usecases/pin-integrity-usecase.ts +60 -0
- package/scripts/harness/ci-governance/application/usecases/verify-integrity-usecase.ts +46 -0
- package/scripts/harness/ci-governance/composition-root.ts +67 -64
- package/scripts/harness/ci-governance/domain/ports/integrity-manifest-repository-port.ts +14 -0
- package/scripts/harness/ci-governance/domain/ports/sha256-hasher-port.ts +10 -0
- package/scripts/harness/ci-governance/domain/services/integrity-checker.ts +42 -0
- package/scripts/harness/ci-governance/domain/value-objects/integrity-drift.ts +16 -0
- package/scripts/harness/ci-governance/domain/value-objects/integrity-manifest.ts +49 -0
- package/scripts/harness/ci-governance/domain/value-objects/integrity-target.ts +40 -0
- package/scripts/harness/ci-governance/infrastructure/adapters/file-system-sha256-hasher-adapter.ts +17 -0
- package/scripts/harness/ci-governance/infrastructure/adapters/harness-api-command-existence-adapter.ts +7 -73
- package/scripts/harness/ci-governance/infrastructure/adapters/integrity-manifest-json-repository-adapter.ts +83 -0
- package/scripts/harness/ci-governance/presentation/handlers/integrity-handler.ts +76 -0
- package/scripts/harness/config-foundation/application/mappers/validator-system-config-mapper.ts +53 -28
- package/scripts/harness/harness-api/domain/value-objects/ci-check-result.ts +33 -8
- package/scripts/harness/harness-api/domain/value-objects/known-harness-commands.ts +90 -0
- package/scripts/harness/installation/application/bundled-skill-selection.ts +2 -5
- package/scripts/harness/main.ts +257 -105
- package/scripts/harness/phase-dependency-model/infrastructure/filesystem/file-system-story-reflection-adapter.ts +65 -3
- package/scripts/harness/quick-mode/domain/services/quick-mode-judgment-engine.ts +44 -40
- package/scripts/harness/setup/skill-deployer.ts +2 -4
- package/scripts/harness/validator-system/application/use-cases/run-l2-validators-usecase.ts +82 -49
- package/scripts/harness/validator-system/application/use-cases/run-l3-validators-usecase.ts +87 -58
- package/scripts/harness/validator-system/composition-root.ts +141 -99
- package/scripts/harness/validator-system/domain/ports/coverage-attestation-gating-policy-port.ts +14 -0
- package/scripts/harness/validator-system/domain/ports/injection-scan-policy-port.ts +14 -0
- package/scripts/harness/validator-system/domain/services/coverage-attestation-gating-service.ts +56 -0
- package/scripts/harness/validator-system/domain/services/injection-pattern-scan-service.ts +118 -0
- package/scripts/harness/validator-system/domain/value-objects/coverage-gating-report.ts +67 -0
- package/scripts/harness/validator-system/domain/value-objects/injection-scan-report.ts +55 -0
- package/scripts/harness/validator-system/domain/value-objects/validator-id.ts +35 -31
- package/scripts/harness/validator-system/infrastructure/adapters/adr-foundation-reference-adapter.ts +13 -7
- package/scripts/harness/validator-system/infrastructure/adapters/file-system-coverage-attestation-gating-adapter.ts +87 -0
- package/scripts/harness/validator-system/infrastructure/adapters/file-system-injection-scan-adapter.ts +82 -0
- package/skills/README.md +1 -1
- package/skills/codebase-mapper/SKILL.md +1 -1
- package/skills/consistency-checker/references//343/203/201/343/202/247/343/203/203/343/202/257/343/203/252/343/202/271/343/203/210.md +1 -1
- package/skills/doc-health-checker/SKILL.md +148 -0
- package/skills/release-publisher/SKILL.md +101 -0
- package/skills/skill-creator/SKILL.md +74 -332
- package/skills/story-implementor/SKILL.md +52 -0
- package/skills/story-mapper/SKILL.md +4 -0
- package/skills/story-writer/SKILL.md +9 -0
- package/skills/uiux-designer/references/uiux-design-template.md +4 -4
- package/skills/unit-designer/SKILL.md +3 -1
- package/skills/doc-freshness-checker/SKILL.md +0 -140
- package/skills/implementation-planner/SKILL.md +0 -169
- package/skills/implementation-planner/references/document-structure.md +0 -116
- package/skills/implementation-planner/references/plan-template.md +0 -177
- package/skills/implementation-planner/references/workflow.md +0 -164
- package/skills/pointer-validator/SKILL.md +0 -105
|
@@ -1,140 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: doc-freshness-checker
|
|
3
|
-
description: 設計文書の鮮度チェック(L4バリデータ拡張)。`phasegate check-freshness` CLIを使い、設計文書の最終更新日が閾値を超えていないか、コード変更と設計文書の乖離がないかを検出する。使用タイミング: 「設計文書が古くなっていないか確認して」「ドキュメントの鮮度チェックを実行して」「L4 freshness チェック」「設計とコードの乖離を調べて」など。
|
|
4
|
-
model: sonnet
|
|
5
|
-
review: opus
|
|
6
|
-
languages: [typescript]
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# Doc Freshness Checker
|
|
10
|
-
|
|
11
|
-
## 目的
|
|
12
|
-
|
|
13
|
-
設計文書の鮮度(freshness)を検証し、古くなった文書や対応コードとの乖離を検出するスキル。
|
|
14
|
-
`phasegate check-freshness` CLIをラップし、結果を解釈・対処する。
|
|
15
|
-
|
|
16
|
-
## 前提条件
|
|
17
|
-
|
|
18
|
-
- `phasegate.config.json` に `docFreshnessThresholds` が設定されていること(未設定時はデフォルト値使用)
|
|
19
|
-
- git リポジトリ内で実行すること(最終更新日は `git log` で判定)
|
|
20
|
-
|
|
21
|
-
## 入力
|
|
22
|
-
|
|
23
|
-
- 対象ディレクトリ: `--dir <path>` または `phasegate.config.json` の `constructionDir`(デフォルト `docs/`)
|
|
24
|
-
- 閾値: `--threshold <days>` または `docFreshnessThresholds`(未設定時はデフォルト30日)
|
|
25
|
-
- git 履歴(最終更新日の判定に使用)
|
|
26
|
-
|
|
27
|
-
---
|
|
28
|
-
|
|
29
|
-
## ⚠️ 2フェーズ実行ルール
|
|
30
|
-
|
|
31
|
-
- **Phase 1(計画)**: チェック対象スコープを確認し、人間の承認を得る
|
|
32
|
-
- **Phase 2(実行)**: CLIを実行し、結果を解釈してアクションを提案する
|
|
33
|
-
|
|
34
|
-
**Phase 1/2を同時に実行してはならない。**
|
|
35
|
-
|
|
36
|
-
---
|
|
37
|
-
|
|
38
|
-
## Phase 1: チェック計画(plan)
|
|
39
|
-
|
|
40
|
-
### 出力(会話内のみ)
|
|
41
|
-
|
|
42
|
-
```markdown
|
|
43
|
-
# Doc Freshness チェック計画
|
|
44
|
-
|
|
45
|
-
## チェック対象スコープ
|
|
46
|
-
- ディレクトリ: {phasegate.config.json の constructionDir、デフォルト: docs/}
|
|
47
|
-
- 閾値: {phasegate.config.json の値 or デフォルト 30日}
|
|
48
|
-
|
|
49
|
-
## 実行コマンド
|
|
50
|
-
npx phasegate check-freshness [--dir {path}] [--threshold {days}]
|
|
51
|
-
|
|
52
|
-
## QA
|
|
53
|
-
[Question] Q1: ...
|
|
54
|
-
[Answer]
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
### Phase 1 完了条件
|
|
58
|
-
- スコープを報告した
|
|
59
|
-
- 人間にボールを渡した
|
|
60
|
-
- **CLIはまだ実行していない**
|
|
61
|
-
|
|
62
|
-
---
|
|
63
|
-
|
|
64
|
-
## Phase 2: 実行(execution)
|
|
65
|
-
|
|
66
|
-
### Step 1: CLIの実行
|
|
67
|
-
|
|
68
|
-
```bash
|
|
69
|
-
npx phasegate check-freshness
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
オプション:
|
|
73
|
-
- `--dir <path>` — チェック対象ディレクトリ(デフォルト: `phasegate.config.json` の `constructionDir`)
|
|
74
|
-
- `--threshold <days>` — 警告閾値(日数)
|
|
75
|
-
|
|
76
|
-
### Step 2: 結果の解釈
|
|
77
|
-
|
|
78
|
-
`CheckDocFreshnessOutput` の構造:
|
|
79
|
-
|
|
80
|
-
| フィールド | 意味 |
|
|
81
|
-
|-----------|------|
|
|
82
|
-
| `results[].status` | `ok` / `warn` / `error` |
|
|
83
|
-
| `results[].documentPath` | チェック対象ファイルパス |
|
|
84
|
-
| `results[].daysSinceUpdate` | 最終更新からの日数 |
|
|
85
|
-
| `results[].threshold` | 設定閾値 |
|
|
86
|
-
| `summary.error` | エラー件数(即対応必要) |
|
|
87
|
-
| `summary.warn` | 警告件数(確認推奨) |
|
|
88
|
-
|
|
89
|
-
### Step 3: アクションの提案
|
|
90
|
-
|
|
91
|
-
| 状態 | 推奨アクション |
|
|
92
|
-
|------|--------------|
|
|
93
|
-
| `error`(閾値超過) | cascade-updater で上位設計文書を更新 |
|
|
94
|
-
| `warn`(閾値近接) | 設計文書の内容確認・必要に応じて更新 |
|
|
95
|
-
| `ok` | 対応不要 |
|
|
96
|
-
|
|
97
|
-
### 出力フォーマット
|
|
98
|
-
|
|
99
|
-
```markdown
|
|
100
|
-
# Doc Freshness チェック結果
|
|
101
|
-
|
|
102
|
-
## サマリー
|
|
103
|
-
- 総ドキュメント数: N
|
|
104
|
-
- ok: N / warn: N / error: N
|
|
105
|
-
|
|
106
|
-
## 要対応(error)
|
|
107
|
-
| ファイル | 最終更新 | 閾値超過日数 | 推奨アクション |
|
|
108
|
-
|---------|---------|------------|--------------|
|
|
109
|
-
|
|
110
|
-
## 要確認(warn)
|
|
111
|
-
| ファイル | 最終更新 | 残り日数 |
|
|
112
|
-
|---------|---------|---------|
|
|
113
|
-
|
|
114
|
-
## 次のアクション
|
|
115
|
-
(errorがある場合は `cascade-updater` の実行を提案)
|
|
116
|
-
```
|
|
117
|
-
|
|
118
|
-
---
|
|
119
|
-
|
|
120
|
-
## phasegate.config.json 設定例
|
|
121
|
-
|
|
122
|
-
```json
|
|
123
|
-
{
|
|
124
|
-
"docFreshnessThresholds": {
|
|
125
|
-
"domain_model.md": 90,
|
|
126
|
-
"logical_design.md": 60,
|
|
127
|
-
"unit_test_design.md": 30,
|
|
128
|
-
"default": 30
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
```
|
|
132
|
-
|
|
133
|
-
---
|
|
134
|
-
|
|
135
|
-
## 関連スキル
|
|
136
|
-
|
|
137
|
-
| スキル | 用途 |
|
|
138
|
-
|-------|------|
|
|
139
|
-
| `cascade-updater` | errorが検出された設計文書の更新 |
|
|
140
|
-
| `consistency-checker` | 文書間整合性の検証(freshness修正後の確認) |
|
|
@@ -1,169 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: implementation-planner
|
|
3
|
-
description: "Unit仕様とドメインモデル設計を元に実装計画を立てる。WI IDや機能名から関連Unitを特定し、API設計・レイヤー別実装方針を整理してmdファイルで出力する。使用タイミング: 実装計画を立てて、WI-XXXの実装方針を決めて、この機能の設計を整理して、など実装前の計画策定時。"
|
|
4
|
-
model: sonnet
|
|
5
|
-
review: opus
|
|
6
|
-
languages: [typescript]
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# Implementation Planner
|
|
10
|
-
|
|
11
|
-
## 目的
|
|
12
|
-
|
|
13
|
-
UnitドキュメントとConstructionのドメインモデル設計を元に、**設計フェーズの実装計画**を体系的に立案する。
|
|
14
|
-
|
|
15
|
-
## ⚠️ `story-implementor` との役割分担
|
|
16
|
-
|
|
17
|
-
| 観点 | `implementation-planner`(本スキル) | `story-implementor` |
|
|
18
|
-
|------|-------------------------------------|---------------------|
|
|
19
|
-
| **目的** | 設計段階で実装方針を整理・合意する | TDD実装を実行する |
|
|
20
|
-
| **タイミング** | 論理設計の前後(設計の方向性確認) | テスト設計・カバレッジ検証の後 |
|
|
21
|
-
| **出力** | 実装計画書(API設計・レイヤー別方針) | TDD実装計画 → 実装コード |
|
|
22
|
-
| **テスト設計** | 参照しない(設計フェーズのため) | 必須(テスト設計完了が前提) |
|
|
23
|
-
|
|
24
|
-
**使い分けの指針:**
|
|
25
|
-
- 「この機能どう実装する?」→ `implementation-planner`
|
|
26
|
-
- 「テスト設計も終わった、TDD実装を始めたい」→ `story-implementor`
|
|
27
|
-
|
|
28
|
-
## ⚠️ 3フェーズ実行ルール
|
|
29
|
-
|
|
30
|
-
**このスキルは3フェーズで実行する。**
|
|
31
|
-
- **Phase 1(計画)**: Opus がスコープ・方針・不明点を整理し、人間の承認を得る
|
|
32
|
-
- **Phase 2(実行)**: 委任先モデルに委任して成果物を生成する(`npx phasegate delegate-sonnet` 経由)
|
|
33
|
-
- **Phase 3(レビュー)**: Opus が成果物を検証し、問題があれば直接修正する
|
|
34
|
-
|
|
35
|
-
**Phase 1/2/3を同時に実行してはならない。モデルルーティングの詳細は `docs/principles/model-routing.md` を参照(consumer プロジェクトでは `node_modules/phasegate/docs/principles/model-routing.md`、phasegate 自リポジトリでは `docs/principles/model-routing.md` を参照する)。**
|
|
36
|
-
|
|
37
|
-
---
|
|
38
|
-
|
|
39
|
-
## ワークフロー
|
|
40
|
-
|
|
41
|
-
## 前提条件チェック(Pre-flight, BLOCKING)
|
|
42
|
-
|
|
43
|
-
Before generating any plan, verify `docs/inception/{unit}/WI-XXX/description.md` exists.
|
|
44
|
-
If not, halt and ask the user to create the WI first, or offer to run `phasegate scaffold-wi <unit> <story|issue|chore>`.
|
|
45
|
-
|
|
46
|
-
```
|
|
47
|
-
入力解析 → Unit特定 → ドメインモデル確認 → 既存実装確認 → 計画作成 → 出力
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
### Step 1: 入力解析
|
|
51
|
-
|
|
52
|
-
ユーザー入力から抽出:
|
|
53
|
-
- WI ID(WI-XXX形式)
|
|
54
|
-
- 機能名・タスク説明
|
|
55
|
-
- 優先度・制約条件
|
|
56
|
-
|
|
57
|
-
### Step 2: Unit特定
|
|
58
|
-
|
|
59
|
-
1. `docs/product/units/integration_contract.md`を読み込み
|
|
60
|
-
2. 関連する公開APIエンドポイントを特定
|
|
61
|
-
3. 該当Unitの`{unit}.md`を確認
|
|
62
|
-
4. Unit間依存関係を整理
|
|
63
|
-
|
|
64
|
-
**検索方法:**
|
|
65
|
-
- Grep/Globツールを使用して `docs/product/units/` 配下からストーリーIDやキーワードを検索する
|
|
66
|
-
- `integration_contract.md` から関連する公開APIエンドポイントを特定する
|
|
67
|
-
|
|
68
|
-
### Step 3: ドメインモデル確認
|
|
69
|
-
|
|
70
|
-
1. `docs/product/construction/{context}/domain_model.md`を読み込み
|
|
71
|
-
2. 以下を把握:
|
|
72
|
-
- 集約と不変条件
|
|
73
|
-
- エンティティ・値オブジェクト
|
|
74
|
-
- ドメインイベント
|
|
75
|
-
- 状態遷移
|
|
76
|
-
3. 必要に応じて`shared_kernel/domain_model.md`を参照
|
|
77
|
-
|
|
78
|
-
### Step 4: 既存実装確認
|
|
79
|
-
|
|
80
|
-
- Glob/Readツールを使用してプロジェクトの実装ディレクトリ構造を確認する
|
|
81
|
-
- 既存の実装パターンを検索し、コードスタイル・ファイル配置を把握する
|
|
82
|
-
|
|
83
|
-
### Step 5: 計画作成
|
|
84
|
-
|
|
85
|
-
[references/plan-template.md](references/plan-template.md)のフォーマットに従って:
|
|
86
|
-
1. API設計(新規/既存拡張)
|
|
87
|
-
2. レイヤー別実装内容
|
|
88
|
-
3. 実装ステップ分解
|
|
89
|
-
4. 影響範囲特定
|
|
90
|
-
|
|
91
|
-
## 出力ファイル
|
|
92
|
-
|
|
93
|
-
### Step 6: 出力
|
|
94
|
-
|
|
95
|
-
計画をmdファイルとして出力。パスの推奨:
|
|
96
|
-
```
|
|
97
|
-
docs/inception/{task_id}_plan.md
|
|
98
|
-
docs/inception/{unit}/WI-XXX/tdd_implementation_plan.md
|
|
99
|
-
```
|
|
100
|
-
|
|
101
|
-
> **パス注記**: 本スキルが扱う設計文書パス(`docs/inception/...` / `docs/product/units/...` / `docs/product/construction/...`)は既定値であり、consumer が `phasegate.config.json` の `paths` 設定で上書きしている場合はそちらが優先される。
|
|
102
|
-
|
|
103
|
-
**[Question][Answer]セクション必須**: 不明点や確認事項をまとめ、ユーザーからのフィードバックを受け取れるようにする。
|
|
104
|
-
|
|
105
|
-
---
|
|
106
|
-
|
|
107
|
-
## 入力(参照ドキュメント)
|
|
108
|
-
|
|
109
|
-
| ファイル | 用途 |
|
|
110
|
-
|----------|------|
|
|
111
|
-
| `docs/product/units/integration_contract.md` | Unit間API定義・依存関係 |
|
|
112
|
-
| `docs/product/units/{unit}.md` | ユーザーストーリー・機能要件 |
|
|
113
|
-
| `docs/product/construction/{context}/domain_model.md` | ドメインモデル設計 |
|
|
114
|
-
|
|
115
|
-
**詳細は以下を参照:**
|
|
116
|
-
- [document-structure.md](references/document-structure.md): ドキュメント構造リファレンス
|
|
117
|
-
- [workflow.md](references/workflow.md): 詳細ワークフロー
|
|
118
|
-
- [plan-template.md](references/plan-template.md): 出力テンプレート
|
|
119
|
-
|
|
120
|
-
---
|
|
121
|
-
|
|
122
|
-
## Unit一覧(クイックリファレンス)
|
|
123
|
-
|
|
124
|
-
実行時に `docs/product/units/` 配下のUnit定義ファイルを動的に読み取ること。ハードコードしない。
|
|
125
|
-
|
|
126
|
-
---
|
|
127
|
-
|
|
128
|
-
### Phase 2 最低出力基準(Sonnet委任時の品質制約)
|
|
129
|
-
|
|
130
|
-
以下の基準を満たさない出力は不完全とみなし、Phase 3レビューでBLOCKとする。
|
|
131
|
-
|
|
132
|
-
| 基準 | 最低要件 |
|
|
133
|
-
|------|---------|
|
|
134
|
-
| Unit特定 | 対象ストーリー/機能に関連するUnitが正しく特定されていること |
|
|
135
|
-
| ドメインモデル参照 | 関連する集約・エンティティ・値オブジェクトが列挙されていること |
|
|
136
|
-
| API設計 | 新規/既存拡張のエンドポイントが具体的に定義されていること |
|
|
137
|
-
| レイヤー別実装内容 | 各層(Domain/UseCase/Controller/Infrastructure)の実装内容が記載されていること |
|
|
138
|
-
| 実装ステップ | 実装順序が具体的なステップに分解されていること |
|
|
139
|
-
| 影響範囲 | 変更が他Unit・他コンポーネントに与える影響が分析されていること |
|
|
140
|
-
| QAセクション | 不明点・確認事項が[Question][Answer]形式で記載されていること |
|
|
141
|
-
|
|
142
|
-
---
|
|
143
|
-
|
|
144
|
-
## Phase 3: レビュー(Opus review)
|
|
145
|
-
|
|
146
|
-
### 実行主体
|
|
147
|
-
メインセッション(model-routing.md の Architect ロール)が実行する。Sonnetへの再委任は行わない。
|
|
148
|
-
|
|
149
|
-
### レビュー手順
|
|
150
|
-
1. Sonnetが出力したファイルを読み込む
|
|
151
|
-
2. `docs/principles/model-routing.md` の「レビュー観点」節に沿って検証する
|
|
152
|
-
3. **スキル固有レビュー観点**を検証する
|
|
153
|
-
4. 判定結果を出力する
|
|
154
|
-
|
|
155
|
-
### スキル固有レビュー観点(BLOCK基準)
|
|
156
|
-
- [ ] 対象Unit/ドメインモデルの特定が正確か
|
|
157
|
-
- [ ] API設計が統合契約と整合しているか
|
|
158
|
-
- [ ] レイヤー間の依存方向が正しいか(Domain → Port → UseCase → Controller)
|
|
159
|
-
- [ ] 実装ステップの順序が論理的か(依存関係に沿っているか)
|
|
160
|
-
- [ ] 影響範囲の分析が漏れなく行われているか
|
|
161
|
-
|
|
162
|
-
### 判定と修正
|
|
163
|
-
- **BLOCK項目にFAIL** → Opusが直接修正してから完了とする
|
|
164
|
-
- **WARNのみFAIL** → Opusが直接修正してから完了とする
|
|
165
|
-
- **全PASS** → 完了
|
|
166
|
-
|
|
167
|
-
## コードベース構成(クイックリファレンス)
|
|
168
|
-
|
|
169
|
-
実行時にプロジェクトのディレクトリ構造を動的に確認すること。ハードコードしない。
|
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
# ドキュメント構造リファレンス
|
|
2
|
-
|
|
3
|
-
## Units ドキュメント (`docs/product/units/`)
|
|
4
|
-
|
|
5
|
-
各Unitは境界づけられたコンテキストを表す。
|
|
6
|
-
|
|
7
|
-
| ファイル | 内容 |
|
|
8
|
-
|----------|------|
|
|
9
|
-
| `integration_contract.md` | Unit間連携API定義・技術スタック・依存関係図 |
|
|
10
|
-
| `{unit}_unit.md` | ユーザーストーリー・機能要件・外部依存 |
|
|
11
|
-
|
|
12
|
-
### integration_contract.md の構造
|
|
13
|
-
|
|
14
|
-
```
|
|
15
|
-
- 技術スタック概要(Auth/Gateway/API Server/DB/Worker/UI/Realtime)
|
|
16
|
-
- ユニット間依存関係図(Mermaid)
|
|
17
|
-
- 公開APIエンドポイント定義(各Unit)
|
|
18
|
-
- 共通データフォーマット
|
|
19
|
-
- 認証・認可
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
### Unit一覧
|
|
23
|
-
|
|
24
|
-
| Unit | 責務 |
|
|
25
|
-
|------|------|
|
|
26
|
-
| IAM Unit | 認証・JWT発行・ユーザー情報 |
|
|
27
|
-
| Admin Unit | ユーザー・チーム管理・権限付与 |
|
|
28
|
-
| Client Unit | クライアント(BPO委託元企業)管理 |
|
|
29
|
-
| Knowledge Unit | クライアントごとの業務ナレッジ管理 |
|
|
30
|
-
| Partner Master Unit | 取引先マスタ管理 |
|
|
31
|
-
| Workflow Dashboard Unit | プロセス一覧・状態管理 |
|
|
32
|
-
| Estimate Unit | 見積書作成プロセス管理(コアドメイン) |
|
|
33
|
-
| Audit Unit | 監査ログ記録・閲覧 |
|
|
34
|
-
|
|
35
|
-
---
|
|
36
|
-
|
|
37
|
-
## ドメインモデル (`docs/product/construction/`)
|
|
38
|
-
|
|
39
|
-
各境界づけられたコンテキストのドメイン設計。
|
|
40
|
-
|
|
41
|
-
### ディレクトリ構成
|
|
42
|
-
|
|
43
|
-
```
|
|
44
|
-
docs/product/construction/
|
|
45
|
-
├── {context}/domain_model.md # 各コンテキストのドメインモデル
|
|
46
|
-
├── shared_kernel/domain_model.md # 共有カーネル
|
|
47
|
-
├── architecture_image.md # アーキテクチャ図
|
|
48
|
-
└── flow_image.md # フロー図
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
### domain_model.md の構造
|
|
52
|
-
|
|
53
|
-
```
|
|
54
|
-
1. コンテキスト概要
|
|
55
|
-
- 境界づけられたコンテキスト
|
|
56
|
-
- ユビキタス言語
|
|
57
|
-
- コンテキストマップ
|
|
58
|
-
|
|
59
|
-
2. 集約 (Aggregates)
|
|
60
|
-
- 集約ルート定義
|
|
61
|
-
- 不変条件
|
|
62
|
-
- 状態遷移図
|
|
63
|
-
|
|
64
|
-
3. エンティティ (Entities)
|
|
65
|
-
|
|
66
|
-
4. 値オブジェクト (Value Objects)
|
|
67
|
-
|
|
68
|
-
5. ドメインイベント (Domain Events)
|
|
69
|
-
|
|
70
|
-
6. ポリシー (Policies)
|
|
71
|
-
|
|
72
|
-
7. リポジトリ (Repositories)
|
|
73
|
-
|
|
74
|
-
8. ドメインサービス (Domain Services)
|
|
75
|
-
|
|
76
|
-
9. クラス図(Mermaid)
|
|
77
|
-
|
|
78
|
-
10. イベントソーシング実装(該当する場合)
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
---
|
|
82
|
-
|
|
83
|
-
## コードベース構成
|
|
84
|
-
|
|
85
|
-
### functions/ (API Server - Cloud Run)
|
|
86
|
-
|
|
87
|
-
```
|
|
88
|
-
functions/
|
|
89
|
-
├── src/
|
|
90
|
-
│ ├── model/ # ドメインモデル層
|
|
91
|
-
│ ├── usecase/ # ユースケース層
|
|
92
|
-
│ ├── port/ # ポートインターフェース
|
|
93
|
-
│ ├── controller/ # コントローラー層
|
|
94
|
-
│ ├── gateway/ # 外部通信ゲートウェイ
|
|
95
|
-
│ └── infrastructure/ # インフラ層
|
|
96
|
-
└── tests/ # テスト
|
|
97
|
-
```
|
|
98
|
-
|
|
99
|
-
### hosting/ (Frontend - React)
|
|
100
|
-
|
|
101
|
-
```
|
|
102
|
-
hosting/
|
|
103
|
-
├── src/
|
|
104
|
-
│ ├── pages/ # ページコンポーネント
|
|
105
|
-
│ ├── components/ # 共通コンポーネント
|
|
106
|
-
│ ├── hooks/ # カスタムフック
|
|
107
|
-
│ └── api/ # API通信
|
|
108
|
-
└── tests/ # テスト
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
### supabase/ (Edge Functions)
|
|
112
|
-
|
|
113
|
-
```
|
|
114
|
-
supabase/
|
|
115
|
-
└── functions/ # Edge Functions
|
|
116
|
-
```
|
|
@@ -1,177 +0,0 @@
|
|
|
1
|
-
# 実装計画テンプレート
|
|
2
|
-
|
|
3
|
-
以下のフォーマットで計画ファイルを出力する。
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
```markdown
|
|
8
|
-
# 実装計画: {タスク名}
|
|
9
|
-
|
|
10
|
-
生成日時: {YYYY-MM-DD HH:mm}
|
|
11
|
-
ステータス: DRAFT / REVIEWING / APPROVED
|
|
12
|
-
|
|
13
|
-
---
|
|
14
|
-
|
|
15
|
-
## 1. 概要
|
|
16
|
-
|
|
17
|
-
### 1.1 実装目的
|
|
18
|
-
{何を実現するか、ビジネス価値}
|
|
19
|
-
|
|
20
|
-
### 1.2 対象ユーザーストーリー
|
|
21
|
-
| ID | ストーリー | 優先度 |
|
|
22
|
-
|----|-----------|--------|
|
|
23
|
-
| US-XXX | ... | MVP/後続 |
|
|
24
|
-
|
|
25
|
-
---
|
|
26
|
-
|
|
27
|
-
## 2. 関連Unit分析
|
|
28
|
-
|
|
29
|
-
### 2.1 プライマリUnit
|
|
30
|
-
{メインで影響を受けるUnit}
|
|
31
|
-
|
|
32
|
-
### 2.2 依存Unit
|
|
33
|
-
| Unit名 | 依存タイプ | 理由 |
|
|
34
|
-
|--------|-----------|------|
|
|
35
|
-
| ... | 参照/イベント発行/API呼び出し | ... |
|
|
36
|
-
|
|
37
|
-
### 2.3 公開APIエンドポイント
|
|
38
|
-
| Method | Endpoint | 用途 | 新規/既存 |
|
|
39
|
-
|--------|----------|------|----------|
|
|
40
|
-
| ... | ... | ... | ... |
|
|
41
|
-
|
|
42
|
-
---
|
|
43
|
-
|
|
44
|
-
## 3. ドメインモデル設計
|
|
45
|
-
|
|
46
|
-
### 3.1 集約
|
|
47
|
-
{対象となる集約とその変更内容}
|
|
48
|
-
|
|
49
|
-
### 3.2 エンティティ・値オブジェクト
|
|
50
|
-
{新規追加または変更が必要なもの}
|
|
51
|
-
|
|
52
|
-
### 3.3 ドメインイベント
|
|
53
|
-
| イベント名 | トリガー | ペイロード |
|
|
54
|
-
|-----------|---------|-----------|
|
|
55
|
-
| ... | ... | ... |
|
|
56
|
-
|
|
57
|
-
### 3.4 ドメインサービス
|
|
58
|
-
{必要な場合のみ}
|
|
59
|
-
|
|
60
|
-
---
|
|
61
|
-
|
|
62
|
-
## 4. レイヤー別実装方針
|
|
63
|
-
|
|
64
|
-
### 4.1 Model層
|
|
65
|
-
```
|
|
66
|
-
対象ファイル:
|
|
67
|
-
- functions/src/model/{context}/...
|
|
68
|
-
|
|
69
|
-
実装内容:
|
|
70
|
-
- ...
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
### 4.2 UseCase層
|
|
74
|
-
```
|
|
75
|
-
対象ファイル:
|
|
76
|
-
- functions/src/usecase/{context}/...
|
|
77
|
-
|
|
78
|
-
実装内容:
|
|
79
|
-
- ...
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
### 4.3 Port層
|
|
83
|
-
```
|
|
84
|
-
対象ファイル:
|
|
85
|
-
- functions/src/port/{context}/...
|
|
86
|
-
|
|
87
|
-
実装内容:
|
|
88
|
-
- ...
|
|
89
|
-
```
|
|
90
|
-
|
|
91
|
-
### 4.4 Controller層
|
|
92
|
-
```
|
|
93
|
-
対象ファイル:
|
|
94
|
-
- functions/src/controller/{context}/...
|
|
95
|
-
|
|
96
|
-
実装内容:
|
|
97
|
-
- ...
|
|
98
|
-
```
|
|
99
|
-
|
|
100
|
-
### 4.5 Repository層
|
|
101
|
-
```
|
|
102
|
-
対象ファイル:
|
|
103
|
-
- functions/src/infrastructure/repository/...
|
|
104
|
-
|
|
105
|
-
実装内容:
|
|
106
|
-
- ...
|
|
107
|
-
```
|
|
108
|
-
|
|
109
|
-
### 4.6 Frontend (必要な場合)
|
|
110
|
-
```
|
|
111
|
-
対象ファイル:
|
|
112
|
-
- hosting/src/pages/...
|
|
113
|
-
- hosting/src/components/...
|
|
114
|
-
|
|
115
|
-
実装内容:
|
|
116
|
-
- ...
|
|
117
|
-
```
|
|
118
|
-
|
|
119
|
-
---
|
|
120
|
-
|
|
121
|
-
## 5. 実装ステップ
|
|
122
|
-
|
|
123
|
-
### Phase 1: ドメインモデル実装
|
|
124
|
-
- [ ] Step 1.1: {具体的なタスク}
|
|
125
|
-
- [ ] Step 1.2: {具体的なタスク}
|
|
126
|
-
|
|
127
|
-
### Phase 2: UseCase実装
|
|
128
|
-
- [ ] Step 2.1: {具体的なタスク}
|
|
129
|
-
- [ ] Step 2.2: {具体的なタスク}
|
|
130
|
-
|
|
131
|
-
### Phase 3: API実装
|
|
132
|
-
- [ ] Step 3.1: {具体的なタスク}
|
|
133
|
-
- [ ] Step 3.2: {具体的なタスク}
|
|
134
|
-
|
|
135
|
-
### Phase 4: テスト
|
|
136
|
-
- [ ] Step 4.1: ユニットテスト作成
|
|
137
|
-
- [ ] Step 4.2: 統合テスト作成
|
|
138
|
-
|
|
139
|
-
---
|
|
140
|
-
|
|
141
|
-
## 6. 影響範囲と考慮事項
|
|
142
|
-
|
|
143
|
-
### 6.1 既存コードへの影響
|
|
144
|
-
{変更が必要な既存コード}
|
|
145
|
-
|
|
146
|
-
### 6.2 マイグレーション
|
|
147
|
-
{DBスキーマ変更がある場合}
|
|
148
|
-
|
|
149
|
-
### 6.3 リスクと対策
|
|
150
|
-
| リスク | 影響度 | 対策 |
|
|
151
|
-
|--------|-------|------|
|
|
152
|
-
| ... | 高/中/低 | ... |
|
|
153
|
-
|
|
154
|
-
---
|
|
155
|
-
|
|
156
|
-
## 7. [Question][Answer]
|
|
157
|
-
|
|
158
|
-
### 未解決の質問
|
|
159
|
-
|
|
160
|
-
**Q1: {質問内容}**
|
|
161
|
-
> A1: {回答待ち / 回答内容}
|
|
162
|
-
|
|
163
|
-
**Q2: {質問内容}**
|
|
164
|
-
> A2: {回答待ち / 回答内容}
|
|
165
|
-
|
|
166
|
-
### 追加情報リクエスト
|
|
167
|
-
- {必要な追加情報1}
|
|
168
|
-
- {必要な追加情報2}
|
|
169
|
-
|
|
170
|
-
---
|
|
171
|
-
|
|
172
|
-
## 変更履歴
|
|
173
|
-
|
|
174
|
-
| 日付 | 変更者 | 内容 |
|
|
175
|
-
|-----|-------|------|
|
|
176
|
-
| YYYY-MM-DD | AI | 初版作成 |
|
|
177
|
-
```
|