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