phasegate 0.32.0 → 0.44.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.
Files changed (37) hide show
  1. package/CHANGELOG.md +87 -1
  2. package/README.ja.md +498 -660
  3. package/README.md +8 -11
  4. package/docs/folder_management_rules.md +251 -0
  5. package/docs/guide/cli-reference.md +15 -0
  6. package/package.json +3 -1
  7. package/scripts/delegate-sonnet.sh +105 -0
  8. package/scripts/harness/ci-governance/application/usecases/generate-ci-template-usecase.ts +6 -2
  9. package/scripts/harness/harness-api/infrastructure/adapters/validator-system-execution-adapter.ts +11 -2
  10. package/scripts/harness/integrations/pre-commit.ts +64 -130
  11. package/scripts/harness/main.ts +134 -9
  12. package/scripts/harness/phase2-extensions/infrastructure/adapters/git-log-document-age-adapter.ts +7 -1
  13. package/scripts/harness/quick-mode/infrastructure/adapters/git-diff-changed-files-adapter.ts +20 -1
  14. package/scripts/harness/regression-suite/composition-root.ts +4 -1
  15. package/scripts/harness/setup/skill-deployer.ts +99 -0
  16. package/scripts/harness/validator-system/application/dto/run-full-validation-input.ts +5 -0
  17. package/scripts/harness/validator-system/application/use-cases/run-full-validation-usecase.ts +40 -12
  18. package/scripts/harness/validator-system/composition-root.ts +2 -0
  19. package/scripts/harness/validator-system/domain/services/l4/drift-detection-service.ts +29 -2
  20. package/scripts/harness/validator-system/infrastructure/adapters/biome-ast-source-code-analyzer-adapter.ts +17 -0
  21. package/scripts/harness/validator-system/infrastructure/adapters/markdown-design-document-adapter.ts +65 -5
  22. package/scripts/harness/validator-system/presentation/handlers/run-validators-handler.ts +9 -0
  23. package/skills/environment-designer/SKILL.md +1 -1
  24. package/skills/implementation-planner/SKILL.md +1 -1
  25. package/skills/it-test-designer/SKILL.md +3 -3
  26. package/skills/it-test-logic-designer/SKILL.md +2 -2
  27. package/skills/mock-designer/SKILL.md +1 -1
  28. package/skills/scenario-test-designer/SKILL.md +3 -3
  29. package/skills/scenario-test-logic-designer/SKILL.md +2 -2
  30. package/skills/story-mapper/SKILL.md +1 -1
  31. package/skills/story-writer/SKILL.md +1 -1
  32. package/skills/unit-designer/SKILL.md +1 -1
  33. package/skills/unit-test-designer/SKILL.md +3 -3
  34. package/skills/unit-test-logic-designer/SKILL.md +2 -2
  35. package/templates/.claude/settings.json +3 -3
  36. package/templates/.husky/pre-commit +1 -1
  37. package/templates/phasegate.config.json +0 -30
package/README.ja.md CHANGED
@@ -1,206 +1,192 @@
1
1
  # Phasegate
2
2
 
3
- **Phasegate — AI-Agnostic Quality Defense Toolkit**
3
+ **Phasegate -- AI-Agnostic Quality Defense Toolkit**
4
4
 
5
- AIエージェント(Claude Code, Codex, Cursor, その他)が生成するコードと設計の構造的整合性を、エージェント非依存で機械的に保証し続けるポータブルな品質防御ツールキットです。
6
-
7
- > **Core Value**: 「設計意図とコードの構造的整合性を、機械的に保証し続けること」
8
- >
9
- > どのAIエージェントで開発しても、このハーネスをプロジェクトに導入すれば、設計意図とコードの構造的整合性が壊れない。
5
+ AIエージェント(Claude Code, Codex, Cursor, Copilot 等)が生成するコードと設計の構造的整合性を機械的に保証する品質防御ツールキットです。
10
6
 
11
7
  ---
12
8
 
13
9
  ## 目次
14
10
 
15
11
  - [何ができるのか](#何ができるのか)
16
- - [アーキテクチャ — 5層防御モデル](#アーキテクチャ--5層防御モデル)
17
- - [前提条件](#前提条件)
18
- - [インストール](#インストール)
19
- - [セットアップ](#セットアップ)
20
- - [phasegate.config.json](#harnessconfigjson)
21
- - [CLIコマンドリファレンス](#cliコマンドリファレンス)
22
- - [AIDLCプロセス — スキル実行順序](#aidlcプロセス--スキル実行順序)
23
- - [スキル一覧 (28スキル)](#スキル一覧-28スキル)
24
- - [メタデータ規約 (@unit / @layer / @story)](#メタデータ規約-unit--layer--story)
25
- - [Claude Code Hooks 統合](#claude-code-hooks-統合)
26
- - [Quick Mode](#quick-mode)
27
- - [プリセット](#プリセット)
12
+ - [クイックスタート](#クイックスタート)
13
+ - [5層防御モデル](#5層防御モデル)
14
+ - [設定 (phasegate.config.json)](#設定-phasegateconfigjson)
15
+ - [CLIコマンド](#cliコマンド)
16
+ - [AIDLC スキル](#aidlc-スキル)
17
+ - [メタデータ規約](#メタデータ規約)
18
+ - [Claude Code Hooks](#claude-code-hooks)
19
+ - [カスタムフェーズゲート](#カスタムフェーズゲート)
28
20
  - [CI/CD テンプレート](#cicd-テンプレート)
29
- - [回帰テスト (K1-K15)](#回帰テスト-k1-k15)
30
- - [ディレクトリ構造](#ディレクトリ構造)
31
- - [バージョン管理](#バージョン管理)
21
+ - [導入後のプロジェクト構造](#導入後のプロジェクト構造)
32
22
 
33
23
  ---
34
24
 
35
25
  ## 何ができるのか
36
26
 
37
- | 機能 | 説明 |
27
+ Phasegate は **「設計なしの実装を物理的に拒否する」** ツールです。
28
+
29
+ | カテゴリ | 内容 |
38
30
  |---|---|
39
- | **L1 Biome AST 検証** | エディタ保存時・CI実行時にimportグラフ解析・レイヤー違反・AIアンチパターンを検出 |
40
- | **L2 Pre-commit バリデータ** | コミット前にPhase Gate・メタデータ完全性・テスト品質ルールを強制 |
41
- | **L3 CI バリデータ** | PRマージ前にセキュリティ・パフォーマンス・カバレッジ・Nyquist要件トレーサビリティを検証 |
42
- | **L4 スケジュール検証** | 週次で設計-実装乖離・文書間整合性・デッドコードを検出 |
43
- | **28スキル** | product-architectからstory-implementorまで、設計→実装の全フェーズをカバー |
44
- | **Phase Dependency Model** | 設計フェーズ間の前提条件を機械的に強制(設計なしの実装を物理的に拒否) |
45
- | **Quick Mode** | バグ修正・テスト追加などの軽微な変更では最小限のゲートで高速実行 |
46
- | **Claude Code Hooks** | ファイル書き込み時の自動Biome lint、セッション終了時の全テストグリーン強制 |
47
- | **HarnessError** | 全バリデータのエラーにADR参照と修正コード例を付与。AIエージェントが自己修正可能 |
48
- | **Nyquist Validation** | 要件→テストの双方向トレーサビリティを`requirement-test-matrix.json`で保証 |
49
- | **Cascade Updater** | 下位フェーズの発見を上位設計文書に自動フィードバック |
50
- | **Regression Suite** | K1-K15非交渉要件・GnGゲート・エージェント非依存性を回帰テストで継続検証 |
51
- | **カスタムフェーズゲート** | `phasegate.config.json` の `gates[]` で独自のフェーズゲートを定義可能。デフォルトはAIDLCフェーズ依存 |
52
- | **保護ファイル制御** | `protectedFiles.exclude` でAI書き込みから保護するファイルを設定 |
53
- | **Bash書き込み検出** | シェル経由のファイル書き込み(`sed -i`, `tee`, `cp`, `mv`, リダイレクト等)を検出してブロック |
31
+ | **フェーズゲート** | 設計文書が存在しないとソースコードの書き込みをブロック。カスタムゲートも定義可能 |
32
+ | **5層バリデーション** | L1(AST) → L2(Pre-commit) → L3(CI) → L4(週次) の段階的品質チェック |
33
+ | **28 AIDLC スキル** | 要求定義 → 設計 → テスト設計 → TDD実装の全フェーズをスキルとして提供 |
34
+ | **Claude Code Hooks** | Write/Edit 時に自動でゲートチェック・Biome lint を実行 |
35
+ | **Quick Mode** | バグ修正・ドキュメント修正など軽微な変更ではゲートを緩和して高速実行 |
54
36
 
55
37
  ---
56
38
 
57
- ## アーキテクチャ — 5層防御モデル
39
+ ## クイックスタート
58
40
 
59
- ```
60
- ╔══════════════════════════════════════════════════════════════╗
61
- ║ L0 HOOKS ENGINE: Agent Hook Configuration ║
62
- ║ ───────────────────────────────────────────────────────── ║
63
- ║ hook-config .harness-hooks.yml設定検証 ║
64
- ║ gate-check 完了ゲートチェック ║
65
- ║ ║
66
- ║ 実行: npx phasegate validate --layer L0 ║
67
- ╠══════════════════════════════════════════════════════════════╣
68
- ║ L1 EDITOR TIME: Biome AST Rules ║
69
- ║ ───────────────────────────────────────────────────────── ║
70
- ║ require-unit-comment require-layer-comment ║
71
- ║ no-layer-violation enforce-folder-structure ║
72
- ║ no-any-abuse no-ghost-file ║
73
- ║ no-comment-flood no-code-duplication ║
74
- ║ + it-test-mock-detection + stub-comment-detection ║
75
- ║ ║
76
- ║ 実行: npx phasegate lint ║
77
- ╠══════════════════════════════════════════════════════════════╣
78
- ║ L2 PRE-COMMIT: Validators ║
79
- ║ ───────────────────────────────────────────────────────── ║
80
- ║ phase-gate 設計→実装の順序強制 ║
81
- ║ metadata @unit/@layer/@US-XXX/@story の完全性検証 ║
82
- ║ test-quality AAA / actual / single-act / no-domain-mock ║
83
- ║ ║
84
- ║ 実行: npx phasegate validate --layer L2 ║
85
- ╠══════════════════════════════════════════════════════════════╣
86
- ║ L3 CI/CD: Validators ║
87
- ║ ───────────────────────────────────────────────────────── ║
88
- ║ security ハードコード秘密・SQLインジェクション検出 ║
89
- ║ performance ループ内await・N+1クエリ・バンドルサイズ ║
90
- ║ coverage カバレッジ閾値 (standard: 90% / strict: 95%) ║
91
- ║ nyquist 要件→テスト双方向トレーサビリティ検証 ║
92
- ║ ║
93
- ║ 実行: npx phasegate validate --layer L3 ║
94
- ╠══════════════════════════════════════════════════════════════╣
95
- ║ L4 SCHEDULED: Validators ║
96
- ║ ───────────────────────────────────────────────────────── ║
97
- ║ drift-detect 設計↔コード双方向乖離検出 ║
98
- ║ consistency-check 文書間レイヤー整合性チェック ║
99
- ║ dead-code 未使用エクスポート・到達不能コード検出 ║
100
- ║ ║
101
- ║ 実行: npx phasegate validate --layer L4 ║
102
- ╚══════════════════════════════════════════════════════════════╝
103
- ```
41
+ ### 前提条件
104
42
 
105
- 各バリデータは統一された`HarnessError`フォーマットでエラーを報告します。
43
+ Node.js >= 18, npm >= 9, TypeScript 5.x
106
44
 
107
- ```typescript
108
- interface HarnessError {
109
- code: string; // "L1-003", "L2-001" など
110
- severity: "error" | "warning";
111
- message: string; // 人間可読な説明
112
- suggestion: string; // 修正方法の提案
113
- adr_ref?: string; // 関連ADR参照 ("ADR-003" など)
114
- fix_example?: string; // 修正コード例(AIエージェントの自己修正用)
115
- }
45
+ ### 1. インストール
46
+
47
+ ```bash
48
+ npm install --save-dev phasegate
116
49
  ```
117
50
 
118
- ---
51
+ ### 2. プロジェクト初期化
119
52
 
120
- ## 前提条件
53
+ ```bash
54
+ npx phasegate init --name <プロジェクト名> --preset standard
55
+ ```
121
56
 
122
- | 要件 | バージョン |
123
- |---|---|
124
- | Node.js | 18以上 |
125
- | npm | 9以上 |
126
- | TypeScript | 5.x |
57
+ `.claude/skills/` に28スキルを展開し、設計原則ドキュメント(`docs/principles/*.md`・`docs/folder_management_rules.md`)を配置し、`phasegate.config.json` を生成します。
127
58
 
128
- ---
59
+ `--preset` で初期構成を選択できます: `minimal`(プロトタイプ)/ `standard`(推奨)/ `strict`(本番)
129
60
 
130
- ## インストール
61
+ オプションで `--with-husky` を付けると L2 バリデータを実行する `.husky/pre-commit` フックも同時にインストールされます。
62
+
63
+ ### 3. AIDLC を開始
131
64
 
132
65
  ```bash
133
- npm install --save-dev phasegate
66
+ claude # プロジェクトルートで起動
134
67
  ```
135
68
 
136
- `package.json` に直接記載する場合:
69
+ セッション内で `/product-architect` を実行して設計を開始します。
137
70
 
138
- ```json
139
- {
140
- "devDependencies": {
141
- "phasegate": "^0.31.0"
142
- }
143
- }
71
+ ### アップデート
72
+
73
+ ```bash
74
+ npm update phasegate # パッケージ更新
75
+ npx phasegate update-skills # スキルを最新版に同期
144
76
  ```
145
77
 
146
78
  ---
147
79
 
148
- ## セットアップ
80
+ ## 5層防御モデル
149
81
 
150
- ### 1. プロジェクト初期化
82
+ | レイヤー | タイミング | チェック内容 | 実行コマンド |
83
+ |---|---|---|---|
84
+ | **L0** | Agent Hook | hook 設定検証・完了ゲートチェック | `npx phasegate validate --layer L0` |
85
+ | **L1** | エディタ保存時 | import グラフ・レイヤー違反・`@unit`/`@layer` メタデータ・AI アンチパターン | `npx phasegate lint` |
86
+ | **L2** | コミット前 | フェーズゲート・メタデータ完全性・テスト品質 | `npx phasegate validate --layer L2` |
87
+ | **L3** | CI/CD | セキュリティ・パフォーマンス・カバレッジ・要件トレーサビリティ (※) | `npx phasegate validate --layer L3` |
88
+ | **L4** | 週次(CI cron) | 設計-コード乖離検出・文書間整合性・デッドコード検出 | `npx phasegate validate --layer L4` |
151
89
 
152
- ```bash
153
- npx phasegate init --name <プロジェクト名>
154
- ```
90
+ エラーは統一された `HarnessError` フォーマットで報告され、ADR 参照と修正コード例が含まれるため AI エージェントが自己修正できます。
91
+
92
+ `--format` オプションで出力形式を切り替えられます:
155
93
 
156
- 実行されること:
157
- - `.claude/skills/` に28スキルを展開
158
- - プロジェクトルートに `phasegate.config.json` を生成
94
+ | フォーマット | 用途 | 出力形式 |
95
+ |---|---|---|
96
+ | `human` | ローカル開発 | コンソール向け(絵文字・色付き) |
97
+ | `agent` | AI エージェント連携 | キー値テキスト(`OVERALL: PASS`, `VALIDATOR: L2-001`) |
98
+ | `ci` | CI/CD パイプライン | 構造化 JSON(GitHub Actions 等で解析可能) |
159
99
 
160
- ### 2. 設計原則ドキュメントをコピー
100
+ ### L2 テスト品質ルール
161
101
 
162
- ```bash
163
- # プロジェクトの docs/ 配下にコピー
164
- cp node_modules/phasegate/docs/folder_management_rules.md docs/
165
- mkdir -p docs/principles
166
- cp node_modules/phasegate/docs/principles/*.md docs/principles/
167
- ```
102
+ L2 のテスト品質バリデータ(L2-003)は以下をチェックします:
168
103
 
169
- ### 3. プロダクト概要を作成
104
+ | ルール | コード | 内容 |
105
+ |---|---|---|
106
+ | **日本語テスト名** | L2-003 | `it()` / `test()` のテスト名が日本語であること |
107
+ | **`actual` 変数** | L2-003 | `expect()` の対象を `const actual` に代入していること |
108
+ | **CLI E2E テスト存在** | L2-013 | CLI コマンドに対応する E2E テストが存在すること |
170
109
 
171
- ```
172
- docs/product/
173
- └── <your_product>_overview.md # プロダクト定義(AIDLCの起点)
110
+ ```typescript
111
+ // PASS
112
+ it('ユーザーが存在する場合、結果を返すこと', async () => {
113
+ // Arrange
114
+ const userId = "test_user";
115
+
116
+ // Act
117
+ const actual = await sut.findByUserId(userId);
118
+
119
+ // Assert
120
+ expect(actual).toEqual(expectedResult);
121
+ });
122
+
123
+ // FAIL — 英語テスト名 + actual 変数なし
124
+ it('should return user', async () => {
125
+ const result = await sut.findByUserId(userId);
126
+ expect(result).toEqual(expectedResult);
127
+ });
174
128
  ```
175
129
 
176
- ### 4. Claude Codeを起動してAIDLCを開始
130
+ ### L3 Nyquist Validation(要件カバレッジ)※ 未完成
177
131
 
178
- ```bash
179
- claude # プロジェクトルートで起動
132
+ > **注意**: バリデーションロジックは実装済みですが、マトリクスファイルの自動生成パイプラインが未完成のため、現時点では手動セットアップが必要です。
133
+
134
+ 通常のコードカバレッジ(L3 coverage)は「コードの何%が実行されたか」を測りますが、Nyquist は**「要件(受け入れ基準)の何%がテストされているか」**を測ります。
135
+
136
+ **利用するには**: `.harness/requirement-test-matrix.json` を手動で作成し、受け入れ基準とテストの対応を定義します:
137
+
138
+ ```json
139
+ {
140
+ "version": "1.0.0",
141
+ "stories": [
142
+ {
143
+ "storyId": "H07-01",
144
+ "storyMappings": [
145
+ {
146
+ "acId": "AC-1",
147
+ "testReferences": [
148
+ {
149
+ "filePath": "src/__tests__/unit/feature.test.ts",
150
+ "testType": "unit",
151
+ "testName": "特定のシナリオをテストする"
152
+ }
153
+ ]
154
+ },
155
+ {
156
+ "acId": "AC-2",
157
+ "testReferences": []
158
+ }
159
+ ]
160
+ }
161
+ ]
162
+ }
180
163
  ```
181
164
 
182
- セッション内で `/product-architect` を実行してAIDLCを開始します。
165
+ 上記の例では AC-2 に `testReferences` がないため、L3 バリデータが「AC-2 はテストされていない」とエラーを報告します。`testType` は `unit` / `it` / `scenario` のいずれかです。マトリクスファイルが存在しない場合、Nyquist チェックはスキップされます。
166
+
167
+ ### L4 週次実行
183
168
 
184
- ### スキルのアップデート
169
+ L4 は CI の cron スケジュールで週次実行します。`consistency-check` テンプレートを使います:
185
170
 
186
171
  ```bash
187
- # ハーネスを更新後、スキルを最新版に同期
188
- npm update phasegate
189
- npx phasegate update-skills
172
+ # テンプレートを生成して配置
173
+ npx phasegate ci:generate-template --type consistency-check --render > .github/workflows/consistency-check.yml
190
174
  ```
191
175
 
176
+ デフォルトは毎週月曜 09:00 UTC に実行。乖離やデッドコードが検出されると GitHub Issue が自動作成されます。手動で実行する場合は `npx phasegate validate --layer L4` を使います。
177
+
192
178
  ---
193
179
 
194
- ## phasegate.config.json
180
+ ## 設定 (phasegate.config.json)
195
181
 
196
- プロジェクトルートに配置する品質設定のSingle Source of Truth。
182
+ プロジェクトルートに配置する品質設定の Single Source of Truth です。
197
183
 
198
184
  ```jsonc
199
185
  {
200
186
  "project": { "name": "my-project", "preset": "standard" },
201
187
  "layers": {
202
188
  "L0": { "enabled": false },
203
- "L1": { "enabled": true },
189
+ "L1": { "enabled": true, "rules": {} },
204
190
  "L2": { "enabled": true },
205
191
  "L3": { "enabled": true },
206
192
  "L4": { "enabled": false }
@@ -212,22 +198,170 @@ npx phasegate update-skills
212
198
  },
213
199
  "phaseDependencies": {
214
200
  "preset": "standard",
215
- "override": false,
216
201
  "storyReflection": { "enabled": true }
217
202
  },
218
203
  "protectedFiles": {
219
- "exclude": ["tsconfig.json", "package.json"]
220
- },
221
- "paths": {
222
- "designDocs": "docs/product/construction",
223
- "inceptionDocs": "docs/inception"
204
+ "exclude": ["package.json"]
205
+ }
206
+ }
207
+ ```
208
+
209
+ ### project.preset -- レイヤー厳密度
210
+
211
+ | プリセット | 有効レイヤー | カバレッジ | 用途 |
212
+ |---|---|---|---|
213
+ | **minimal** | L1, L2 | -- | プロトタイプ・学習 |
214
+ | **standard** | L1-L3 | 90% | 通常開発(デフォルト) |
215
+ | **strict** | L1-L4 | 95% | 本番・エンタープライズ |
216
+
217
+ ### layers.L1.rules -- AST ルール設定
218
+
219
+ L1 の各ルールを `"error"` / `"warning"` / `"off"` で個別に制御できます。省略したルールはデフォルト `"error"` で適用されます。
220
+
221
+ ```jsonc
222
+ {
223
+ "layers": {
224
+ "L1": {
225
+ "enabled": true,
226
+ "rules": {
227
+ "no-any-abuse": "warning",
228
+ "no-comment-flood": "off"
229
+ }
230
+ }
224
231
  }
225
232
  }
226
233
  ```
227
234
 
235
+ | ルール | コード | チェック内容 |
236
+ |---|---|---|
237
+ | `require-unit-comment` | L1-001 | `@unit` アノテーションの存在 |
238
+ | `require-layer-comment` | L1-002 | `@layer` アノテーションの存在 |
239
+ | `no-layer-violation` | L1-003 | import グラフ解析・レイヤー依存方向違反の検出 |
240
+ | `enforce-folder-structure` | L1-004 | フォルダ構造と宣言レイヤーの一致 |
241
+ | `no-any-abuse` | L1-005 | `any` 型の濫用検出 |
242
+ | `no-code-duplication` | L1-006 | コード重複の検出 |
243
+ | `no-ghost-file` | L1-007 | 未参照ファイルの検出 |
244
+ | `no-comment-flood` | L1-008 | 過剰コメントの検出 |
245
+ | `it-test-mock-detection` | L1-017 | テストでの不適切なモック使用を検出 |
246
+ | `stub-comment-detection` | L1-018 | スタブコメント(TODO/FIXME/HACK 等)の検出 |
247
+
248
+ ### phaseDependencies.preset -- フェーズゲート構成
249
+
250
+ `project.preset` とは独立して設定します。
251
+
252
+ | プリセット | ゲート | storyReflection | 用途 |
253
+ |---|---|---|---|
254
+ | **full** | 全 AIDLC ゲート | `logical_design` + `domain_model` required | AIDLC フルセレモニー |
255
+ | **standard** | コアゲート | `logical_design` required | 通常開発 |
256
+ | **minimal** | なし | 無効 | プロトタイプ |
257
+ | **custom** | `gates[]` で定義 | `storyReflection.mappings` で定義 | 完全カスタマイズ(`override: true` 必須) |
258
+
259
+ ### storyReflection -- US 単位の設計反映ゲート
260
+
261
+ `storyReflection` は **「inception の設計成果が product docs に反映されるまで実装をブロックする」** 仕組みです。
262
+
263
+ #### 動作の仕組み
264
+
265
+ `src/{unit}/` への書き込み時に、以下の検査が自動で走ります:
266
+
267
+ 1. `docs/inception/{unit}/` 配下のディレクトリを走査し、US-XXX / ISSUE-XXX を自動検出
268
+ 2. 検出した各 US について、inception 側のファイルが存在するかチェック
269
+ 3. 存在する場合、対応する product 側のファイルに `@story-id` アノテーションが含まれるかチェック
270
+ 4. **含まれていなければ書き込みをブロック**
271
+
272
+ ```
273
+ docs/inception/my-unit/US-001/logical_design.md ← 存在する
274
+ docs/product/construction/my-unit/logical_design.md ← @story-id US-001 がない
275
+ → src/my-unit/ への書き込みがブロックされる
276
+ ```
277
+
278
+ #### `@story-id` アノテーションの書き方
279
+
280
+ product docs に設計成果を反映する際、反映元の US/ISSUE を `@story-id` で記録します:
281
+
282
+ ```markdown
283
+ <!-- docs/product/construction/my-unit/logical_design.md -->
284
+
285
+ ## ポート定義
286
+
287
+ <!-- @story-id US-001 -->
288
+ ### UserRepository Port
289
+ - findById(id: UserId): Promise<User>
290
+
291
+ <!-- @story-id US-001, US-002 -->
292
+ ### OrderRepository Port
293
+ - findByUserId(id: UserId): Promise<Order[]>
294
+ ```
295
+
296
+ カンマ区切りで複数の US を1つのアノテーションに記載できます。
297
+
298
+ #### standard プリセットのデフォルトマッピング
299
+
300
+ | inception 側(検出対象) | product 側(反映先) | 必須 |
301
+ |---|---|---|
302
+ | `docs/inception/{unit}/{storyId}/logical_design.md` | `docs/product/construction/{unit}/logical_design.md` | **Yes**(ブロック) |
303
+ | `docs/inception/{unit}/{storyId}/domain_model.md` | `docs/product/construction/{unit}/domain_model.md` | No(警告のみ) |
304
+
305
+ カスタムマッピングも定義できます:
306
+
307
+ ```jsonc
308
+ {
309
+ "phaseDependencies": {
310
+ "preset": "standard",
311
+ "storyReflection": {
312
+ "enabled": true,
313
+ "mappings": [
314
+ {
315
+ "inception": "docs/inception/{unit}/{storyId}/logical_design.md",
316
+ "product": "docs/product/construction/{unit}/logical_design.md",
317
+ "required": true
318
+ },
319
+ {
320
+ "inception": "docs/inception/{unit}/{storyId}/domain_model.md",
321
+ "product": "docs/product/construction/{unit}/domain_model.md",
322
+ "required": true
323
+ }
324
+ ]
325
+ }
326
+ }
327
+ }
328
+ ```
329
+
330
+ #### 制限事項
331
+
332
+ - **特定の US だけゲートを通すことはできません** — inception に存在する全 US の反映が必要です
333
+ - `/story-implementor --story US-001` の `--story` 引数はゲートに接続されていません。検出はファイルシステムの走査のみで行われます
334
+
335
+ ### quickMode -- 軽微な変更の緩和
336
+
337
+ Quick Mode は以下の方法で発動します:
338
+
339
+ - **CLI**: `npx phasegate ci-check --quick`
340
+ - **スキル**: `/quick-implementor` を使用すると自動で Quick Mode が適用されます
341
+
342
+ `bugfix`, `docs`, `test`, `config` カテゴリの変更では、Phase Gate と 2-Phase Execution を緩和し L1/L2 のみ維持します。
343
+
344
+ **Quick Mode が拒否される条件**(フルチェックが強制されます):
345
+ - `domain/` 配下に新規ファイルを追加した場合
346
+ - `*port.ts` や `*adapter.ts`(API 契約)を変更した場合
347
+ - 新機能追加・新ドメインモデル追加に該当する変更
348
+
349
+ ### protectedFiles -- AI 書き込み保護
350
+
351
+ 以下のファイルはデフォルトで AI による直接編集から保護されます:
352
+
353
+ | 保護ファイル | 理由 |
354
+ |---|---|
355
+ | `package.json` | 依存関係・バージョン管理 |
356
+ | `package-lock.json` | ロックファイル |
357
+ | `tsconfig.json` | TypeScript 設定 |
358
+ | `biome.json` / `.biome.json` | リンター設定 |
359
+
360
+ `protectedFiles.exclude` に指定すると、そのファイルの保護が解除され AI が直接編集できるようになります。保護されたファイルを編集しようとすると、PreToolUse Hook が適切なスキル(`/quick-implementor` 等)の使用をガイドします。
361
+
228
362
  ---
229
363
 
230
- ## CLIコマンドリファレンス
364
+ ## CLIコマンド
231
365
 
232
366
  ```bash
233
367
  npx phasegate <command> [options]
@@ -239,248 +373,162 @@ npx phasegate <command> [options]
239
373
  |---|---|
240
374
  | `init --name <name>` | スキル展開 + phasegate.config.json 生成 |
241
375
  | `update-skills` | スキルを最新版に再デプロイ |
242
- | `list-features` | 利用可能な機能一覧 |
243
- | `enable-feature <name>` | 機能を有効化 |
244
- | `disable-feature <name>` | 機能を無効化 |
376
+ | `list-features` | 利用可能な機能一覧(下表参照) |
377
+ | `enable-feature <name>` / `disable-feature <name>` | 機能の有効化/無効化 |
245
378
 
246
- ### 品質チェック
379
+ 利用可能な Feature flags:
247
380
 
248
- | コマンド | 説明 | オプション |
381
+ | Feature | 説明 | デフォルト |
249
382
  |---|---|---|
250
- | `lint` | L1 Biome AST チェック | `--target <path>` `--json` |
251
- | `validate` | L2〜L4バリデータ実行 | `--layer L1\|L2\|L3\|L4\|all` `--unit <name>` `--format human\|agent\|ci` |
252
- | `ci-check` | CIフルチェック (L2-L4) | `--quick` `--fail-on-reject` `--dry-run` `--files` |
253
- | `validate-metadata <files>` | 実装メタデータ検証 | |
254
- | `check-phase-gate` | フェーズゲートチェック | `--level 1\|2\|3` |
383
+ | `agentLessonCollection` | AI エージェントの学習ログを収集 | off (`strict` で on) |
384
+ | `cascadeUpdate` | 下位フェーズの変更を上位設計に自動反映 | off |
385
+ | `bundleSizeLimit` | バンドルサイズ制限チェック (KB) | off (`strict` で 500KB) |
386
+ | `deadCodeGC` | デッドコード検出・削除 | off (`strict` で on) |
255
387
 
256
- ### harness-api コマンド
388
+ > **注意**: Feature flags は config への保存・読み出しは動作しますが、フラグに応じたランタイム動作は未実装です(将来バージョンで対応予定)。
257
389
 
258
- | コマンド | 説明 | オプション |
259
- |---|---|---|
260
- | `phasegate:status` | ハーネス全体の健全性サマリ | `--json` |
261
- | `phasegate:check-ready` | 全storyのPhase Gate通過状態 | `--json` |
262
- | `phasegate:check-phase` | 指定Unitの現在フェーズ | `--unit <unitId>` `--json` |
263
- | `phasegate:ci-check` | 全L3バリデータ実行結果 | `--json` |
264
- | `phasegate:detect-drift` | 設計-コード乖離レポート | `--json` |
265
- | `phasegate:lint` | harness-api経由のlint | `--target <path>` `--json` |
266
- | `phasegate:complete-check` | L2-L4全チェック | `--json` |
267
- | `phasegate:impact-analysis` | ストーリー影響範囲分析 | `<storyId>` `--json` |
268
-
269
- ### ADR管理
270
-
271
- | コマンド | 説明 | オプション |
272
- |---|---|---|
273
- | `list-adrs` | ADR一覧 | `--status Proposed\|Accepted\|Deprecated\|Superseded` |
274
- | `validate-adr` | ADR検証 | `--all` または `<adrRef>` |
275
-
276
- ### HarnessError
390
+ ### 品質チェック
277
391
 
278
- | コマンド | 説明 | オプション |
392
+ | コマンド | 説明 | 主なオプション |
279
393
  |---|---|---|
280
- | `list-errors` | エラー定義一覧 | `--format human\|json` `--layer L0-L4` |
281
- | `render-errors` | エラーを人間/AI/CI向けに出力 | `--format human\|agent\|ci` |
282
- | `validate-fix` | 修正コード例の検証 | `--code <code>` |
283
-
284
- ### スキル品質
394
+ | `lint` | L1 Biome AST チェック | `--target <path>` `--json` |
395
+ | `validate` | 指定レイヤーのバリデータ実行 | `--layer L1\|L2\|L3\|L4\|all` `--unit <name>` `--format human\|agent\|ci` |
396
+ | `ci-check` | CI フルチェック (L2-L4) | `--quick` `--dry-run` `--fail-on-reject` |
397
+ | `check-phase-gate` | フェーズゲートチェック | `--level 1\|2\|3` |
398
+ | `validate-metadata <files>` | メタデータ検証 | |
285
399
 
286
- | コマンド | 説明 | オプション |
287
- |---|---|---|
288
- | `skill:execute-tdd-cycle` | TDDサイクル実行 | `--unit` `--story` `--desc` `--phase RED\|GREEN\|REFACTOR` `--passed` |
289
- | `skill:check-coverage` | テストカバレッジ検証 | `--story <storyId>` `--json` |
290
- | `skill:collect-lessons` | エージェントLesson収集 | `--story <storyId>` `--sources <paths>` `--write-artifact` |
291
- | `skill:apply-cascade-update` | 上位設計への影響反映 | `--story <storyId>` `--dry-run` |
292
- | `skill:validate-structure` | スキル構造検証 | `--file <path>` `--json` |
400
+ ### phasegate コマンド
293
401
 
294
- ### CI/CD
402
+ `phasegate:` プレフィックス付きのコマンドは JSON 出力に対応し、スクリプトからの利用に適しています。
295
403
 
296
- | コマンド | 説明 | オプション |
297
- |---|---|---|
298
- | `ci:generate-template` | CI/CDテンプレート生成 | `--preset <id>` `--type <type>` `--render` `--json` |
299
- | `ci:migrate-agents-md` | AGENTS.mdポインタ型移行 | `--dry-run` `--validate-only` `--json` |
300
- | `ci:check-repetition` | 反復エラー検出 | `--code <errorCode>` `--reset` `--json` |
404
+ | コマンド | 説明 |
405
+ |---|---|
406
+ | `phasegate:status` | 全体の健全性サマリ |
407
+ | `phasegate:check-ready` | 全 story の Phase Gate 通過状態 |
408
+ | `phasegate:check-phase --unit <id>` | 指定 Unit の現在フェーズ |
409
+ | `phasegate:ci-check` | 全 L3 バリデータ実行 |
410
+ | `phasegate:detect-drift` | 設計-コード乖離レポート |
411
+ | `phasegate:lint --target <path>` | lint 実行 |
412
+ | `phasegate:complete-check` | L2-L4 全チェック |
413
+ | `phasegate:impact-analysis <storyId>` | ストーリー影響範囲分析 |
301
414
 
302
- ### 回帰テスト
415
+ ### その他
303
416
 
304
417
  | コマンド | 説明 |
305
418
  |---|---|
306
- | `regression:run-k-requirements` | K1-K15非交渉要件の回帰テスト |
307
- | `regression:run-gng-gate` | Go/No-Go Gate 3条件の回帰テスト |
308
- | `regression:run-agent-guard` | エージェント非依存性ガード |
309
- | `regression:run-k14-k15` | K14/K15 (Phase Dependency / Plan文書) 回帰テスト |
310
- | `regression:configure-ci-gate` | CIゲート設定 |
311
- | `regression:analyze-migration` | v0テスト移行分析 |
312
- | `regression:migrate-v0-tests` | v0テスト移行実行 |
419
+ | `list-adrs` | ADR 一覧(`--status` でフィルタ可能) |
420
+ | `validate-adr` | ADR 検証(`--all` または `<adrRef>`) |
421
+ | `list-errors` | エラー定義一覧(`--layer L0-L4`) |
422
+ | `ci:generate-template` | CI/CD テンプレート生成(`--type <type>`) |
313
423
 
314
- ### Hooks Engine
424
+ ### Hook / 委任ラッパー
315
425
 
316
426
  | コマンド | 説明 |
317
427
  |---|---|
318
- | `hooks:config validate` | .harness-hooks.yml の検証 |
319
- | `hooks:gate-check --story <id>` | 完了ゲートチェック |
428
+ | `hook <pre-tool-use\|post-tool-use\|stop>` | Claude Code hook を起動(stdin から JSON を読む) |
429
+ | `pre-commit` | L2 pre-commit バリデータをステージファイルに対して実行 |
430
+ | `delegate-sonnet [...args]` | Sonnet 4.6 委任スクリプトの透過ラッパー(`scripts/delegate-sonnet.sh` に引数を forward) |
320
431
 
321
- ### Phase 2 拡張
322
-
323
- | コマンド | 説明 | オプション |
324
- |---|---|---|
325
- | `p2:check-freshness` | 設計文書の鮮度チェック | `--pattern <glob>` `--dry-run` `--format text\|json` |
326
- | `p2:validate-pointers` | ドキュメント内ファイルポインタ検証 | `--include-urls` `--format text\|json` |
327
- | `p2:generate-e2e-template` | E2Eテストテンプレート生成 | `--phase <phase>` `--output <path>` |
432
+ > 開発者向けコマンド(回帰テスト、Hooks Engine、Phase 2 拡張、スキル品質)は [DEVELOPMENT.ja.md](DEVELOPMENT.ja.md) を参照してください。
328
433
 
329
434
  ---
330
435
 
331
- ## AIDLCプロセス — スキル実行順序
436
+ ## AIDLC スキル
332
437
 
333
- AIDLC (AI-Driven Development Life Cycle) は設計文書が存在しない状態での実装を物理的に禁止するプロセスです。Phase Dependency Modelにより上位フェーズの成果物なしに下位フェーズへの移行は不可能です。
438
+ AIDLC (AI-Driven Development Life Cycle) は設計 → テスト設計 → TDD 実装の順序を強制するプロセスです。各レベルの成果物が次のレベルの前提条件になります。
334
439
 
335
- ```
336
- Level 1: 要求定義 — inception/_shared/ に配置
337
- ─────────────────────────────────────────────
338
- /product-architect プロダクト全体像の定義
339
- /story-writer Who/What/Why形式のユーザーストーリー作成
340
- /story-mapper MVPスコープ整理・優先順位定義
341
- /unit-designer ストーリーを独立構築可能なUnitにグルーピング
342
-
343
- Level 2: Unit横断設計 — inception/{unit}/ に配置
344
- ─────────────────────────────────────────────
345
- /domain-designer DDDドメインモデル設計(集約・Entity・VO・Event)
346
- /logical-designer Hexagonal Architecture設計(Port & Adapter)
347
- /mock-designer UIモックアップ設計
348
- /environment-designer ローカル開発環境・インフラ設計
349
- /it-test-designer 統合テストケース設計
350
- /unit-test-designer ユニットテストケース設計
351
- /it-test-logic-designer IT Vitest実装ロジック設計
352
- /unit-test-logic-designer UT Vitest実装ロジック設計
353
-
354
- Level 3: ストーリー実装 — inception/{unit}/{US-XXX}/ に配置
355
- ─────────────────────────────────────────────
356
- /logical-designer US固有の論理設計
357
- /scenario-test-designer E2Eシナリオテストケース設計
358
- /scenario-test-logic-designer PlaywrightE2Eテスト実装ロジック設計
359
- /uiux-designer 最終UI/UX定義
360
- /implementation-readiness-checker 実装開始前の準備状況検証
361
- /story-implementor TDD実装 (Red→Green→Refactor)
362
- ```
440
+ ### 使い方
363
441
 
364
- **フェーズ間の依存ルール:**
365
- - Level 2はLevel 1の`unit-designer`完了が必須
366
- - Level 3はLevel 2の`domain_model.md`・`logical_design.md`の存在が必須
367
- - `story-implementor`の前に少なくとも1つのテスト設計フェーズが必須(緩和不可)
442
+ Claude Code セッション内でスラッシュコマンドとして実行します:
368
443
 
369
- ---
444
+ ```
445
+ /product-architect ← Level 1 の最初のスキル
446
+ /story-implementor ← Level 3 の実装スキル
447
+ /quick-implementor ← バグ修正など軽微な変更
448
+ ```
370
449
 
371
- ## スキル一覧 (28スキル)
450
+ 各スキルは前のレベルの成果物を入力として参照します。前提条件が未完了の場合、フェーズゲートがブロックします。
372
451
 
373
- ### Foundation (4スキル)
452
+ ### Level 1: 要求定義(成果物: `docs/inception/_shared/`)
374
453
 
375
- | スキル | 説明 |
454
+ | スキル | 目的 |
376
455
  |---|---|
377
- | `/product-architect` | ビジネス要求からプロダクト全体像を定義 |
378
- | `/story-writer` | Who/What/Why形式のユーザーストーリーと受け入れ基準を作成 |
379
- | `/story-mapper` | ストーリーのMVPスコープ整理・優先順位定義 |
380
- | `/unit-designer` | ストーリーを独立構築可能なUnitにグルーピングし統合契約を定義 |
381
-
382
- ### Design (5スキル)
456
+ | `/product-architect` | プロダクト全体像(ドメイン・アーキテクチャ・制約)を定義 |
457
+ | `/story-writer` | Who/What/Why 形式のユーザーストーリーと受け入れ基準を作成 |
458
+ | `/story-mapper` | MVP スコープ整理・優先順位定義 |
459
+ | `/unit-designer` | ストーリーを独立構築可能な Unit にグルーピング |
383
460
 
384
- | スキル | 説明 |
385
- |---|---|
386
- | `/domain-designer` | DDDドメインモデル設計(集約・Entity・VO・イベント) |
387
- | `/logical-designer` | Hexagonal Architecture設計(Port & Adapter)。横断設計とUS固有設計の2モード |
388
- | `/mock-designer` | UIモックアップ設計。UI/UXの検証とフィードバック |
389
- | `/uiux-designer` | テストケース・論理設計・既存UIを加味して最終UI/UX定義を策定 |
390
- | `/environment-designer` | ローカル開発環境・インフラ構成設計 |
461
+ ### Level 2: Unit 設計(成果物: `docs/inception/{unit}/`)
391
462
 
392
- ### Test Engineering (7スキル)
463
+ Level 1 の `/unit-designer` 完了が前提条件。
393
464
 
394
- | スキル | 説明 |
465
+ | スキル | 目的 |
395
466
  |---|---|
396
- | `/unit-test-designer` | ドメインモデルからユニットテストケースを設計 |
397
- | `/it-test-designer` | 論理設計から統合テストケースを設計 |
398
- | `/scenario-test-designer` | E2Eシナリオテストケースを設計 |
399
- | `/unit-test-logic-designer` | Vitest実装ロジックを設計(疑似コード付き詳細設計) |
400
- | `/it-test-logic-designer` | IT Vitest実装ロジックを設計 |
401
- | `/scenario-test-logic-designer` | Playwright実装ロジックを設計 |
402
- | `/test-coverage-checker` | テストカバレッジ検証・Nyquist Validation |
467
+ | `/domain-designer` | DDD ドメインモデル設計(集約・Entity・VO・イベント) |
468
+ | `/logical-designer` | Hexagonal Architecture 設計(Port & Adapter) |
469
+ | `/mock-designer` | UI モックアップ設計 |
470
+ | `/environment-designer` | ローカル開発環境・インフラ設計 |
471
+ | `/unit-test-designer` | ユニットテストケース設計 |
472
+ | `/it-test-designer` | 統合テストケース設計 |
473
+ | `/unit-test-logic-designer` | UT Vitest 実装ロジック設計 |
474
+ | `/it-test-logic-designer` | IT Vitest 実装ロジック設計 |
403
475
 
404
- ### Implementation (4スキル)
476
+ ### Level 3: ストーリー実装(成果物: `docs/inception/{unit}/{US-XXX}/`)
405
477
 
406
- | スキル | 説明 |
478
+ Level 2 の `domain_model.md` + `logical_design.md` の存在が前提条件。
479
+
480
+ | スキル | 目的 |
407
481
  |---|---|
408
- | `/story-implementor` | 論理設計+環境設計に基づくTDD実装。Atomic commit付き |
409
- | `/quick-implementor` | Quick Mode下でのad-hoc実装(バグ修正・ドキュメント修正等) |
410
- | `/implementation-planner` | Unit仕様とドメインモデル設計を元に実装計画を立案 |
411
- | `/implementation-readiness-checker` | 実装開始前の準備状況を自動検証 |
482
+ | `/logical-designer` | US 固有の論理設計 |
483
+ | `/uiux-designer` | 最終 UI/UX 定義 |
484
+ | `/scenario-test-designer` | E2E シナリオテストケース設計 |
485
+ | `/scenario-test-logic-designer` | Playwright E2E 実装ロジック設計 |
486
+ | `/implementation-readiness-checker` | 実装開始前の準備状況検証 |
487
+ | `/story-implementor` | TDD 実装 (Red -> Green -> Refactor) |
488
+ | `/quick-implementor` | 軽微変更の高速実装(バグ修正・ドキュメント等) |
412
489
 
413
- ### Verification (8スキル)
490
+ ### Verification スキル(任意のタイミングで使用)
414
491
 
415
- | スキル | 説明 |
492
+ | スキル | 目的 |
416
493
  |---|---|
417
- | `/consistency-checker` | AIDLC設計文書群のレイヤー間整合性チェック・矛盾/漏れ検出 |
418
- | `/cascade-updater` | 下位フェーズの発見・変更を上位設計文書にフィードバック |
419
- | `/codex-delegator` | Codex CLIにタスクを委任し、Claude Codeがマネージャーとして品質管理 |
420
- | `/codebase-mapper` | 全ソースファイルの @unit/@layer アノテーションを解析し構造マップを生成 |
421
- | `/doc-freshness-checker` | 設計文書の鮮度チェック(L4バリデータ拡張) |
422
- | `/pointer-validator` | 設計文書内のファイルポインタ有効性を検証 |
423
- | `/engineering-perspective` | ケントベック+マーティンファウラー+アンクルボブ+エリックエヴァンスの視点で設計レビュー |
424
- | `/skill-creator` | AgentSkillsを作成・更新 |
494
+ | `/consistency-checker` | 設計文書間の整合性チェック |
495
+ | `/cascade-updater` | 下位フェーズの発見を上位設計にフィードバック ※未完成 |
496
+ | `/codex-delegator` | Codex CLI にタスクを委任し品質管理 |
497
+ | `/codebase-mapper` | `@unit`/`@layer` アノテーションから構造マップ生成 |
498
+ | `/doc-freshness-checker` | 設計文書の鮮度チェック |
499
+ | `/pointer-validator` | 設計文書内のファイルパス参照を検証 |
500
+ | `/engineering-perspective` | Beck/Fowler/Martin/Evans の視点で設計レビュー |
501
+ | `/test-coverage-checker` | カバレッジ検証・Nyquist Validation |
502
+ | `/implementation-planner` | 実装計画の立案 |
503
+ | `/skill-creator` | スキルの作成・更新 |
425
504
 
426
505
  ---
427
506
 
428
- ## メタデータ規約 (@unit / @layer / @story)
429
-
430
- 全ソースファイルの先頭にメタデータコメントを記載します。これによりL1検証・トレーサビリティ・drift-detectionが機能します。
507
+ ## メタデータ規約
431
508
 
432
- ### 実装ファイル
509
+ 全ソースファイルの先頭に `@unit` / `@layer` コメントを記載します。テストファイルには `@story` も追加します。
433
510
 
434
511
  ```typescript
435
512
  // @unit config-foundation
436
513
  // @layer domain
514
+ // @story US-001 ← テストファイルのみ
437
515
 
438
516
  export class ConfigSchema { ... }
439
517
  ```
440
518
 
441
- `@layer` の有効値: `domain` / `application` / `infrastructure` / `presentation`
442
-
443
- ### テストファイル
444
-
445
- ```typescript
446
- // @unit config-foundation
447
- // @layer domain
448
- // @story US-001
449
-
450
- describe('ConfigSchema', () => {
451
- it('バリデーションルールが正しく適用される', () => {
452
- // Arrange
453
- const actual = ...;
454
-
455
- // Act
456
- ...
457
-
458
- // Assert
459
- expect(actual).toBe(...);
460
- });
461
- });
462
- ```
463
-
464
- ### 設計文書 (累積更新時)
465
-
466
- `product/construction/{unit}/` 配下の設計文書を更新する際は、更新箇所に起源USを記録します。
467
-
468
- ```markdown
469
- ## エンティティ: ConfigSchema
470
-
471
- @US-001
472
- - name: string(必須)
473
- - version: SemVer
519
+ | タグ | 値の決め方 | 例 |
520
+ |---|---|---|
521
+ | `@unit` | `/unit-designer` スキルが定義した Unit 名を使用。手動の場合はドメインの論理グループ名 | `config-foundation`, `validator-system` |
522
+ | `@layer` | ファイルの役割に応じて4値から選択 | `domain` / `application` / `infrastructure` / `presentation` |
523
+ | `@story` | テストが検証するユーザーストーリーの ID | `US-001`, `US-003` |
474
524
 
475
- @US-003
476
- - validationRules: ValidationRule[](バリデーション拡張)
477
- ```
525
+ これにより L1 検証(`require-unit-comment`, `require-layer-comment`)・トレーサビリティ・drift-detection が機能します。タグが欠けているファイルは L1 でエラーになります(`layers.L1.rules` で緩和可能)。
478
526
 
479
527
  ---
480
528
 
481
- ## Claude Code Hooks 統合
529
+ ## Claude Code Hooks
482
530
 
483
- `.claude/settings.json` に以下を設定するとClaude Codeとのネイティブ統合が有効になります。
531
+ `.claude/settings.json` に以下を設定すると、ファイル書き込み時に自動でゲートチェックと lint が実行されます。
484
532
 
485
533
  ```jsonc
486
534
  {
@@ -518,178 +566,36 @@ describe('ConfigSchema', () => {
518
566
 
519
567
  | Hook | タイミング | 動作 |
520
568
  |---|---|---|
521
- | **PreToolUse** | ファイル書き込み前 | Phase Gate強制・保護ファイルへの変更をブロック・**Bash経由の書き込み検出(`sed -i`, `tee`, `cp`, `mv`, リダイレクト)**。ブロック時はアクショナブルなエラーメッセージ(違反理由・不足成果物・次に使うべきスキル)を返却 |
522
- | **PostToolUse** | ファイル書き込み後 | Biome ASTルールを自動実行、違反があれば即時フィードバック |
523
- | **Stop** | セッション終了前 | `phasegate:complete-check` (L2-L4全チェック) を実行、全グリーンでないとセッション終了を保留 |
524
-
525
- ### PreToolUse エラーメッセージ (v0.9.0)
526
-
527
- PreToolUse Hook がブロックした際、AIエージェントが自律的に正しい行動を取れるよう、具体的なエラーメッセージを返します。
528
-
529
- **フェーズゲート違反:**
530
-
531
- ```
532
- フェーズゲート違反: scripts/harness/config-foundation/domain/test.ts
533
- 対象スコープ: Level 3 (実装), Unit: config-foundation
534
- ブロック理由:
535
- - 成果物が不足しています: docs/product/construction/config-foundation/domain_model.md
536
- - plan文書が不足しています: 2:logical-designer
537
- 次のアクション: /story-implementor スキルを使用して設計フェーズから開始してください。
538
- 実行例: /story-implementor --unit config-foundation
539
- ```
540
-
541
- **保護ファイル:**
542
-
543
- ```
544
- 保護ファイルへの書き込みがブロックされました: package.json
545
- バージョン変更を含む package.json の更新は /quick-implementor スキルを使用してください。
546
- ```
547
-
548
- 対象の保護ファイルに応じて、`/quick-implementor`、`/update-config`、CLI経由の変更など適切なガイダンスが表示されます。
549
-
550
- ### オプション: シェルスクリプトフック
551
-
552
- `.claude/scripts/` 配下に以下のオプションフックを配置できます。
553
-
554
- ```jsonc
555
- // .claude/settings.json に追記
556
- {
557
- "hooks": {
558
- "PreToolUse": [
559
- {
560
- "matcher": "Bash",
561
- "hooks": [{
562
- "type": "command",
563
- "command": "$CLAUDE_PROJECT_DIR/.claude/scripts/deny-check.sh"
564
- }]
565
- }
566
- // ... 既存の Write|Edit フック
567
- ],
568
- "PostToolUse": [
569
- {
570
- "matcher": "Write|Edit",
571
- "hooks": [
572
- {
573
- "type": "command",
574
- "command": "$CLAUDE_PROJECT_DIR/.claude/scripts/format-settings-hook.sh"
575
- },
576
- {
577
- "type": "command",
578
- "command": "$CLAUDE_PROJECT_DIR/.claude/scripts/format-typescript-hook.sh"
579
- },
580
- {
581
- "type": "command",
582
- "command": "$CLAUDE_PROJECT_DIR/.claude/scripts/analyze-errors-hook.sh"
583
- }
584
- // ... 既存の post-tool-use-hook.ts
585
- ]
586
- }
587
- ]
588
- }
589
- }
590
- ```
591
-
592
- | スクリプト | 動作 |
593
- |---|---|
594
- | `deny-check.sh` | 危険な git/bash コマンド(`git reset --hard`, `rm -rf` 等)をブロック |
595
- | `format-settings-hook.sh` | `settings.json` 編集時に JSON を自動整形 |
596
- | `format-typescript-hook.sh` | TypeScript ファイル編集時に自動フォーマット(Biome / ESLint+Prettier 切替可能) |
597
- | `analyze-errors-hook.sh` | TypeScript ファイル編集時に tsc / lint エラーを検出しフィードバック |
598
-
599
- ### hook-config.json
600
-
601
- `format-typescript-hook.sh` と `analyze-errors-hook.sh` は `.claude/scripts/hook-config.json` で対象ディレクトリとフォーマッタを設定します。
569
+ | **PreToolUse** | Write/Edit/Bash 実行前 | フェーズゲート違反・保護ファイルへの書き込み・Bash 経由の書き込み(`sed -i`, `tee` 等)をブロック |
570
+ | **PostToolUse** | Write/Edit 実行後 | Biome AST ルールを自動実行、違反を即時フィードバック |
571
+ | **Stop** | セッション終了前 | L2-L4 全チェックを実行、全グリーンでないと終了を保留 |
602
572
 
603
- ```json
604
- {
605
- "targetDirs": ["scripts/harness"],
606
- "formatter": "biome",
607
- "formatterArgs": ["check", "--write"]
608
- }
609
- ```
573
+ ブロック時は違反理由・不足している設計文書・次に実行すべきスキルを含むエラーメッセージが返されます。
610
574
 
611
- | フィールド | 説明 | デフォルト |
612
- |---|---|---|
613
- | `targetDirs` | フックが適用されるディレクトリのリスト(プロジェクトルートからの相対パス) | `[]`(空の場合スキップ) |
614
- | `formatter` | `"biome"` または `"eslint-prettier"` | `"biome"` |
615
- | `formatterArgs` | フォーマッタに渡す引数 | `["check", "--write"]` |
575
+ > **オプション**: `.claude/scripts/` 配下にシェルスクリプトフック(deny-check, format, analyze-errors 等)を追加配置できます。詳細は [DEVELOPMENT.ja.md](DEVELOPMENT.ja.md#オプション-シェルスクリプトフック) を参照してください。
616
576
 
617
577
  ---
618
578
 
619
- ## Quick Mode
579
+ ## カスタムフェーズゲート
620
580
 
621
- 軽微な変更(バグ修正、ドキュメント修正、テスト追加、設定変更)に対してハーネスの一部を緩和するモード。
581
+ デフォルトでは AIDLC フェーズ依存モデルが適用されますが、`gates[]` 配列で独自のゲートを定義できます。
622
582
 
623
- ```bash
624
- npx phasegate ci-check --quick
625
- ```
583
+ ### ゲート定義
626
584
 
627
- | レイヤー | 通常モード | Quick Mode |
585
+ | フィールド | 型 | 説明 |
628
586
  |---|---|---|
629
- | L1 Biome | 有効 | **有効**(維持) |
630
- | L2 Pre-commit | 有効 | **有効**(維持) |
631
- | L3 CI | 有効 | **securityのみ** |
632
- | L4 Scheduled | 有効 | **スキップ** |
633
- | Phase Gate | 必須 | **緩和** |
634
- | 2-Phase Execution | 必須 | **緩和** |
635
-
636
- `phasegate.config.json` でQuick Modeの適用条件を定義します。
637
-
638
- ```jsonc
639
- {
640
- "quickMode": {
641
- "allowedCategories": ["bugfix", "docs", "test", "config"],
642
- "maintainedLayers": ["L1", "L2"],
643
- "relaxedGates": ["phase-gate", "2-phase-execution"]
644
- }
645
- }
646
- ```
647
-
648
- **Quick Mode適用の除外** (フルハーネス必須):
649
- - 新機能追加
650
- - API契約変更
651
- - 新ドメインモデル追加
652
-
653
- ---
654
-
655
- ## プリセット
656
-
657
- `phasegate.config.json` のプリセットは **2 系統** あります。
658
-
659
- ### `project.preset` — レイヤー厳密度(L1-L4 有効化とカバレッジ閾値)
660
-
661
- | プリセット | 用途 | 有効レイヤー | カバレッジ閾値 |
662
- |---|---|---|---|
663
- | **minimal** | 学習・プロトタイプ | L1, L2 | — |
664
- | **standard** | 通常開発 | L1, L2, L3 | 90% |
665
- | **strict** | 本番・エンタープライズ | L1-L4 | 95% |
666
-
667
- `strict` プリセット追加機能:
668
- - L4 スケジュール検証(週次drift-detect・dead-code検出)
669
- - `agentLessonCollection: true`
670
- - `bundleSizeLimit: 500 KB`
671
- - `deadCodeGC: true`
672
-
673
- ### `phaseDependencies.preset` — フェーズゲート構成と storyReflection デフォルト
674
-
675
- `project.preset` とは独立。`"default"` は後方互換のため `"full"` にフォールバックされます。
676
-
677
- | プリセット | Phase 3 ゲート | storyReflection デフォルト | 用途 |
678
- |---|---|---|---|
679
- | **full** | 全 AIDLC ゲート | 有効 — `logical_design` + `domain_model` required、`uiux` optional | AIDLC フルセレモニー(旧 `default`) |
680
- | **standard** | コアゲート | 有効 — `logical_design` required、`domain_model` optional | 通常開発・中庸な厳密度 |
681
- | **minimal** | なし | 無効 — inception → product 反映強制なし | プロトタイプ・試行錯誤段階 |
682
- | **custom** | ユーザー定義 | `storyReflection.mappings` で定義 | 完全カスタマイズ(`override: true` 必須) |
683
-
684
- `storyReflection` は inception の US/issue 設計が `docs/product/construction/{unit}/` に反映されていない場合に `src/{unit}/*` への Write/Edit をブロックします。config で省略した場合はプリセットのデフォルト mappings がゼロコンフィグで自動適用されます。`cascade-updater` スキルがこのゲートを通過する標準手段です。詳細は [ADR-013](docs/ADR/ADR-013-story-reflection-gate.md) と [Configuration guide](docs/guide/configuration.md#storyreflection-inception--product-gate) を参照してください。
685
-
686
- ---
587
+ | `name` | string | ゲートの一意識別子 |
588
+ | `level` | 1 \| 2 \| 3 | フェーズレベル(上位は下位の通過が前提) |
589
+ | `blocks` | string[] | 保護するファイルの glob パターン |
590
+ | `requires` | string[] | 書き込み前に存在が必要なファイル |
591
+ | `dependsOn` | string[] | 事前に通過が必要な他のゲート名 |
592
+ | `description` | string | ゲートの説明 |
687
593
 
688
- ## カスタムフェーズゲート
594
+ ゲートは DAG(有向非巡回グラフ)を形成します。循環依存は設定読み込み時に拒否されます。
689
595
 
690
- デフォルトでは **AIDLCフェーズ依存モデル** が適用され、設計文書なしでの実装ファイル書き込みがブロックされます。`standard` または `full` プリセットでゼロコンフィグで動作します。
596
+ ### 例 1: API スキーマファーストゲート
691
597
 
692
- AIDLCを使わないプロジェクトでは、`phasegate.config.json` の `gates[]` 配列で **独自のゲート** を定義できます:
598
+ AIDLC を使わないプロジェクトで「OpenAPI スキーマなしに API 実装を書けない」を強制する例:
693
599
 
694
600
  ```jsonc
695
601
  {
@@ -709,212 +615,144 @@ AIDLCを使わないプロジェクトでは、`phasegate.config.json` の `gate
709
615
  }
710
616
  ```
711
617
 
712
- | フィールド | 型 | 説明 |
713
- |---|---|---|
714
- | `name` | string | ゲートの一意識別子 |
715
- | `level` | 1 \| 2 \| 3 | フェーズレベル(上位レベルは下位レベルのゲート通過が前提) |
716
- | `blocks` | string[] | このゲートが保護するファイルのglobパターン |
717
- | `requires` | string[] | ブロック対象パスへの書き込み前に存在が必要なファイル |
718
- | `dependsOn` | string[] | 事前に通過が必要な他のゲート名 |
719
- | `description` | string | ゲートの説明 |
618
+ ### 例 2: AIDLC フローを明示的に定義
720
619
 
721
- ゲートは **DAG**(有向非巡回グラフ)を形成します。循環依存は設定読み込み時に拒否されます。
722
-
723
- ---
724
-
725
- ## CI/CD テンプレート
620
+ [docs/folder_management_rules.md](docs/folder_management_rules.md) の **inception → product → source** フローを段階的にゲートする例:
726
621
 
727
- ```bash
728
- # 3種のテンプレートを生成
729
- npx phasegate ci:generate-template --type aidlc-gate
730
- npx phasegate ci:generate-template --type pre-commit
731
- npx phasegate ci:generate-template --type consistency-check
622
+ ```jsonc
623
+ {
624
+ "phaseDependencies": {
625
+ "preset": "custom",
626
+ "override": true,
627
+ "gates": [
628
+ // Phase 1: プロダクト概要がないとストーリー定義に進めない
629
+ {
630
+ "name": "product-overview",
631
+ "level": 1,
632
+ "blocks": [
633
+ "docs/product/user_stories.md",
634
+ "docs/product/user_story_mapping.md"
635
+ ],
636
+ "requires": ["docs/product/product_overview.md"],
637
+ "description": "プロダクト概要がないとストーリー定義に進めない"
638
+ },
639
+ // Phase 1→2: Unit定義がないとUnit設計に進めない
640
+ {
641
+ "name": "unit-definition",
642
+ "level": 1,
643
+ "blocks": ["docs/product/construction/*/domain_model.md"],
644
+ "requires": ["docs/product/units/integration_contract.md"],
645
+ "dependsOn": ["product-overview"],
646
+ "description": "Unit定義・統合契約がないとUnit設計に進めない"
647
+ },
648
+ // Phase 2: ドメインモデルがないと論理設計に進めない
649
+ {
650
+ "name": "domain-model",
651
+ "level": 2,
652
+ "blocks": ["docs/product/construction/*/logical_design.md"],
653
+ "requires": ["docs/product/construction/{unit}/domain_model.md"],
654
+ "dependsOn": ["unit-definition"],
655
+ "description": "ドメインモデルがないと論理設計に進めない"
656
+ },
657
+ // Phase 2→3: 論理設計がないと実装コードに進めない
658
+ {
659
+ "name": "implementation-gate",
660
+ "level": 3,
661
+ "blocks": ["src/**/*.ts"],
662
+ "requires": [
663
+ "docs/product/construction/{unit}/domain_model.md",
664
+ "docs/product/construction/{unit}/logical_design.md"
665
+ ],
666
+ "dependsOn": ["domain-model"],
667
+ "description": "確定版の設計文書がないと実装に進めない"
668
+ }
669
+ ],
670
+ "storyReflection": {
671
+ "enabled": true,
672
+ "mappings": [
673
+ {
674
+ "inception": "docs/inception/{unit}/{storyId}/logical_design.md",
675
+ "product": "docs/product/construction/{unit}/logical_design.md",
676
+ "required": true
677
+ }
678
+ ]
679
+ }
680
+ }
681
+ }
732
682
  ```
733
683
 
734
- | テンプレート | 用途 | 配置先 |
735
- |---|---|---|
736
- | `aidlc-gate.yml` | PR検証ワークフロー | `.github/workflows/aidlc-gate.yml` |
737
- | `consistency-check.yml` | 週次整合性チェック(乖離検出時Issue自動作成) | `.github/workflows/consistency-check.yml` |
738
- | `.husky/pre-commit` | Pre-commitフック | `.husky/pre-commit` |
739
-
740
- 手動配置する場合:
684
+ この設定では以下の順序が強制されます:
741
685
 
742
- ```bash
743
- # aidlc-gate.yml を .github/workflows/ にコピー
744
- npx phasegate ci:generate-template --type aidlc-gate --render > .github/workflows/aidlc-gate.yml
745
-
746
- # pre-commit フックを設定
747
- npx phasegate ci:generate-template --type pre-commit --render > .husky/pre-commit
748
- chmod +x .husky/pre-commit
686
+ ```
687
+ product_overview.md
688
+ → user_stories.md / user_story_mapping.md
689
+ → integration_contract.md
690
+ → domain_model.md
691
+ → logical_design.md
692
+ → src/**/*.ts(+ storyReflection で US 単位の反映も必須)
749
693
  ```
750
694
 
751
- ---
695
+ > **ヒント**: `standard` や `full` プリセットはこのフローの大部分をゼロコンフィグで適用します。カスタムゲートは、段階をより細かく制御したい場合や AIDLC 以外のワークフローに使います。
752
696
 
753
- ## 回帰テスト (K1-K15)
697
+ ---
754
698
 
755
- 非交渉要件が継続的に満たされているかを回帰テストで検証します。
699
+ ## CI/CD テンプレート
756
700
 
757
701
  ```bash
758
- # K1-K13 非交渉要件の回帰テスト(16件)
759
- npx phasegate regression:run-k-requirements
760
-
761
- # Go/No-Go Gate 品質側3条件(3件)
762
- npx phasegate regression:run-gng-gate
763
-
764
- # K14(Phase Dependency Model)/ K15(Plan文書必須)(2件)
765
- npx phasegate regression:run-k14-k15
766
-
767
- # エージェント非依存性ガード(3件)
768
- npx phasegate regression:run-agent-guard
702
+ npx phasegate ci:generate-template --type aidlc-gate # PR検証ワークフロー
703
+ npx phasegate ci:generate-template --type pre-commit # Pre-commitフック
704
+ npx phasegate ci:generate-template --type consistency-check # 週次整合性チェック
769
705
  ```
770
706
 
771
- JSON出力:
707
+ `--render` オプションでファイルに直接出力できます:
772
708
 
773
709
  ```bash
774
- npx phasegate regression:run-k-requirements --format json
710
+ npx phasegate ci:generate-template --type aidlc-gate --render > .github/workflows/aidlc-gate.yml
775
711
  ```
776
712
 
777
- **非交渉要件 (K1-K15) 概要:**
778
-
779
- | # | 要件 |
780
- |---|---|
781
- | K1 | 5層防御モデル(L0-L4) |
782
- | K2 | Phase Gate(設計→実装の順序強制) |
783
- | K3 | Biome AST解析(importグラフ+循環依存検出) |
784
- | K3.5 | @unit/@layer/@US-XXXメタデータ |
785
- | K4 | テスト品質ルール(AAA / actual / no-domain-mock等) |
786
- | K5 | DDD設計スキル群 |
787
- | K6 | 2-Phase Execution(AI安全メカニズム) |
788
- | K7 | Document Split(inception/product分離) |
789
- | K8 | Cascade Updater |
790
- | K9 | Agent-Lesson System |
791
- | K10 | Security/Performance検出 |
792
- | K11 | Drift Detection(双方向) |
793
- | K12 | Consistency Checker |
794
- | K13 | phasegate.config.json(品質設定SSOT) |
795
- | K14 | Phase Dependency Model(3層フェーズ構造) |
796
- | K15 | Plan文書の必須生成 |
713
+ > **既知の問題**: `--preset` オプションでデフォルトプリセットが見つからないエラーが発生する場合があります。`--preset` を省略して実行してください。
797
714
 
798
715
  ---
799
716
 
800
- ## ディレクトリ構造
801
-
802
- ### ハーネスの内部構造
803
-
804
- ```
805
- phasegate/
806
- ├── scripts/harness/
807
- │ ├── main.ts # CLIエントリポイント
808
- │ ├── harness-error/ # HarnessError定義・ADR参照
809
- │ ├── config-foundation/ # phasegate.config.json 解析・スキーマ
810
- │ ├── traceability-model/ # @unit/@layer/@story メタデータ管理
811
- │ ├── phase-dependency-model/ # フェーズ依存関係・Phase Gate
812
- │ ├── adr-foundation/ # ADR管理
813
- │ ├── biome-ast-engine/ # Biome AST解析エンジン
814
- │ ├── validator-system/ # L0-L4バリデータシステム
815
- │ ├── nyquist-validation/ # 要件-テストトレーサビリティ
816
- │ ├── harness-api/ # harness:* コマンドCLI層
817
- │ ├── quick-mode/ # Quick Mode判定・緩和実行
818
- │ ├── agent-integration/ # Claude Code Hooks アダプタ
819
- │ ├── skill-quality/ # TDDサイクル・カバレッジ・Cascade Update
820
- │ ├── ci-governance/ # CI/CDテンプレート・反復エラー監視
821
- │ ├── regression-suite/ # K1-K15回帰テストスイート
822
- │ ├── fuse-hooks-engine/ # Hooks Engine (.harness-hooks.yml・完了ゲート)
823
- │ └── phase2-extensions/ # freshness/pointer/e2e-template (v2)
824
- ├── skills/ # 28スキル (npx phasegate init で .claude/skills/ に展開)
825
- ├── templates/
826
- │ └── phasegate.config.json # 設定テンプレート
827
- └── docs/
828
- ├── principles/ # アーキテクチャ哲学・テスト規約
829
- └── product/ # ハーネス自身の設計文書
830
- ```
831
-
832
- ### 導入後のプロジェクト構造
717
+ ## 導入後のプロジェクト構造
833
718
 
834
719
  ```
835
720
  your-project/
836
- ├── phasegate.config.json # 品質設定(ハーネスのSSoT)
721
+ ├── phasegate.config.json # 品質設定(Single Source of Truth)
837
722
  ├── docs/
838
- │ ├── folder_management_rules.md # ドキュメント配置ルール
839
- │ ├── principles/
840
- │ │ ├── architecture-philosophy.md
841
- │ │ └── testing-rules.md
842
- │ ├── product/ # 確定版設計文書
723
+ │ ├── folder_management_rules.md
724
+ │ ├── principles/ # アーキテクチャ哲学・テスト規約
725
+ │ ├── product/ # 確定版設計文書
843
726
  │ │ ├── <product>_overview.md
844
- │ │ ├── units/ # Unit仕様書
845
- │ │ │ └── {unit_name}.md
846
- │ │ └── construction/ # レイヤー設計文書
847
- │ │ └── {unit_name}/
848
- │ │ ├── domain_model.md
849
- │ │ ├── logical_design.md
850
- │ │ └── ...
851
- │ ├── inception/ # AIDLCが生成する設計計画文書
852
- │ │ ├── _shared/ # Level 1 (Product全体設計)
853
- │ │ │ ├── product_overview_plan.md
854
- │ │ │ └── unit_design_plan.md
855
- │ │ └── {unit_name}/ # Level 2/3 (Unit/US単位)
856
- │ │ ├── domain_model_plan.md
857
- │ │ └── {US-XXX}/
858
- │ │ └── tdd_implementation_plan.md
859
- │ └── ADR/ # Architecture Decision Records
860
- │ └── ADR-001-*.md
861
- ├── src/ # 実装コード(@unit/@layer 必須)
727
+ │ │ ├── units/{unit}.md
728
+ │ │ └── construction/{unit}/
729
+ │ │ ├── domain_model.md
730
+ │ │ └── logical_design.md
731
+ │ ├── inception/ # AIDLC が生成する設計計画文書
732
+ │ │ ├── _shared/ # Level 1(プロダクト全体)
733
+ │ │ └── {unit}/{US-XXX}/ # Level 2/3(Unit・ストーリー単位)
734
+ │ └── ADR/
735
+ ├── src/ # 実装コード(@unit/@layer 必須)
862
736
  └── .claude/
863
- ├── CLAUDE.md
864
- ├── settings.json # Hooks設定
865
- └── skills/ # npx phasegate init で展開(gitignore推奨)
737
+ ├── settings.json # Hooks 設定
738
+ └── skills/ # npx phasegate init で展開
866
739
  ```
867
740
 
868
- ### .gitignore 推奨設定
741
+ ### 推奨 .gitignore
869
742
 
870
743
  ```
871
744
  node_modules/
872
- .claude/skills/ # npx phasegate init で再生成可能
745
+ .claude/skills/ # npx phasegate init で再生成可能
873
746
  dist/
874
747
  reports/
875
- .harness/
876
748
  ```
877
749
 
878
750
  ---
879
751
 
880
- ## バージョン管理
752
+ ## 開発者向けドキュメント
881
753
 
882
- Semantic Versioning (MAJOR.MINOR.PATCH) を採用しています。
883
-
884
- | 変更種別 | バージョン |
885
- |---|---|
886
- | バグ修正・小改善 | PATCH (例: v1.1.0 → v1.1.1) |
887
- | スキル追加・新コマンド追加 | MINOR (例: v1.1.0 → v1.2.0) |
888
- | 設定スキーマ変更など破壊的変更 | MAJOR (例: v1.x.x → v2.0.0) |
889
-
890
- ### リリース手順 (ハーネス側)
891
-
892
- ```bash
893
- npm version patch # または minor / major
894
- git push origin main --tags
895
- ```
896
-
897
- ### アップデート手順 (利用側プロジェクト)
898
-
899
- ```bash
900
- # semver範囲内で最新版に更新
901
- npm update phasegate
902
-
903
- # スキルを最新版に同期
904
- npx phasegate update-skills
905
- ```
906
-
907
- > メジャーバージョンアップ時のみ `package.json` の `semver:^X.Y.Z` を手動で更新してください。
908
-
909
- ---
910
-
911
- ## ロードマップ
912
-
913
- | バージョン | 内容 |
914
- |---|---|
915
- | **v1.6.0 (v1 MVH)** | L1-L4・28スキル・Claude Code Hooks・Nyquist Validation・K1-K15回帰テスト完備 |
916
- | **v2.0.0** | Hooks Engine(.harness-hooks.yml設定・完了ゲート)・Phase 2拡張(doc-freshness・pointer-validator・Playwright E2Eテンプレート) |
754
+ phasegate 自体の開発(内部アーキテクチャ、回帰テスト、リリース手順等)については [DEVELOPMENT.ja.md](DEVELOPMENT.ja.md) を参照してください。
917
755
 
918
756
  ---
919
757
 
920
- *Last updated: 2026-04-06 — v0.31.0*
758
+ *Last updated: 2026-04-07 -- v0.33.0*