phasegate 0.123.0 → 0.125.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
CHANGED
|
@@ -7,6 +7,32 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.125.0] - 2026-05-08
|
|
11
|
+
|
|
12
|
+
### Changed
|
|
13
|
+
|
|
14
|
+
- **WI-089 — WI-088 guidance skills の dogfood feedback 反映 (P1, P2, P4, P5 + cohesion audit)** — v0.124.0 で追加した `phasegate-toolkit-guide` / `phasegate-config-doctor` を別 PJ で dogfood 検証した結果を反映し、UX 改善 + skill 内部の冗長 / 凝集度 / 矛盾を解消。
|
|
15
|
+
- **P1 (discoverability)**: `phasegate init` 完了メッセージの末尾に `Need help?` ブロックを追加。`skillSet !== "core"` 時に `/phasegate-toolkit-guide` (Q&A) と `/phasegate-config-doctor` (config tuning) の起動方法を案内。
|
|
16
|
+
- **P2 (fresh init shortcut)**: `phasegate-config-doctor` に **Step 1.5: Fresh init 判定** を新設。default config + 設計文書空 + Unit 構造未着手の 3 条件を全て満たすプロジェクトには「先に `/product-architect` で AIDLC を開始するのが効率的」とショートカット応答し、9 観点の機械的診断ノイズを抑制。
|
|
17
|
+
- **P4 (UX 標準化)**: `phasegate-config-doctor` Step 4 (適用フロー) を `AskUserQuestion` ベースに書き換え。提案件数に応じて 1 回確認 / WARN→SUGGEST 分割を使い分ける指針を明記。
|
|
18
|
+
- **P5 (consumer noise 削除)**: 両 skill 本文から `WI-086` / `WI-087` 等の実装履歴 WI 番号を削除し、機能ベースの記述 (例: `(v0.122 以降)` / `monorepo 自動検出`) に置き換え。consumer プロジェクトの AI に意味のない historical noise を排除。
|
|
19
|
+
- **Cohesion audit** (`phasegate-toolkit-guide`): 「重要な設計原則」と「アンチパターン」「回答プロセス」と「回答時のスタイル」「マッピングが曖昧な場合 / 設定変更を伴う質問 / アンチパターン」の 3 重複を統合。設計原則を肯定形 4 項目に正規化、回答プロセスを 4 step に統合、境界条件を 1 セクションにまとめ、アンチパターン section を削除。
|
|
20
|
+
- **Cohesion audit** (`phasegate-config-doctor`): 設計原則を 6 項目の肯定形に正規化しアンチパターン section を削除、観点 1 (schema バージョン) と観点 3 (architecture.preset) を「観点 1: architecture セクション (preset / 整合性)」に統合 (architecture key 不在判定 + 推奨 preset 推測 + custom 値検証を一体化)、Step 3 末尾の重複した「適用しますか?」列挙を Step 4 に統合、Step 4 末尾と重複していた「出力例 (簡易)」section を削除。
|
|
21
|
+
- **矛盾解消** (`phasegate-config-doctor` 観点 3 paths): default path が「実プロジェクトのパスに合っていれば OK」という曖昧条件を「Read tool でリストして存在 + 中身ありなら OK / 存在しないか空なら scaffold 期 (Step 1.5) または別配置の可能性」と判定基準を明示化。
|
|
22
|
+
- **検証**: 両 SKILL.md を `skill-creator/scripts/quick_validate.py` で再 validation pass。全 3499 テストグリーン (前回と同数、新規テストは追加せず — UX 改善 + 文章整理のため挙動変更なし)。L1 lint 違反なし。
|
|
23
|
+
- **スコープ外**: P3 (canonical doc 日本語化 / 各 doc に日本語サマリ追加) は分量大のため別 WI (WI-090 候補) で扱う。
|
|
24
|
+
|
|
25
|
+
## [0.124.0] - 2026-05-08
|
|
26
|
+
|
|
27
|
+
### Added
|
|
28
|
+
|
|
29
|
+
- **WI-088 Phase B — bundled guidance skill `phasegate-config-doctor`** — `phasegate.config.json` の現状を schema + プロジェクト検出結果と突き合わせて改善案を **diff 形式で提案する診断スキル** を追加。Phase A の `phasegate-toolkit-guide` (read-only Q&A) と対をなす設定変更系 skill。AI による silent な書き換えを禁止し、必ずユーザー承認 → Edit → `phasegate validate --layer L2` 検証の手順を踏む。
|
|
30
|
+
- **新規ファイル**: `skills/phasegate-config-doctor/SKILL.md` を `skill-creator` skill (`init_skill.py`) 経由で作成 (validation pass)。9 診断観点 (schema バージョン / project.preset / architecture.preset / paths / quickMode / harnesses / baseline / agentIntegration.stopHook.enforce / hook-config.json) ごとに OK / WARN / SUGGEST 判定の基準と提案 diff フォーマットを定義。
|
|
31
|
+
- **設計原則**: silent 書き換え禁止 / schema を読んでから提案 / 機械検出を優先 / AI 推論は判断要素のみ・根拠提示必須 / read-only Q&A は phasegate-toolkit-guide に委譲。
|
|
32
|
+
- **skill-deployer 拡張**: `SKILL_CATEGORIES.guidance` に `phasegate-config-doctor` を追加。`getSkillsForSet("all")` に含まれるが `getSkillsForSet("core")` には含まれない (Phase A と同じ責務分離)。
|
|
33
|
+
- **テスト追加**: 4 ケース (guidance カテゴリ登録 / `getCategoryForSkill('phasegate-config-doctor') === 'guidance'` / `getSkillsForSet('all')` に含まれる / `getSkillsForSet('core')` に含まれない)。全 3499 テスト (前回 3495 + 新規 4) グリーン。
|
|
34
|
+
- **互換性**: 既存 deploy ロジックに変更なし。consumer プロジェクトで `phasegate init` 実行時、`.claude/skills/` 配下に `phasegate-toolkit-guide` (Phase A) と `phasegate-config-doctor` (Phase B) の 2 つが追加 deploy される。
|
|
35
|
+
|
|
10
36
|
## [0.123.0] - 2026-05-08
|
|
11
37
|
|
|
12
38
|
### Added
|
package/package.json
CHANGED
package/scripts/harness/main.ts
CHANGED
|
@@ -564,6 +564,12 @@ async function main(): Promise<void> {
|
|
|
564
564
|
);
|
|
565
565
|
console.log(` See docs/guide/codex-integration.md for the native apply_patch limitation.`);
|
|
566
566
|
}
|
|
567
|
+
if (skillSet !== "core") {
|
|
568
|
+
console.log("");
|
|
569
|
+
console.log("Need help?");
|
|
570
|
+
console.log(" • Q&A about phasegate concepts: invoke /phasegate-toolkit-guide");
|
|
571
|
+
console.log(" • Diagnose & tune phasegate.config.json: invoke /phasegate-config-doctor");
|
|
572
|
+
}
|
|
567
573
|
process.exit(0);
|
|
568
574
|
break;
|
|
569
575
|
}
|
|
@@ -52,7 +52,7 @@ export const SKILL_CATEGORIES: Record<SkillCategory, readonly string[]> = {
|
|
|
52
52
|
"unit-test-logic-designer",
|
|
53
53
|
],
|
|
54
54
|
utility: ["codex-delegator", "skill-creator"],
|
|
55
|
-
guidance: ["phasegate-toolkit-guide"],
|
|
55
|
+
guidance: ["phasegate-toolkit-guide", "phasegate-config-doctor"],
|
|
56
56
|
} as const;
|
|
57
57
|
|
|
58
58
|
export function getSkillsForSet(skillSet: SkillSet): string[] {
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: phasegate-config-doctor
|
|
3
|
+
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
|
+
|
|
6
|
+
# Phasegate Config Doctor
|
|
7
|
+
|
|
8
|
+
現在の `phasegate.config.json` を診断し、改善案を **diff 形式** でユーザーに提示する skill。
|
|
9
|
+
|
|
10
|
+
## このスキルが解決する問題
|
|
11
|
+
|
|
12
|
+
phasegate を導入した直後の config は単純な default で、実プロジェクトの構造 (monorepo / formatter 選定 / architecture style / Quick Mode の運用方針) に最適化されていない。AI が schema を知らずに勘で書き換えると壊れるため、**schema + 検出結果に基づいた決定的提案** が必要。
|
|
13
|
+
|
|
14
|
+
## 設計原則
|
|
15
|
+
|
|
16
|
+
1. **silent 書き換え禁止** — 提案は diff として提示し、`AskUserQuestion` で承認を取ってから Edit
|
|
17
|
+
2. **検出結果を優先** — 機械的に決定可能な部分 (workspace 構造、formatter、bash 互換性) は AI 推論ではなく検出結果を採用
|
|
18
|
+
3. **AI 推論は判断要素のみ** — architecture preset 選定、relaxedGates 推奨値などは AI が判断するが根拠を必ず示す
|
|
19
|
+
4. **schema は enum 違反確認時のみ Read** — 日常診断は本 SKILL 内の判定基準で十分。schema 全文 Read は値域不明時に限定する
|
|
20
|
+
5. **read-only な Q&A は phasegate-toolkit-guide に委譲** — 「L2 って何?」など概念質問は本 skill スコープ外
|
|
21
|
+
6. **変更後は L2 検証必須** — `npx phasegate validate --layer L2` を走らせてからユーザーに完了報告
|
|
22
|
+
|
|
23
|
+
## 診断プロセス
|
|
24
|
+
|
|
25
|
+
### Step 1: 現状把握 (read-only)
|
|
26
|
+
|
|
27
|
+
以下のファイルを Read してから診断する:
|
|
28
|
+
|
|
29
|
+
| 情報源 | パス | 用途 |
|
|
30
|
+
|---|---|---|
|
|
31
|
+
| 現 config | `phasegate.config.json` | 診断対象 |
|
|
32
|
+
| package.json | `package.json` | devDependencies (formatter 検出) / workspaces 検出 |
|
|
33
|
+
| pnpm workspace | `pnpm-workspace.yaml` (存在すれば) | workspace 検出 |
|
|
34
|
+
| lerna config | `lerna.json` (存在すれば) | workspace 検出 |
|
|
35
|
+
| hook config | `.claude/scripts/hook-config.json` | 既存 hook 設定確認 |
|
|
36
|
+
|
|
37
|
+
**schema は必要なときだけ Read** (enum 違反疑い時など): `node_modules/phasegate/scripts/harness/config-foundation/infrastructure/schemas/harness-config-v3.schema.json` (or `harness-config-v2.schema.json` if v2)。
|
|
38
|
+
|
|
39
|
+
phasegate リポジトリ自体 (dogfood) の場合は `node_modules/phasegate/` を `scripts/harness/config-foundation/...` に置換。
|
|
40
|
+
|
|
41
|
+
### Step 1.5: Fresh init 判定 (重要)
|
|
42
|
+
|
|
43
|
+
以下の **全条件** を満たす場合、フル診断は早期。Step 2 に進まず AIDLC 開始を案内する:
|
|
44
|
+
|
|
45
|
+
- `phasegate.config.json` が `phasegate init` 直後の default 状態 (`project.preset = "standard"` / `architecture.preset` 設定済 / `layers` / `quickMode` / `harnesses` が空 dict)
|
|
46
|
+
- `docs/product/construction/` が空または存在しない
|
|
47
|
+
- `scripts/`, `src/` 配下に Unit 構造 (`domain/application/infrastructure/presentation` 等) が無い
|
|
48
|
+
|
|
49
|
+
**該当時の応答**:
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
このプロジェクトは phasegate init 直後の状態のため、config を最適化するより先に
|
|
53
|
+
AIDLC を開始することを推奨します:
|
|
54
|
+
|
|
55
|
+
/product-architect
|
|
56
|
+
|
|
57
|
+
product-architect で Unit を作り、いくつかの logical_design を書いた後で本 skill を再実行すると、
|
|
58
|
+
実態に基づいた具体的な改善提案ができます。
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
該当しない場合のみ Step 2 に進む。
|
|
62
|
+
|
|
63
|
+
### Step 2: 診断観点
|
|
64
|
+
|
|
65
|
+
各観点で **OK / WARN / SUGGEST** のいずれかを出す。
|
|
66
|
+
|
|
67
|
+
#### 観点 1: architecture セクション (preset / 整合性)
|
|
68
|
+
|
|
69
|
+
- `architecture` キーが無い → v2 として扱われる → SUGGEST: `architecture: { preset: "..." }` 追加
|
|
70
|
+
- `architecture.preset` 未指定 + `scripts/`, `src/` 配下のディレクトリ構造から推測 → SUGGEST:
|
|
71
|
+
- `domain/` `application/` `infrastructure/` `presentation/` の 4 層あり → `clean` 推奨
|
|
72
|
+
- DDD タクティカル (`entities/aggregates/repositories`) あり → `strict-ddd` 推奨
|
|
73
|
+
- `core/`, `adapters/`, `ports/` パターン → `hexagonal` 推奨
|
|
74
|
+
- 上記いずれも無し → ユーザーに確認 + `custom` 提案
|
|
75
|
+
- 検出根拠を必ず提示 (例:「`scripts/harness/{domain,application,infrastructure,presentation}` を検出 → `clean` 推奨」)
|
|
76
|
+
- `architecture.preset = "custom"` だが `architecture.layers` 未定義 → WARN: schema validator で reject される
|
|
77
|
+
|
|
78
|
+
#### 観点 2: project.preset (防御プリセット)
|
|
79
|
+
|
|
80
|
+
- `project.preset` 未指定 → SUGGEST: プロジェクト規模に応じて `minimal` / `standard` / `strict`
|
|
81
|
+
- 値が enum 外 → WARN
|
|
82
|
+
|
|
83
|
+
#### 観点 3: paths
|
|
84
|
+
|
|
85
|
+
- `paths.designDocs` / `paths.inceptionDocs` が default のまま (`docs/product/construction` / `docs/inception`):
|
|
86
|
+
- 実 path を Read tool でリスト確認し、存在 + 中身あり → OK
|
|
87
|
+
- 存在しない or 空 → fresh init scaffold 期 (Step 1.5 で早期 return しているはず) または別 path に置いている可能性 → ユーザーに確認
|
|
88
|
+
- default 以外で実 path に存在する → OK
|
|
89
|
+
|
|
90
|
+
#### 観点 4: quickMode
|
|
91
|
+
|
|
92
|
+
- `quickMode.allowedCategories` が default `['bugfix', 'docs', 'test', 'config']` のまま → プロジェクトの慣習に応じて拡張提案
|
|
93
|
+
- `quickMode.relaxedGates` が空 → small team なら `['phase-gate']` 追加を SUGGEST、enterprise なら現状維持を OK
|
|
94
|
+
|
|
95
|
+
#### 観点 5: harnesses (cascade / bundle / dead-code)
|
|
96
|
+
|
|
97
|
+
- `cascadeUpdate: false` → AI 主導開発なら `true` 推奨 (SUGGEST)
|
|
98
|
+
- `agentLessonCollection: false` → AI セッションの教訓を蓄積したいなら `true` 推奨 (SUGGEST)
|
|
99
|
+
- `bundleSizeLimit: 0` → frontend プロジェクトなら値設定推奨
|
|
100
|
+
|
|
101
|
+
#### 観点 6: baseline
|
|
102
|
+
|
|
103
|
+
- `baseline` セクション不在 → default `enabled: true, path: .phasegate/baseline.json` (v0.117 以降)
|
|
104
|
+
- 既存大規模プロジェクトに後追い導入なら baseline 有効化推奨 (新規違反のみ厳しく検査)
|
|
105
|
+
|
|
106
|
+
#### 観点 7: agentIntegration.stopHook.enforce (v0.122 以降)
|
|
107
|
+
|
|
108
|
+
- 未指定 (`false` 相当) → AI セッションの Stop hook 失敗を **warning のみ** で許容
|
|
109
|
+
- `true` セット → Complete Check 失敗時に Claude Code の turn を hard block (exit 2)
|
|
110
|
+
- 推奨: AI 主導開発で本格運用するなら `true` を SUGGEST
|
|
111
|
+
|
|
112
|
+
#### 観点 8: hook-config.json (`.claude/scripts/`)
|
|
113
|
+
|
|
114
|
+
- `targetDirs: ["src"]` のままで monorepo の場合 → WARN: `phasegate init` を再実行すれば monorepo 自動検出が効く (v0.120 以降)
|
|
115
|
+
- `formatter: "biome"` だが `@biomejs/biome` が devDependencies に無い → WARN: prettier に切り替え推奨
|
|
116
|
+
- v0.119 未満で deploy された hook script (bash 4 `mapfile` 使用) → WARN: macOS の bash 3.2 で silent fail。`phasegate init` 再実行で更新
|
|
117
|
+
|
|
118
|
+
### Step 3: 診断レポート
|
|
119
|
+
|
|
120
|
+
診断結果を以下の形式で提示する:
|
|
121
|
+
|
|
122
|
+
````markdown
|
|
123
|
+
## phasegate.config.json 診断結果
|
|
124
|
+
|
|
125
|
+
### サマリ
|
|
126
|
+
- ✅ OK: N 件
|
|
127
|
+
- ⚠️ WARN: N 件
|
|
128
|
+
- 💡 SUGGEST: N 件
|
|
129
|
+
|
|
130
|
+
### ⚠️ 修正推奨 (WARN)
|
|
131
|
+
|
|
132
|
+
#### W1: `architecture.preset = "custom"` だが `architecture.layers` が未定義
|
|
133
|
+
- 影響: schema validator で reject される
|
|
134
|
+
- 修正案:
|
|
135
|
+
```json-diff
|
|
136
|
+
- "architecture": { "preset": "custom" }
|
|
137
|
+
+ "architecture": {
|
|
138
|
+
+ "preset": "custom",
|
|
139
|
+
+ "layers": [ /* layer 定義 */ ]
|
|
140
|
+
+ }
|
|
141
|
+
```
|
|
142
|
+
- 補足: layer 構造が clean / strict-ddd / hexagonal / onion / layered / flat のいずれかに該当するなら `preset: "<その値>"` のほうが簡潔
|
|
143
|
+
|
|
144
|
+
### 💡 改善提案 (SUGGEST)
|
|
145
|
+
|
|
146
|
+
#### S1: `architecture.preset` 未指定 → "clean" を推奨
|
|
147
|
+
- 検出根拠: `scripts/harness/{domain,application,infrastructure,presentation}` の 4 ディレクトリが存在
|
|
148
|
+
- 修正案:
|
|
149
|
+
```json-diff
|
|
150
|
+
{
|
|
151
|
+
"project": { ... },
|
|
152
|
+
+ "architecture": { "preset": "clean" },
|
|
153
|
+
"layers": { ... }
|
|
154
|
+
}
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
### ✅ 問題なし (OK)
|
|
158
|
+
- project.preset = "standard"
|
|
159
|
+
- paths.designDocs / paths.inceptionDocs はデフォルト値で実プロジェクトと一致
|
|
160
|
+
- baseline セクション不在 → default 有効 (v0.117+)
|
|
161
|
+
````
|
|
162
|
+
|
|
163
|
+
### Step 4: 適用 (AskUserQuestion 経由)
|
|
164
|
+
|
|
165
|
+
提案件数に応じて使い分ける:
|
|
166
|
+
|
|
167
|
+
- **提案 1-3 件**: `AskUserQuestion` 1 回で「全て適用 / 個別選択 / 適用しない」を提示
|
|
168
|
+
- **提案 4 件以上**: WARN を先に `AskUserQuestion` で確認し、SUGGEST はバッチで別途確認
|
|
169
|
+
|
|
170
|
+
option 設計の例 (提案 2 件、WARN 1 + SUGGEST 1 のとき):
|
|
171
|
+
|
|
172
|
+
```
|
|
173
|
+
question: "phasegate.config.json に提案 2 件あります。どう適用しますか?"
|
|
174
|
+
options:
|
|
175
|
+
- label: "全て適用 (推奨) — W1 + S1"
|
|
176
|
+
- label: "WARN のみ適用 — W1 のみ"
|
|
177
|
+
- label: "適用しない (情報のみ受け取る)"
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
ユーザーが適用対象を確定したら `Edit` で `phasegate.config.json` を変更。
|
|
181
|
+
|
|
182
|
+
**変更後の必須検証**:
|
|
183
|
+
|
|
184
|
+
```bash
|
|
185
|
+
npx phasegate validate --layer L2
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
L2 でエラーが出た場合は変更を **rollback** し、ユーザーに報告 (silent に進めない)。
|
|
189
|
+
|
|
190
|
+
## phasegate-toolkit-guide との使い分け
|
|
191
|
+
|
|
192
|
+
| 質問種別 | 使う skill |
|
|
193
|
+
|---|---|
|
|
194
|
+
| 「L2 って何?」「Quick Mode の仕組み教えて」(read-only Q&A) | phasegate-toolkit-guide |
|
|
195
|
+
| 「config の relaxedGates 何にすべき?」(設定診断 + 提案) | phasegate-config-doctor |
|
|
196
|
+
| 「monorepo 対応されてる?」(現状確認) | phasegate-toolkit-guide |
|
|
197
|
+
| 「monorepo 用に config 直して」(設定変更) | phasegate-config-doctor |
|
|
198
|
+
|
|
199
|
+
ユーザー質問が両方にまたがる場合は、まず phasegate-toolkit-guide で概念を説明 → ユーザーが「じゃあ修正して」と言ったら本 skill に切り替える。
|
|
@@ -9,22 +9,23 @@ phasegate ツールキット自体の概念・仕様・設定について、ユ
|
|
|
9
9
|
|
|
10
10
|
## このスキルが解決する問題
|
|
11
11
|
|
|
12
|
-
ユーザーが phasegate
|
|
12
|
+
ユーザーが phasegate を導入したプロジェクトで AI に phasegate 関連の質問をしたとき、AI が `node_modules/phasegate/` を grep で調査して仕様を推測する非効率を防ぐ。
|
|
13
13
|
|
|
14
|
-
phasegate
|
|
14
|
+
phasegate の概念・仕様は **canonical doc が `node_modules/phasegate/docs/guide/` 配下に同梱されている**。本 skill はそれらへの正確なポインタを提供する。
|
|
15
15
|
|
|
16
|
-
##
|
|
16
|
+
## 設計原則
|
|
17
17
|
|
|
18
|
-
**
|
|
19
|
-
|
|
20
|
-
|
|
18
|
+
1. **canonical doc を必ず Read してから答える** — training data 依存で答えない (バージョン乖離リスク)
|
|
19
|
+
2. **knowledge を skill 本体に固定しない** — skill markdown には「どの doc を読めば答えられるか」のポインタだけを書く。`npm update phasegate` で knowledge が自動追従する構造を保つ
|
|
20
|
+
3. **read-only に徹する** — 「config の X を変更したい」など設定変更を伴う質問は範囲外。`phasegate-config-doctor` に委譲する
|
|
21
|
+
4. **doc 全文をユーザーに貼り付けない** — 要約 + 該当セクション名引用で返す
|
|
21
22
|
|
|
22
23
|
## 回答プロセス
|
|
23
24
|
|
|
24
25
|
1. ユーザー質問を以下の **概念カテゴリ** にマッピング
|
|
25
|
-
2. 対応する canonical doc を **Read tool で読む**
|
|
26
|
-
3. Read
|
|
27
|
-
4. 回答内に **doc
|
|
26
|
+
2. 対応する canonical doc を **Read tool で読む** — 長い doc は当該セクションを `offset` / `limit` で限定して読む
|
|
27
|
+
3. Read した内容に基づいて簡潔に回答 (2-3 段落 + コード例 1 つ程度)
|
|
28
|
+
4. 回答内に **doc 内の該当セクション名** を引用 (ユーザーが doc を直接開いたとき navigation できるように)
|
|
28
29
|
|
|
29
30
|
### canonical doc の場所
|
|
30
31
|
|
|
@@ -32,7 +33,7 @@ phasegate がインストールされたプロジェクトでは、以下のい
|
|
|
32
33
|
|
|
33
34
|
```
|
|
34
35
|
node_modules/phasegate/docs/guide/ # npm 経由でインストールされた consumer プロジェクト
|
|
35
|
-
docs/guide/
|
|
36
|
+
docs/guide/ # phasegate リポジトリ自体 (dogfood)
|
|
36
37
|
```
|
|
37
38
|
|
|
38
39
|
**先に `node_modules/phasegate/docs/guide/` を試し**、見つからなければ `docs/guide/` を試す。
|
|
@@ -48,7 +49,7 @@ docs/guide/ # phasegate リポジトリ自体 (dogfood
|
|
|
48
49
|
|
|
49
50
|
**参照先**: `docs/guide/layer-model.md`
|
|
50
51
|
|
|
51
|
-
|
|
52
|
+
各層 (L0 / L1 / L2 / L3 / L4) のセクションが見出しで区切られているので、質問された層のセクションのみ `offset` 指定で部分読みすると効率的。
|
|
52
53
|
|
|
53
54
|
### 2. 防御プリセット / アーキプリセット (重要: 2 系統あり)
|
|
54
55
|
|
|
@@ -75,9 +76,9 @@ docs/guide/ # phasegate リポジトリ自体 (dogfood
|
|
|
75
76
|
- 「relaxedGates って何のため?」
|
|
76
77
|
- 「allowedCategories はどこで設定する?」
|
|
77
78
|
|
|
78
|
-
**参照先**: `docs/guide/quick-vs-full-mode.md`
|
|
79
|
+
**参照先**: `docs/guide/quick-vs-full-mode.md` (Mode の概念と切り替え条件)
|
|
79
80
|
|
|
80
|
-
|
|
81
|
+
設定キー (`quickMode.allowedCategories` / `quickMode.relaxedGates` / `quickMode.fullModeRequiredWhen`) の詳細は `docs/guide/configuration.md` の `quickMode` セクション。
|
|
81
82
|
|
|
82
83
|
### 4. Hook 仕様 (PreToolUse / PostToolUse / Stop / SessionStart / UserPromptSubmit)
|
|
83
84
|
|
|
@@ -89,7 +90,7 @@ docs/guide/ # phasegate リポジトリ自体 (dogfood
|
|
|
89
90
|
|
|
90
91
|
**参照先**: `docs/guide/hooks-integration.md`
|
|
91
92
|
|
|
92
|
-
`Responsibility Separation` セクションに pre / post / Stop
|
|
93
|
+
`Responsibility Separation` セクションに pre / post / Stop の責務分担表があり、Stop hook を strict mode (turn を hard block) にする `agentIntegration.stopHook.enforce` オプションもそこに記載されている。
|
|
93
94
|
|
|
94
95
|
### 5. config 全般 (`phasegate.config.json`)
|
|
95
96
|
|
|
@@ -101,7 +102,7 @@ docs/guide/ # phasegate リポジトリ自体 (dogfood
|
|
|
101
102
|
|
|
102
103
|
**参照先**: `docs/guide/configuration.md`
|
|
103
104
|
|
|
104
|
-
各 top-level
|
|
105
|
+
各 top-level セクション (`project` / `layers` / `quickMode` / `phaseDependencies` / `harnesses` / `paths` / `reporting` / `architecture` / `agentIntegration` / `protectedFiles` / `baseline`) ごとに説明あり。
|
|
105
106
|
|
|
106
107
|
### 6. CLI コマンド一覧
|
|
107
108
|
|
|
@@ -120,7 +121,7 @@ docs/guide/ # phasegate リポジトリ自体 (dogfood
|
|
|
120
121
|
- 「既存プロジェクトに後から導入したい」
|
|
121
122
|
|
|
122
123
|
**参照先**:
|
|
123
|
-
- 新規導入: `docs/guide/installation.md
|
|
124
|
+
- 新規導入: `docs/guide/installation.md`
|
|
124
125
|
- 既存プロジェクト導入: `docs/guide/retrofit-adoption.md`
|
|
125
126
|
|
|
126
127
|
### 8. skill 一覧と使い分け
|
|
@@ -139,28 +140,18 @@ docs/guide/ # phasegate リポジトリ自体 (dogfood
|
|
|
139
140
|
|
|
140
141
|
**参照先**: `docs/guide/codex-integration.md`
|
|
141
142
|
|
|
142
|
-
##
|
|
143
|
+
## 境界条件
|
|
143
144
|
|
|
144
|
-
|
|
145
|
-
- canonical doc の **該当セクション名** を必ず引用 (ユーザーが doc を直接開いたときの navigation 補助)
|
|
146
|
-
- 質問が複数カテゴリにまたがる場合は、最も関連性の高い doc を先に読む
|
|
147
|
-
- doc を読まずに回答しない (本 skill の存在意義は「正確な情報源を引く」こと)
|
|
145
|
+
### 質問が複数カテゴリにまたがる場合
|
|
148
146
|
|
|
149
|
-
|
|
147
|
+
最も関連性の高い doc を先に読み、必要なら追加で別 doc を読んで補う。
|
|
150
148
|
|
|
151
|
-
|
|
149
|
+
### マッピングが曖昧な場合
|
|
152
150
|
|
|
153
151
|
1. `docs/guide/` 配下の doc 一覧 (`ls node_modules/phasegate/docs/guide/`) を取得
|
|
154
152
|
2. ファイル名から推測して最も近い doc を読む
|
|
155
153
|
3. それでも見つからなければ、ユーザーに **どの観点を知りたいか** を質問で絞り込む
|
|
156
154
|
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
「config の X を変更したい」など **設定変更を伴う質問** は、本 skill の範囲外。phasegate-config-doctor skill (存在すれば) に委譲するか、ユーザーに「設定変更には phasegate-config-doctor を起動するのが推奨」と案内する。本 skill は **read-only な Q&A に徹する**。
|
|
160
|
-
|
|
161
|
-
## アンチパターン
|
|
155
|
+
### 設定変更を伴う質問
|
|
162
156
|
|
|
163
|
-
|
|
164
|
-
- ❌ doc 全文をユーザーに貼り付ける (要約して該当セクションへのポインタを返す)
|
|
165
|
-
- ❌ `phasegate.config.json` を直接編集する (本 skill は read-only)
|
|
166
|
-
- ❌ skill 本文に概念解説を書き加える (doc に書くべき。skill はポインタ役)
|
|
157
|
+
「config の X を変更したい」など **設定変更を伴う質問** は本 skill のスコープ外。`phasegate-config-doctor` に委譲する (deploy 済の guidance skill。ユーザーに「設定変更には phasegate-config-doctor が推奨」と案内)。
|