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,101 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: release-publisher
|
|
3
|
+
kind: advisory
|
|
4
|
+
description: phasegate のリリース手順(version bump / git tag / npm publish)の厳格ガイド。この npm アカウントは security key (FIDO/WebAuthn) 認証のため publish は必ず `npm publish --auth-type=web`。使用タイミング:「リリースして」「publish して」「npm に上げて」「バージョンを上げてタグを打って」「EOTP エラーが出た」「npm publish が認証で失敗する」など、version bump・タグ付与・npm publish・publish 認証トラブルに関わる場面。
|
|
5
|
+
model: sonnet
|
|
6
|
+
review: opus
|
|
7
|
+
languages: [typescript]
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Release Publisher
|
|
11
|
+
|
|
12
|
+
## 目的
|
|
13
|
+
|
|
14
|
+
phasegate パッケージのリリース(version bump → git tag → npm publish)を、誤操作・認証事故なしに完遂するための厳格手順ガイド(advisory)。正となる規範は `CLAUDE.md` の「バージョニングルール」「npm publish ルール」節、および `DEVELOPMENT.md` の「Versioning and Release」「Troubleshooting npm publish authentication」節。本スキルはそれらを実行手順として展開する。
|
|
15
|
+
|
|
16
|
+
## 絶対ルール(違反禁止)
|
|
17
|
+
|
|
18
|
+
1. **この npm アカウントは security key (FIDO/WebAuthn) 認証**。publish は必ず:
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
npm publish --auth-type=web # ブラウザで security key 認証 → publish
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
2. **禁止事項**:
|
|
25
|
+
- `npm publish --otp=<code>` を実行すること(`--otp` フラグは TOTP 専用。security key 認証では拒否される)
|
|
26
|
+
- ユーザーに OTP を尋ねること
|
|
27
|
+
- authenticator アプリの参照を提案すること
|
|
28
|
+
3. **EOTP エラーが出たら、OTP を聞き返さずに直ちに `--auth-type=web` に切り替える。**
|
|
29
|
+
4. **コミットごとに `package.json` の minor バージョンを上げる**(`"0.X.0"` → `"0.(X+1).0"`)。タグ `vX.Y.Z` を付与して push する。
|
|
30
|
+
|
|
31
|
+
## リリース手順
|
|
32
|
+
|
|
33
|
+
### Step 1: 事前クロスチェック(3点照合)
|
|
34
|
+
|
|
35
|
+
local の `package.json` は npm registry と乖離しうる(過去に registry v0.32.0 / local v0.38.0 の乖離事例あり)。publish 前に必ず 3 つを照合する:
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
npm view phasegate version # registry latest
|
|
39
|
+
git tag --list | tail -5 # local tags
|
|
40
|
+
grep '"version"' package.json # local version
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
乖離があれば原因(publish 漏れ / tag 漏れ)を特定してから進む。
|
|
44
|
+
|
|
45
|
+
### Step 2: version bump と CHANGELOG
|
|
46
|
+
|
|
47
|
+
1. `package.json` の `version` を minor bump(例: `0.5.0` → `0.6.0`)
|
|
48
|
+
2. `CHANGELOG.md` にエントリを追加
|
|
49
|
+
|
|
50
|
+
### Step 3: commit / tag / push
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
git add package.json CHANGELOG.md
|
|
54
|
+
git commit -m "fix: vX.Y.Z — description"
|
|
55
|
+
git tag vX.Y.Z
|
|
56
|
+
git push origin main --tags
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### Step 4: 認証確認と dry-run
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
npm whoami # 未ログインなら: npm login --auth-type=web
|
|
63
|
+
npm publish --dry-run # tarball の内容を確認
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### Step 5: publish
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
npm publish --auth-type=web
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
ブラウザが開くので security key で認証すると publish が完了する。
|
|
73
|
+
|
|
74
|
+
## 認証トラブルシューティング
|
|
75
|
+
|
|
76
|
+
`npm publish` の挙動はアカウントの 2FA モードに依存する:
|
|
77
|
+
|
|
78
|
+
| 2FA モード | publish の挙動 | 対処 |
|
|
79
|
+
|---|---|---|
|
|
80
|
+
| 無効 | そのまま通る | `npm publish` |
|
|
81
|
+
| TOTP (authenticator アプリ) | `EOTP` エラー → OTP 要求 | `npm publish --otp=<6桁>` |
|
|
82
|
+
| Email OTP (Enhanced Login Verification) | `EOTP` エラー → メールでコード送付 | 受信箱を確認して `--otp=<6桁>` |
|
|
83
|
+
| **Security key / Passkey (FIDO/WebAuthn)** ← このアカウント | `EOTP` エラー(`--otp` は TOTP 専用のため使用不可) | **`npm publish --auth-type=web`** — ブラウザが開き、キーで認証して publish 完了 |
|
|
84
|
+
|
|
85
|
+
**security key アカウントの鉄則**: 常に `--auth-type=web` を使う。`--otp` フラグは TOTP 専用であり拒否される。EOTP エラーを見たら OTP を探しに行かず、直ちに `--auth-type=web` で再実行する。
|
|
86
|
+
|
|
87
|
+
**CI / 自動化**: https://www.npmjs.com/settings/<username>/tokens から **Granular Access Token**(scope: 対象パッケージ、permissions: Read and write、Bypass 2FA: enabled)を発行し、`.npmrc` の `//registry.npmjs.org/:_authToken=<TOKEN>` または `NPM_TOKEN` 環境変数で注入する。
|
|
88
|
+
|
|
89
|
+
## よくある失敗と回避
|
|
90
|
+
|
|
91
|
+
| 症状 | 原因 | 回避 |
|
|
92
|
+
|------|------|------|
|
|
93
|
+
| `EOTP` エラーで停止し OTP を探し始める | `--otp` が TOTP 専用であることを知らない | 直ちに `--auth-type=web` に切替(OTP を聞き返さない) |
|
|
94
|
+
| registry と local version の乖離 | publish 漏れ・tag 漏れの蓄積 | Step 1 の 3 点照合を必ず実施 |
|
|
95
|
+
| tag なしで publish | 手順の省略 | Step 3 の tag + `--tags` push を省略しない |
|
|
96
|
+
| CHANGELOG 未更新のまま publish | version bump のみ実施 | Step 2 で CHANGELOG エントリ追加を必ずセットで行う |
|
|
97
|
+
|
|
98
|
+
## 参照
|
|
99
|
+
|
|
100
|
+
- `CLAUDE.md` — 「バージョニングルール(必須)」「npm publish ルール(必須)」
|
|
101
|
+
- `DEVELOPMENT.md` — 「Versioning and Release」「Troubleshooting npm publish authentication」「Cross-check before publishing」
|
|
@@ -18,9 +18,11 @@ languages: [typescript]
|
|
|
18
18
|
|
|
19
19
|
### 任意インプット(あれば参照)
|
|
20
20
|
- **UIモック** — `/mock/*.html`(画面フローの参考)
|
|
21
|
-
- **テスト規約** — `docs/principles/testing-rules.md`
|
|
21
|
+
- **テスト規約** — `docs/principles/testing-rules.md`(consumer プロジェクトでは `node_modules/phasegate/docs/principles/testing-rules.md`、phasegate リポジトリ自体では `docs/principles/testing-rules.md` を参照)
|
|
22
22
|
- **既存シナリオテスト** — 既存パターンの参考
|
|
23
23
|
|
|
24
|
+
> **設計文書パスの注記:** 上記および本スキルが扱う `docs/product/construction/{unit}/...` / `docs/inception/...` パスは既定値。consumer が `phasegate.config.json` の paths 設定を上書きしている場合はそちらに従う。
|
|
25
|
+
|
|
24
26
|
---
|
|
25
27
|
|
|
26
28
|
## ⛔ スキップ禁止
|
|
@@ -36,14 +38,18 @@ languages: [typescript]
|
|
|
36
38
|
```
|
|
37
39
|
scenario-test-designer(本スキル)← テストケース設計の最初
|
|
38
40
|
↓
|
|
39
|
-
|
|
41
|
+
uiux-designer ← シナリオテスト設計を入力にUI/UX定義
|
|
40
42
|
↓
|
|
41
43
|
unit-test-designer
|
|
42
44
|
↓
|
|
45
|
+
it-test-designer
|
|
46
|
+
↓
|
|
43
47
|
test-coverage-checker ← カバレッジ検証
|
|
44
48
|
↓
|
|
45
49
|
テストロジック設計
|
|
46
50
|
↓
|
|
51
|
+
implementation-readiness-checker
|
|
52
|
+
↓
|
|
47
53
|
story-implementor ← TDD実装
|
|
48
54
|
```
|
|
49
55
|
|
|
@@ -96,7 +102,7 @@ story-implementor ← TDD実装
|
|
|
96
102
|
|
|
97
103
|
**このスキルは3フェーズで実行する。**
|
|
98
104
|
- **Phase 1(計画)**: Opus がスコープ・方針・不明点を整理し、人間の承認を得る
|
|
99
|
-
- **Phase 2(実行)**:
|
|
105
|
+
- **Phase 2(実行)**: 委任先モデルに委任して成果物を生成する(`npx phasegate delegate-sonnet` 経由)
|
|
100
106
|
- **Phase 3(レビュー)**: Opus が成果物を検証し、問題があれば直接修正する
|
|
101
107
|
|
|
102
108
|
**Phase 1/2/3を同時に実行してはならない。モデルルーティングの詳細は `docs/principles/model-routing.md` を参照。**
|
|
@@ -168,11 +174,11 @@ story-implementor ← TDD実装
|
|
|
168
174
|
## Phase 3: レビュー(Opus review)
|
|
169
175
|
|
|
170
176
|
### 実行主体
|
|
171
|
-
メインセッション(
|
|
177
|
+
メインセッション(model-routing.md の Architect ロール)が実行する。Sonnetへの再委任は行わない。
|
|
172
178
|
|
|
173
179
|
### レビュー手順
|
|
174
180
|
1. Sonnetが出力したファイルを読み込む
|
|
175
|
-
2. `docs/principles/model-routing.md`
|
|
181
|
+
2. `docs/principles/model-routing.md` の「レビュー観点」節に沿って検証する
|
|
176
182
|
3. **スキル固有レビュー観点**を検証する
|
|
177
183
|
4. 判定結果を出力する
|
|
178
184
|
|
|
@@ -208,37 +214,44 @@ story-implementor ← TDD実装
|
|
|
208
214
|
|
|
209
215
|
## 次ステップへの誘導
|
|
210
216
|
|
|
211
|
-
|
|
217
|
+
シナリオテストケース設計はテストケース設計フェーズの最初に位置づけられる(成果物 `scenario_test_design.md` は `uiux-designer` の必須インプット)。完了後、以下の順序で進めてください:
|
|
212
218
|
|
|
213
|
-
###
|
|
214
|
-
1. **
|
|
215
|
-
- `
|
|
219
|
+
### UI/UX設計フェーズ
|
|
220
|
+
1. **UI/UX定義** — シナリオテスト設計・論理設計・既存UIを加味した最終UI/UX策定
|
|
221
|
+
- `uiux-designer` スキルを実行
|
|
216
222
|
|
|
223
|
+
### テストケース設計フェーズ(続き)
|
|
217
224
|
2. **ユニットテストケース設計** — Entity/ValueObjectのテストケース
|
|
218
225
|
- `unit-test-designer` スキルを実行
|
|
226
|
+
3. **ITテストケース設計** — UseCase/Repository/Controllerのテストケース
|
|
227
|
+
- `it-test-designer` スキルを実行
|
|
219
228
|
|
|
220
229
|
### カバレッジ検証フェーズ
|
|
221
|
-
|
|
230
|
+
4. **テストカバレッジ検証** — テストケース設計の網羅性チェック
|
|
222
231
|
- `test-coverage-checker` スキルを実行
|
|
223
232
|
- カバレッジ90%以上を確認
|
|
224
233
|
|
|
225
234
|
### テストロジック設計フェーズ
|
|
226
|
-
|
|
235
|
+
5. **テストロジック設計** — 各レベルの実装ロジック
|
|
227
236
|
- `unit-test-logic-designer` → `it-test-logic-designer` → `scenario-test-logic-designer`
|
|
228
237
|
|
|
229
238
|
### TDD実装フェーズ
|
|
230
|
-
|
|
231
|
-
- `story-implementor` スキルを実行
|
|
239
|
+
6. **実装準備検証・TDD実装** — Unit → IT → E2E の順序で実装
|
|
240
|
+
- `implementation-readiness-checker` → `story-implementor` スキルを実行
|
|
232
241
|
|
|
233
242
|
**推奨フロー図:**
|
|
234
243
|
```
|
|
235
244
|
scenario-test-designer(本スキル)
|
|
236
245
|
↓
|
|
237
|
-
|
|
246
|
+
uiux-designer
|
|
247
|
+
↓
|
|
248
|
+
unit-test-designer → it-test-designer
|
|
238
249
|
↓
|
|
239
250
|
test-coverage-checker
|
|
240
251
|
↓
|
|
241
252
|
*-test-logic-designer(各レベル)
|
|
242
253
|
↓
|
|
254
|
+
implementation-readiness-checker
|
|
255
|
+
↓
|
|
243
256
|
story-implementor
|
|
244
257
|
```
|
|
@@ -14,7 +14,7 @@ languages: [typescript]
|
|
|
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
|
↓
|
|
@@ -25,7 +25,7 @@ languages: [typescript]
|
|
|
25
25
|
└────────────────────────────────────────────┘
|
|
26
26
|
↓
|
|
27
27
|
TDD実装フェーズ
|
|
28
|
-
story-implementor
|
|
28
|
+
implementation-readiness-checker → story-implementor
|
|
29
29
|
```
|
|
30
30
|
|
|
31
31
|
## 前提条件チェック
|
|
@@ -36,9 +36,11 @@ TDD実装フェーズ
|
|
|
36
36
|
|
|
37
37
|
### 推奨インプット(あれば参照)
|
|
38
38
|
- **カバレッジレポート** — `docs/product/construction/{unit}/coverage_report.md`
|
|
39
|
-
- **既存シナリオテスト** — `e2e/tests/**/*.spec.ts
|
|
39
|
+
- **既存シナリオテスト** — 対象プロジェクトの構成(package.json scripts, playwright 設定, `phasegate.config.json` の paths)からテスト配置を特定してパターン参考にする。例(モノレポ構成の場合): `e2e/tests/**/*.spec.ts`
|
|
40
40
|
- **UIUX設計** — `docs/inception/{unit}/{story_id}/uiux_design.md`
|
|
41
|
-
- **テスト規約** — `docs/principles/testing-rules.md`
|
|
41
|
+
- **テスト規約** — `docs/principles/testing-rules.md`(consumer プロジェクトでは `node_modules/phasegate/docs/principles/testing-rules.md`、phasegate リポジトリ自体では `docs/principles/testing-rules.md` を参照)
|
|
42
|
+
|
|
43
|
+
> **設計文書パスの注記:** 本スキルが扱う `docs/product/construction/{unit}/...` / `docs/inception/...` パスは既定値。consumer が `phasegate.config.json` の paths 設定を上書きしている場合はそちらに従う。
|
|
42
44
|
|
|
43
45
|
---
|
|
44
46
|
|
|
@@ -63,7 +65,7 @@ TDD実装フェーズ
|
|
|
63
65
|
## ⚠️ 3フェーズ実行ルール
|
|
64
66
|
|
|
65
67
|
- **Phase 1(計画)**: Opus がスコープ・方針・不明点を整理し、人間の承認を得る
|
|
66
|
-
- **Phase 2(実行)**:
|
|
68
|
+
- **Phase 2(実行)**: 委任先モデルに委任して成果物を生成する(`npx phasegate delegate-sonnet` 経由)
|
|
67
69
|
- **Phase 3(レビュー)**: Opus が成果物を検証し、問題があれば直接修正する
|
|
68
70
|
|
|
69
71
|
**Phase 1/2/3を同時に実行してはならない。モデルルーティングの詳細は `docs/principles/model-routing.md` を参照。**
|
|
@@ -184,11 +186,11 @@ TDD実装フェーズ
|
|
|
184
186
|
## Phase 3: レビュー(Opus review)
|
|
185
187
|
|
|
186
188
|
### 実行主体
|
|
187
|
-
メインセッション(
|
|
189
|
+
メインセッション(model-routing.md の Architect ロール)が実行する。Sonnetへの再委任は行わない。
|
|
188
190
|
|
|
189
191
|
### レビュー手順
|
|
190
192
|
1. Sonnetが出力したファイルを読み込む
|
|
191
|
-
2. `docs/principles/model-routing.md`
|
|
193
|
+
2. `docs/principles/model-routing.md` の「レビュー観点」節に沿って検証する
|
|
192
194
|
3. **スキル固有レビュー観点**を検証する
|
|
193
195
|
4. 判定結果を出力する
|
|
194
196
|
|
|
@@ -225,7 +227,7 @@ Phase 2 で設計するシナリオ / E2E テストファイル(`*.spec.ts` /
|
|
|
225
227
|
- **テストコードは生成しない**(設計文書のみ)— 実装は `story-implementor` スキル(codex-delegator経由、またはメインセッションで直接実行)が行う
|
|
226
228
|
- 疑似コードは実装の指針となる詳細レベルで記載する
|
|
227
229
|
- TDDの「RED」フェーズで正しく失敗するテストを設計する
|
|
228
|
-
-
|
|
230
|
+
- 既存のテストパターンを参照してスタイルを統一する(テスト配置は対象プロジェクトの構成から特定する。例(モノレポ構成の場合): `e2e/tests/**/*.spec.ts`)
|
|
229
231
|
- クリーンアップを確実に行い、テスト間の独立性を保つ
|
|
230
232
|
|
|
231
233
|
---
|
|
@@ -2,12 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
scenario-test-logic-designer スキルで使用する MSW (Mock Service Worker) パターンのリファレンス。
|
|
4
4
|
|
|
5
|
+
> **配置パスについて:** 以下のモック配置ディレクトリ(`e2e/mocks/` 等)は対象プロジェクトの構成(`package.json` scripts, playwright 設定, `phasegate.config.json` の paths)から特定すること。本ファイルの具体値は例(モノレポ構成の場合)であり、テンプレート構造自体はそのまま流用してよい。
|
|
6
|
+
|
|
5
7
|
---
|
|
6
8
|
|
|
7
9
|
## ハンドラー テンプレート
|
|
8
10
|
|
|
9
11
|
```typescript
|
|
10
|
-
// e2e/mocks/{context}/handlers.ts
|
|
12
|
+
// 例(モノレポ構成の場合): e2e/mocks/{context}/handlers.ts
|
|
11
13
|
import { http, HttpResponse } from 'msw';
|
|
12
14
|
|
|
13
15
|
export const {context}Handlers = [
|
|
@@ -186,7 +186,7 @@ export const {SEED_NAME}_SEED = {
|
|
|
186
186
|
};
|
|
187
187
|
|
|
188
188
|
export async function seed{SeedName}(): Promise<void> {
|
|
189
|
-
// Supabase CLI
|
|
189
|
+
// プロジェクトが採用する DB/BaaS のツール・APIでデータ投入(例: Supabase CLI/API)
|
|
190
190
|
}
|
|
191
191
|
|
|
192
192
|
export async function cleanup{SeedName}(): Promise<void> {
|
|
@@ -222,6 +222,8 @@ export async function create{Entity}(page: Page, data: {Entity}Data): Promise<st
|
|
|
222
222
|
|
|
223
223
|
## 8. テスト実行コマンド
|
|
224
224
|
|
|
225
|
+
実行コマンドは対象プロジェクトの構成(`package.json` scripts, playwright 設定, `phasegate.config.json` の paths)から特定する。以下は例(pnpm モノレポ構成の場合)。
|
|
226
|
+
|
|
225
227
|
```bash
|
|
226
228
|
# 全シナリオテスト実行
|
|
227
229
|
pnpm --filter e2e test
|