create-ai-project 1.20.2 → 1.20.4
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/.claude/agents-en/acceptance-test-generator.md +3 -2
- package/.claude/agents-en/code-reviewer.md +133 -25
- package/.claude/agents-en/codebase-analyzer.md +35 -9
- package/.claude/agents-en/design-sync.md +5 -6
- package/.claude/agents-en/document-reviewer.md +2 -0
- package/.claude/agents-en/integration-test-reviewer.md +2 -2
- package/.claude/agents-en/prd-creator.md +2 -4
- package/.claude/agents-en/quality-fixer-frontend.md +1 -1
- package/.claude/agents-en/quality-fixer.md +1 -1
- package/.claude/agents-en/requirement-analyzer.md +7 -7
- package/.claude/agents-en/scope-discoverer.md +2 -2
- package/.claude/agents-en/solver.md +1 -2
- package/.claude/agents-en/task-decomposer.md +2 -2
- package/.claude/agents-en/task-executor-frontend.md +1 -1
- package/.claude/agents-en/task-executor.md +1 -1
- package/.claude/agents-en/technical-designer-frontend.md +5 -5
- package/.claude/agents-en/technical-designer.md +7 -4
- package/.claude/agents-en/ui-spec-designer.md +1 -1
- package/.claude/agents-en/work-planner.md +1 -1
- package/.claude/agents-ja/acceptance-test-generator.md +3 -2
- package/.claude/agents-ja/code-reviewer.md +133 -25
- package/.claude/agents-ja/codebase-analyzer.md +35 -9
- package/.claude/agents-ja/design-sync.md +5 -5
- package/.claude/agents-ja/document-reviewer.md +2 -0
- package/.claude/agents-ja/integration-test-reviewer.md +2 -2
- package/.claude/agents-ja/prd-creator.md +2 -4
- package/.claude/agents-ja/quality-fixer-frontend.md +1 -1
- package/.claude/agents-ja/quality-fixer.md +1 -1
- package/.claude/agents-ja/requirement-analyzer.md +7 -7
- package/.claude/agents-ja/scope-discoverer.md +2 -2
- package/.claude/agents-ja/solver.md +1 -2
- package/.claude/agents-ja/task-decomposer.md +2 -2
- package/.claude/agents-ja/task-executor-frontend.md +1 -1
- package/.claude/agents-ja/task-executor.md +1 -1
- package/.claude/agents-ja/technical-designer-frontend.md +5 -5
- package/.claude/agents-ja/technical-designer.md +7 -4
- package/.claude/agents-ja/ui-spec-designer.md +1 -1
- package/.claude/agents-ja/work-planner.md +1 -1
- package/.claude/commands-en/build.md +17 -8
- package/.claude/commands-en/front-build.md +25 -41
- package/.claude/commands-en/front-design.md +49 -17
- package/.claude/commands-en/front-plan.md +17 -10
- package/.claude/commands-en/front-review.md +37 -33
- package/.claude/commands-en/review.md +10 -5
- package/.claude/commands-ja/build.md +17 -8
- package/.claude/commands-ja/front-build.md +25 -41
- package/.claude/commands-ja/front-design.md +48 -18
- package/.claude/commands-ja/front-plan.md +22 -15
- package/.claude/commands-ja/front-review.md +37 -33
- package/.claude/commands-ja/review.md +10 -5
- package/.claude/skills-en/coding-standards/references/security-checks.md +4 -2
- package/.claude/skills-en/documentation-criteria/SKILL.md +8 -28
- package/.claude/skills-en/documentation-criteria/references/adr-template.md +5 -1
- package/.claude/skills-en/documentation-criteria/references/design-template.md +18 -8
- package/.claude/skills-en/documentation-criteria/references/plan-template.md +11 -6
- package/.claude/skills-en/documentation-criteria/references/prd-template.md +32 -10
- package/.claude/skills-en/documentation-criteria/references/task-template.md +2 -2
- package/.claude/skills-en/subagents-orchestration-guide/SKILL.md +21 -38
- package/.claude/skills-en/task-analyzer/references/skills-index.yaml +0 -2
- package/.claude/skills-ja/coding-standards/references/security-checks.md +4 -2
- package/.claude/skills-ja/documentation-criteria/SKILL.md +8 -29
- package/.claude/skills-ja/documentation-criteria/references/adr-template.md +5 -1
- package/.claude/skills-ja/documentation-criteria/references/design-template.md +18 -2
- package/.claude/skills-ja/documentation-criteria/references/plan-template.md +11 -6
- package/.claude/skills-ja/documentation-criteria/references/prd-template.md +32 -10
- package/.claude/skills-ja/documentation-criteria/references/task-template.md +2 -2
- package/.claude/skills-ja/subagents-orchestration-guide/SKILL.md +21 -36
- package/.claude/skills-ja/task-analyzer/references/skills-index.yaml +0 -2
- package/CHANGELOG.md +57 -0
- package/README.ja.md +51 -30
- package/README.md +58 -34
- package/docs/guides/en/skills-editing-guide.md +10 -0
- package/docs/guides/ja/skills-editing-guide.md +12 -2
- package/package.json +1 -1
|
@@ -4,20 +4,13 @@ description: フロントエンド実装を自律実行モードで実行
|
|
|
4
4
|
|
|
5
5
|
## オーケストレーター定義
|
|
6
6
|
|
|
7
|
-
**コアアイデンティティ**:
|
|
8
|
-
|
|
9
|
-
**実行方法**:
|
|
10
|
-
- タスク分解 → task-decomposerが実行
|
|
11
|
-
- フロントエンド実装 → task-executor-frontendが実行
|
|
12
|
-
- 品質チェックと修正 → quality-fixer-frontendが実行
|
|
13
|
-
- コミット → オーケストレーター(Bashツール)
|
|
14
|
-
|
|
15
|
-
オーケストレーターはサブエージェントを呼び出し、構造化JSONを渡します。
|
|
7
|
+
**コアアイデンティティ**: 「私はオーケストレーターである。」(subagents-orchestration-guideスキル参照)
|
|
16
8
|
|
|
17
9
|
**実行プロトコル**:
|
|
18
|
-
1. **全作業をAgentツールでサブエージェントに委譲** —
|
|
10
|
+
1. **全作業をAgentツールでサブエージェントに委譲** — サブエージェントの呼び出し、成果物パスの受け渡し、結果の報告(許可ツール: subagents-orchestration-guideスキル「オーケストレーターの許可ツール」参照)
|
|
19
11
|
2. **4ステップサイクルに厳密に従う**: task-executor-frontend → エスカレーションチェック → quality-fixer-frontend → commit
|
|
20
12
|
3. **自律実行モード移行**: ユーザーの実行指示とタスクファイルの存在をもってバッチ承認とする
|
|
13
|
+
4. **スコープ**: 全タスクのコミット完了またはエスカレーションで責務完了
|
|
21
14
|
|
|
22
15
|
**重要**: 全てのコミット前にquality-fixer-frontendを実行。
|
|
23
16
|
|
|
@@ -69,7 +62,7 @@ Agentツールでtask-decomposerを呼び出す:
|
|
|
69
62
|
! ls -la docs/plans/tasks/*.md | head -10
|
|
70
63
|
```
|
|
71
64
|
|
|
72
|
-
|
|
65
|
+
**フロー**: タスク生成 → 自律実行(この順序で実行)
|
|
73
66
|
|
|
74
67
|
## 実行前チェックリスト
|
|
75
68
|
|
|
@@ -79,40 +72,22 @@ Agentツールでtask-decomposerを呼び出す:
|
|
|
79
72
|
- コミット機能が利用不可 → 自律実行モード前にエスカレーション
|
|
80
73
|
- その他の環境(テスト、品質ツール) → サブエージェントがエスカレーション
|
|
81
74
|
|
|
82
|
-
## タスク実行サイクル(4ステップサイクル)
|
|
83
|
-
|
|
75
|
+
## タスク実行サイクル(4ステップサイクル)
|
|
84
76
|
**必須実行サイクル**: `task-executor-frontend → エスカレーションチェック → quality-fixer-frontend → commit`
|
|
85
77
|
|
|
86
|
-
### サブエージェント呼び出し方法
|
|
87
|
-
Agentツールを使用してサブエージェントを呼び出す:
|
|
88
|
-
- `subagent_type`: エージェント名
|
|
89
|
-
- `description`: タスクの簡潔な説明(3-5語)
|
|
90
|
-
- `prompt`: 具体的な指示内容
|
|
91
|
-
|
|
92
|
-
### 構造化レスポンス仕様
|
|
93
|
-
各サブエージェントはJSON形式で応答:
|
|
94
|
-
- **task-executor-frontend**: status, filesModified, testsAdded, requiresTestReview, readyForQualityCheck
|
|
95
|
-
- **integration-test-reviewer**: status (approved/needs_revision/blocked), requiredFixes
|
|
96
|
-
- **quality-fixer-frontend**: status, checksPerformed, fixesApplied, approved
|
|
97
|
-
|
|
98
|
-
### 各タスクの実行フロー
|
|
99
|
-
|
|
100
78
|
各タスクで必須:
|
|
101
|
-
|
|
102
79
|
1. **TaskCreateでタスク登録**: 作業ステップを登録。必ず含める: 最初に「スキル制約の確認」、最後に「スキル忠実度の検証」
|
|
103
|
-
2. **task-executor-frontend
|
|
104
|
-
- 呼び出し例: `subagent_type: "task-executor-frontend"`, `description: "タスク実行"`, `prompt: "タスクファイル: docs/plans/tasks/[ファイル名].md 実装を実行"`
|
|
80
|
+
2. **Agent tool** (subagent_type: "task-executor-frontend") → タスクファイルパスをpromptに渡し、構造化レスポンスを受け取る
|
|
105
81
|
3. **task-executor-frontendレスポンスチェック**:
|
|
106
82
|
- `status: "escalation_needed"` または `"blocked"` → 停止してユーザーにエスカレーション
|
|
107
83
|
- `requiresTestReview` が `true` → **integration-test-reviewer**を実行
|
|
108
84
|
- `needs_revision` → `requiredFixes`を添えてステップ2に戻る
|
|
109
85
|
- `approved` → ステップ4へ
|
|
110
86
|
- `readyForQualityCheck: true` → ステップ4へ
|
|
111
|
-
4. **quality-fixer-frontend実行**:
|
|
112
|
-
|
|
113
|
-
5. **コミット実行**: `approved: true`確認後、即座にgit commitを実行。`changeSummary`をコミットメッセージに使用。
|
|
87
|
+
4. **quality-fixer-frontend実行**: 全品質チェックと修正を実行
|
|
88
|
+
5. **承認後コミット**: quality-fixer-frontendの`approved: true`確認後 → git commitを実行
|
|
114
89
|
|
|
115
|
-
**重要**:
|
|
90
|
+
**重要**: 全てのサブエージェントレスポンスのstatusフィールドをパースし、4ステップサイクルの対応ブランチを実行。quality-fixer-frontendが`approved: true`を返すまで次のタスクに進まない。
|
|
116
91
|
|
|
117
92
|
## サブエージェント呼び出し時の制約
|
|
118
93
|
|
|
@@ -128,14 +103,23 @@ Agentツールを使用してサブエージェントを呼び出す:
|
|
|
128
103
|
|
|
129
104
|
承認ステータスを確認してから進む。確認後、自律実行モードを開始。要件変更を検出したら即座に停止。
|
|
130
105
|
|
|
131
|
-
##
|
|
106
|
+
## 実装後検証(全タスク完了後)
|
|
107
|
+
|
|
108
|
+
全タスクサイクル完了後、完了レポートの前に検証エージェントを**並列実行**:
|
|
109
|
+
|
|
110
|
+
1. **両方を並列で実行** (Agent tool):
|
|
111
|
+
- code-verifier (subagent_type: "code-verifier") → `doc_type: design-doc`、Design Docパス、`code_paths`: 実装ファイルリスト(`git diff --name-only main...HEAD`)
|
|
112
|
+
- security-reviewer (subagent_type: "security-reviewer") → Design Docパス、実装ファイルリスト
|
|
113
|
+
|
|
114
|
+
2. **結果の統合** — 合格/不合格の基準はsubagents-orchestration-guideの実装後検証セクション参照。統合検証レポートをユーザーに提示。
|
|
115
|
+
|
|
116
|
+
3. **修正サイクル**(いずれかの検証エージェントが不合格の場合、最大2回):
|
|
117
|
+
- 全ての対応可能な検出事項を1つのタスクファイルに統合
|
|
118
|
+
- task-executor-frontendで統合修正を実行 → quality-fixer-frontend
|
|
119
|
+
- 不合格の検証エージェントのみ再実行
|
|
120
|
+
- 2回のサイクル後も不合格が残る場合 → 残存する検出事項とともにユーザーにエスカレーション
|
|
132
121
|
|
|
133
|
-
|
|
134
|
-
1. **Agent tool** (subagent_type: "security-reviewer") → Design Docパスと実装ファイルリストを渡す
|
|
135
|
-
2. レスポンスを確認:
|
|
136
|
-
- `approved` または `approved_with_notes` → 完了レポートへ(notesがあれば含める)
|
|
137
|
-
- `needs_revision` → task-executor-frontendで`requiredFixes`を実行、quality-fixer-frontend実行後、security-reviewerを再実行
|
|
138
|
-
- `blocked` → ユーザーにエスカレーション
|
|
122
|
+
4. **全て合格** → 完了レポートへ
|
|
139
123
|
|
|
140
124
|
## 出力例
|
|
141
125
|
フロントエンド実装フェーズ完了。
|
|
@@ -6,26 +6,42 @@ description: 要件分析からフロントエンド設計ドキュメント作
|
|
|
6
6
|
|
|
7
7
|
## オーケストレーター定義
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
-
|
|
15
|
-
-
|
|
16
|
-
|
|
17
|
-
|
|
9
|
+
**コアアイデンティティ**: 「私はオーケストレーターである。」(subagents-orchestration-guideスキル参照)
|
|
10
|
+
|
|
11
|
+
**実行プロトコル**:
|
|
12
|
+
1. **全ての作業をサブエージェントに委譲** — サブエージェントを呼び出し、データを橋渡しし、結果を報告する
|
|
13
|
+
2. **以下のフロントエンド設計フローに従う**(このコマンドは中規模/大規模のフロントエンドを対象。UI Specはコードベース分析の前に作成する — コンポーネント構造が技術設計に反映されるため):
|
|
14
|
+
- 実行: requirement-analyzer → ui-spec-designer → codebase-analyzer → technical-designer-frontend → code-verifier → document-reviewer → design-sync
|
|
15
|
+
- **`[停止: ...]`マーカーごとに停止** → ユーザー承認を待つ
|
|
16
|
+
3. **スコープ**: 設計ドキュメントの承認をもって完了
|
|
17
|
+
|
|
18
|
+
**重要**: document-reviewer、design-sync、subagents-orchestration-guideスキルフローで定義された全ての停止ポイントを実行すること — 各ステップが品質ゲートとして機能する。スキップは検出されない不整合のリスクにつながる。
|
|
19
|
+
|
|
20
|
+
## ワークフロー概要
|
|
21
|
+
|
|
22
|
+
```
|
|
23
|
+
要件 → requirement-analyzer → [停止: 規模判定]
|
|
24
|
+
↓
|
|
25
|
+
ui-spec-designer → [停止: UI Spec承認]
|
|
26
|
+
↓
|
|
27
|
+
codebase-analyzer → technical-designer-frontend
|
|
28
|
+
↓
|
|
29
|
+
code-verifier → document-reviewer
|
|
30
|
+
↓
|
|
31
|
+
design-sync → [停止: 設計承認]
|
|
32
|
+
```
|
|
18
33
|
|
|
19
34
|
## スコープ境界
|
|
20
35
|
|
|
21
36
|
**実行内容**:
|
|
22
37
|
- requirement-analyzerによる要件分析
|
|
23
|
-
- codebase-analyzer
|
|
38
|
+
- codebase-analyzerによるコードベース分析(技術設計の前に実施)
|
|
24
39
|
- ui-spec-designerによるUI Spec作成(プロトタイプコード確認を含む)
|
|
25
40
|
- ADR作成(アーキテクチャ変更、新技術、データフロー変更がある場合)
|
|
26
41
|
- technical-designer-frontendによるDesign Doc作成
|
|
27
42
|
- code-verifierによるDesign Doc検証(ドキュメントレビューの前に実施)
|
|
28
43
|
- document-reviewerによるドキュメントレビュー
|
|
44
|
+
- design-syncによるDesign Doc横断整合性検証
|
|
29
45
|
|
|
30
46
|
**責務境界**: このコマンドはフロントエンド設計ドキュメント(UI Spec/ADR/Design Doc)の承認で責務完了。作業計画以降はスコープ外。
|
|
31
47
|
|
|
@@ -39,7 +55,7 @@ description: 要件分析からフロントエンド設計ドキュメント作
|
|
|
39
55
|
- 期待する成果と成功基準
|
|
40
56
|
- 既存システムとの関係
|
|
41
57
|
|
|
42
|
-
|
|
58
|
+
ユーザーが上記3つの質問に回答した後、設計スコープ内で以下のプロセスを実行する。codebase-analyzerとcode-verifierの呼び出しはsubagents-orchestration-guideのCall Examplesに従う。
|
|
43
59
|
- Agentツールで**requirement-analyzer**を呼び出す
|
|
44
60
|
- `subagent_type: "requirement-analyzer"`
|
|
45
61
|
- `description: "要件分析"`
|
|
@@ -61,7 +77,7 @@ UI Specを作成:
|
|
|
61
77
|
- PRDあり+プロトタイプなし: `prompt: "[パス]のPRDからUI Specを作成。プロトタイプコードなし。"`
|
|
62
78
|
- PRDなし(中規模): `prompt: "以下の要件に基づいてUI Specを作成: [requirement-analyzerの出力を渡す]。PRDなし。"`(プロトタイプパスがあれば追加)
|
|
63
79
|
- **document-reviewer**でUI Specを検証
|
|
64
|
-
- `subagent_type: "document-reviewer"`, `description: "UI Specレビュー"`, `prompt: "doc_type: UISpec target: [ui-specパス]
|
|
80
|
+
- `subagent_type: "document-reviewer"`, `description: "UI Specレビュー"`, `prompt: "doc_type: UISpec target: [ui-specパス] 整合性と完全性をレビュー"`
|
|
65
81
|
- **[停止]**: UI Specをユーザーに提示し承認を取得
|
|
66
82
|
|
|
67
83
|
### Step 3: 設計ドキュメント作成フェーズ
|
|
@@ -69,15 +85,29 @@ UI Specを作成:
|
|
|
69
85
|
- Agentツールで**codebase-analyzer**を呼び出す
|
|
70
86
|
- `subagent_type: "codebase-analyzer"`, `description: "コードベース分析"`, `prompt: "requirement_analysis: [Step 1のJSON]. requirements: [ユーザー要件]. フロントエンド設計ガイダンスのため既存コードベースを分析。"`
|
|
71
87
|
|
|
72
|
-
|
|
88
|
+
規模判定に応じて適切な設計ドキュメントを作成。technical-designer-frontendは技術選択・データフロー設計について少なくとも2つの選択肢をトレードオフとともに提示:
|
|
73
89
|
- Agentツールで**technical-designer-frontend**を呼び出す
|
|
74
|
-
- ADRの場合: `subagent_type: "technical-designer-frontend"`, `description: "ADR作成"`, `prompt: "[技術決定]のADR
|
|
75
|
-
- Design Docの場合: `subagent_type: "technical-designer-frontend"`, `description: "Design Doc作成"`, `prompt: "要件に基づいてDesign Docを作成。コードベース分析: [codebase-analyzerのJSON]。UI Specは[ui-specパス]。UI Spec
|
|
90
|
+
- ADRの場合: `subagent_type: "technical-designer-frontend"`, `description: "ADR作成"`, `prompt: "[技術決定]のADRを作成。少なくとも2つの選択肢をトレードオフとともに提示。"`
|
|
91
|
+
- Design Docの場合: `subagent_type: "technical-designer-frontend"`, `description: "Design Doc作成"`, `prompt: "要件に基づいてDesign Docを作成。コードベース分析: [codebase-analyzerのJSON]。UI Specは[ui-specパス]。UI Specのコンポーネント構造と状態設計を継承。少なくとも2つのアーキテクチャ選択肢をトレードオフとともに提示。"`
|
|
76
92
|
- **(Design Docのみ)** **code-verifier**でDesign Docを既存コードに対して検証。ADRの場合はスキップ。
|
|
77
|
-
- `subagent_type: "code-verifier"`, `description: "Design Doc検証"`, `prompt: "doc_type: design-doc document_path: [Design Docパス] Design Docを既存コードに対して検証。"`
|
|
93
|
+
- `subagent_type: "code-verifier"`, `description: "Design Doc検証"`, `prompt: "doc_type: design-doc document_path: [Design Docパス] mode: pre-implementation (code_paths省略 — verifierがドキュメントからスコープを発見). Design Docを既存コードに対して検証。"`
|
|
78
94
|
- **document-reviewer**で整合性検証(Design Docの場合はcode-verifier結果を渡す。ADRの場合は省略)
|
|
79
|
-
- `subagent_type: "document-reviewer"`, `description: "ドキュメントレビュー"`, `prompt: "doc_type: DesignDoc target: [ドキュメントパス] mode: composite code_verification: [code-verifierのJSON](Design Docのみ)
|
|
80
|
-
|
|
95
|
+
- `subagent_type: "document-reviewer"`, `description: "ドキュメントレビュー"`, `prompt: "doc_type: DesignDoc target: [ドキュメントパス] mode: composite code_verification: [code-verifierのJSON](Design Docのみ) 整合性と完全性をレビュー。"`
|
|
96
|
+
### Step 4: 設計整合性検証
|
|
97
|
+
- Agentツールで**design-sync**を呼び出す
|
|
98
|
+
- `subagent_type: "design-sync"`, `description: "設計整合性チェック"`, `prompt: "docs/design/配下の全Design Doc間の整合性をチェック。矛盾と重複を報告。"`
|
|
99
|
+
- **[停止]**: 設計ドキュメントとdesign-sync結果を提示し、ユーザー承認を取得
|
|
100
|
+
|
|
101
|
+
## 完了条件
|
|
102
|
+
|
|
103
|
+
- [ ] requirement-analyzerを実行し規模を判定
|
|
104
|
+
- [ ] codebase-analyzerを実行し結果をtechnical-designer-frontendに渡した
|
|
105
|
+
- [ ] ui-spec-designerでUI Specを作成(該当時)
|
|
106
|
+
- [ ] technical-designer-frontendで適切な設計ドキュメント(ADRまたはDesign Doc)を作成
|
|
107
|
+
- [ ] Design Docに対してcode-verifierを実行し結果をdocument-reviewerに渡した(ADRのみの場合はスキップ)
|
|
108
|
+
- [ ] document-reviewerを実行しフィードバックに対応
|
|
109
|
+
- [ ] design-syncで整合性検証を実行
|
|
110
|
+
- [ ] 設計ドキュメントのユーザー承認を取得
|
|
81
111
|
|
|
82
112
|
## 出力例
|
|
83
113
|
フロントエンド設計フェーズ完了。
|
|
@@ -6,13 +6,16 @@ description: 設計ドキュメントからフロントエンド作業計画書
|
|
|
6
6
|
|
|
7
7
|
## オーケストレーター定義
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
**コアアイデンティティ**: 「私はオーケストレーターである。」(subagents-orchestration-guideスキル参照)
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
11
|
+
**実行プロトコル**:
|
|
12
|
+
1. **全ての作業をサブエージェントに委譲** — サブエージェントを呼び出し、データを橋渡しし、結果を報告する
|
|
13
|
+
2. **subagents-orchestration-guideスキルの計画フローに従う**:
|
|
14
|
+
- 以下に定義されたステップを実行
|
|
15
|
+
- **完了前に停止し、計画内容の承認を取得する**
|
|
16
|
+
3. **スコープ**: 下記スコープ境界を参照
|
|
14
17
|
|
|
15
|
-
|
|
18
|
+
**重要**: work-plannerの前に必ずacceptance-test-generatorを実行すること — テストスケルトンはsubagents-orchestration-guideの中規模/大規模フローで必須の入力。
|
|
16
19
|
|
|
17
20
|
## スコープ境界
|
|
18
21
|
|
|
@@ -24,29 +27,33 @@ description: 設計ドキュメントからフロントエンド作業計画書
|
|
|
24
27
|
|
|
25
28
|
**責務境界**: このコマンドは作業計画書承認で責務完了。
|
|
26
29
|
|
|
27
|
-
|
|
30
|
+
以下の計画プロセスに従う:
|
|
28
31
|
|
|
29
32
|
## 実行プロセス
|
|
30
33
|
|
|
31
|
-
### 1
|
|
32
|
-
! ls -la docs/design/*.md | head -10
|
|
33
|
-
- 設計ドキュメントの存在を確認、なければユーザーに通知
|
|
34
|
-
- 複数ある場合は選択肢を提示($ARGUMENTSで指定可能)
|
|
34
|
+
### Step 1: 設計ドキュメント選択
|
|
35
|
+
! ls -la docs/design/*.md | head -10
|
|
36
|
+
- 設計ドキュメントの存在を確認、なければユーザーに通知
|
|
37
|
+
- 複数ある場合は選択肢を提示($ARGUMENTSで指定可能)
|
|
35
38
|
|
|
36
|
-
### 2
|
|
37
|
-
Agent
|
|
39
|
+
### Step 2: テストスケルトン生成
|
|
40
|
+
Agentツールでacceptance-test-generatorを呼び出す:
|
|
38
41
|
- `subagent_type`: "acceptance-test-generator"
|
|
39
42
|
- `description`: "テストスケルトン生成"
|
|
40
43
|
- UI Specあり: `prompt: "[パス]のDesign Docからテストスケルトンを生成。UI Specは[ui-specパス]。"`
|
|
41
44
|
- UI Specなし: `prompt: "[パス]のDesign Docからテストスケルトンを生成。"`
|
|
42
45
|
|
|
43
|
-
|
|
44
|
-
|
|
46
|
+
統合テストファイルパスとE2Eテストファイルパスを、subagents-orchestration-guideの「acceptance-test-generator → work-planner」セクションに従いwork-plannerに渡す。
|
|
47
|
+
|
|
48
|
+
### Step 3: 作業計画書作成
|
|
49
|
+
Agentツールでwork-plannerを呼び出す:
|
|
45
50
|
- `subagent_type`: "work-planner"
|
|
46
51
|
- `description`: "作業計画書作成"
|
|
47
52
|
- `prompt`: "[パス]のDesign Docから作業計画を作成。統合テストファイル: [ステップ2の統合テストパス]。E2Eテストファイル: [ステップ2のE2Eテストパス]。統合テストは各フェーズ実装と同時に作成、E2Eテストは最終フェーズでのみ実行。"
|
|
48
53
|
|
|
49
|
-
|
|
54
|
+
- subagents-orchestration-guideのPrompt Construction Ruleに従い追加パラメータを構成
|
|
55
|
+
- 作業計画書をユーザーに提示しレビューを受ける。変更要望があればwork-plannerを修正パラメータで再実行
|
|
56
|
+
- スコープが不明確なステップや外部依存があるステップを強調し、ユーザーに確認を求める
|
|
50
57
|
|
|
51
58
|
**スコープ**: 作業計画書作成と計画内容の承認取得まで。
|
|
52
59
|
|
|
@@ -4,24 +4,25 @@ description: Design Doc準拠検証とセキュリティ検証、必要に応じ
|
|
|
4
4
|
|
|
5
5
|
**コマンドコンテキスト**: React/TypeScriptフロントエンド向け実装後品質保証コマンド
|
|
6
6
|
|
|
7
|
-
##
|
|
7
|
+
## オーケストレーター定義
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
- セキュリティ検証 -> security-reviewerが実行
|
|
11
|
-
- ルール分析 -> rule-advisorが実行
|
|
12
|
-
- 修正実装 -> task-executor-frontendが実行
|
|
13
|
-
- 品質チェック -> quality-fixer-frontendが実行
|
|
14
|
-
- 再検証 -> code-reviewer / security-reviewerが実行
|
|
9
|
+
**コアアイデンティティ**: 「私はオーケストレーターである。」(subagents-orchestration-guideスキル参照)
|
|
15
10
|
|
|
16
|
-
|
|
11
|
+
**初回アクション**: 実行前にTaskCreateでStep 1-11を登録する。
|
|
17
12
|
|
|
18
|
-
|
|
13
|
+
## 実行方法
|
|
14
|
+
|
|
15
|
+
- 準拠検証 → code-reviewerが実行
|
|
16
|
+
- セキュリティ検証 → security-reviewerが実行
|
|
17
|
+
- 修正実装 → task-executor-frontendが実行
|
|
18
|
+
- 品質チェック → quality-fixer-frontendが実行
|
|
19
|
+
- 再検証 → code-reviewer / security-reviewerが実行
|
|
19
20
|
|
|
20
|
-
|
|
21
|
+
Design Doc(省略時は直近のもの): $ARGUMENTS
|
|
21
22
|
|
|
22
23
|
## 実行フロー
|
|
23
24
|
|
|
24
|
-
### 1
|
|
25
|
+
### Step 1: 前提条件チェック
|
|
25
26
|
```bash
|
|
26
27
|
# Design Docを特定
|
|
27
28
|
ls docs/design/*.md | grep -v template | tail -1
|
|
@@ -30,15 +31,15 @@ ls docs/design/*.md | grep -v template | tail -1
|
|
|
30
31
|
git diff --name-only main...HEAD
|
|
31
32
|
```
|
|
32
33
|
|
|
33
|
-
### 2
|
|
34
|
+
### Step 2: code-reviewer実行
|
|
34
35
|
Agent toolでcode-reviewerを呼び出す:
|
|
35
36
|
- `subagent_type`: "code-reviewer"
|
|
36
37
|
- `description`: "コード準拠レビュー"
|
|
37
|
-
- `prompt`: "Design Doc: [path]. Implementation files: [git diff file list]. Review mode: full. Design Doc
|
|
38
|
+
- `prompt`: "Design Doc: [path]. Implementation files: [git diff file list]. Review mode: full. Design Doc準拠を検証し、構造化JSONレポートを返却。"
|
|
38
39
|
|
|
39
40
|
**出力を保存**: `$STEP_2_OUTPUT`
|
|
40
41
|
|
|
41
|
-
### 3
|
|
42
|
+
### Step 3: security-reviewer実行
|
|
42
43
|
Agent toolでsecurity-reviewerを呼び出す:
|
|
43
44
|
- `subagent_type`: "security-reviewer"
|
|
44
45
|
- `description`: "セキュリティレビュー"
|
|
@@ -46,7 +47,7 @@ Agent toolでsecurity-reviewerを呼び出す:
|
|
|
46
47
|
|
|
47
48
|
**出力を保存**: `$STEP_3_OUTPUT`
|
|
48
49
|
|
|
49
|
-
### 4
|
|
50
|
+
### Step 4: 判定と対応
|
|
50
51
|
|
|
51
52
|
**security-reviewerが`blocked`を返した場合**: 即座に停止。blockedの検出結果を報告しユーザーにエスカレーション。修正ステップには進まない。
|
|
52
53
|
|
|
@@ -63,10 +64,15 @@ Agent toolでsecurity-reviewerを呼び出す:
|
|
|
63
64
|
```
|
|
64
65
|
Code Compliance: [code-reviewerのcomplianceRate]
|
|
65
66
|
Verdict: [code-reviewerのverdict]
|
|
67
|
+
Identifier Match Rate: [code-reviewerのidentifierMatchRate]
|
|
66
68
|
Acceptance Criteria:
|
|
67
|
-
- [fulfilled] [item]
|
|
69
|
+
- [fulfilled] [item] (confidence: [high/medium/low])
|
|
68
70
|
- [partially_fulfilled] [item]: [gap] — [suggestion]
|
|
69
71
|
- [unfulfilled] [item]: [gap] — [suggestion]
|
|
72
|
+
Identifier Mismatches:
|
|
73
|
+
- [identifier]: DD=[designDocValue] Code=[codeValue] at [location]
|
|
74
|
+
Quality Findings:
|
|
75
|
+
- [category] [location]: [description] — [rationale]
|
|
70
76
|
|
|
71
77
|
Security Review: [security-reviewerのstatus]
|
|
72
78
|
Findings by category:
|
|
@@ -79,46 +85,44 @@ Security Review: [security-reviewerのstatus]
|
|
|
79
85
|
修正を実行しますか? (y/n):
|
|
80
86
|
```
|
|
81
87
|
|
|
82
|
-
両方合格でユーザーが`n`を選択:
|
|
88
|
+
両方合格でユーザーが`n`を選択: Steps 5-10をスキップし、Step 11へ。
|
|
83
89
|
|
|
84
|
-
|
|
90
|
+
### Step 5: タスクテンプレートの読み込み
|
|
85
91
|
|
|
86
|
-
|
|
92
|
+
documentation-criteriaスキルを読み込み、Step 6用のタスクファイルテンプレート(references/task-template.md)を取得。
|
|
87
93
|
|
|
88
|
-
###
|
|
89
|
-
Agent toolでrule-advisorを呼び出す:
|
|
90
|
-
- `subagent_type`: "rule-advisor"
|
|
91
|
-
- `description`: "修正アプローチの分析"
|
|
92
|
-
- `prompt`: "Task: レビュー検出結果の修正。Code issues: $STEP_2_OUTPUT. Security findings: $STEP_3_OUTPUT. 修正の本質を分析し適切なルールを選択。"
|
|
94
|
+
### Step 6: タスクファイル作成
|
|
93
95
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
+
`docs/plans/tasks/review-fixes-YYYYMMDD.md` にタスクファイルを作成。
|
|
97
|
+
コード準拠の問題とセキュリティのrequiredFixesの両方を含める。
|
|
96
98
|
|
|
97
|
-
### 7
|
|
99
|
+
### Step 7: 修正実行
|
|
98
100
|
Agent toolでtask-executor-frontendを呼び出す:
|
|
99
101
|
- `subagent_type`: "task-executor-frontend"
|
|
100
102
|
- `description`: "レビュー修正の実行"
|
|
101
103
|
- `prompt`: "Task file: docs/plans/tasks/review-fixes-YYYYMMDD.md. 段階的修正を適用(5ファイルで停止)。"
|
|
102
104
|
|
|
103
|
-
### 8
|
|
105
|
+
### Step 8: 品質チェック
|
|
104
106
|
Agent toolでquality-fixer-frontendを呼び出す:
|
|
105
107
|
- `subagent_type`: "quality-fixer-frontend"
|
|
106
108
|
- `description`: "品質ゲートチェック"
|
|
107
109
|
- `prompt`: "修正ファイルの品質ゲート通過を確認。"
|
|
108
110
|
|
|
109
|
-
### 9
|
|
111
|
+
### Step 9: code-reviewer再検証
|
|
112
|
+
|
|
110
113
|
Agent toolでcode-reviewerを呼び出す:
|
|
111
114
|
- `subagent_type`: "code-reviewer"
|
|
112
115
|
- `description`: "準拠の再検証"
|
|
113
|
-
- `prompt`: "修正後のDesign Doc
|
|
116
|
+
- `prompt`: "修正後のDesign Doc準拠を再検証。Design Doc: [path]. Implementation files: [file list]. 前回の準拠問題: $STEP_2_OUTPUT。各問題が解決されたことを確認。"
|
|
114
117
|
|
|
115
|
-
### 10
|
|
116
|
-
|
|
118
|
+
### Step 10: security-reviewer再検証
|
|
119
|
+
|
|
120
|
+
Agent toolでsecurity-reviewerを呼び出す(セキュリティ修正が実行された場合のみ):
|
|
117
121
|
- `subagent_type`: "security-reviewer"
|
|
118
122
|
- `description`: "セキュリティの再検証"
|
|
119
123
|
- `prompt`: "修正後のセキュリティを再検証。前回の検出結果: $STEP_3_OUTPUT。Design Doc: [path]. Implementation files: [file list]。"
|
|
120
124
|
|
|
121
|
-
### 最終レポート
|
|
125
|
+
### Step 11: 最終レポート
|
|
122
126
|
```
|
|
123
127
|
Code Compliance:
|
|
124
128
|
初回: [X]%
|
|
@@ -33,7 +33,7 @@ git diff --name-only main...HEAD
|
|
|
33
33
|
Agent toolでcode-reviewerを呼び出す:
|
|
34
34
|
- `subagent_type`: "code-reviewer"
|
|
35
35
|
- `description`: "コード準拠レビュー"
|
|
36
|
-
- `prompt`: "Design Doc: [path]. Implementation files: [git diff file list]. Review mode: full. Design Doc
|
|
36
|
+
- `prompt`: "Design Doc: [path]. Implementation files: [git diff file list]. Review mode: full. Design Doc準拠を検証し、構造化JSONレポートを返却。"
|
|
37
37
|
|
|
38
38
|
**出力を保存**: `$STEP_2_OUTPUT`
|
|
39
39
|
|
|
@@ -62,10 +62,15 @@ Agent toolでsecurity-reviewerを呼び出す:
|
|
|
62
62
|
```
|
|
63
63
|
Code Compliance: [code-reviewerのcomplianceRate]
|
|
64
64
|
Verdict: [code-reviewerのverdict]
|
|
65
|
+
Identifier Match Rate: [code-reviewerのidentifierMatchRate]
|
|
65
66
|
Acceptance Criteria:
|
|
66
|
-
- [fulfilled] [item]
|
|
67
|
+
- [fulfilled] [item] (confidence: [high/medium/low])
|
|
67
68
|
- [partially_fulfilled] [item]: [gap] — [suggestion]
|
|
68
69
|
- [unfulfilled] [item]: [gap] — [suggestion]
|
|
70
|
+
Identifier Mismatches:
|
|
71
|
+
- [identifier]: DD=[designDocValue] Code=[codeValue] at [location]
|
|
72
|
+
Quality Findings:
|
|
73
|
+
- [category] [location]: [description] — [rationale]
|
|
69
74
|
|
|
70
75
|
Security Review: [security-reviewerのstatus]
|
|
71
76
|
Findings by category:
|
|
@@ -80,9 +85,9 @@ Security Review: [security-reviewerのstatus]
|
|
|
80
85
|
|
|
81
86
|
両方合格でユーザーが`n`を選択: Steps 5-10をスキップし、Step 11へ。
|
|
82
87
|
|
|
83
|
-
### 5.
|
|
88
|
+
### 5. タスクテンプレートの読み込み
|
|
84
89
|
|
|
85
|
-
|
|
90
|
+
documentation-criteriaスキルを読み込み、Step 6用のタスクファイルテンプレート(references/task-template.md)を取得。
|
|
86
91
|
|
|
87
92
|
### 6. タスクファイル作成
|
|
88
93
|
|
|
@@ -108,7 +113,7 @@ Agent toolでquality-fixerを呼び出す:
|
|
|
108
113
|
Agent toolでcode-reviewerを呼び出す:
|
|
109
114
|
- `subagent_type`: "code-reviewer"
|
|
110
115
|
- `description`: "準拠の再検証"
|
|
111
|
-
- `prompt`: "修正後のDesign Doc
|
|
116
|
+
- `prompt`: "修正後のDesign Doc準拠を再検証。Design Doc: [path]. Implementation files: [file list]. 前回の準拠問題: $STEP_2_OUTPUT。各問題が解決されたことを確認。"
|
|
112
117
|
|
|
113
118
|
### 10. security-reviewer再検証
|
|
114
119
|
|
|
@@ -49,12 +49,14 @@ Sources: OWASP Top 10:2025, DryRun Agentic Coding Security Report (2026-03)
|
|
|
49
49
|
- Endpoints or route handlers defined without authentication middleware
|
|
50
50
|
- Resource access operations (read, update, delete) without authorization verification
|
|
51
51
|
- Administrative or destructive operations accessible without elevated permissions
|
|
52
|
-
-
|
|
52
|
+
- AI-generated code frequently omits authentication middleware and authorization checks — flag every route handler and resource access operation for explicit verification during review
|
|
53
|
+
- Detection approach: search for route/endpoint handler definitions that lack authentication middleware, and resource operations (read, update, delete) without authorization checks in the call chain
|
|
53
54
|
|
|
54
55
|
### Mishandling of Exceptional Conditions (OWASP A10:2025)
|
|
55
56
|
- Error handlers that expose internal system details (stack traces, database errors, file paths) in responses
|
|
56
|
-
- Error handlers that
|
|
57
|
+
- Error handlers that grant access, skip authentication, or bypass authorization when an exception occurs (fail-open behavior)
|
|
57
58
|
- Missing error handling on security-critical operations (authentication, authorization, cryptographic operations)
|
|
59
|
+
- Detection approach: search for catch/error handler blocks that return stack traces, database error messages, or file paths in responses; search for catch blocks that call next() or return success without re-validating security state
|
|
58
60
|
|
|
59
61
|
### Software Supply Chain Patterns (OWASP A03:2025)
|
|
60
62
|
- Dependencies imported without version pinning
|
|
@@ -50,18 +50,14 @@ description: Guides PRD, ADR, Design Doc, and Work Plan creation. Use when creat
|
|
|
50
50
|
|
|
51
51
|
**Includes**:
|
|
52
52
|
- Business requirements and user value
|
|
53
|
-
- Success metrics and KPIs (
|
|
53
|
+
- Success metrics and KPIs (each metric specifies a numeric target, measurement method, and timeframe)
|
|
54
54
|
- User stories and use cases
|
|
55
55
|
- MoSCoW prioritization (Must/Should/Could/Won't)
|
|
56
56
|
- MVP and Future phase separation
|
|
57
57
|
- User journey diagram (required)
|
|
58
58
|
- Scope boundary diagram (required)
|
|
59
59
|
|
|
60
|
-
**
|
|
61
|
-
- Technical implementation details (->Design Doc)
|
|
62
|
-
- Technical selection rationale (->ADR)
|
|
63
|
-
- **Implementation phases** (->Work Plan)
|
|
64
|
-
- **Task breakdown** (->Work Plan)
|
|
60
|
+
**Scope**: Business requirements, user value, success metrics, user stories, and prioritization only. Implementation details belong in Design Doc, technical selection rationale in ADR, phases and task breakdown in Work Plan.
|
|
65
61
|
|
|
66
62
|
### ADR (Architecture Decision Record)
|
|
67
63
|
|
|
@@ -74,11 +70,7 @@ description: Guides PRD, ADR, Design Doc, and Work Plan creation. Use when creat
|
|
|
74
70
|
- Architecture impact
|
|
75
71
|
- Principled implementation guidelines (e.g., "Use dependency injection")
|
|
76
72
|
|
|
77
|
-
**
|
|
78
|
-
- Implementation schedule, duration (->Work Plan)
|
|
79
|
-
- Detailed implementation procedures (->Design Doc)
|
|
80
|
-
- Specific code examples (->Design Doc)
|
|
81
|
-
- Resource assignments (->Work Plan)
|
|
73
|
+
**Scope**: Decision, rationale, option comparison, architecture impact, and principled guidelines only. Implementation procedures and code examples belong in Design Doc, schedule and resource assignments in Work Plan.
|
|
82
74
|
|
|
83
75
|
### UI Specification
|
|
84
76
|
|
|
@@ -94,11 +86,7 @@ description: Guides PRD, ADR, Design Doc, and Work Plan creation. Use when creat
|
|
|
94
86
|
- Visual acceptance criteria (golden states, layout constraints)
|
|
95
87
|
- Accessibility requirements (keyboard, screen reader, contrast)
|
|
96
88
|
|
|
97
|
-
**
|
|
98
|
-
- Technical implementation details (-> Design Doc)
|
|
99
|
-
- API contracts and data layer design (-> Design Doc)
|
|
100
|
-
- Test implementation (-> acceptance-test-generator skeletons)
|
|
101
|
-
- Implementation schedule (-> Work Plan)
|
|
89
|
+
**Scope**: Screen structure, transitions, component decomposition, interaction design, and visual acceptance criteria only. Technical implementation and API contracts belong in Design Doc, test implementation in acceptance-test-generator skeletons, schedule in Work Plan.
|
|
102
90
|
|
|
103
91
|
**Required Structural Elements**:
|
|
104
92
|
- At least one component with state x display matrix and interaction table
|
|
@@ -123,7 +111,7 @@ description: Guides PRD, ADR, Design Doc, and Work Plan creation. Use when creat
|
|
|
123
111
|
- **Technical dependencies and implementation constraints** (required implementation order)
|
|
124
112
|
- Interface and type definitions
|
|
125
113
|
- Data flow and component design
|
|
126
|
-
- **Acceptance criteria (EARS format
|
|
114
|
+
- **Acceptance criteria (EARS format — see design-template.md; each criterion specifies a verifiable condition with pass/fail threshold)**
|
|
127
115
|
- Change impact map (clearly specify direct impact/indirect impact/no ripple effect)
|
|
128
116
|
- Complete enumeration of integration points
|
|
129
117
|
- Data contract clarification
|
|
@@ -137,10 +125,7 @@ description: Guides PRD, ADR, Design Doc, and Work Plan creation. Use when creat
|
|
|
137
125
|
- Correctness proof method (what "correct" means for this change, how it's verified, when)
|
|
138
126
|
- Early verification point (first target to prove the approach works, success criteria, failure response)
|
|
139
127
|
|
|
140
|
-
**
|
|
141
|
-
- Why that technology was chosen (->Reference ADR)
|
|
142
|
-
- When to implement, duration (->Work Plan)
|
|
143
|
-
- Who will implement (->Work Plan)
|
|
128
|
+
**Scope**: Technical implementation methods, interfaces, data flow, acceptance criteria, and verification strategy only. Technology selection rationale belongs in ADR, schedule and assignments in Work Plan.
|
|
144
129
|
|
|
145
130
|
### Work Plan
|
|
146
131
|
|
|
@@ -154,28 +139,23 @@ description: Guides PRD, ADR, Design Doc, and Work Plan creation. Use when creat
|
|
|
154
139
|
- **Final Quality Assurance Phase (required)**
|
|
155
140
|
- Progress records (checkbox format)
|
|
156
141
|
|
|
157
|
-
**
|
|
158
|
-
- Technical rationale (->ADR)
|
|
159
|
-
- Design details (->Design Doc)
|
|
142
|
+
**Scope**: Task breakdown, dependencies, schedule, verification strategy summary, and progress tracking only. Technical rationale belongs in ADR, design details in Design Doc.
|
|
160
143
|
|
|
161
144
|
**Phase Division Criteria** (adapt to implementation approach from Design Doc):
|
|
162
145
|
|
|
163
146
|
**When Vertical Slice selected**:
|
|
164
147
|
- Each phase = one value unit (feature, component, or migration target)
|
|
165
148
|
- Each phase includes its own implementation + verification per Verification Strategy
|
|
166
|
-
- Final Phase: Quality Assurance (cross-cutting verification, all tests passing)
|
|
167
149
|
|
|
168
150
|
**When Horizontal Slice selected**:
|
|
169
151
|
1. **Phase 1: Foundation Implementation** - Type definitions, interfaces, test preparation
|
|
170
152
|
2. **Phase 2: Core Feature Implementation** - Business logic, unit tests
|
|
171
153
|
3. **Phase 3: Integration Implementation** - External connections, presentation layer
|
|
172
|
-
4. **Final Phase: Quality Assurance (Required)** - Acceptance criteria achievement, all tests passing, quality checks
|
|
173
154
|
|
|
174
155
|
**When Hybrid selected**:
|
|
175
156
|
- Combine vertical and horizontal as defined in Design Doc implementation approach
|
|
176
|
-
- Final Phase: Quality Assurance (Required)
|
|
177
157
|
|
|
178
|
-
**All approaches**: Final phase is always Quality Assurance. Each phase's verification method follows Verification Strategy from Design Doc.
|
|
158
|
+
**All approaches**: Final phase is always Quality Assurance (acceptance criteria achievement, all tests passing, quality checks). Each phase's verification method follows Verification Strategy from Design Doc.
|
|
179
159
|
|
|
180
160
|
**Three Elements of Task Completion Definition**:
|
|
181
161
|
1. **Implementation Complete**: Code is functional
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
## Status
|
|
4
4
|
|
|
5
|
-
[Proposed | Accepted | Deprecated | Superseded]
|
|
5
|
+
[Proposed | Accepted | Deprecated | Superseded | Rejected]
|
|
6
6
|
|
|
7
7
|
## Context
|
|
8
8
|
|
|
@@ -54,6 +54,10 @@
|
|
|
54
54
|
|
|
55
55
|
- [List changes that are neither good nor bad]
|
|
56
56
|
|
|
57
|
+
## Architecture Impact
|
|
58
|
+
|
|
59
|
+
[Describe how this decision affects existing architecture: (1) components that change, (2) new dependencies introduced, (3) architectural constraints added or removed]
|
|
60
|
+
|
|
57
61
|
## Implementation Guidance
|
|
58
62
|
|
|
59
63
|
[Principled direction only. Implementation procedures go to Design Doc]
|