phasegate 0.181.0 → 0.191.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/docs/guide/skills-overview.md +10 -9
- package/package.json +1 -1
- package/scripts/harness/biome-ast-engine/infrastructure/parsers/comment-density-parser.ts +51 -10
- package/scripts/harness/ci-governance/composition-root.ts +1 -1
- package/scripts/harness/ci-governance/infrastructure/adapters/adr-foundation-existence-adapter.ts +26 -2
- package/scripts/harness/ci-governance/infrastructure/adapters/harness-api-command-existence-adapter.ts +74 -1
- 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 +75 -2
- package/scripts/harness/setup/skill-deployer.ts +6 -6
- 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/skills/cascade-updater/SKILL.md +3 -3
- package/skills/codebase-mapper/SKILL.md +17 -5
- package/skills/codex-delegator/SKILL.md +19 -4
- 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/doc-freshness-checker/SKILL.md +8 -0
- package/skills/domain-designer/SKILL.md +4 -2
- package/skills/engineering-perspective/SKILL.md +3 -0
- package/skills/environment-designer/SKILL.md +8 -6
- package/skills/implementation-planner/SKILL.md +12 -6
- package/skills/implementation-readiness-checker/SKILL.md +9 -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 +12 -2
- package/skills/phasegate-toolkit-guide/SKILL.md +3 -0
- package/skills/pointer-validator/SKILL.md +8 -0
- package/skills/quick-implementor/SKILL.md +7 -5
- 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 +8 -5
- package/skills/story-implementor/SKILL.md +2 -0
- package/skills/story-mapper/SKILL.md +4 -4
- package/skills/story-writer/SKILL.md +5 -5
- package/skills/test-coverage-checker/SKILL.md +4 -6
- package/skills/uiux-designer/SKILL.md +4 -2
- package/skills/unit-designer/SKILL.md +8 -6
- 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
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: codex-delegator
|
|
3
|
+
kind: advisory
|
|
3
4
|
description: |
|
|
4
5
|
codex CLI(gpt-5.4)にタスクをLocal実行で並列委任し、Claude Codeがマネージャー/レビュワーとして品質管理する。
|
|
5
6
|
対象: 設計計画、設計文書、テスト設計、コード実装など全タスクタイプ。
|
|
@@ -11,19 +12,26 @@ languages: [typescript]
|
|
|
11
12
|
|
|
12
13
|
# Codex Delegator
|
|
13
14
|
|
|
15
|
+
## 目的
|
|
16
|
+
|
|
14
17
|
codex CLI(gpt-5.4)にタスクをLocal実行で並列委任し、2段階レビューで品質管理するスキル。Claude Codeは**マネージャー**、codexは**実行者**、Sonnetは**レビュワー**として振る舞う。
|
|
15
18
|
|
|
16
|
-
##
|
|
19
|
+
## 入力
|
|
20
|
+
|
|
21
|
+
- 委任するタスク(ユーザー指示): 設計計画・設計文書・テスト設計・コード実装など全タスクタイプ
|
|
22
|
+
- 突合対象の設計文書(ドメインモデル・論理設計・テストケース設計等、後述「前提条件」参照)
|
|
23
|
+
|
|
24
|
+
## 前提条件
|
|
17
25
|
|
|
18
|
-
- codex CLI v0.111.0+(`codex exec "<prompt>" --full-auto
|
|
26
|
+
- **codex CLI が必須** — codex CLI v0.111.0+(`codex exec "<prompt>" --full-auto`)がインストールされていること。未インストールの環境では本スキルはスキップし、Claude Code が直接実装に切り替える
|
|
19
27
|
- モデル: `gpt-5.4`(ChatGPTアカウントでは派生モデル不可)
|
|
20
|
-
- プロジェクト規約: `docs/principles/testing-rules.md`, `docs/principles/architecture-philosophy.md`
|
|
28
|
+
- プロジェクト規約: `docs/principles/testing-rules.md`, `docs/principles/architecture-philosophy.md`(consumer プロジェクトでは `node_modules/phasegate/docs/principles/...`、phasegate 自リポジトリでは `docs/principles/...` を参照する)
|
|
21
29
|
- 設計文書が揃っていることが前提(ドメインモデル、論理設計、テストケース設計等)
|
|
22
30
|
|
|
23
31
|
## 核心原則
|
|
24
32
|
|
|
25
33
|
1. **codexに判断させない**: 何を・どのファイルに・どのパターンで作るかはClaude Codeが決定する。codexは具体的指示の実行者
|
|
26
|
-
2. **設計文書との突合がレビューの主軸**:
|
|
34
|
+
2. **設計文書との突合がレビューの主軸**: プロジェクトのテストコマンド(`npm test` 等、pnpm/yarn は例)のグリーンだけでは不十分。設計文書のケースID・期待値との一致を検証する
|
|
27
35
|
3. **早期フォールバック**: codexが2回失敗したらClaude Codeが直接実装に切り替える
|
|
28
36
|
4. **Local実行のみ**: codex cloud / @codex review は使用しない。全タスクを `codex exec --full-auto` で実行する
|
|
29
37
|
5. **レビューはdiffベース**: 生成物の全文Readではなく、`git diff` の差分をレビュー入力とする。コンテキストウィンドウを節約し、変更点に集中する
|
|
@@ -62,6 +70,13 @@ Local実行では1委任単位の粒度を小さく保つことがコスト効
|
|
|
62
70
|
|
|
63
71
|
---
|
|
64
72
|
|
|
73
|
+
## ⚠️ 2フェーズ実行ルール
|
|
74
|
+
|
|
75
|
+
- **Phase 1(計画)**: タスクを委任単位に分解し、プロンプトを設計して人間の承認を得る
|
|
76
|
+
- **Phase 2(実行)**: `codex exec` に委任し、2段階レビュー(Tier 1 → Tier 2)で品質管理する
|
|
77
|
+
|
|
78
|
+
**Phase 1/2を同時に実行してはならない。**
|
|
79
|
+
|
|
65
80
|
## Phase 1: 計画(Plan)
|
|
66
81
|
|
|
67
82
|
### Step 1.1: タスク分解
|
|
@@ -6,11 +6,11 @@
|
|
|
6
6
|
|
|
7
7
|
## 共通コンテキスト層
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
全タスクタイプで以下をプロンプト冒頭に含める。アーキテクチャ行は固定値ではなく、対象プロジェクトの `phasegate.config.json` の `architecture.preset` と `layers`(層と依存方向)から導出すること:
|
|
10
10
|
|
|
11
11
|
```
|
|
12
|
-
プロジェクト:
|
|
13
|
-
アーキテクチャ:
|
|
12
|
+
プロジェクト: {プロジェクト名}
|
|
13
|
+
アーキテクチャ: {architecture.preset から導出(例: preset "hexagonal" なら「ヘキサゴナル + DDD(domain → port → usecase → controller)」、preset "clean" なら「クリーンアーキテクチャ(domain → application → infrastructure/presentation)」)}
|
|
14
14
|
```
|
|
15
15
|
|
|
16
16
|
---
|
|
@@ -20,7 +20,7 @@ grep・diff・テスト実行で自動検証する。判断不要。
|
|
|
20
20
|
| ID | 次元 | 検証方法 | 重大度 |
|
|
21
21
|
|----|------|---------|--------|
|
|
22
22
|
| C1 | スコープ遵守 | `git diff --name-only` と指示ファイルリストの差分比較 | BLOCK |
|
|
23
|
-
| C2 | 既存破壊なし |
|
|
23
|
+
| C2 | 既存破壊なし | プロジェクトのテストコマンド(`npm test` 等、pnpm/yarn は例)実行(既存テスト全パス確認) | BLOCK |
|
|
24
24
|
| C3 | 命名一貫性 | grep: 日本語テスト名、`actual`変数、target/context/describe/it構造 | BLOCK |
|
|
25
25
|
|
|
26
26
|
### Tier 1: タスクタイプ別追加
|
|
@@ -8,6 +8,8 @@ languages: [typescript]
|
|
|
8
8
|
|
|
9
9
|
# Doc Freshness Checker
|
|
10
10
|
|
|
11
|
+
## 目的
|
|
12
|
+
|
|
11
13
|
設計文書の鮮度(freshness)を検証し、古くなった文書や対応コードとの乖離を検出するスキル。
|
|
12
14
|
`phasegate check-freshness` CLIをラップし、結果を解釈・対処する。
|
|
13
15
|
|
|
@@ -16,6 +18,12 @@ languages: [typescript]
|
|
|
16
18
|
- `phasegate.config.json` に `docFreshnessThresholds` が設定されていること(未設定時はデフォルト値使用)
|
|
17
19
|
- git リポジトリ内で実行すること(最終更新日は `git log` で判定)
|
|
18
20
|
|
|
21
|
+
## 入力
|
|
22
|
+
|
|
23
|
+
- 対象ディレクトリ: `--dir <path>` または `phasegate.config.json` の `constructionDir`(デフォルト `docs/`)
|
|
24
|
+
- 閾値: `--threshold <days>` または `docFreshnessThresholds`(未設定時はデフォルト30日)
|
|
25
|
+
- git 履歴(最終更新日の判定に使用)
|
|
26
|
+
|
|
19
27
|
---
|
|
20
28
|
|
|
21
29
|
## ⚠️ 2フェーズ実行ルール
|
|
@@ -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,5 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: engineering-perspective
|
|
3
|
+
kind: advisory
|
|
3
4
|
description: |
|
|
4
5
|
ケント・ベック + マーティン・ファウラー + アンクル・ボブ + エリック・エヴァンスの視点を統合したエンジニアリング思考フレームワーク。
|
|
5
6
|
以下の場面で使用:
|
|
@@ -14,6 +15,8 @@ languages: [typescript]
|
|
|
14
15
|
|
|
15
16
|
# Engineering Perspective
|
|
16
17
|
|
|
18
|
+
## 目的
|
|
19
|
+
|
|
17
20
|
4人の巨匠の視点を統合し、実用性・シンプルさ・説明責任の観点でレビュー・設計・議論を行う。
|
|
18
21
|
|
|
19
22
|
## 視点一覧
|
|
@@ -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
|
|
|
@@ -8,6 +8,8 @@ languages: [typescript]
|
|
|
8
8
|
|
|
9
9
|
# Implementation Planner
|
|
10
10
|
|
|
11
|
+
## 目的
|
|
12
|
+
|
|
11
13
|
UnitドキュメントとConstructionのドメインモデル設計を元に、**設計フェーズの実装計画**を体系的に立案する。
|
|
12
14
|
|
|
13
15
|
## ⚠️ `story-implementor` との役割分担
|
|
@@ -27,16 +29,16 @@ UnitドキュメントとConstructionのドメインモデル設計を元に、*
|
|
|
27
29
|
|
|
28
30
|
**このスキルは3フェーズで実行する。**
|
|
29
31
|
- **Phase 1(計画)**: Opus がスコープ・方針・不明点を整理し、人間の承認を得る
|
|
30
|
-
- **Phase 2(実行)**:
|
|
32
|
+
- **Phase 2(実行)**: 委任先モデルに委任して成果物を生成する(`npx phasegate delegate-sonnet` 経由)
|
|
31
33
|
- **Phase 3(レビュー)**: Opus が成果物を検証し、問題があれば直接修正する
|
|
32
34
|
|
|
33
|
-
**Phase 1/2/3を同時に実行してはならない。モデルルーティングの詳細は `docs/principles/model-routing.md`
|
|
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` を参照する)。**
|
|
34
36
|
|
|
35
37
|
---
|
|
36
38
|
|
|
37
39
|
## ワークフロー
|
|
38
40
|
|
|
39
|
-
## Pre-flight
|
|
41
|
+
## 前提条件チェック(Pre-flight, BLOCKING)
|
|
40
42
|
|
|
41
43
|
Before generating any plan, verify `docs/inception/{unit}/WI-XXX/description.md` exists.
|
|
42
44
|
If not, halt and ask the user to create the WI first, or offer to run `phasegate scaffold-wi <unit> <story|issue|chore>`.
|
|
@@ -86,6 +88,8 @@ If not, halt and ask the user to create the WI first, or offer to run `phasegate
|
|
|
86
88
|
3. 実装ステップ分解
|
|
87
89
|
4. 影響範囲特定
|
|
88
90
|
|
|
91
|
+
## 出力ファイル
|
|
92
|
+
|
|
89
93
|
### Step 6: 出力
|
|
90
94
|
|
|
91
95
|
計画をmdファイルとして出力。パスの推奨:
|
|
@@ -94,11 +98,13 @@ docs/inception/{task_id}_plan.md
|
|
|
94
98
|
docs/inception/{unit}/WI-XXX/tdd_implementation_plan.md
|
|
95
99
|
```
|
|
96
100
|
|
|
101
|
+
> **パス注記**: 本スキルが扱う設計文書パス(`docs/inception/...` / `docs/product/units/...` / `docs/product/construction/...`)は既定値であり、consumer が `phasegate.config.json` の `paths` 設定で上書きしている場合はそちらが優先される。
|
|
102
|
+
|
|
97
103
|
**[Question][Answer]セクション必須**: 不明点や確認事項をまとめ、ユーザーからのフィードバックを受け取れるようにする。
|
|
98
104
|
|
|
99
105
|
---
|
|
100
106
|
|
|
101
|
-
##
|
|
107
|
+
## 入力(参照ドキュメント)
|
|
102
108
|
|
|
103
109
|
| ファイル | 用途 |
|
|
104
110
|
|----------|------|
|
|
@@ -138,11 +144,11 @@ docs/inception/{unit}/WI-XXX/tdd_implementation_plan.md
|
|
|
138
144
|
## Phase 3: レビュー(Opus review)
|
|
139
145
|
|
|
140
146
|
### 実行主体
|
|
141
|
-
メインセッション(
|
|
147
|
+
メインセッション(model-routing.md の Architect ロール)が実行する。Sonnetへの再委任は行わない。
|
|
142
148
|
|
|
143
149
|
### レビュー手順
|
|
144
150
|
1. Sonnetが出力したファイルを読み込む
|
|
145
|
-
2. `docs/principles/model-routing.md`
|
|
151
|
+
2. `docs/principles/model-routing.md` の「レビュー観点」節に沿って検証する
|
|
146
152
|
3. **スキル固有レビュー観点**を検証する
|
|
147
153
|
4. 判定結果を出力する
|
|
148
154
|
|
|
@@ -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
|
|
@@ -8,8 +9,15 @@ languages: [typescript]
|
|
|
8
9
|
|
|
9
10
|
# Implementation Readiness Checker
|
|
10
11
|
|
|
12
|
+
## 目的
|
|
13
|
+
|
|
11
14
|
実装開始前に呼び出し、全ての前提条件(設計文書、テスト設計、カバレッジ検証)を**自動検証**するスキル。不足があれば具体的に何が必要かを報告し、対応するスキルを提案する。
|
|
12
15
|
|
|
16
|
+
## 入力
|
|
17
|
+
|
|
18
|
+
- 検証対象の Unit / ストーリー (`{unit}` / `{story_id}`)
|
|
19
|
+
- 存在確認する設計文書群(`{constructionDir}` / `{inceptionDir}` 配下の論理設計・テスト設計・カバレッジレポート等、後述「検証ワークフロー Step 1」の一覧参照)
|
|
20
|
+
|
|
13
21
|
## 使用タイミング
|
|
14
22
|
|
|
15
23
|
- `story-implementor` の前に実行(推奨)
|
|
@@ -162,7 +170,7 @@ languages: [typescript]
|
|
|
162
170
|
## Phase 3: レビュー(Opus review)
|
|
163
171
|
|
|
164
172
|
### 実行主体
|
|
165
|
-
メインセッション(
|
|
173
|
+
メインセッション(model-routing.md の Architect ロール)が実行する。Sonnetへの再委任は行わない。
|
|
166
174
|
|
|
167
175
|
### レビュー手順
|
|
168
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,13 +1,23 @@
|
|
|
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
|
---
|
|
6
7
|
|
|
7
8
|
# Phasegate Config Doctor
|
|
8
9
|
|
|
10
|
+
## 目的
|
|
11
|
+
|
|
9
12
|
現在の `phasegate.config.json` を診断し、改善案を **diff 形式** でユーザーに提示する skill。
|
|
10
13
|
|
|
14
|
+
## 入力
|
|
15
|
+
|
|
16
|
+
診断対象として以下を Read する(詳細は「診断プロセス Step 1」の一覧参照):
|
|
17
|
+
|
|
18
|
+
- `phasegate.config.json`(診断対象)、`package.json` / `pnpm-workspace.yaml` / `lerna.json`(workspace・formatter 検出)
|
|
19
|
+
- `.claude/scripts/hook-config.json`、`.phasegate/manifest.json`、doctor report、`.claude/settings.json` / `.codex/hooks.json`、`.husky/*`、`.github/workflows/*`、`AGENTS.md` / `CLAUDE.md`
|
|
20
|
+
|
|
11
21
|
## このスキルが解決する問題
|
|
12
22
|
|
|
13
23
|
phasegate を導入した直後の config は単純な default で、実プロジェクトの構造 (monorepo / formatter 選定 / architecture style / Quick Mode の運用方針) に最適化されていない。さらに setup lifecycle は `phasegate.config.json` だけでは完結せず、manifest、hook JSON、Husky、CI、skill link、doctor finding を合わせて読む必要がある。AI が schema や setup contract を知らずに勘で書き換えると壊れるため、**schema + 検出結果に基づいた決定的提案** が必要。<!-- @work-item-id WI-153 -->
|
|
@@ -84,7 +94,7 @@ product-architect で Unit を作り、いくつかの logical_design を書い
|
|
|
84
94
|
- DDD タクティカル (`entities/aggregates/repositories`) あり → `strict-ddd` 推奨
|
|
85
95
|
- `core/`, `adapters/`, `ports/` パターン → `hexagonal` 推奨
|
|
86
96
|
- 上記いずれも無し → ユーザーに確認 + `custom` 提案
|
|
87
|
-
- 検出根拠を必ず提示 (例:「`
|
|
97
|
+
- 検出根拠を必ず提示 (例:「`src/{domain,application,infrastructure,presentation}` を検出 → `clean` 推奨」。phasegate 自リポジトリ(dogfood)では `scripts/harness/{domain,application,infrastructure,presentation}`)
|
|
88
98
|
- `architecture.preset = "custom"` だが `architecture.layers` 未定義 → WARN: schema validator で reject される
|
|
89
99
|
|
|
90
100
|
#### 観点 2: project.preset (防御プリセット)
|
|
@@ -171,7 +181,7 @@ product-architect で Unit を作り、いくつかの logical_design を書い
|
|
|
171
181
|
### 💡 改善提案 (SUGGEST)
|
|
172
182
|
|
|
173
183
|
#### S1: `architecture.preset` 未指定 → "clean" を推奨
|
|
174
|
-
- 検出根拠: `
|
|
184
|
+
- 検出根拠: `src/{domain,application,infrastructure,presentation}` の 4 ディレクトリが存在(phasegate 自リポジトリ(dogfood)では `scripts/harness/{domain,application,infrastructure,presentation}`)
|
|
175
185
|
- 修正案:
|
|
176
186
|
```json-diff
|
|
177
187
|
{
|
|
@@ -1,11 +1,14 @@
|
|
|
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
|
---
|
|
6
7
|
|
|
7
8
|
# Phasegate Toolkit Guide
|
|
8
9
|
|
|
10
|
+
## 目的
|
|
11
|
+
|
|
9
12
|
phasegate ツールキット自体の概念・仕様・設定について、ユーザーの質問に正確に答えるための skill。
|
|
10
13
|
|
|
11
14
|
## このスキルが解決する問題
|