phasegate 0.172.0 → 0.177.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 +1 -1
- package/README.md +1 -1
- package/docs/ADR/{ADR-001-four-layer-defense-model.md → 001-four-layer-defense-model.md} +11 -4
- package/docs/ADR/{ADR-002-pre-commit-validators.md → 002-pre-commit-validators.md} +11 -4
- package/docs/ADR/{ADR-003-ci-validators.md → 003-ci-validators.md} +11 -4
- package/docs/ADR/{ADR-004-scheduled-validators.md → 004-scheduled-validators.md} +11 -4
- package/docs/ADR/{ADR-005-hexagonal-architecture.md → 005-hexagonal-architecture.md} +11 -4
- package/docs/ADR/{ADR-006-agent-independence.md → 006-agent-independence.md} +11 -4
- package/docs/ADR/{ADR-007-harness-config-single-source.md → 007-harness-config-single-source.md} +13 -4
- package/docs/ADR/{ADR-008-quick-mode.md → 008-quick-mode.md} +13 -4
- package/docs/ADR/{ADR-009-ddd-tactical-patterns.md → 009-ddd-tactical-patterns.md} +11 -4
- package/docs/ADR/{ADR-010-harness-error-fix-example.md → 010-harness-error-fix-example.md} +13 -4
- package/docs/ADR/{ADR-011-archgate-pattern.md → 011-archgate-pattern.md} +11 -4
- package/docs/ADR/{ADR-012-two-phase-execution.md → 012-two-phase-execution.md} +11 -4
- package/docs/ADR/{ADR-013-story-reflection-gate.md → 013-story-reflection-gate.md} +11 -4
- package/docs/ADR/{ADR-014-presentation-domain-dependency.md → 014-presentation-domain-dependency.md} +17 -4
- package/docs/ADR/{ADR-015-architecture-preset.md → 015-architecture-preset.md} +11 -4
- package/docs/ADR/{ADR-016-paths-config-placeholder.md → 016-paths-config-placeholder.md} +16 -4
- package/docs/ADR/{ADR-017-warning-severity-aggregation.md → 017-warning-severity-aggregation.md} +16 -4
- package/docs/ADR/{ADR-018-drift-detect-pointers.md → 018-drift-detect-pointers.md} +14 -4
- package/docs/ADR/022-package-separation.md +29 -0
- package/docs/ADR/023-eslint-to-biome-migration.md +28 -0
- package/docs/ADR/024-k-requirements-quality-ownership.md +26 -0
- package/docs/ADR/025-fuse-hooks-engine-out-of-scope.md +26 -0
- package/docs/ADR/026-nyquist-truths-artifacts-integration.md +25 -0
- package/docs/ADR/027-artifact-driven-state-derivation.md +25 -0
- package/docs/ADR/028-validator-stack-detection.md +26 -0
- package/docs/ADR/029-four-to-five-layer-return-path.md +25 -0
- package/docs/guide/configuration.md +1 -1
- package/docs/guide/preset-selection.md +1 -1
- package/docs/guide/retrofit-adoption.md +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -701,7 +701,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
701
701
|
### Fixed
|
|
702
702
|
|
|
703
703
|
- **WI-085: phase-gate validator (L2-001) が `paths.designDocs` / `paths.inceptionDocs` 設定を尊重しない問題を修正** — 外部レポーター nakataj-mti が GitHub Issue [#1](https://github.com/junpei-9898/phasegate/issues/1) で報告。`paths.designDocs` を `mydocs/...` などのデフォルト外パスに変更しても、L2-001 が要求する成果物パスは `docs/inception/...` / `docs/product/...` のままになる挙動を修正した。`docs/guide/configuration.md` の「`paths` を変えれば全 validator / hook が解決する」記述と実装の齟齬を解消。
|
|
704
|
-
- **新プレースホルダ**: `Artifact.path` で `{designDocsRoot}` / `{inceptionDocsRoot}` を許可。`Artifact.resolve(scope, pathRoots?)` が `paths.designDocs` / `paths.inceptionDocs` の値(未指定時はデフォルト `docs/product/construction` / `docs/inception`)でこれらを展開するよう拡張([ADR-016](docs/ADR/
|
|
704
|
+
- **新プレースホルダ**: `Artifact.path` で `{designDocsRoot}` / `{inceptionDocsRoot}` を許可。`Artifact.resolve(scope, pathRoots?)` が `paths.designDocs` / `paths.inceptionDocs` の値(未指定時はデフォルト `docs/product/construction` / `docs/inception`)でこれらを展開するよう拡張([ADR-016](docs/ADR/016-paths-config-placeholder.md))。
|
|
705
705
|
- **`docs/` 接頭辞バリデーション撤廃**: `Artifact.create()` の `path` が `docs/` 始まりでなければ `InvalidArtifactPathError` を投げる挙動を削除。プレースホルダ展開後の任意 root(`mydocs/...` 等)を許容するため。許可外プレースホルダの拒否は維持。
|
|
706
706
|
- **新ポートメソッド**: `PhaseConfigProviderPort.getPathRoots(): Promise<{ designDocsRoot, inceptionDocsRoot }>` を追加。`HarnessConfigPhaseConfigProvider` が `paths.designDocs` / `paths.inceptionDocs` 設定を読み(末尾スラッシュは trim)、未指定時はデフォルト値を返す。
|
|
707
707
|
- **流入経路**: `EvidenceBundleAssembler.assembleForLevel` 内で `getPathRoots()` を 1 回呼び、結果を `Artifact.resolve(scope, pathRoots)` および `ArtifactExistenceCheckerPort.checkAll(artifacts, scope, pathRoots)` に渡す。`PhaseInfoResolver.resolve(..., pathRoots?)` でブロッカー表示時にも root プレースホルダを実値に展開。
|
package/README.md
CHANGED
|
@@ -386,7 +386,7 @@ For selection guidance and config examples see [Preset Selection Guide](docs/gui
|
|
|
386
386
|
| `minimal` | None | Disabled -- no inception -> product enforcement | Prototyping / exploration |
|
|
387
387
|
| `custom` | User-defined via `gates[]` array | User-defined via `storyReflection.mappings` | Full control (requires `override: true`) |
|
|
388
388
|
|
|
389
|
-
`storyReflection` blocks writes to `src/{unit}/*` when an inception US/issue design exists but has not been cascaded into `docs/product/construction/{unit}/`. See [ADR-013](docs/ADR/
|
|
389
|
+
`storyReflection` blocks writes to `src/{unit}/*` when an inception US/issue design exists but has not been cascaded into `docs/product/construction/{unit}/`. See [ADR-013](docs/ADR/013-story-reflection-gate.md) and the [Configuration guide](docs/guide/configuration.md#storyreflection-inception--product-gate).
|
|
390
390
|
|
|
391
391
|
### Key Configuration Sections
|
|
392
392
|
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
|
|
1
|
+
---
|
|
2
|
+
adr_id: "001"
|
|
3
|
+
title: "L1 — Biome AST による Editor-Time 品質強制"
|
|
4
|
+
status: Accepted
|
|
5
|
+
date: 2026-03-24
|
|
6
|
+
---
|
|
2
7
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
Accepted
|
|
8
|
+
# L1 — Biome AST による Editor-Time 品質強制
|
|
6
9
|
|
|
7
10
|
## Context
|
|
8
11
|
|
|
@@ -32,3 +35,7 @@ Rust製 Biome の AST 解析を用いて、L1(Editor-Time)で以下の8ル
|
|
|
32
35
|
## 関連要件
|
|
33
36
|
|
|
34
37
|
K1(4層防御モデル)、K3(Biome AST解析)、K3.5(@unit/@layerメタデータ)
|
|
38
|
+
|
|
39
|
+
## Alternatives
|
|
40
|
+
|
|
41
|
+
当時、代替案は明示的に文書化されていない。本節は既存決定を `validate-adr` ゲートで検査可能にするための遡及的正規化(コーパス正規化)に伴い追加された。
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
|
|
1
|
+
---
|
|
2
|
+
adr_id: "002"
|
|
3
|
+
title: "L2 — Pre-commit バリデータによる設計-実装順序の強制"
|
|
4
|
+
status: Accepted
|
|
5
|
+
date: 2026-03-24
|
|
6
|
+
---
|
|
2
7
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
Accepted
|
|
8
|
+
# L2 — Pre-commit バリデータによる設計-実装順序の強制
|
|
6
9
|
|
|
7
10
|
## Context
|
|
8
11
|
|
|
@@ -36,3 +39,7 @@ L2(Pre-commit)で以下のバリデータにより設計-実装の順序、
|
|
|
36
39
|
## 関連要件
|
|
37
40
|
|
|
38
41
|
K2(Phase Gate)、K3.5(メタデータ)、K4(テスト品質ルール)、K14(Phase Dependency Model)
|
|
42
|
+
|
|
43
|
+
## Alternatives
|
|
44
|
+
|
|
45
|
+
当時、代替案は明示的に文書化されていない。本節は既存決定を `validate-adr` ゲートで検査可能にするための遡及的正規化(コーパス正規化)に伴い追加された。
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
|
|
1
|
+
---
|
|
2
|
+
adr_id: "003"
|
|
3
|
+
title: "L3 — CI バリデータによるセキュリティ・パフォーマンス・カバレッジ検証"
|
|
4
|
+
status: Accepted
|
|
5
|
+
date: 2026-03-24
|
|
6
|
+
---
|
|
2
7
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
Accepted
|
|
8
|
+
# L3 — CI バリデータによるセキュリティ・パフォーマンス・カバレッジ検証
|
|
6
9
|
|
|
7
10
|
## Context
|
|
8
11
|
|
|
@@ -34,3 +37,7 @@ L3(CI/CD)で以下の4バリデータを実行する。
|
|
|
34
37
|
## 関連要件
|
|
35
38
|
|
|
36
39
|
K1(4層防御)、K10(Security/Performance検出)
|
|
40
|
+
|
|
41
|
+
## Alternatives
|
|
42
|
+
|
|
43
|
+
当時、代替案は明示的に文書化されていない。本節は既存決定を `validate-adr` ゲートで検査可能にするための遡及的正規化(コーパス正規化)に伴い追加された。
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
|
|
1
|
+
---
|
|
2
|
+
adr_id: "004"
|
|
3
|
+
title: "L4 — Scheduled バリデータによる設計-実装乖離の定期検出"
|
|
4
|
+
status: Accepted
|
|
5
|
+
date: 2026-03-24
|
|
6
|
+
---
|
|
2
7
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
Accepted
|
|
8
|
+
# L4 — Scheduled バリデータによる設計-実装乖離の定期検出
|
|
6
9
|
|
|
7
10
|
## Context
|
|
8
11
|
|
|
@@ -36,3 +39,7 @@ L4(Scheduled)で以下のバリデータを週次または明示実行で扱
|
|
|
36
39
|
## 関連要件
|
|
37
40
|
|
|
38
41
|
K1(4層防御)、K11(Drift Detection)、K12(Consistency Checker)
|
|
42
|
+
|
|
43
|
+
## Alternatives
|
|
44
|
+
|
|
45
|
+
当時、代替案は明示的に文書化されていない。本節は既存決定を `validate-adr` ゲートで検査可能にするための遡及的正規化(コーパス正規化)に伴い追加された。
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
|
|
1
|
+
---
|
|
2
|
+
adr_id: "005"
|
|
3
|
+
title: "Hexagonal Architecture(Ports & Adapters)の採用"
|
|
4
|
+
status: Accepted
|
|
5
|
+
date: 2026-03-24
|
|
6
|
+
---
|
|
2
7
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
Accepted
|
|
8
|
+
# Hexagonal Architecture(Ports & Adapters)の採用
|
|
6
9
|
|
|
7
10
|
## Context
|
|
8
11
|
|
|
@@ -37,3 +40,7 @@ presentation/ — CLI コマンド、フォーマッター
|
|
|
37
40
|
## 関連要件
|
|
38
41
|
|
|
39
42
|
K1(4層防御、L1-003)、K5(DDD設計スキル群)
|
|
43
|
+
|
|
44
|
+
## Alternatives
|
|
45
|
+
|
|
46
|
+
当時、代替案は明示的に文書化されていない。本節は既存決定を `validate-adr` ゲートで検査可能にするための遡及的正規化(コーパス正規化)に伴い追加された。
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
|
|
1
|
+
---
|
|
2
|
+
adr_id: "006"
|
|
3
|
+
title: "エージェント非依存設計原則"
|
|
4
|
+
status: Accepted
|
|
5
|
+
date: 2026-03-24
|
|
6
|
+
---
|
|
2
7
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
Accepted
|
|
8
|
+
# エージェント非依存設計原則
|
|
6
9
|
|
|
7
10
|
## Context
|
|
8
11
|
|
|
@@ -32,3 +35,7 @@ Quality Harness の全バリデータは **ファイルシステムに書き込
|
|
|
32
35
|
## 関連要件
|
|
33
36
|
|
|
34
37
|
K13(phasegate.config.json)
|
|
38
|
+
|
|
39
|
+
## Alternatives
|
|
40
|
+
|
|
41
|
+
当時、代替案は明示的に文書化されていない。本節は既存決定を `validate-adr` ゲートで検査可能にするための遡及的正規化(コーパス正規化)に伴い追加された。
|
package/docs/ADR/{ADR-007-harness-config-single-source.md → 007-harness-config-single-source.md}
RENAMED
|
@@ -1,13 +1,18 @@
|
|
|
1
|
-
|
|
1
|
+
---
|
|
2
|
+
adr_id: "007"
|
|
3
|
+
title: "phasegate.config.json を品質設定の Single Source of Truth とする"
|
|
4
|
+
status: Accepted
|
|
5
|
+
date: 2026-03-24
|
|
6
|
+
---
|
|
2
7
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
Accepted
|
|
8
|
+
# phasegate.config.json を品質設定の Single Source of Truth とする
|
|
6
9
|
|
|
7
10
|
## Context
|
|
8
11
|
|
|
9
12
|
品質設定が複数のファイル(ESLint 設定、テスト設定、CI 設定)に分散すると、設定間の矛盾が発生し、プリセット(minimal/standard/strict)の切り替えが困難になる。
|
|
10
13
|
|
|
14
|
+
> §12 Key Decision: config-file-separation
|
|
15
|
+
|
|
11
16
|
## Decision
|
|
12
17
|
|
|
13
18
|
`phasegate.config.json` を品質設定の唯一の真実源とする。
|
|
@@ -37,3 +42,7 @@ Ownership が完全に分離され、設定の混在を防止する。
|
|
|
37
42
|
## 関連要件
|
|
38
43
|
|
|
39
44
|
K13(phasegate.config.json)
|
|
45
|
+
|
|
46
|
+
## Alternatives
|
|
47
|
+
|
|
48
|
+
当時、代替案は明示的に文書化されていない。本節は既存決定を `validate-adr` ゲートで検査可能にするための遡及的正規化(コーパス正規化)に伴い追加された。
|
|
@@ -1,13 +1,18 @@
|
|
|
1
|
-
|
|
1
|
+
---
|
|
2
|
+
adr_id: "008"
|
|
3
|
+
title: "Quick Mode の適用条件と範囲"
|
|
4
|
+
status: Accepted
|
|
5
|
+
date: 2026-03-24
|
|
6
|
+
---
|
|
2
7
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
Accepted
|
|
8
|
+
# Quick Mode の適用条件と範囲
|
|
6
9
|
|
|
7
10
|
## Context
|
|
8
11
|
|
|
9
12
|
1行のバグ修正にフルハーネス(設計文書作成 → テスト設計 → Phase Gate)を要求すると、開発速度が不必要に低下する。一方で、品質ゲートの緩和を安易に拡大すると品質基盤が形骸化する。
|
|
10
13
|
|
|
14
|
+
> §12 Key Decision: quick-mode-eligibility
|
|
15
|
+
|
|
11
16
|
## Decision
|
|
12
17
|
|
|
13
18
|
Quick Mode として明確に定義された条件下でのみ、ハーネスの一部を緩和する。
|
|
@@ -44,3 +49,7 @@ Quick Mode として明確に定義された条件下でのみ、ハーネスの
|
|
|
44
49
|
## 関連要件
|
|
45
50
|
|
|
46
51
|
K1(4層防御)
|
|
52
|
+
|
|
53
|
+
## Alternatives
|
|
54
|
+
|
|
55
|
+
当時、代替案は明示的に文書化されていない。本節は既存決定を `validate-adr` ゲートで検査可能にするための遡及的正規化(コーパス正規化)に伴い追加された。
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
|
|
1
|
+
---
|
|
2
|
+
adr_id: "009"
|
|
3
|
+
title: "DDD 戦術パターン(Entity/VO/Aggregate)の採用"
|
|
4
|
+
status: Accepted
|
|
5
|
+
date: 2026-03-24
|
|
6
|
+
---
|
|
2
7
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
Accepted
|
|
8
|
+
# DDD 戦術パターン(Entity/VO/Aggregate)の採用
|
|
6
9
|
|
|
7
10
|
## Context
|
|
8
11
|
|
|
@@ -38,3 +41,7 @@ DDD 戦術パターンを全 Unit のドメイン層に適用する。
|
|
|
38
41
|
## 関連要件
|
|
39
42
|
|
|
40
43
|
K5(DDD設計スキル群)
|
|
44
|
+
|
|
45
|
+
## Alternatives
|
|
46
|
+
|
|
47
|
+
当時、代替案は明示的に文書化されていない。本節は既存決定を `validate-adr` ゲートで検査可能にするための遡及的正規化(コーパス正規化)に伴い追加された。
|
|
@@ -1,13 +1,18 @@
|
|
|
1
|
-
|
|
1
|
+
---
|
|
2
|
+
adr_id: "010"
|
|
3
|
+
title: "HarnessError に fix_example を必須化(エージェント自己修正設計)"
|
|
4
|
+
status: Accepted
|
|
5
|
+
date: 2026-03-24
|
|
6
|
+
---
|
|
2
7
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
Accepted
|
|
8
|
+
# HarnessError に fix_example を必須化(エージェント自己修正設計)
|
|
6
9
|
|
|
7
10
|
## Context
|
|
8
11
|
|
|
9
12
|
AIエージェントがエラーメッセージを受け取った際、「何が悪いか」だけでなく「どう直すか」が明示されていれば、人間の介入なしに自己修正できる。従来の Lint エラーは問題の指摘のみで修正方法を示さないため、「エラー発生→人間が読解→人間が AI に修正指示→AI 修正」という長いループが必要だった。
|
|
10
13
|
|
|
14
|
+
> §12 Key Decision: harness-error-fix-example
|
|
15
|
+
|
|
11
16
|
## Decision
|
|
12
17
|
|
|
13
18
|
全ての `HarnessError` に以下のフィールドを必須化する。
|
|
@@ -40,3 +45,7 @@ interface HarnessError {
|
|
|
40
45
|
## 関連要件
|
|
41
46
|
|
|
42
47
|
K1(4層防御)
|
|
48
|
+
|
|
49
|
+
## Alternatives
|
|
50
|
+
|
|
51
|
+
当時、代替案は明示的に文書化されていない。本節は既存決定を `validate-adr` ゲートで検査可能にするための遡及的正規化(コーパス正規化)に伴い追加された。
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
|
|
1
|
+
---
|
|
2
|
+
adr_id: "011"
|
|
3
|
+
title: "archgate パターン — L1 ルールによるアーキテクチャ強制"
|
|
4
|
+
status: Accepted
|
|
5
|
+
date: 2026-03-24
|
|
6
|
+
---
|
|
2
7
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
Accepted
|
|
8
|
+
# archgate パターン — L1 ルールによるアーキテクチャ強制
|
|
6
9
|
|
|
7
10
|
## Context
|
|
8
11
|
|
|
@@ -60,3 +63,7 @@ export class MyService { }
|
|
|
60
63
|
## 関連要件
|
|
61
64
|
|
|
62
65
|
K1(4層防御)、K3(Biome AST解析)
|
|
66
|
+
|
|
67
|
+
## Alternatives
|
|
68
|
+
|
|
69
|
+
当時、代替案は明示的に文書化されていない。本節は既存決定を `validate-adr` ゲートで検査可能にするための遡及的正規化(コーパス正規化)に伴い追加された。
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
|
|
1
|
+
---
|
|
2
|
+
adr_id: "012"
|
|
3
|
+
title: "2-Phase Execution(人間承認ゲート)"
|
|
4
|
+
status: Accepted
|
|
5
|
+
date: 2026-03-24
|
|
6
|
+
---
|
|
2
7
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
Accepted
|
|
8
|
+
# 2-Phase Execution(人間承認ゲート)
|
|
6
9
|
|
|
7
10
|
## Context
|
|
8
11
|
|
|
@@ -36,3 +39,7 @@ Planning Mode が interactive であれ embedded-qa であれ、全フェーズ
|
|
|
36
39
|
## 関連要件
|
|
37
40
|
|
|
38
41
|
K6(2-Phase Execution)、K15(Plan文書の必須生成)
|
|
42
|
+
|
|
43
|
+
## Alternatives
|
|
44
|
+
|
|
45
|
+
当時、代替案は明示的に文書化されていない。本節は既存決定を `validate-adr` ゲートで検査可能にするための遡及的正規化(コーパス正規化)に伴い追加された。
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
|
|
1
|
+
---
|
|
2
|
+
adr_id: "013"
|
|
3
|
+
title: "storyReflection ゲート(inception → product 反映の機械強制)"
|
|
4
|
+
status: Accepted
|
|
5
|
+
date: 2026-04-05
|
|
6
|
+
---
|
|
2
7
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
Accepted
|
|
8
|
+
# storyReflection ゲート(inception → product 反映の機械強制)
|
|
6
9
|
|
|
7
10
|
## Context
|
|
8
11
|
|
|
@@ -98,3 +101,7 @@ inception/order/US-002/logical_design.md は存在しますが、
|
|
|
98
101
|
- ADR-008(Quick Mode)— storyReflection も `relaxedGates` で緩和される
|
|
99
102
|
- ADR-012(2-Phase Execution)— storyReflection は Phase 2 完了の事後条件に相当
|
|
100
103
|
- `docs/folder_management_rules.md` — inception / product の累積更新フロー
|
|
104
|
+
|
|
105
|
+
## Alternatives
|
|
106
|
+
|
|
107
|
+
当時、代替案は明示的に文書化されていない。本節は既存決定を `validate-adr` ゲートで検査可能にするための遡及的正規化(コーパス正規化)に伴い追加された。
|
package/docs/ADR/{ADR-014-presentation-domain-dependency.md → 014-presentation-domain-dependency.md}
RENAMED
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
|
|
1
|
+
---
|
|
2
|
+
adr_id: "014"
|
|
3
|
+
title: "presentation → domain 直接依存を許容する(Robert C. Martin 版 Clean Architecture 準拠)"
|
|
4
|
+
status: Accepted
|
|
5
|
+
date: 2026-04-23
|
|
6
|
+
---
|
|
2
7
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
Accepted — 2026-04-23
|
|
8
|
+
# presentation → domain 直接依存を許容する(Robert C. Martin 版 Clean Architecture 準拠)
|
|
6
9
|
|
|
7
10
|
## Context
|
|
8
11
|
|
|
@@ -80,3 +83,13 @@ const ALLOWED_DEPENDENCIES = {
|
|
|
80
83
|
- ADR-009 (DDD Tactical Patterns) — domain immutability 規約で mutation リスクを抑止
|
|
81
84
|
- ISSUE-019 (LayerBoundary 再評価) — 本 ADR で CLOSED
|
|
82
85
|
- ISSUE-014 (architecture style config) — preset 化での opt-in 厳格派提供を予定
|
|
86
|
+
|
|
87
|
+
## Alternatives
|
|
88
|
+
|
|
89
|
+
本 ADR は既存本文で 3 つのアーキテクチャ解釈を比較しており(正規化時に canonical `## Alternatives` として再掲):
|
|
90
|
+
|
|
91
|
+
1. **Robert C. Martin 版 Clean Architecture(採用)** — `presentation → domain` の read-only 依存を許容する。
|
|
92
|
+
2. **厳格 DDD Layered** — `presentation` は `application` 経由でのみ `domain` に触れる。read-only の VO/type/policy 参照まで false positive として弾くため不採用(ただし将来 `strict-ddd` preset で opt-in 提供予定)。
|
|
93
|
+
3. **phasegate 旧実装(厳格 DDD 派)** — 実装時の暗黙判断。本 ADR で置き換える。
|
|
94
|
+
|
|
95
|
+
比較の詳細は上記 Context「哲学的立場の整理」および Decision を参照。
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
|
|
1
|
+
---
|
|
2
|
+
adr_id: "015"
|
|
3
|
+
title: "アーキテクチャスタイルを preset 化し、PhaseGate を複数アーキに対応させる"
|
|
4
|
+
status: Accepted
|
|
5
|
+
date: 2026-04-23
|
|
6
|
+
---
|
|
2
7
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
Accepted — 2026-04-23
|
|
8
|
+
# アーキテクチャスタイルを preset 化し、PhaseGate を複数アーキに対応させる
|
|
6
9
|
|
|
7
10
|
## Context
|
|
8
11
|
|
|
@@ -181,3 +184,7 @@ schema v3 移行の詳細は Wave 2 で `config-foundation` の migration script
|
|
|
181
184
|
- **ISSUE-007 retrofit-adoption** — 既存 PJ への phasegate 導入。本 ADR により Clean 以外でも受け入れ可能になり、retrofit の適用範囲が拡大
|
|
182
185
|
- **`scripts/harness/biome-ast-engine/domain/value-objects/layer-name.ts:6,15-20`** — 現状のハードコード実体、Wave 2 の改修対象
|
|
183
186
|
- **`scripts/harness/config-foundation/infrastructure/schemas/harness-config-v2.schema.json`** — schema v3 の拡張対象、Wave 3 で改修
|
|
187
|
+
|
|
188
|
+
## Alternatives
|
|
189
|
+
|
|
190
|
+
当時、代替案は明示的に文書化されていない。本節は既存決定を `validate-adr` ゲートで検査可能にするための遡及的正規化(コーパス正規化)に伴い追加された。
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
|
|
1
|
+
---
|
|
2
|
+
adr_id: "016"
|
|
3
|
+
title: "phase-gate validator のパス解決を `paths` config プレースホルダ化する"
|
|
4
|
+
status: Accepted
|
|
5
|
+
date: 2026-05-07
|
|
6
|
+
---
|
|
2
7
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
Accepted — 2026-05-07
|
|
8
|
+
# phase-gate validator のパス解決を `paths` config プレースホルダ化する
|
|
6
9
|
|
|
7
10
|
## Context
|
|
8
11
|
|
|
@@ -153,3 +156,12 @@ phase-gate validator のパスリテラルを `{designDocsRoot}` / `{inceptionDo
|
|
|
153
156
|
- **`scripts/harness/agent-integration/infrastructure/adapters/phase-gate-query-adapter.ts:60`** — 同上
|
|
154
157
|
- **`docs/guide/configuration.md:445-471`** — 利用者の期待を形成しているドキュメント記述
|
|
155
158
|
- **ADR-007** — harness-config を Single Source of Truth とする決定。本 ADR は ADR-007 の精神(config から validator を駆動する)を phase-gate validator に拡張するもの
|
|
159
|
+
|
|
160
|
+
## Alternatives
|
|
161
|
+
|
|
162
|
+
本 ADR は既存本文の「検討した代替案」に代替案を記録済みである(正規化時に canonical `## Alternatives` として再掲):
|
|
163
|
+
|
|
164
|
+
1. **(A) `paths.designDocs` / `paths.inceptionDocs` でトップレベルパスを実際に置換する(採用)** — phase-gate validator のパスリテラルをプレースホルダ化し `paths` config で展開する。
|
|
165
|
+
2. **(B) ドキュメントを修正し「`paths.*` は storyReflection 専用」と明記する** — `Artifact` の `docs/` 接頭辞バリデーションが残るため現状コードでは動作せず、(A) と実装コストの大半が重複するため不採用。
|
|
166
|
+
|
|
167
|
+
採用理由の詳細は上記 Decision「採用理由」を参照。
|
package/docs/ADR/{ADR-017-warning-severity-aggregation.md → 017-warning-severity-aggregation.md}
RENAMED
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
|
|
1
|
+
---
|
|
2
|
+
adr_id: "017"
|
|
3
|
+
title: "warning-severity validator の集計セマンティクス"
|
|
4
|
+
status: Accepted
|
|
5
|
+
date: 2026-05-08
|
|
6
|
+
---
|
|
2
7
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
Accepted — 2026-05-08
|
|
8
|
+
# warning-severity validator の集計セマンティクス
|
|
6
9
|
|
|
7
10
|
## Context
|
|
8
11
|
|
|
@@ -200,3 +203,12 @@ human/agent/ci formatter で `[FAIL]` と `[WARN]` を分離:
|
|
|
200
203
|
- **`scripts/harness/config-foundation/application/mappers/validator-system-config-mapper.ts`** — `toValidatorSystemConfig` 拡張対象
|
|
201
204
|
- **ADR-007** — harness-config Single Source of Truth。本 ADR は `failOnWarning` を CLI flag のみから config まで持ち上げて ADR-007 の精神を強化
|
|
202
205
|
- **ADR-001** — 4 層防御モデル。L4 validator の advisory 位置付けが本決定の根拠
|
|
206
|
+
|
|
207
|
+
## Alternatives
|
|
208
|
+
|
|
209
|
+
本 ADR は既存本文の「検討した代替案」に代替案を記録済みである(正規化時に canonical `## Alternatives` として再掲):
|
|
210
|
+
|
|
211
|
+
1. **(A) warning-only fail は overall PASS / exit 0 を default にする(採用)** — 集計ロジックを修正し warning-only fail を fail にカウントせず、`failOnWarning: true` で旧挙動へ opt-in。
|
|
212
|
+
2. **(B) warning も exit 1 を default に保つ(CI 互換性優先)** — default を変えず移行コストはゼロだが、`defaultSeverity: warning` 宣言と「常に fail」実装の semantic 乖離が残るため不採用。
|
|
213
|
+
|
|
214
|
+
採用理由の詳細は上記 Decision「採用理由」を参照。
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
|
|
1
|
+
---
|
|
2
|
+
adr_id: "018"
|
|
3
|
+
title: "drift-detect の design pointers 仕様"
|
|
4
|
+
status: Accepted
|
|
5
|
+
date: 2026-05-08
|
|
6
|
+
---
|
|
2
7
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
Accepted — 2026-05-08
|
|
8
|
+
# drift-detect の design pointers 仕様
|
|
6
9
|
|
|
7
10
|
## Context
|
|
8
11
|
|
|
@@ -45,3 +48,10 @@ GitHub Issue #4 の follow-up として WI-095 を起票した。
|
|
|
45
48
|
`DesignDocumentPort` は後方互換のため既存 `getElements()` を維持し、optional な `getElementPointers()` を追加する。`SourceCodeAnalyzerPort` も optional な `getElementFilePathMap()` を追加する。両 optional port が未実装の場合、`DriftDetectionService` は従来挙動のまま動作する。
|
|
46
49
|
|
|
47
50
|
YAML fenced metadata は今回採用しない。Markdown本文の構造と混ざりやすく、既存のコードブロック抽出や設計例との衝突リスクが高いため、必要になった時点で別ADRで拡張する。
|
|
51
|
+
|
|
52
|
+
## Alternatives
|
|
53
|
+
|
|
54
|
+
本 ADR は既存本文で採用しなかった代替案を 1 件明記している(正規化時に canonical `## Alternatives` として再掲):
|
|
55
|
+
|
|
56
|
+
1. **見出し単位で対応実装ファイル path を明示する `pointers`(採用)** — HTML コメント形式と `<pointers>` タグ形式の 2 形式を受け付ける。
|
|
57
|
+
2. **YAML fenced metadata で pointer を表現する(不採用)** — Markdown 本文の構造と混ざりやすく、既存のコードブロック抽出や設計例との衝突リスクが高いため今回は採用せず、必要になった時点で別 ADR で拡張するとした。
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
---
|
|
2
|
+
adr_id: "022"
|
|
3
|
+
title: "パッケージ分離 — Quality Harness / Orchestration"
|
|
4
|
+
status: Accepted
|
|
5
|
+
date: 2026-03-11
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# パッケージ分離 — Quality Harness / Orchestration
|
|
9
|
+
|
|
10
|
+
## Context
|
|
11
|
+
|
|
12
|
+
phasegate の品質ハーネスは、特定の AI エージェントやオーケストレーション基盤に依存せず、単独で品質防御を提供できるべきである(ADR-006「エージェント非依存」)。品質ハーネスとオーケストレーション(エージェントの起動・タスク割り当て・ワークフロー制御)を同一パッケージに結合すると、品質の移植性が損なわれ、オーケストレーション基盤を変更・撤去した際に品質防御も道連れになる。
|
|
13
|
+
|
|
14
|
+
> §12 Key Decision: package-separation
|
|
15
|
+
|
|
16
|
+
## Decision
|
|
17
|
+
|
|
18
|
+
品質ハーネスを担う **Quality-Harness パッケージ(本リポジトリ)** と、エージェント制御を担う **Orchestration パッケージ** を分離する。
|
|
19
|
+
|
|
20
|
+
- 品質設定は `phasegate.config.json` に、オーケストレーション設定は `orchestration.config.json` に置く(ADR-007)。
|
|
21
|
+
- 両パッケージは相互に所有し合わない。Quality-Harness は Orchestration の設定・コードを一切含まない。
|
|
22
|
+
|
|
23
|
+
## Consequences
|
|
24
|
+
|
|
25
|
+
- 本リポジトリには orchestration のコード・設定が意図的に不在である。この不在そのものが分離の証跡となる。
|
|
26
|
+
- 品質防御が特定のオーケストレーション基盤から独立して移植可能になる。
|
|
27
|
+
- 非交渉要件 K1-K13 は全て品質ハーネス側に帰属する(ADR-024)。オーケストレーション側へ品質責務が漏れない。
|
|
28
|
+
|
|
29
|
+
関連: ADR-006(エージェント非依存設計原則)、ADR-007(設定ファイルの Single Source of Truth と設定ファイル分離)、ADR-024(K1-K13 の品質ハーネス帰属)。
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
---
|
|
2
|
+
adr_id: "023"
|
|
3
|
+
title: "ESLint→Biome 全面移行"
|
|
4
|
+
status: Accepted
|
|
5
|
+
date: 2026-03-11
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# ESLint→Biome 全面移行
|
|
9
|
+
|
|
10
|
+
## Context
|
|
11
|
+
|
|
12
|
+
v0 の L1 静的検査は ESLint に 4 つのカスタムルールを載せた構成だった。ESLint は JavaScript 実装であり、大規模コーパスに対する実行速度が遅く、フィードバックループの短縮を阻害していた。
|
|
13
|
+
|
|
14
|
+
> §12 Key Decision: eslint-to-biome
|
|
15
|
+
|
|
16
|
+
## Decision
|
|
17
|
+
|
|
18
|
+
L1 の静的検査エンジンを Rust 製の **Biome** へ全面移行する。
|
|
19
|
+
|
|
20
|
+
- v0 の 4 カスタムルールを Biome の AST ルールとして移植する。
|
|
21
|
+
- ESLint 由来のレガシー成果物(設定・依存)は能動的に拒否し、回帰を防止する。
|
|
22
|
+
|
|
23
|
+
## Consequences
|
|
24
|
+
|
|
25
|
+
- L1 エンジンは Biome となり、ADR-001 の 8 ルールを Biome AST 上で実行する。ESLint 比で 50-100 倍高速なフィードバックが得られる。
|
|
26
|
+
- `scripts/harness/biome-ast-engine/application/usecases/verify-eslint-removal-usecase.ts` が ESLint 成果物の残存を検出し、`LegacyEslintArtifactDetectedError` を throw して ESLint への回帰を機械的に防ぐ。
|
|
27
|
+
|
|
28
|
+
関連: ADR-001(4層防御モデル / L1 の 8 ルール)。
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
---
|
|
2
|
+
adr_id: "024"
|
|
3
|
+
title: "K1-K13 の品質ハーネス帰属"
|
|
4
|
+
status: Accepted
|
|
5
|
+
date: 2026-03-11
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# K1-K13 の品質ハーネス帰属
|
|
9
|
+
|
|
10
|
+
## Context
|
|
11
|
+
|
|
12
|
+
phasegate の非交渉要件 K1-K13 は、いずれも品質に関する要件である。パッケージ分離(ADR-022)により品質ハーネスとオーケストレーションが分離された結果、各 K 要件の所有者を一意に定める必要がある。所有が曖昧だと、要件がオーケストレーション側へ漏れて品質防御の移植性が損なわれる。
|
|
13
|
+
|
|
14
|
+
> §12 Key Decision: k-requirements-quality-ownership
|
|
15
|
+
|
|
16
|
+
## Decision
|
|
17
|
+
|
|
18
|
+
K1-K13 を全て品質ハーネス側に帰属させ、オーケストレーション側へ分散させない。
|
|
19
|
+
|
|
20
|
+
## Consequences
|
|
21
|
+
|
|
22
|
+
- 各 K 要件は品質ハーネスのレイヤ/バリデータに対応づけられる(例: K1=4層防御=ADR-001、L3=ADR-003、L4=ADR-004、archgate=ADR-011)。
|
|
23
|
+
- 要件の充足は archgate パターン(ADR-011)を通じて機械的に強制される。
|
|
24
|
+
- オーケストレーション基盤を差し替えても K 要件の充足責務は品質ハーネス側に残り、移植性が保たれる(ADR-006)。
|
|
25
|
+
|
|
26
|
+
関連: ADR-006(エージェント非依存設計原則)、ADR-011(archgate パターン)、ADR-022(パッケージ分離)。
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
---
|
|
2
|
+
adr_id: "025"
|
|
3
|
+
title: "FUSE Hooks Engine は v1 スコープ外"
|
|
4
|
+
status: Accepted
|
|
5
|
+
date: 2026-03-11
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# FUSE Hooks Engine は v1 スコープ外
|
|
9
|
+
|
|
10
|
+
## Context
|
|
11
|
+
|
|
12
|
+
ファイルシステムレベル(FUSE ベース)で横断的にファイル操作を捕捉する Hooks Engine を横断基盤として検討した。しかし、Core Value(設計意図とコードの構造的整合性の機械的保証)は L1-L4 の防御層で維持可能であり、FUSE のような重い横断基盤を v1 に含める必然性はなかった。
|
|
13
|
+
|
|
14
|
+
> §12 Key Decision: fuse-out-of-scope
|
|
15
|
+
|
|
16
|
+
## Decision
|
|
17
|
+
|
|
18
|
+
FUSE Hooks Engine を v1 のスコープ外とし、横断基盤としては別途検討へ defer する。
|
|
19
|
+
|
|
20
|
+
## Consequences
|
|
21
|
+
|
|
22
|
+
- その後 L0 は FUSE ではなく **エージェントランタイムのフック + git フックのエンジン**(`agent-integration` ユニット + Husky)として実現された。詳細は `docs/guide/layer-model.md` §L0 を参照。
|
|
23
|
+
- FUSE 自体は依然として defer された選択肢のままであり、採用も棄却もされていない。
|
|
24
|
+
- L0 を後から追加する拡張パス(ADR-029)は、この defer を前提に設計された。
|
|
25
|
+
|
|
26
|
+
関連: ADR-001(4層防御モデル)、ADR-029(L0 4層→5層復帰パス)。
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
---
|
|
2
|
+
adr_id: "026"
|
|
3
|
+
title: "Nyquist 統合 — GSD-2 Truths/Artifacts 検証パターン"
|
|
4
|
+
status: Accepted
|
|
5
|
+
date: 2026-03-11
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Nyquist 統合 — GSD-2 Truths/Artifacts 検証パターン
|
|
9
|
+
|
|
10
|
+
## Context
|
|
11
|
+
|
|
12
|
+
要件から成果物へのトレーサビリティ検証は、GSD-2 における Truths/Artifacts パターンとして既に存在していた。概念的に同一の検証(要件→成果物トレーサビリティ)を phasegate 側で二重実装すると、検証ロジックが分岐し、整合性の保証が困難になる。
|
|
13
|
+
|
|
14
|
+
> §12 Key Decision: nyquist-truths-artifacts
|
|
15
|
+
|
|
16
|
+
## Decision
|
|
17
|
+
|
|
18
|
+
GSD-2 の Truths/Artifacts 検証パターンを Nyquist バリデータ(L3-004)へ統合し、再実装しない。
|
|
19
|
+
|
|
20
|
+
## Consequences
|
|
21
|
+
|
|
22
|
+
- `scripts/harness/validator-system/domain/value-objects/validator-id.ts` において `L3-004` が `nyquist` に対応づけられている。
|
|
23
|
+
- AC レベルのトレーサビリティアダプタが、fail-closed な L3 ゲートと advisory な L4 層の両方を提供する。同一の検証概念を一箇所へ集約することで検証の分岐を防ぐ。
|
|
24
|
+
|
|
25
|
+
関連: ADR-003(CI バリデータ / L3)、ADR-018(drift-detect ポインタ)。
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
---
|
|
2
|
+
adr_id: "027"
|
|
3
|
+
title: "成果物駆動の状態導出"
|
|
4
|
+
status: Accepted
|
|
5
|
+
date: 2026-03-11
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# 成果物駆動の状態導出
|
|
9
|
+
|
|
10
|
+
## Context
|
|
11
|
+
|
|
12
|
+
ハーネスの検査状態(各レイヤの健全性・フェーズゲートの状態)は再現可能であるべきである。可変な保存状態(別途書き込む state ファイル)に依存すると、実際のディスク上の成果物と state が乖離し、状態が信頼できなくなる。GSD-2 は成果物から状態を導出する優れたパターンを持っていた。
|
|
13
|
+
|
|
14
|
+
> §12 Key Decision: artifact-driven-state
|
|
15
|
+
|
|
16
|
+
## Decision
|
|
17
|
+
|
|
18
|
+
ハーネスの検査状態を、ディスク上の成果物から導出する(GSD-2 パターンの再利用)。可変な保存状態を真実源としない。
|
|
19
|
+
|
|
20
|
+
## Consequences
|
|
21
|
+
|
|
22
|
+
- `scripts/harness/harness-api/domain/services/status-derivation-service.ts` が `ArtifactScanResult` から `LayerHealth` および `HarnessStatusSummary` を導出する。
|
|
23
|
+
- `check-phase` / `check-ready` 系のコマンドは成果物を読んで状態を判定するため、状態が常にディスクの実態と一致し、再現可能になる。
|
|
24
|
+
|
|
25
|
+
関連: ADR-012(2-Phase Execution)、ADR-018(drift-detect ポインタ)。
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
---
|
|
2
|
+
adr_id: "028"
|
|
3
|
+
title: "バリデータ無限ループ防止 — スタック検出"
|
|
4
|
+
status: Accepted
|
|
5
|
+
date: 2026-03-11
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# バリデータ無限ループ防止 — スタック検出
|
|
9
|
+
|
|
10
|
+
## Context
|
|
11
|
+
|
|
12
|
+
同一の `HarnessError` が繰り返し発生する状況では、バリデータとエージェントの間で自己修正ループが無限に回り、エージェントのサイクルを浪費する。GSD-2 のスタック検出パターンは、この種の反復を検出して打ち切る仕組みを持っていた。
|
|
13
|
+
|
|
14
|
+
> §12 Key Decision: validator-stack-detection
|
|
15
|
+
|
|
16
|
+
## Decision
|
|
17
|
+
|
|
18
|
+
同一 `HarnessError` の繰り返しを検出し、閾値を超えた場合に自動エスカレーションする(GSD-2 スタック検出パターンの応用)。
|
|
19
|
+
|
|
20
|
+
## Consequences
|
|
21
|
+
|
|
22
|
+
- `ci-governance` ユニット(H13-02)で実装済み。`RepetitionDetector`、`RecordErrorOccurrenceUseCase`、`CheckEscalationUseCase`、エスカレーションログにより、同一エラーの反復を検出しエスカレーションする。
|
|
23
|
+
- 加えて stop-hook の `ReentryGuard`(`agent-integration` ユニット)がフックの再入ループを防止する。
|
|
24
|
+
- **STATUS NOTE**: §12 は当初この決定を "Pending" としていたが、実装が完了しているため本 ADR は Accepted とする。§12 側の Status も本作業(WI-230 Step 3)で "Decided" に訂正した。
|
|
25
|
+
|
|
26
|
+
関連: ADR-003(CI バリデータ)、ADR-004(scheduled バリデータ)。
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
---
|
|
2
|
+
adr_id: "029"
|
|
3
|
+
title: "L0 4層→5層復帰パス"
|
|
4
|
+
status: Accepted
|
|
5
|
+
date: 2026-03-11
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# L0 4層→5層復帰パス
|
|
9
|
+
|
|
10
|
+
## Context
|
|
11
|
+
|
|
12
|
+
FUSE ベースの L0 を v1 スコープ外へ defer した(ADR-025)ため、非交渉要件 K1 を一時的に 4 層(L1-L4)で定義した。将来 L0 を追加した際に既存の 4 層定義が障害とならないよう、4層から 5層への拡張パスをあらかじめ明示しておく必要があった。
|
|
13
|
+
|
|
14
|
+
> §12 Key Decision: four-to-five-layer-path
|
|
15
|
+
|
|
16
|
+
## Decision
|
|
17
|
+
|
|
18
|
+
4層→5層の拡張パスを明示的に定義する。将来の L0 追加を阻害しない形で K1 の層構造を段階的に拡張できるようにする。
|
|
19
|
+
|
|
20
|
+
## Consequences
|
|
21
|
+
|
|
22
|
+
- 5層への復帰は既に達成されている。`docs/guide/layer-model.md` は現在 "5-Layer Defense Model (L0-L4)" を記述し、L0 は FUSE ではなく hooks engine(`agent-integration` + Husky)として実現されている(ADR-025)。
|
|
23
|
+
- 一方で ADR-001("four-layer-defense-model"、K1=4層)は 5層の現実に遅れている。ADR-001 の見直しは本作業のスコープ外であり、follow-up として別途行う必要がある。
|
|
24
|
+
|
|
25
|
+
関連: ADR-001(4層防御モデル)、ADR-025(FUSE Hooks Engine は v1 スコープ外)。
|
|
@@ -461,7 +461,7 @@ Override the preset defaults only when your project needs a different policy:
|
|
|
461
461
|
2. `WriteTargetScope` resolves the `@unit` annotation (comma-separated and multi-line `@unit` are both supported; **all** listed units are checked).
|
|
462
462
|
3. For each unit, every `storyId` directory under `docs/inception/{unit}/` is enumerated.
|
|
463
463
|
4. For each required mapping, the pre-tool-use hook checks that the target product document contains `@story-id {storyId}`.
|
|
464
|
-
5. Any missing reflection produces a `STORY_REFLECTION` block reason with a fix hint that points to the `cascade-updater` skill and [ADR-013](../ADR/
|
|
464
|
+
5. Any missing reflection produces a `STORY_REFLECTION` block reason with a fix hint that points to the `cascade-updater` skill and [ADR-013](../ADR/013-story-reflection-gate.md).
|
|
465
465
|
|
|
466
466
|
##### Passing the gate
|
|
467
467
|
|
|
@@ -165,6 +165,6 @@ npx phasegate migrate --schema v3
|
|
|
165
165
|
|
|
166
166
|
- `docs/inception/issues/ISSUE-014/wave1_schema_proposal.md` — 設計提案とプリセット詳細
|
|
167
167
|
- `docs/inception/issues/ISSUE-014/issue_description.md` — issue 背景
|
|
168
|
-
- `docs/ADR/
|
|
168
|
+
- `docs/ADR/015-architecture-preset.md` — アーキ設計決定
|
|
169
169
|
- `docs/guide/retrofit-adoption.md` — 既存 PJ への後付け導入
|
|
170
170
|
- `docs/guide/configuration.md` — 他の config 項目
|
|
@@ -325,5 +325,5 @@ sha1 一致で判定しているため、**フォーマット変更・インポ
|
|
|
325
325
|
|
|
326
326
|
- `docs/guide/cli-reference.md` — `baseline` / `scaffold-design` のフラグ一覧
|
|
327
327
|
- `docs/guide/layer-model.md` — L0-L4 防御モデルと phase-gate の位置付け
|
|
328
|
-
- `docs/ADR/
|
|
328
|
+
- `docs/ADR/013-story-reflection-gate.md` — phase-gate の思想的背景
|
|
329
329
|
- ISSUE-007 — 本ガイドが対応する起票 issue(`docs/inception/issues/ISSUE-007/`)
|
package/package.json
CHANGED