phasegate 0.183.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 +17 -17
- 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/biome-ast-engine/infrastructure/parsers/comment-density-parser.ts +51 -10
- 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 +68 -65
- 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/adr-foundation-existence-adapter.ts +26 -2
- 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 +8 -1
- 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/domain/ports/story-reflection-file-system-port.ts +2 -0
- package/scripts/harness/phase-dependency-model/domain/services/story-reflection-checker.ts +8 -0
- package/scripts/harness/phase-dependency-model/infrastructure/filesystem/file-system-story-reflection-adapter.ts +137 -2
- package/scripts/harness/quick-mode/domain/services/quick-mode-judgment-engine.ts +44 -40
- package/scripts/harness/setup/skill-deployer.ts +8 -10
- package/scripts/harness/skill-quality/domain/services/skill-structure-validator.ts +13 -2
- package/scripts/harness/skill-quality/domain/types/skill-kind.ts +6 -0
- package/scripts/harness/skill-quality/domain/value-objects/skill-structure.ts +24 -8
- 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/cascade-updater/SKILL.md +3 -3
- package/skills/codebase-mapper/SKILL.md +6 -6
- package/skills/codex-delegator/SKILL.md +4 -3
- package/skills/codex-delegator/references/prompt-patterns.md +3 -3
- package/skills/codex-delegator/references/review-dimensions.md +1 -1
- package/skills/consistency-checker/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/domain-designer/SKILL.md +4 -2
- package/skills/engineering-perspective/SKILL.md +1 -0
- package/skills/environment-designer/SKILL.md +8 -6
- package/skills/implementation-readiness-checker/SKILL.md +2 -1
- package/skills/it-test-designer/SKILL.md +10 -8
- package/skills/it-test-logic-designer/SKILL.md +11 -9
- package/skills/it-test-logic-designer/references/repository-test-patterns.md +8 -1
- package/skills/logical-designer/SKILL.md +5 -3
- package/skills/mock-designer/SKILL.md +10 -6
- package/skills/phasegate-config-doctor/SKILL.md +3 -2
- package/skills/phasegate-toolkit-guide/SKILL.md +1 -0
- package/skills/quick-implementor/SKILL.md +1 -1
- package/skills/release-publisher/SKILL.md +101 -0
- package/skills/scenario-test-designer/SKILL.md +27 -14
- package/skills/scenario-test-logic-designer/SKILL.md +10 -8
- package/skills/scenario-test-logic-designer/references/msw-patterns.md +3 -1
- package/skills/scenario-test-logic-designer/references/playwright-patterns.md +3 -1
- package/skills/skill-creator/SKILL.md +75 -332
- package/skills/story-implementor/SKILL.md +54 -0
- package/skills/story-mapper/SKILL.md +8 -4
- package/skills/story-writer/SKILL.md +14 -5
- package/skills/test-coverage-checker/SKILL.md +4 -6
- package/skills/uiux-designer/SKILL.md +4 -2
- package/skills/uiux-designer/references/uiux-design-template.md +4 -4
- package/skills/unit-designer/SKILL.md +11 -7
- package/skills/unit-test-designer/SKILL.md +25 -11
- package/skills/unit-test-logic-designer/SKILL.md +10 -8
- package/skills/unit-test-logic-designer/references/test-patterns.md +7 -1
- package/skills/doc-freshness-checker/SKILL.md +0 -140
- package/skills/implementation-planner/SKILL.md +0 -167
- 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 -104
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: doc-health-checker
|
|
3
|
+
kind: advisory
|
|
4
|
+
description: 設計文書の健全性(鮮度 + ポインタ有効性)を L4 バリデータ CLI で診断・対処するスキル。`npx phasegate p2:check-freshness`(鮮度・code-design drift, L4-004)と `npx phasegate p2:validate-pointers`(壊れたファイルパスポインタ, L4-005)をラップし、結果を解釈して修正アクションを提案する。使用タイミング:「設計文書が古くなっていないか確認して」「ドキュメントの鮮度チェック」「設計とコードの乖離を調べて」「ドキュメントのリンク切れを確認して」「broken pointer を探して」「設計文書の参照が正しいか確認して」「L4 doc health チェック」など。
|
|
5
|
+
model: sonnet
|
|
6
|
+
review: opus
|
|
7
|
+
languages: [typescript]
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Doc Health Checker
|
|
11
|
+
|
|
12
|
+
## 目的
|
|
13
|
+
|
|
14
|
+
設計文書の健全性を 2 つの観点で機械的に検証し、結果を解釈して修正アクションを提案する advisory スキル。旧 `doc-freshness-checker`(鮮度)と旧 `pointer-validator`(ポインタ有効性)を統合したもの。
|
|
15
|
+
|
|
16
|
+
1. **鮮度(freshness)— L4-004**: 設計文書の最終更新が古すぎないか、コード変更と設計文書の乖離(code-design drift)がないかを検出する。`npx phasegate p2:check-freshness` をラップする。
|
|
17
|
+
2. **ポインタ有効性(pointer validity)— L4-005**: 設計文書内で参照されているファイルパスポインタが実在するか(broken pointer)を検出する。`npx phasegate p2:validate-pointers` をラップする。
|
|
18
|
+
|
|
19
|
+
いずれも L4 バリデータの CLI 拡張であり、本スキルは CLI を実行して結果を解釈し、ユーザーに対処案を提示する。
|
|
20
|
+
|
|
21
|
+
> **重要(CLI 名の正)**: コマンドは必ず `p2:` 接頭辞付きで呼ぶ。無接頭辞の `phasegate check-freshness` / `phasegate validate-pointers` は **存在しない誤った表記**(旧スキルの記載は誤りだった)。正しくは `npx phasegate p2:check-freshness` / `npx phasegate p2:validate-pointers`。
|
|
22
|
+
|
|
23
|
+
## 対象読者・使いどころ
|
|
24
|
+
|
|
25
|
+
- 設計文書(`docs/product/construction/` や `docs/inception/` 配下の `.md`)が実装から取り残されていないか、参照リンクが壊れていないかを点検したいとき。
|
|
26
|
+
- リリース前・大規模リファクタ後・Unit 完了時のドキュメント健全性確認。
|
|
27
|
+
- 軽量チェックのため、鮮度とポインタの両方をまとめて走らせるのが基本運用。
|
|
28
|
+
|
|
29
|
+
## CLI リファレンス
|
|
30
|
+
|
|
31
|
+
### 1. 鮮度チェック — `p2:check-freshness`(L4-004)
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
npx phasegate p2:check-freshness [--pattern <glob>] [--format text|json] [--dry-run]
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
| オプション | 意味 |
|
|
38
|
+
|-----------|------|
|
|
39
|
+
| `--pattern <glob>` | 対象ファイルの glob(未指定時は config の設計文書パスが対象) |
|
|
40
|
+
| `--format text\|json` | 出力形式(デフォルト `text`) |
|
|
41
|
+
| `--dry-run` | 副作用なしで診断のみ |
|
|
42
|
+
|
|
43
|
+
`CheckDocFreshnessOutput` の主なフィールド:
|
|
44
|
+
|
|
45
|
+
| フィールド | 意味 |
|
|
46
|
+
|-----------|------|
|
|
47
|
+
| `results[].status` | `ok` / `warn` / `error` |
|
|
48
|
+
| `results[].documentPath` | チェック対象ファイル |
|
|
49
|
+
| `results[].daysSinceUpdate` | 最終更新からの日数 |
|
|
50
|
+
| `results[].threshold` | 設定閾値 |
|
|
51
|
+
| `summary.error` | error 件数(exit code 1 になる) |
|
|
52
|
+
| `summary.warn` | warn 件数 |
|
|
53
|
+
|
|
54
|
+
**exit code**: `summary.error > 0` なら 1、それ以外 0。
|
|
55
|
+
|
|
56
|
+
### 2. ポインタ検証 — `p2:validate-pointers`(L4-005)
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
npx phasegate p2:validate-pointers [--pattern <glob>] [--include-urls] [--format text|json]
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
| オプション | 意味 |
|
|
63
|
+
|-----------|------|
|
|
64
|
+
| `--pattern <glob>` | 対象ファイルの glob(未指定時は config の設計文書パスが対象) |
|
|
65
|
+
| `--include-urls` | URL ポインタ(`http(s)://`)も検証対象に含める(デフォルトは file-path のみ) |
|
|
66
|
+
| `--format text\|json` | 出力形式(デフォルト `text`) |
|
|
67
|
+
|
|
68
|
+
検出対象ポインタ: Markdown `[text](path)` リンク / `@file:` `@ref:` / `filePath:` フィールドのパス参照。`http(s)://` URL は `--include-urls` 指定時のみ検証。
|
|
69
|
+
|
|
70
|
+
`ValidateDocPointersOutput` の主なフィールド:
|
|
71
|
+
|
|
72
|
+
| フィールド | 意味 |
|
|
73
|
+
|-----------|------|
|
|
74
|
+
| `results[].documentPath` | ポインタを含む文書 |
|
|
75
|
+
| `results[].pointerTarget` | 参照先パス |
|
|
76
|
+
| `results[].pointerType` | `file-path` / `url` |
|
|
77
|
+
| `results[].isResolvable` | 解決可能かどうか |
|
|
78
|
+
| `results[].errorMessage` | エラー内容(null なら正常) |
|
|
79
|
+
| `summary.brokenPointers` | broken 件数 |
|
|
80
|
+
| `summary.skippedUrlPointers` | スキップした URL 件数 |
|
|
81
|
+
| `passed` | 全ポインタ有効なら true |
|
|
82
|
+
|
|
83
|
+
**exit code**: `passed` なら 0、broken があれば 1。
|
|
84
|
+
|
|
85
|
+
> **注意**: このスキルの CLI には自動修正フラグ(`--fix`)は存在しない。ポインタ修正は結果を解釈したうえで手動(`Edit`)で行う。
|
|
86
|
+
|
|
87
|
+
## ワークフロー
|
|
88
|
+
|
|
89
|
+
軽量チェックのため単一フェーズで実行する。鮮度とポインタは独立なので、必要に応じて片方だけ/両方を走らせる。
|
|
90
|
+
|
|
91
|
+
### Step 1: 実行
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
# 両方まとめて(推奨)
|
|
95
|
+
npx phasegate p2:check-freshness --format json
|
|
96
|
+
npx phasegate p2:validate-pointers --format json
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
大量に broken が出そうな大規模リポジトリでは `--pattern` でスコープを絞って段階実行する。
|
|
100
|
+
|
|
101
|
+
### Step 2: 結果の解釈とアクション
|
|
102
|
+
|
|
103
|
+
**鮮度(freshness)**:
|
|
104
|
+
|
|
105
|
+
| 状態 | 推奨アクション |
|
|
106
|
+
|------|--------------|
|
|
107
|
+
| `error`(閾値超過 / drift 疑い) | `cascade-updater` で上位設計文書を更新、コードと設計の乖離を解消 |
|
|
108
|
+
| `warn`(閾値近接) | 設計文書の内容を確認し、必要に応じて更新 |
|
|
109
|
+
| `ok` | 対応不要 |
|
|
110
|
+
|
|
111
|
+
**ポインタ(pointer)**: broken の原因別に対処する。
|
|
112
|
+
|
|
113
|
+
| broken 原因 | 推奨アクション |
|
|
114
|
+
|-----------|--------------|
|
|
115
|
+
| ファイルが移動された | ポインタのパスを新パスに更新(`Edit`) |
|
|
116
|
+
| ファイルが削除された | ポインタを削除 or 代替ファイルに変更 |
|
|
117
|
+
| タイポ | パス修正 |
|
|
118
|
+
| 未作成ファイルへの前方参照 | 意図的なら `[TODO]` マーカーを付ける |
|
|
119
|
+
|
|
120
|
+
修正後は同じコマンドを再実行して 0 件(`passed: true` / `summary.error: 0`)を確認する。
|
|
121
|
+
|
|
122
|
+
### 出力フォーマット(ユーザー報告例)
|
|
123
|
+
|
|
124
|
+
```markdown
|
|
125
|
+
# Doc Health チェック結果
|
|
126
|
+
|
|
127
|
+
## 鮮度(p2:check-freshness / L4-004)
|
|
128
|
+
- 総ドキュメント数: N / ok: N / warn: N / error: N
|
|
129
|
+
### 要対応(error)
|
|
130
|
+
| ファイル | 最終更新 | 閾値超過日数 | 推奨アクション |
|
|
131
|
+
|---------|---------|------------|--------------|
|
|
132
|
+
|
|
133
|
+
## ポインタ(p2:validate-pointers / L4-005)
|
|
134
|
+
- チェック文書数: N / broken: N / URL(スキップ): N
|
|
135
|
+
### Broken Pointers(要修正)
|
|
136
|
+
| 文書ファイル | 参照先 | エラー | 推奨修正 |
|
|
137
|
+
|------------|--------|--------|---------|
|
|
138
|
+
|
|
139
|
+
## 次のアクション
|
|
140
|
+
(error があれば cascade-updater、broken があれば該当ポインタの Edit を提案)
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
## 関連スキル
|
|
144
|
+
|
|
145
|
+
| スキル | 用途 |
|
|
146
|
+
|-------|------|
|
|
147
|
+
| `cascade-updater` | 鮮度 error が出た設計文書の連鎖更新 |
|
|
148
|
+
| `consistency-checker` | 文書間の内容整合性チェック(健全性修正後の確認) |
|
|
@@ -24,7 +24,7 @@ DDD戦術パターンを用いてドメインモデルを設計するスキル
|
|
|
24
24
|
|
|
25
25
|
## ⚠️ 上位レイヤー存在チェック
|
|
26
26
|
|
|
27
|
-
**このスキルは AIDLC Step
|
|
27
|
+
**このスキルは AIDLC Step 2.1「Domainの設計」に対応します。実行前に上位設計の存在を確認してください。**
|
|
28
28
|
|
|
29
29
|
### 依存する上位設計文書
|
|
30
30
|
|
|
@@ -77,6 +77,8 @@ DDD戦術パターンを用いてドメインモデルを設計するスキル
|
|
|
77
77
|
### 出力ファイル
|
|
78
78
|
`docs/inception/{unit}/domain_model_plan.md`
|
|
79
79
|
|
|
80
|
+
> **パス注記**: 本スキルが扱う設計文書パス(`docs/inception/...` / `docs/product/construction/...`)は既定値であり、consumer が `phasegate.config.json` の `paths` 設定で上書きしている場合はそちらが優先される。
|
|
81
|
+
|
|
80
82
|
### 計画ファイルの構成
|
|
81
83
|
|
|
82
84
|
```markdown
|
|
@@ -145,7 +147,7 @@ DDD戦術パターンを用いてドメインモデルを設計するスキル
|
|
|
145
147
|
|
|
146
148
|
## 🔗 成果物のトレーサビリティメタデータ(必須)
|
|
147
149
|
|
|
148
|
-
Phase 2 で生成する設計文書には、以下 2 種類のメタデータを emit
|
|
150
|
+
Phase 2 で生成する設計文書には、以下 2 種類のメタデータを emit する。これらのメタデータは `npx phasegate validate-metadata` / pre-commit で自動チェックされる。
|
|
149
151
|
|
|
150
152
|
### 1. YAML frontmatter(新規作成時)
|
|
151
153
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: environment-designer
|
|
3
|
-
description: ローカル開発環境のプラットフォーム構成設計。コードと環境のブリッジ(AIDLC Step 2.
|
|
3
|
+
description: ローカル開発環境のプラットフォーム構成設計。コードと環境のブリッジ(AIDLC Step 2.3、logical-designer の後)
|
|
4
4
|
model: sonnet
|
|
5
5
|
review: opus
|
|
6
6
|
languages: [typescript]
|
|
@@ -26,7 +26,7 @@ languages: [typescript]
|
|
|
26
26
|
|
|
27
27
|
## ⚠️ 上位レイヤー存在チェック
|
|
28
28
|
|
|
29
|
-
**このスキルは AIDLC Step 2.
|
|
29
|
+
**このスキルは AIDLC Step 2.3「環境設計」(logical-designer の後)に対応します。実行前に上位設計の存在を確認してください。**
|
|
30
30
|
|
|
31
31
|
### 依存する上位設計文書
|
|
32
32
|
|
|
@@ -69,10 +69,10 @@ languages: [typescript]
|
|
|
69
69
|
|
|
70
70
|
**このスキルは3フェーズで実行する。**
|
|
71
71
|
- **Phase 1(計画)**: Opus がスコープ・方針・不明点を整理し、人間の承認を得る
|
|
72
|
-
- **Phase 2(実行)**:
|
|
72
|
+
- **Phase 2(実行)**: 委任先モデルに委任して成果物を生成する(`npx phasegate delegate-sonnet` 経由)
|
|
73
73
|
- **Phase 3(レビュー)**: Opus が成果物を検証し、問題があれば直接修正する
|
|
74
74
|
|
|
75
|
-
**Phase 1/2/3を同時に実行してはならない。モデルルーティングの詳細は `docs/principles/model-routing.md`
|
|
75
|
+
**Phase 1/2/3を同時に実行してはならない。モデルルーティングの詳細は `docs/principles/model-routing.md` を参照(consumer プロジェクトでは `node_modules/phasegate/docs/principles/model-routing.md`、phasegate 自リポジトリでは `docs/principles/model-routing.md` を参照する)。**
|
|
76
76
|
|
|
77
77
|
---
|
|
78
78
|
|
|
@@ -84,6 +84,8 @@ languages: [typescript]
|
|
|
84
84
|
### 出力ファイル
|
|
85
85
|
`docs/inception/_shared/environment_design_plan.md`
|
|
86
86
|
|
|
87
|
+
> **パス注記**: 本スキルが扱う設計文書パス(`docs/inception/...` / `docs/product/environment_contract.md`)は既定値であり、consumer が `phasegate.config.json` の `paths` 設定で上書きしている場合はそちらが優先される。
|
|
88
|
+
|
|
87
89
|
### 計画ファイルの構成
|
|
88
90
|
|
|
89
91
|
```markdown
|
|
@@ -161,11 +163,11 @@ languages: [typescript]
|
|
|
161
163
|
## Phase 3: レビュー(Opus review)
|
|
162
164
|
|
|
163
165
|
### 実行主体
|
|
164
|
-
メインセッション(
|
|
166
|
+
メインセッション(model-routing.md の Architect ロール)が実行する。Sonnetへの再委任は行わない。
|
|
165
167
|
|
|
166
168
|
### レビュー手順
|
|
167
169
|
1. Sonnetが出力したファイルを読み込む
|
|
168
|
-
2. `docs/principles/model-routing.md`
|
|
170
|
+
2. `docs/principles/model-routing.md` の「レビュー観点」節に沿って検証する
|
|
169
171
|
3. **スキル固有レビュー観点**を検証する
|
|
170
172
|
4. 判定結果を出力する
|
|
171
173
|
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: implementation-readiness-checker
|
|
3
|
+
kind: advisory
|
|
3
4
|
description: 実装開始前の準備状況を自動検証 - テスト設計・カバレッジ・ロジック設計の存在チェックとギャップ分析
|
|
4
5
|
model: sonnet
|
|
5
6
|
review: opus
|
|
@@ -169,7 +170,7 @@ languages: [typescript]
|
|
|
169
170
|
## Phase 3: レビュー(Opus review)
|
|
170
171
|
|
|
171
172
|
### 実行主体
|
|
172
|
-
メインセッション(
|
|
173
|
+
メインセッション(model-routing.md の Architect ロール)が実行する。Sonnetへの再委任は行わない。
|
|
173
174
|
|
|
174
175
|
### レビュー手順
|
|
175
176
|
1. Sonnetが出力したファイルを読み込む
|
|
@@ -19,9 +19,11 @@ languages: [typescript]
|
|
|
19
19
|
### 任意インプット(あれば参照)
|
|
20
20
|
- **ドメインモデル** — `docs/product/construction/{unit}/domain_model.md`
|
|
21
21
|
- **環境設計** — `docs/product/environment_contract.md`
|
|
22
|
-
- **テスト規約** — `docs/principles/testing-rules.md`
|
|
22
|
+
- **テスト規約** — `docs/principles/testing-rules.md`(consumer プロジェクトでは `node_modules/phasegate/docs/principles/testing-rules.md`、phasegate リポジトリ自体では `docs/principles/testing-rules.md` を参照)
|
|
23
23
|
- **既存ITテスト** — 既存パターンの参考
|
|
24
24
|
|
|
25
|
+
> **設計文書パスの注記:** 上記および本スキルが扱う `docs/product/construction/{unit}/...` / `docs/inception/...` パスは既定値。consumer が `phasegate.config.json` の paths 設定を上書きしている場合はそちらに従う。
|
|
26
|
+
|
|
25
27
|
---
|
|
26
28
|
|
|
27
29
|
## ⛔ スキップ禁止
|
|
@@ -34,7 +36,7 @@ languages: [typescript]
|
|
|
34
36
|
- `implementation-readiness-checker` でブロックされる
|
|
35
37
|
|
|
36
38
|
### フロー上の位置
|
|
37
|
-
`scenario-test-designer` →
|
|
39
|
+
`scenario-test-designer` → `uiux-designer` → `unit-test-designer` → **it-test-designer(本スキル)** → `test-coverage-checker` → テストロジック設計 → `implementation-readiness-checker` → `story-implementor`
|
|
38
40
|
|
|
39
41
|
**必ず完了してから次のステップに進んでください。**
|
|
40
42
|
|
|
@@ -69,7 +71,7 @@ languages: [typescript]
|
|
|
69
71
|
|
|
70
72
|
**このスキルは3フェーズで実行する。**
|
|
71
73
|
- **Phase 1(計画)**: Opus がスコープ・方針・不明点を整理し、人間の承認を得る
|
|
72
|
-
- **Phase 2(実行)**:
|
|
74
|
+
- **Phase 2(実行)**: 委任先モデルに委任して成果物を生成する(`npx phasegate delegate-sonnet` 経由)
|
|
73
75
|
- **Phase 3(レビュー)**: Opus が成果物を検証し、問題があれば直接修正する
|
|
74
76
|
|
|
75
77
|
**Phase 1/2/3を同時に実行してはならない。モデルルーティングの詳細は `docs/principles/model-routing.md` を参照。**
|
|
@@ -151,11 +153,11 @@ ITテスト設計のスコープ・テスト対象・不明点を整理し、人
|
|
|
151
153
|
## Phase 3: レビュー(Opus review)
|
|
152
154
|
|
|
153
155
|
### 実行主体
|
|
154
|
-
メインセッション(
|
|
156
|
+
メインセッション(model-routing.md の Architect ロール)が実行する。Sonnetへの再委任は行わない。
|
|
155
157
|
|
|
156
158
|
### レビュー手順
|
|
157
159
|
1. Sonnetが出力したファイルを読み込む
|
|
158
|
-
2. `docs/principles/model-routing.md`
|
|
160
|
+
2. `docs/principles/model-routing.md` の「レビュー観点」節に沿って検証する
|
|
159
161
|
3. **スキル固有レビュー観点**を検証する
|
|
160
162
|
4. 判定結果を出力する
|
|
161
163
|
|
|
@@ -193,7 +195,7 @@ ITテスト設計のスコープ・テスト対象・不明点を整理し、人
|
|
|
193
195
|
|
|
194
196
|
ITテストケース設計完了後、以下の順序で進める(フロー図は「スキップ禁止」セクション参照):
|
|
195
197
|
|
|
196
|
-
1. `
|
|
197
|
-
2.
|
|
198
|
-
3.
|
|
198
|
+
1. `test-coverage-checker` — カバレッジ検証(90%以上)
|
|
199
|
+
2. `*-test-logic-designer` — 各レベルのテストロジック設計
|
|
200
|
+
3. `implementation-readiness-checker` — 実装準備の自動検証
|
|
199
201
|
4. `story-implementor` — TDD実装(Unit → IT → E2E)
|
|
@@ -14,7 +14,7 @@ ITテストケース設計(`it_test_design.md`)を元に、Vitest実装ロ
|
|
|
14
14
|
|
|
15
15
|
```
|
|
16
16
|
テストケース設計フェーズ
|
|
17
|
-
|
|
17
|
+
scenario-test-designer → uiux-designer → unit-test-designer → it-test-designer
|
|
18
18
|
↓
|
|
19
19
|
test-coverage-checker
|
|
20
20
|
↓
|
|
@@ -27,7 +27,7 @@ ITテストケース設計(`it_test_design.md`)を元に、Vitest実装ロ
|
|
|
27
27
|
scenario-test-logic-designer
|
|
28
28
|
↓
|
|
29
29
|
TDD実装フェーズ
|
|
30
|
-
story-implementor
|
|
30
|
+
implementation-readiness-checker → story-implementor
|
|
31
31
|
```
|
|
32
32
|
|
|
33
33
|
## 前提条件チェック
|
|
@@ -38,10 +38,12 @@ TDD実装フェーズ
|
|
|
38
38
|
|
|
39
39
|
### 推奨インプット(あれば参照)
|
|
40
40
|
- **カバレッジレポート** — `docs/product/construction/{unit}/coverage_report.md`
|
|
41
|
-
- **既存ITテスト** — `backend/test/integration/**/*.test.ts
|
|
42
|
-
- **テスト規約** — `docs/principles/testing-rules.md`
|
|
41
|
+
- **既存ITテスト** — 対象プロジェクトの構成(package.json scripts, vitest 設定, `phasegate.config.json` の paths)からテスト配置を特定してパターン参考にする。例(モノレポ構成の場合): `backend/test/integration/**/*.test.ts`
|
|
42
|
+
- **テスト規約** — `docs/principles/testing-rules.md`(consumer プロジェクトでは `node_modules/phasegate/docs/principles/testing-rules.md`、phasegate リポジトリ自体では `docs/principles/testing-rules.md` を参照)
|
|
43
43
|
- **ストーリー固有論理設計** — `docs/inception/{unit}/{story_id}/logical_design.md`
|
|
44
44
|
|
|
45
|
+
> **設計文書パスの注記:** 本スキルが扱う `docs/product/construction/{unit}/...` / `docs/inception/...` パスは既定値。consumer が `phasegate.config.json` の paths 設定を上書きしている場合はそちらに従う。
|
|
46
|
+
|
|
45
47
|
---
|
|
46
48
|
|
|
47
49
|
## ⚠️ 上位レイヤー存在チェック
|
|
@@ -72,7 +74,7 @@ TDD実装フェーズ
|
|
|
72
74
|
|
|
73
75
|
**このスキルは3フェーズで実行する。**
|
|
74
76
|
- **Phase 1(計画)**: Opus がスコープ・方針・不明点を整理し、人間の承認を得る
|
|
75
|
-
- **Phase 2(実行)**:
|
|
77
|
+
- **Phase 2(実行)**: 委任先モデルに委任して成果物を生成する(`npx phasegate delegate-sonnet` 経由)
|
|
76
78
|
- **Phase 3(レビュー)**: Opus が成果物を検証し、問題があれば直接修正する
|
|
77
79
|
|
|
78
80
|
**Phase 1/2/3を同時に実行してはならない。モデルルーティングの詳細は `docs/principles/model-routing.md` を参照。**
|
|
@@ -105,7 +107,7 @@ TDD実装フェーズ
|
|
|
105
107
|
| `{controller}.test.ts` | {Controller名} | X |
|
|
106
108
|
|
|
107
109
|
## 3. DB/モック戦略
|
|
108
|
-
- テストDB: ローカルSupabase
|
|
110
|
+
- テストDB: プロジェクトが採用する DB/BaaS のテスト用インスタンス(例: ローカル Supabase)
|
|
109
111
|
- トランザクション制御: テスト毎にクリーンアップ
|
|
110
112
|
- モック対象: 外部API(例: ○○)
|
|
111
113
|
|
|
@@ -212,11 +214,11 @@ Repositoryテストでは、`getTestClient()` でDBに直接クエリし永続
|
|
|
212
214
|
## Phase 3: レビュー(Opus review)
|
|
213
215
|
|
|
214
216
|
### 実行主体
|
|
215
|
-
メインセッション(
|
|
217
|
+
メインセッション(model-routing.md の Architect ロール)が実行する。Sonnetへの再委任は行わない。
|
|
216
218
|
|
|
217
219
|
### レビュー手順
|
|
218
220
|
1. Sonnetが出力したファイルを読み込む
|
|
219
|
-
2. `docs/principles/model-routing.md`
|
|
221
|
+
2. `docs/principles/model-routing.md` の「レビュー観点」節に沿って検証する
|
|
220
222
|
3. **スキル固有レビュー観点**を検証する
|
|
221
223
|
4. 判定結果を出力する
|
|
222
224
|
|
|
@@ -253,7 +255,7 @@ Phase 2 で設計する IT テストファイル(`*.test.ts` / `*.it.test.ts`
|
|
|
253
255
|
- **テストコードは生成しない**(設計文書のみ)— 実装は `story-implementor` スキル(codex-delegator経由、またはメインセッションで直接実行)が行う
|
|
254
256
|
- 疑似コードは実装の指針となる詳細レベルで記載する
|
|
255
257
|
- TDDの「RED」フェーズで正しく失敗するテストを設計する
|
|
256
|
-
-
|
|
258
|
+
- 既存のテストパターンを参照してスタイルを統一する(テスト配置は対象プロジェクトの構成から特定する。例(モノレポ構成の場合): `backend/test/integration/**/*.test.ts`)
|
|
257
259
|
- シードデータはテスト間で独立させ、相互干渉を防ぐ
|
|
258
260
|
|
|
259
261
|
---
|
|
@@ -3,10 +3,14 @@
|
|
|
3
3
|
本ファイルは `it-test-logic-designer` スキルで使用するRepositoryレイヤーのテストテンプレート集。
|
|
4
4
|
シードデータ設計・トランザクション・クリーンアップ戦略を含む。
|
|
5
5
|
|
|
6
|
+
> **配置パス・DB クライアント・実行コマンドについて:** 以下のテスト配置ディレクトリ(`backend/test/seeds/` 等)・テスト実行コマンドは対象プロジェクトの構成(`package.json` scripts, vitest 設定, `phasegate.config.json` の paths)から特定すること。`getTestClient` / `SupabaseClient` / `supabase-test-helper.js` はプロジェクトが採用する DB/BaaS のテスト用ヘルパーに読み替える(以下は Supabase プロジェクト向けの実装例)。テンプレート構造自体はそのまま流用してよい。
|
|
7
|
+
|
|
6
8
|
---
|
|
7
9
|
|
|
8
10
|
## テストヘルパーのインポート
|
|
9
11
|
|
|
12
|
+
以下は例(Supabase プロジェクトの場合)。DB/BaaS ヘルパーはプロジェクトの採用技術に読み替える。
|
|
13
|
+
|
|
10
14
|
```typescript
|
|
11
15
|
import { target, context } from '../../helpers/common-helper.js';
|
|
12
16
|
import { getTestClient, cleanupTestData } from '../../helpers/supabase-test-helper.js';
|
|
@@ -15,7 +19,8 @@ import { getTestClient, cleanupTestData } from '../../helpers/supabase-test-help
|
|
|
15
19
|
## シードデータ設計テンプレート
|
|
16
20
|
|
|
17
21
|
```typescript
|
|
18
|
-
// backend/test/seeds/{context}/{seed-name}.ts
|
|
22
|
+
// 例(モノレポ構成の場合): backend/test/seeds/{context}/{seed-name}.ts
|
|
23
|
+
// SupabaseClient 型はプロジェクトが採用する DB/BaaS のクライアント型に読み替える
|
|
19
24
|
|
|
20
25
|
export const {SEED_NAME}_SEED = {
|
|
21
26
|
// テストデータ定義
|
|
@@ -194,6 +199,8 @@ expect(row).not.toBeNull();
|
|
|
194
199
|
|
|
195
200
|
## テスト実行コマンド
|
|
196
201
|
|
|
202
|
+
実行コマンドは対象プロジェクトの構成(`package.json` scripts, vitest 設定, `phasegate.config.json` の paths)から特定する。以下は例(pnpm モノレポ構成の場合)。
|
|
203
|
+
|
|
197
204
|
```bash
|
|
198
205
|
# 全ITテスト実行
|
|
199
206
|
pnpm --filter backend test:integration
|
|
@@ -22,7 +22,7 @@ Unit単位でアーキテクチャの各層(DB → ドメイン → ユース
|
|
|
22
22
|
## Pre-flight check (BLOCKING)
|
|
23
23
|
|
|
24
24
|
Before generating any plan, verify `docs/inception/{unit}/WI-XXX/description.md` exists.
|
|
25
|
-
If not, halt and ask the user to create the WI first, or offer to run `phasegate scaffold-wi <unit> <story|issue|chore>`.
|
|
25
|
+
If not, halt and ask the user to create the WI first, or offer to run `phasegate scaffold-wi <unit|_cross> <story|issue|fix|refactor|chore>`.
|
|
26
26
|
|
|
27
27
|
### 必須インプット(存在しなければ`[Question]`で提供を要求)
|
|
28
28
|
|
|
@@ -44,7 +44,7 @@ If not, halt and ask the user to create the WI first, or offer to run `phasegate
|
|
|
44
44
|
|
|
45
45
|
## ⚠️ 上位レイヤー存在チェック
|
|
46
46
|
|
|
47
|
-
**このスキルは AIDLC Step
|
|
47
|
+
**このスキルは AIDLC Step 2.2「論理設計」に対応します。実行前に上位設計の存在を確認してください。**
|
|
48
48
|
|
|
49
49
|
### 依存する上位設計文書
|
|
50
50
|
|
|
@@ -103,6 +103,8 @@ If not, halt and ask the user to create the WI first, or offer to run `phasegate
|
|
|
103
103
|
### 出力ファイル
|
|
104
104
|
`docs/inception/{unit}/WI-XXX/logical_design_plan.md`
|
|
105
105
|
|
|
106
|
+
> **パス注記**: 本スキルが扱う設計文書パス(`docs/inception/...` / `docs/product/construction/...`)は既定値であり、consumer が `phasegate.config.json` の `paths` 設定で上書きしている場合はそちらが優先される。
|
|
107
|
+
|
|
106
108
|
### 計画ファイルの構成
|
|
107
109
|
|
|
108
110
|
```markdown
|
|
@@ -187,7 +189,7 @@ If not, halt and ask the user to create the WI first, or offer to run `phasegate
|
|
|
187
189
|
|
|
188
190
|
## 🔗 成果物のトレーサビリティメタデータ(必須)
|
|
189
191
|
|
|
190
|
-
Phase 2 で生成する設計文書には、以下 2 種類のメタデータを emit
|
|
192
|
+
Phase 2 で生成する設計文書には、以下 2 種類のメタデータを emit する。これらのメタデータは `npx phasegate validate-metadata` / pre-commit で自動チェックされる。
|
|
191
193
|
|
|
192
194
|
### 1. YAML frontmatter(新規作成時)
|
|
193
195
|
|
|
@@ -10,6 +10,8 @@ languages: [typescript]
|
|
|
10
10
|
|
|
11
11
|
ユーザーストーリーからUIモックアップを作成するスキル。AIDLCプロセスのStep 2「mock(モック)を作る」に対応。
|
|
12
12
|
|
|
13
|
+
このスキルは UI モックアップ(HTML)作成であり、テストコードのモック/スタブ設計ではない(それらは各 test-logic-designer のモック戦略節を参照)。
|
|
14
|
+
|
|
13
15
|
## 前提条件チェック
|
|
14
16
|
|
|
15
17
|
### 必須インプット(存在しなければ`[Question]`で提供を要求)
|
|
@@ -17,9 +19,11 @@ languages: [typescript]
|
|
|
17
19
|
|
|
18
20
|
### 任意インプット(あれば参照)
|
|
19
21
|
- **プロダクト概要** — `docs/product/product_overview.md`(全体像・ユビキタス言語)
|
|
20
|
-
- **既存モック** —
|
|
22
|
+
- **既存モック** — `mock/` フォルダ内の既存HTMLファイル
|
|
21
23
|
- **デザインシステム** — 色・フォント・コンポーネントの規約
|
|
22
24
|
|
|
25
|
+
> **設計文書パスの注記:** 上記および本スキルが扱う `docs/product/...` / `docs/inception/...` パスは既定値。consumer が `phasegate.config.json` の paths 設定を上書きしている場合はそちらに従う。
|
|
26
|
+
|
|
23
27
|
---
|
|
24
28
|
|
|
25
29
|
## ⚠️ 上位レイヤー存在チェック
|
|
@@ -65,10 +69,10 @@ languages: [typescript]
|
|
|
65
69
|
|
|
66
70
|
**このスキルは3フェーズで実行する。**
|
|
67
71
|
- **Phase 1(計画)**: Opus がスコープ・方針・不明点を整理し、人間の承認を得る
|
|
68
|
-
- **Phase 2(実行)**:
|
|
72
|
+
- **Phase 2(実行)**: 委任先モデルに委任して成果物を生成する(`npx phasegate delegate-sonnet` 経由)
|
|
69
73
|
- **Phase 3(レビュー)**: Opus が成果物を検証し、問題があれば直接修正する
|
|
70
74
|
|
|
71
|
-
**Phase 1/2/3を同時に実行してはならない。モデルルーティングの詳細は `docs/principles/model-routing.md`
|
|
75
|
+
**Phase 1/2/3を同時に実行してはならない。モデルルーティングの詳細は `docs/principles/model-routing.md`(consumer プロジェクトでは `node_modules/phasegate/docs/principles/model-routing.md`、phasegate リポジトリ自体では `docs/principles/model-routing.md`)を参照。**
|
|
72
76
|
|
|
73
77
|
---
|
|
74
78
|
|
|
@@ -153,7 +157,7 @@ graph LR
|
|
|
153
157
|
|
|
154
158
|
| 種別 | 配置先 |
|
|
155
159
|
|------|--------|
|
|
156
|
-
| 成果物 |
|
|
160
|
+
| 成果物 | `mock/{画面名}.html`(プロジェクトルート相対) |
|
|
157
161
|
|
|
158
162
|
---
|
|
159
163
|
|
|
@@ -162,11 +166,11 @@ graph LR
|
|
|
162
166
|
## Phase 3: レビュー(Opus review)
|
|
163
167
|
|
|
164
168
|
### 実行主体
|
|
165
|
-
メインセッション(
|
|
169
|
+
メインセッション(model-routing.md の Architect ロール)が実行する。Sonnetへの再委任は行わない。
|
|
166
170
|
|
|
167
171
|
### レビュー手順
|
|
168
172
|
1. Sonnetが出力したファイルを読み込む
|
|
169
|
-
2. `docs/principles/model-routing.md`
|
|
173
|
+
2. `docs/principles/model-routing.md` の「レビュー観点」節に沿って検証する
|
|
170
174
|
3. **スキル固有レビュー観点**を検証する
|
|
171
175
|
4. 判定結果を出力する
|
|
172
176
|
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: phasegate-config-doctor
|
|
3
|
+
kind: advisory
|
|
3
4
|
description: 現在の phasegate.config.json を schema + プロジェクト検出結果と突き合わせて改善提案する診断スキル。read-only Q&A の phasegate-toolkit-guide とは異なり、設定変更を伴う相談に応える。使用タイミング:「phasegate のセットアップを最適化して」「architecture preset 入ってないけど何が適切?」「Quick Mode の relaxedGates に推奨設定教えて」「baseline 有効化しても大丈夫?」「monorepo に対して targetDirs / formatter が正しく検出されてる?」「v2 schema warning が出る、何を直せばいい?」など、現状 config の診断と改善 diff 提案を求める質問。
|
|
4
5
|
languages: [typescript]
|
|
5
6
|
---
|
|
@@ -93,7 +94,7 @@ product-architect で Unit を作り、いくつかの logical_design を書い
|
|
|
93
94
|
- DDD タクティカル (`entities/aggregates/repositories`) あり → `strict-ddd` 推奨
|
|
94
95
|
- `core/`, `adapters/`, `ports/` パターン → `hexagonal` 推奨
|
|
95
96
|
- 上記いずれも無し → ユーザーに確認 + `custom` 提案
|
|
96
|
-
- 検出根拠を必ず提示 (例:「`
|
|
97
|
+
- 検出根拠を必ず提示 (例:「`src/{domain,application,infrastructure,presentation}` を検出 → `clean` 推奨」。phasegate 自リポジトリ(dogfood)では `scripts/harness/{domain,application,infrastructure,presentation}`)
|
|
97
98
|
- `architecture.preset = "custom"` だが `architecture.layers` 未定義 → WARN: schema validator で reject される
|
|
98
99
|
|
|
99
100
|
#### 観点 2: project.preset (防御プリセット)
|
|
@@ -180,7 +181,7 @@ product-architect で Unit を作り、いくつかの logical_design を書い
|
|
|
180
181
|
### 💡 改善提案 (SUGGEST)
|
|
181
182
|
|
|
182
183
|
#### S1: `architecture.preset` 未指定 → "clean" を推奨
|
|
183
|
-
- 検出根拠: `
|
|
184
|
+
- 検出根拠: `src/{domain,application,infrastructure,presentation}` の 4 ディレクトリが存在(phasegate 自リポジトリ(dogfood)では `scripts/harness/{domain,application,infrastructure,presentation}`)
|
|
184
185
|
- 修正案:
|
|
185
186
|
```json-diff
|
|
186
187
|
{
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: phasegate-toolkit-guide
|
|
3
|
+
kind: advisory
|
|
3
4
|
description: phasegate ツールキット自体に関する Q&A スキル。ユーザーが phasegate の概念 (L0-L4 レイヤーモデル / 防御プリセット / アーキプリセット / Quick Mode と Full Mode / Hook 仕様 / config 全般) について質問したとき、対応する canonical doc を読み込んでから回答する。使用タイミング:「phasegate の L1 と L2 の違いは?」「Quick Mode で許可されるカテゴリを増やしたい」「architecture.preset の使い分けは?」「phasegate の hook って何が動いている?」「phasegate.config.json の relaxedGates は何のため?」など phasegate ツールキット内部の仕様・設定を尋ねる質問。
|
|
4
5
|
languages: [typescript]
|
|
5
6
|
---
|