phasegate 0.191.0 → 0.212.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +20 -0
- package/README.ja.md +52 -15
- package/README.md +39 -11
- package/docs/ADR/030-injection-threat-model-and-trust-root.md +145 -0
- package/docs/guide/hooks-integration.md +50 -1
- package/docs/guide/installation.md +1 -1
- package/docs/guide/quick-vs-full-mode.md +1 -1
- package/docs/guide/skills-overview.md +7 -8
- package/package.json +1 -1
- package/scripts/harness/agent-integration/presentation/phasegate-status-context.ts +131 -63
- package/scripts/harness/agent-integration/presentation/session-start-hook.ts +31 -4
- package/scripts/harness/agent-integration/presentation/spotlight.ts +65 -0
- package/scripts/harness/ci-governance/application/dto/pin-integrity-input.ts +8 -0
- package/scripts/harness/ci-governance/application/dto/pin-integrity-output.ts +9 -0
- package/scripts/harness/ci-governance/application/dto/verify-integrity-input.ts +7 -0
- package/scripts/harness/ci-governance/application/dto/verify-integrity-output.ts +10 -0
- package/scripts/harness/ci-governance/application/usecases/pin-integrity-usecase.ts +60 -0
- package/scripts/harness/ci-governance/application/usecases/verify-integrity-usecase.ts +46 -0
- package/scripts/harness/ci-governance/composition-root.ts +67 -64
- package/scripts/harness/ci-governance/domain/ports/integrity-manifest-repository-port.ts +14 -0
- package/scripts/harness/ci-governance/domain/ports/sha256-hasher-port.ts +10 -0
- package/scripts/harness/ci-governance/domain/services/integrity-checker.ts +42 -0
- package/scripts/harness/ci-governance/domain/value-objects/integrity-drift.ts +16 -0
- package/scripts/harness/ci-governance/domain/value-objects/integrity-manifest.ts +49 -0
- package/scripts/harness/ci-governance/domain/value-objects/integrity-target.ts +40 -0
- package/scripts/harness/ci-governance/infrastructure/adapters/file-system-sha256-hasher-adapter.ts +17 -0
- package/scripts/harness/ci-governance/infrastructure/adapters/harness-api-command-existence-adapter.ts +7 -73
- package/scripts/harness/ci-governance/infrastructure/adapters/integrity-manifest-json-repository-adapter.ts +83 -0
- package/scripts/harness/ci-governance/presentation/handlers/integrity-handler.ts +76 -0
- package/scripts/harness/config-foundation/application/mappers/validator-system-config-mapper.ts +53 -28
- package/scripts/harness/harness-api/domain/value-objects/ci-check-result.ts +33 -8
- package/scripts/harness/harness-api/domain/value-objects/known-harness-commands.ts +90 -0
- package/scripts/harness/installation/application/bundled-skill-selection.ts +2 -5
- package/scripts/harness/main.ts +257 -105
- package/scripts/harness/phase-dependency-model/infrastructure/filesystem/file-system-story-reflection-adapter.ts +65 -3
- package/scripts/harness/quick-mode/domain/services/quick-mode-judgment-engine.ts +44 -40
- package/scripts/harness/setup/skill-deployer.ts +2 -4
- package/scripts/harness/validator-system/application/use-cases/run-l2-validators-usecase.ts +82 -49
- package/scripts/harness/validator-system/application/use-cases/run-l3-validators-usecase.ts +87 -58
- package/scripts/harness/validator-system/composition-root.ts +141 -99
- package/scripts/harness/validator-system/domain/ports/coverage-attestation-gating-policy-port.ts +14 -0
- package/scripts/harness/validator-system/domain/ports/injection-scan-policy-port.ts +14 -0
- package/scripts/harness/validator-system/domain/services/coverage-attestation-gating-service.ts +56 -0
- package/scripts/harness/validator-system/domain/services/injection-pattern-scan-service.ts +118 -0
- package/scripts/harness/validator-system/domain/value-objects/coverage-gating-report.ts +67 -0
- package/scripts/harness/validator-system/domain/value-objects/injection-scan-report.ts +55 -0
- package/scripts/harness/validator-system/domain/value-objects/validator-id.ts +35 -31
- package/scripts/harness/validator-system/infrastructure/adapters/adr-foundation-reference-adapter.ts +13 -7
- package/scripts/harness/validator-system/infrastructure/adapters/file-system-coverage-attestation-gating-adapter.ts +87 -0
- package/scripts/harness/validator-system/infrastructure/adapters/file-system-injection-scan-adapter.ts +82 -0
- package/skills/README.md +1 -1
- package/skills/codebase-mapper/SKILL.md +1 -1
- package/skills/consistency-checker/references//343/203/201/343/202/247/343/203/203/343/202/257/343/203/252/343/202/271/343/203/210.md +1 -1
- package/skills/doc-health-checker/SKILL.md +148 -0
- package/skills/release-publisher/SKILL.md +101 -0
- package/skills/skill-creator/SKILL.md +74 -332
- package/skills/story-implementor/SKILL.md +52 -0
- package/skills/story-mapper/SKILL.md +4 -0
- package/skills/story-writer/SKILL.md +9 -0
- package/skills/uiux-designer/references/uiux-design-template.md +4 -4
- package/skills/unit-designer/SKILL.md +3 -1
- package/skills/doc-freshness-checker/SKILL.md +0 -140
- package/skills/implementation-planner/SKILL.md +0 -169
- package/skills/implementation-planner/references/document-structure.md +0 -116
- package/skills/implementation-planner/references/plan-template.md +0 -177
- package/skills/implementation-planner/references/workflow.md +0 -164
- package/skills/pointer-validator/SKILL.md +0 -105
|
@@ -1,164 +0,0 @@
|
|
|
1
|
-
# 実装計画ワークフロー
|
|
2
|
-
|
|
3
|
-
## フェーズ1: 要件理解
|
|
4
|
-
|
|
5
|
-
### Step 1.1: 入力の整理
|
|
6
|
-
ユーザー入力から以下を抽出:
|
|
7
|
-
- 実装対象(ストーリーID、機能名、タスク説明)
|
|
8
|
-
- 優先度・制約条件
|
|
9
|
-
|
|
10
|
-
### Step 1.2: ストーリー確認
|
|
11
|
-
ユーザーストーリーが指定されている場合:
|
|
12
|
-
```bash
|
|
13
|
-
# US-XXXの場合、以下のファイルを検索
|
|
14
|
-
grep -r "US-XXX" docs/product/units/
|
|
15
|
-
```
|
|
16
|
-
|
|
17
|
-
---
|
|
18
|
-
|
|
19
|
-
## フェーズ2: Unit特定
|
|
20
|
-
|
|
21
|
-
### Step 2.1: integration_contract.md確認
|
|
22
|
-
```
|
|
23
|
-
Read: docs/product/units/integration_contract.md
|
|
24
|
-
```
|
|
25
|
-
以下を把握:
|
|
26
|
-
- 関連しそうなUnit
|
|
27
|
-
- そのUnitの公開API
|
|
28
|
-
- 依存関係
|
|
29
|
-
|
|
30
|
-
### Step 2.2: 関連Unit仕様確認
|
|
31
|
-
```
|
|
32
|
-
Read: docs/product/units/{unit}_unit.md
|
|
33
|
-
```
|
|
34
|
-
各Unitファイルから:
|
|
35
|
-
- 担当ユーザーストーリー
|
|
36
|
-
- 機能要件
|
|
37
|
-
- 外部依存
|
|
38
|
-
|
|
39
|
-
### Step 2.3: Unit間依存の整理
|
|
40
|
-
Mermaid図を参照し、以下を特定:
|
|
41
|
-
- データの流れ
|
|
42
|
-
- イベント発行先
|
|
43
|
-
- 参照関係
|
|
44
|
-
|
|
45
|
-
---
|
|
46
|
-
|
|
47
|
-
## フェーズ3: ドメインモデル確認
|
|
48
|
-
|
|
49
|
-
### Step 3.1: プライマリコンテキスト確認
|
|
50
|
-
```
|
|
51
|
-
Read: docs/product/construction/{context}/domain_model.md
|
|
52
|
-
```
|
|
53
|
-
以下を把握:
|
|
54
|
-
- 集約とその責務
|
|
55
|
-
- エンティティ・値オブジェクト
|
|
56
|
-
- ドメインイベント
|
|
57
|
-
- 状態遷移
|
|
58
|
-
|
|
59
|
-
### Step 3.2: 関連コンテキスト確認
|
|
60
|
-
依存先のdomain_model.mdを確認:
|
|
61
|
-
- 共有カーネルの定義
|
|
62
|
-
- 参照するエンティティ
|
|
63
|
-
|
|
64
|
-
### Step 3.3: 設計パターン確認
|
|
65
|
-
```
|
|
66
|
-
Read: docs/product/construction/shared_kernel/domain_model.md
|
|
67
|
-
```
|
|
68
|
-
共通で使用する型・パターンを把握
|
|
69
|
-
|
|
70
|
-
---
|
|
71
|
-
|
|
72
|
-
## フェーズ4: 既存実装確認
|
|
73
|
-
|
|
74
|
-
### Step 4.1: ディレクトリ構造確認
|
|
75
|
-
```bash
|
|
76
|
-
ls -la functions/src/model/{context}/
|
|
77
|
-
ls -la functions/src/usecase/{context}/
|
|
78
|
-
ls -la functions/src/controller/{context}/
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
### Step 4.2: 関連コード検索
|
|
82
|
-
```bash
|
|
83
|
-
# 関連するクラス・関数を検索
|
|
84
|
-
grep -r "ClassName" functions/src/
|
|
85
|
-
grep -r "usecaseName" functions/src/
|
|
86
|
-
```
|
|
87
|
-
|
|
88
|
-
### Step 4.3: 既存パターン把握
|
|
89
|
-
同コンテキストの既存実装からパターンを学習:
|
|
90
|
-
- Model定義方法
|
|
91
|
-
- UseCase構造
|
|
92
|
-
- Controller実装
|
|
93
|
-
- Repository実装
|
|
94
|
-
|
|
95
|
-
---
|
|
96
|
-
|
|
97
|
-
## フェーズ5: 計画作成
|
|
98
|
-
|
|
99
|
-
### Step 5.1: API設計
|
|
100
|
-
integration_contract.mdを参照し:
|
|
101
|
-
- 新規APIか既存APIの拡張か判断
|
|
102
|
-
- エンドポイント設計
|
|
103
|
-
- リクエスト/レスポンス設計
|
|
104
|
-
|
|
105
|
-
### Step 5.2: レイヤー別実装内容決定
|
|
106
|
-
Clean Architectureに従い:
|
|
107
|
-
1. Model層: ドメインモデル実装
|
|
108
|
-
2. UseCase層: ビジネスロジック
|
|
109
|
-
3. Port層: インターフェース定義
|
|
110
|
-
4. Controller層: API実装
|
|
111
|
-
5. Repository層: データアクセス
|
|
112
|
-
|
|
113
|
-
### Step 5.3: 実装ステップ分解
|
|
114
|
-
依存関係を考慮して順序付け:
|
|
115
|
-
1. ドメインモデル(依存なし)
|
|
116
|
-
2. Port定義
|
|
117
|
-
3. UseCase実装
|
|
118
|
-
4. Repository実装
|
|
119
|
-
5. Controller実装
|
|
120
|
-
6. テスト
|
|
121
|
-
|
|
122
|
-
### Step 5.4: 影響範囲特定
|
|
123
|
-
- 既存コードの変更箇所
|
|
124
|
-
- DBマイグレーション要否
|
|
125
|
-
- フロントエンド変更要否
|
|
126
|
-
|
|
127
|
-
---
|
|
128
|
-
|
|
129
|
-
## フェーズ6: 出力と確認
|
|
130
|
-
|
|
131
|
-
### Step 6.1: 計画ファイル出力
|
|
132
|
-
`references/plan-template.md`の形式で出力
|
|
133
|
-
|
|
134
|
-
### Step 6.2: 質問整理
|
|
135
|
-
不明点を[Question][Answer]セクションにまとめ
|
|
136
|
-
|
|
137
|
-
### Step 6.3: ユーザー確認
|
|
138
|
-
計画をユーザーに提示し、フィードバックを収集
|
|
139
|
-
|
|
140
|
-
---
|
|
141
|
-
|
|
142
|
-
## 探索パターン
|
|
143
|
-
|
|
144
|
-
### パターン1: ストーリーID指定
|
|
145
|
-
```
|
|
146
|
-
1. grep "US-XXX" docs/product/units/*.md
|
|
147
|
-
2. 該当Unit特定
|
|
148
|
-
3. domain_model確認
|
|
149
|
-
4. 既存コード確認
|
|
150
|
-
```
|
|
151
|
-
|
|
152
|
-
### パターン2: 機能名指定
|
|
153
|
-
```
|
|
154
|
-
1. integration_contract.mdのAPI定義検索
|
|
155
|
-
2. 関連Unit特定
|
|
156
|
-
3. 以降同様
|
|
157
|
-
```
|
|
158
|
-
|
|
159
|
-
### パターン3: 技術タスク指定
|
|
160
|
-
```
|
|
161
|
-
1. constructionディレクトリから関連コンテキスト特定
|
|
162
|
-
2. Unit仕様確認
|
|
163
|
-
3. 既存コード確認
|
|
164
|
-
```
|
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: pointer-validator
|
|
3
|
-
kind: advisory
|
|
4
|
-
description: 設計文書内のファイルポインタ(相対パス参照)の有効性を検証するスキル(L4バリデータ拡張)。`phasegate validate-pointers` CLIを使い、ドキュメント内で参照されているファイルパスが実際に存在するかチェックする。使用タイミング: 「ドキュメントのリンク切れを確認して」「ポインタ検証を実行して」「broken pointer を探して」「設計文書の参照が正しいか確認して」など。
|
|
5
|
-
model: sonnet
|
|
6
|
-
review: opus
|
|
7
|
-
languages: [typescript]
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
# Pointer Validator
|
|
11
|
-
|
|
12
|
-
## 目的
|
|
13
|
-
|
|
14
|
-
設計文書内のファイルパス参照(ポインタ)の有効性を検証するスキル。
|
|
15
|
-
`phasegate validate-pointers` CLIをラップし、broken pointer を検出・修正案を提示する。
|
|
16
|
-
|
|
17
|
-
## 入力
|
|
18
|
-
|
|
19
|
-
- 対象ディレクトリ: `--dir <path>`(デフォルト `docs/`)配下の設計文書
|
|
20
|
-
- 検証対象ポインタ: Markdown `[text](path)` リンク / `@file:` `@ref:` / `filePath:` フィールドのパス参照(`http(s)://` URL は対象外)
|
|
21
|
-
|
|
22
|
-
## CLIの動作
|
|
23
|
-
|
|
24
|
-
`p2:validate-pointers` は以下を検出する:
|
|
25
|
-
- Markdownの `[text](path)` 形式のリンク
|
|
26
|
-
- `@file:` / `@ref:` 形式のポインタ
|
|
27
|
-
- `filePath:` YAML/JSON フィールド内のパス参照
|
|
28
|
-
- URLポインタはスキップ(`http://` / `https://` は検証対象外)
|
|
29
|
-
|
|
30
|
-
---
|
|
31
|
-
|
|
32
|
-
## ワークフロー(単一フェーズ)
|
|
33
|
-
|
|
34
|
-
このスキルは軽量チェックのため単一フェーズで実行する。
|
|
35
|
-
|
|
36
|
-
### Step 1: CLIの実行
|
|
37
|
-
|
|
38
|
-
```bash
|
|
39
|
-
npx phasegate validate-pointers
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
オプション:
|
|
43
|
-
- `--dir <path>` — スキャン対象ディレクトリ(デフォルト: `docs/`)
|
|
44
|
-
- `--fix` — 自動修正可能なポインタを修正(要確認)
|
|
45
|
-
|
|
46
|
-
### Step 2: 結果の解釈
|
|
47
|
-
|
|
48
|
-
`ValidateDocPointersOutput` の構造:
|
|
49
|
-
|
|
50
|
-
| フィールド | 意味 |
|
|
51
|
-
|-----------|------|
|
|
52
|
-
| `results[].documentPath` | ポインタを含む文書ファイル |
|
|
53
|
-
| `results[].pointerTarget` | 参照先パス |
|
|
54
|
-
| `results[].pointerType` | `file-path` / `url` |
|
|
55
|
-
| `results[].isResolvable` | 解決可能かどうか |
|
|
56
|
-
| `results[].errorMessage` | エラー内容(nullなら正常) |
|
|
57
|
-
| `summary.brokenPointers` | broken件数 |
|
|
58
|
-
| `summary.skippedUrlPointers` | URLスキップ件数 |
|
|
59
|
-
| `passed` | 全ポインタ有効ならtrue |
|
|
60
|
-
|
|
61
|
-
### Step 3: 修正戦略の判断
|
|
62
|
-
|
|
63
|
-
| broken原因 | 推奨アクション |
|
|
64
|
-
|-----------|--------------|
|
|
65
|
-
| ファイルが移動された | ポインタのパスを新パスに更新 |
|
|
66
|
-
| ファイルが削除された | ポインタを削除 or 代替ファイルに変更 |
|
|
67
|
-
| タイポ | パス修正 |
|
|
68
|
-
| 未作成ファイルへの参照 | 意図的な前方参照として `[TODO]` マーカーを追加 |
|
|
69
|
-
|
|
70
|
-
### 出力フォーマット
|
|
71
|
-
|
|
72
|
-
```markdown
|
|
73
|
-
# Pointer Validation 結果
|
|
74
|
-
|
|
75
|
-
## サマリー
|
|
76
|
-
- チェックドキュメント数: N
|
|
77
|
-
- 総ポインタ数: N
|
|
78
|
-
- broken: N / URL(スキップ): N
|
|
79
|
-
|
|
80
|
-
## Broken Pointers(要修正)
|
|
81
|
-
| 文書ファイル | 参照先 | エラー | 推奨修正 |
|
|
82
|
-
|------------|--------|--------|---------|
|
|
83
|
-
|
|
84
|
-
## 次のアクション
|
|
85
|
-
(brokenがある場合)
|
|
86
|
-
1. 上記テーブルの broken pointer を修正
|
|
87
|
-
2. `npx phasegate validate-pointers` を再実行して0件を確認
|
|
88
|
-
```
|
|
89
|
-
|
|
90
|
-
---
|
|
91
|
-
|
|
92
|
-
## 注意事項
|
|
93
|
-
|
|
94
|
-
- URL(`http://` / `https://`)は検証対象外(ネットワーク依存を避けるため)
|
|
95
|
-
- `--fix` オプションは明確な移動・リネームのみ自動修正。曖昧なケースはスキップ
|
|
96
|
-
- broken件数 > 50 の場合は `--dir` でスコープを絞って段階的に対処する
|
|
97
|
-
|
|
98
|
-
---
|
|
99
|
-
|
|
100
|
-
## 関連スキル
|
|
101
|
-
|
|
102
|
-
| スキル | 用途 |
|
|
103
|
-
|-------|------|
|
|
104
|
-
| `doc-freshness-checker` | 設計文書の鮮度チェック(セットで実行推奨) |
|
|
105
|
-
| `consistency-checker` | 文書間の内容整合性チェック |
|