spec-runner 1.1.7 → 1.1.8
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/README.md +51 -80
- package/bin/spec-runner-installer.js +401 -0
- package/install.sh +1 -1
- package/package.json +7 -6
- package/spec-runner/templates/.claude/agents/code-reviewer.md +69 -0
- package/spec-runner/templates/.claude/agents/design-reviewer.md +65 -0
- package/spec-runner/templates/.claude/agents/test-runner.md +34 -0
- package/spec-runner/templates/.claude/rules/coding.md +106 -0
- package/spec-runner/templates/.claude/rules/design-docs.md +63 -0
- package/spec-runner/templates/.claude/skills/architecture-definition/SKILL.md +60 -0
- package/spec-runner/templates/.claude/skills/architecture-skill-development/SKILL.md +126 -0
- package/spec-runner/templates/.claude/skills/commit/SKILL.md +83 -0
- package/spec-runner/templates/.claude/skills/design-change/SKILL.md +94 -0
- package/spec-runner/templates/.claude/skills/design-change/references//345/275/261/351/237/277/347/257/204/345/233/262/343/203/201/343/202/247/343/203/203/343/202/257/343/203/252/343/202/271/343/203/210.md +66 -0
- package/spec-runner/templates/.claude/skills/design-change/templates/90_ADR/ADR/343/203/206/343/203/263/343/203/227/343/203/254/343/203/274/343/203/210.md +81 -0
- package/spec-runner/templates/.claude/skills/existing-project-to-docs/SKILL.md +57 -0
- package/spec-runner/templates/.claude/skills/harness-engineering/SKILL.md +100 -0
- package/spec-runner/templates/.claude/skills/plugin-development/SKILL.md +173 -0
- package/spec-runner/templates/.claude/skills/plugin-development/templates/01_/350/246/201/344/273/266/345/256/232/347/276/251//346/246/202/350/246/201/343/203/206/343/203/263/343/203/227/343/203/254/343/203/274/343/203/210.md +88 -0
- package/spec-runner/templates/.claude/skills/plugin-development/templates/02_/346/246/202/350/246/201/350/250/255/350/250/210/90_ADR/ADR/343/203/206/343/203/263/343/203/227/343/203/254/343/203/274/343/203/210.md +81 -0
- package/spec-runner/templates/.claude/skills/plugin-development/templates/02_/346/246/202/350/246/201/350/250/255/350/250/210//343/202/267/343/202/271/343/203/206/343/203/240/345/205/250/344/275/223/344/277/257/347/236/260/343/203/206/343/203/263/343/203/227/343/203/254/343/203/274/343/203/210.md +80 -0
- package/spec-runner/templates/.claude/skills/plugin-development/templates/02_/346/246/202/350/246/201/350/250/255/350/250/210//343/203/246/343/203/274/343/202/271/343/202/261/343/203/274/343/202/271/344/270/200/350/246/247/343/203/206/343/203/263/343/203/227/343/203/254/343/203/274/343/203/210.md +57 -0
- package/spec-runner/templates/.claude/skills/plugin-development/templates/03_/350/251/263/347/264/260/350/250/255/350/250/210/infrastructure/aws.md +53 -0
- package/spec-runner/templates/.claude/skills/plugin-development/templates/03_/350/251/263/347/264/260/350/250/255/350/250/210/infrastructure/database.md +54 -0
- package/spec-runner/templates/.claude/skills/plugin-development/templates/03_/350/251/263/347/264/260/350/250/255/350/250/210/infrastructure/schema.dbml +25 -0
- package/spec-runner/templates/.claude/skills/plugin-development/templates/03_/350/251/263/347/264/260/350/250/255/350/250/210/infrastructure/sequence//343/202/267/343/203/274/343/202/261/343/203/263/343/202/271/345/233/263/343/203/206/343/203/263/343/203/227/343/203/254/343/203/274/343/203/210.md +28 -0
- package/spec-runner/templates/.claude/skills/plugin-development/templates/03_/350/251/263/347/264/260/350/250/255/350/250/210/src/agents/{agent_name}/agent.md +56 -0
- package/spec-runner/templates/.claude/skills/plugin-development/templates/03_/350/251/263/347/264/260/350/250/255/350/250/210/src/agents/{agent_name}/config.md +47 -0
- package/spec-runner/templates/.claude/skills/plugin-development/templates/03_/350/251/263/347/264/260/350/250/255/350/250/210/src/agents/{agent_name}/domain.md +67 -0
- package/spec-runner/templates/.claude/skills/plugin-development/templates/03_/350/251/263/347/264/260/350/250/255/350/250/210/src/agents/{agent_name}/prompts.md +72 -0
- package/spec-runner/templates/.claude/skills/plugin-development/templates/03_/350/251/263/347/264/260/350/250/255/350/250/210/src/plugins/skills/{skill_name}/skill.md +53 -0
- package/spec-runner/templates/.claude/skills/plugin-development/templates/03_/350/251/263/347/264/260/350/250/255/350/250/210/src/plugins/tools/{tool_name}/tool.md +51 -0
- package/spec-runner/templates/.claude/skills/test-driven-development/SKILL.md +211 -0
- package/spec-runner/templates/.github/agents/code-reviewer.agent.md +69 -0
- package/spec-runner/templates/.github/agents/design-reviewer.agent.md +65 -0
- package/spec-runner/templates/.github/agents/test-runner.agent.md +34 -0
- package/spec-runner/templates/.github/instructions/coding.instructions.md +105 -0
- package/spec-runner/templates/.github/instructions/design-docs.instructions.md +62 -0
- package/spec-runner/templates/.github/skills/architecture-definition/SKILL.md +60 -0
- package/spec-runner/templates/.github/skills/architecture-skill-development/SKILL.md +126 -0
- package/spec-runner/templates/.github/skills/commit/SKILL.md +83 -0
- package/spec-runner/templates/.github/skills/design-change/SKILL.md +94 -0
- package/spec-runner/templates/.github/skills/design-change/references//345/275/261/351/237/277/347/257/204/345/233/262/343/203/201/343/202/247/343/203/203/343/202/257/343/203/252/343/202/271/343/203/210.md +66 -0
- package/spec-runner/templates/.github/skills/design-change/templates/90_ADR/ADR/343/203/206/343/203/263/343/203/227/343/203/254/343/203/274/343/203/210.md +81 -0
- package/spec-runner/templates/.github/skills/existing-project-to-docs/SKILL.md +57 -0
- package/spec-runner/templates/.github/skills/harness-engineering/SKILL.md +100 -0
- package/spec-runner/templates/.github/skills/plugin-development/SKILL.md +173 -0
- package/spec-runner/templates/.github/skills/plugin-development/templates/01_/350/246/201/344/273/266/345/256/232/347/276/251//346/246/202/350/246/201/343/203/206/343/203/263/343/203/227/343/203/254/343/203/274/343/203/210.md +88 -0
- package/spec-runner/templates/.github/skills/plugin-development/templates/02_/346/246/202/350/246/201/350/250/255/350/250/210/90_ADR/ADR/343/203/206/343/203/263/343/203/227/343/203/254/343/203/274/343/203/210.md +81 -0
- package/spec-runner/templates/.github/skills/plugin-development/templates/02_/346/246/202/350/246/201/350/250/255/350/250/210//343/202/267/343/202/271/343/203/206/343/203/240/345/205/250/344/275/223/344/277/257/347/236/260/343/203/206/343/203/263/343/203/227/343/203/254/343/203/274/343/203/210.md +80 -0
- package/spec-runner/templates/.github/skills/plugin-development/templates/02_/346/246/202/350/246/201/350/250/255/350/250/210//343/203/246/343/203/274/343/202/271/343/202/261/343/203/274/343/202/271/344/270/200/350/246/247/343/203/206/343/203/263/343/203/227/343/203/254/343/203/274/343/203/210.md +57 -0
- package/spec-runner/templates/.github/skills/plugin-development/templates/03_/350/251/263/347/264/260/350/250/255/350/250/210/infrastructure/aws.md +53 -0
- package/spec-runner/templates/.github/skills/plugin-development/templates/03_/350/251/263/347/264/260/350/250/255/350/250/210/infrastructure/database.md +54 -0
- package/spec-runner/templates/.github/skills/plugin-development/templates/03_/350/251/263/347/264/260/350/250/255/350/250/210/infrastructure/schema.dbml +25 -0
- package/spec-runner/templates/.github/skills/plugin-development/templates/03_/350/251/263/347/264/260/350/250/255/350/250/210/infrastructure/sequence//343/202/267/343/203/274/343/202/261/343/203/263/343/202/271/345/233/263/343/203/206/343/203/263/343/203/227/343/203/254/343/203/274/343/203/210.md +28 -0
- package/spec-runner/templates/.github/skills/plugin-development/templates/03_/350/251/263/347/264/260/350/250/255/350/250/210/src/agents/{agent_name}/agent.md +56 -0
- package/spec-runner/templates/.github/skills/plugin-development/templates/03_/350/251/263/347/264/260/350/250/255/350/250/210/src/agents/{agent_name}/config.md +47 -0
- package/spec-runner/templates/.github/skills/plugin-development/templates/03_/350/251/263/347/264/260/350/250/255/350/250/210/src/agents/{agent_name}/domain.md +67 -0
- package/spec-runner/templates/.github/skills/plugin-development/templates/03_/350/251/263/347/264/260/350/250/255/350/250/210/src/agents/{agent_name}/prompts.md +72 -0
- package/spec-runner/templates/.github/skills/plugin-development/templates/03_/350/251/263/347/264/260/350/250/255/350/250/210/src/plugins/skills/{skill_name}/skill.md +53 -0
- package/spec-runner/templates/.github/skills/plugin-development/templates/03_/350/251/263/347/264/260/350/250/255/350/250/210/src/plugins/tools/{tool_name}/tool.md +51 -0
- package/spec-runner/templates/.github/skills/test-driven-development/SKILL.md +211 -0
- package/bin/spec-runner.js +0 -270
- package/docs/flow.md +0 -72
- package/templates/.spec-runner/project.json.example +0 -27
- package/templates/.spec-runner/scripts/check.sh +0 -390
- package/templates/.spec-runner/scripts/spec-runner-core.sh +0 -289
- package/templates/.spec-runner/scripts/uc-next-start.sh +0 -161
- package/templates/.spec-runner/spec-runner.sh +0 -29
- package/templates/.spec-runner/steps/steps.json +0 -96
- package/templates/.spec-runner/steps//343/203/206/343/202/271/343/203/210/350/250/255/350/250/210.md +0 -58
- package/templates/.spec-runner/steps//343/203/211/343/203/241/343/202/244/343/203/263/350/250/255/350/250/210.md +0 -52
- package/templates/.spec-runner/steps//344/273/225/346/247/230/347/255/226/345/256/232.md +0 -210
- package/templates/.spec-runner/steps//345/210/206/346/236/220.md +0 -106
- package/templates/.spec-runner/steps//345/256/237/350/243/205.md +0 -80
- package/templates/.spec-runner/steps//345/256/237/350/243/205/350/250/210/347/224/273.md +0 -96
- package/templates/.spec-runner/steps//346/206/262/347/253/240.md +0 -95
- package/templates/.spec-runner/steps//346/233/226/346/230/247/343/201/225/350/247/243/346/266/210.md +0 -110
- package/templates/.spec-runner/templates/UC-N-MMDD-/345/210/244/346/226/255/350/250/230/351/214/262/343/203/206/343/203/263/343/203/227/343/203/254.md +0 -33
- package/templates/.spec-runner/templates/UC-N-/343/203/246/343/203/274/343/202/271/343/202/261/343/203/274/343/202/271/345/220/215.md +0 -26
- package/templates/.spec-runner/templates/phase-locks.json +0 -49
- package/templates/.spec-runner/templates//343/203/211/343/203/241/343/202/244/343/203/263/343/203/242/343/203/207/343/203/253.md +0 -21
- package/templates/.spec-runner/templates//343/203/246/343/203/223/343/202/255/343/202/277/343/202/271/350/250/200/350/252/236/350/276/236/346/233/270.md +0 -16
- package/templates/.spec-runner/templates//346/206/262/347/253/240.md +0 -51
- package/templates/.spec-runner/templates//351/233/206/347/264/204.md +0 -46
- package/templates/mkdocs-scaffold/docs/index.md +0 -32
- package/templates/mkdocs-scaffold/mkdocs.yml +0 -16
- package/templates/mkdocs-scaffold/requirements-docs.txt +0 -2
- package/templates/skills/uc-k1-work-card-init/SKILL.md +0 -76
- package/templates/skills/uc-k2-pre-commit-check/SKILL.md +0 -57
- package/templates/skills/uc-k3-spec-impl-diff-review/SKILL.md +0 -57
- package/templates/spec-runner-command.md +0 -51
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# 影響範囲チェックリスト
|
|
2
|
+
|
|
3
|
+
design-change の Phase 3(影響ドキュメントの特定)で参照する。
|
|
4
|
+
変更の種類に応じて、修正が必要なドキュメントを網羅的に特定する。
|
|
5
|
+
|
|
6
|
+
## 変更種別ごとのチェック項目
|
|
7
|
+
|
|
8
|
+
### エージェントの追加・変更・削除
|
|
9
|
+
|
|
10
|
+
| ドキュメント | パス | チェック |
|
|
11
|
+
|------------|------|------|
|
|
12
|
+
| ユースケース一覧 | `docs/02_概要設計/ユースケース一覧.md` | エージェントが担当する UC の追加・修正・削除を反映 |
|
|
13
|
+
| システム全体俯瞰 | `docs/02_概要設計/システム全体俯瞰.md` | エージェント構成・責務分割への影響 |
|
|
14
|
+
| エージェント設計 | `docs/03_詳細設計/src/agents/{agent_name}/agent.md` | オーケストレーション、利用プラグイン、I/O の変更 |
|
|
15
|
+
| ドメイン設計 | `docs/03_詳細設計/src/agents/{agent_name}/domain.md` | エンティティ・値オブジェクト・不変条件の変更 |
|
|
16
|
+
| プロンプト設計 | `docs/03_詳細設計/src/agents/{agent_name}/prompts.md` | プロンプト構成・指示内容の変更 |
|
|
17
|
+
| 設定 | `docs/03_詳細設計/src/agents/{agent_name}/config.md` | 設定パラメータ・閾値の変更 |
|
|
18
|
+
|
|
19
|
+
### ドメインモデル(エンティティ・値オブジェクト)の変更
|
|
20
|
+
|
|
21
|
+
| ドキュメント | パス | チェック |
|
|
22
|
+
|------------|------|------|
|
|
23
|
+
| ドメイン設計 | `docs/03_詳細設計/src/agents/{agent_name}/domain.md` | フィールド・ルール・不変条件の変更 |
|
|
24
|
+
| システム全体俯瞰 | `docs/02_概要設計/システム全体俯瞰.md` | 責務境界や共有概念への影響 |
|
|
25
|
+
| プロンプト設計 | `docs/03_詳細設計/src/agents/{agent_name}/prompts.md` | ドメイン変更がプロンプトに影響する場合 |
|
|
26
|
+
| データベース設計 | `docs/03_詳細設計/infrastructure/database.md` | テーブル構造・保存方針への影響 |
|
|
27
|
+
| スキーマ定義 | `docs/03_詳細設計/infrastructure/schema.dbml` | カラム・型・制約の変更 |
|
|
28
|
+
| スキル設計 | `docs/03_詳細設計/src/plugins/skills/{skill_name}/skill.md` | スキルの入出力・判定ロジックへの影響 |
|
|
29
|
+
| ツール設計 | `docs/03_詳細設計/src/plugins/tools/{tool_name}/tool.md` | ツールの入出力への影響 |
|
|
30
|
+
|
|
31
|
+
### プラグイン(スキル・ツール)の追加・変更・削除
|
|
32
|
+
|
|
33
|
+
| ドキュメント | パス | チェック |
|
|
34
|
+
|------------|------|------|
|
|
35
|
+
| スキル設計 | `docs/03_詳細設計/src/plugins/skills/{skill_name}/skill.md` | スキルの追加・修正・削除 |
|
|
36
|
+
| ツール設計 | `docs/03_詳細設計/src/plugins/tools/{tool_name}/tool.md` | ツールの追加・修正・削除 |
|
|
37
|
+
| エージェント設計 | `docs/03_詳細設計/src/agents/{agent_name}/agent.md` | 利用プラグイン一覧と呼び出し順の更新 |
|
|
38
|
+
| ユースケース一覧 | `docs/02_概要設計/ユースケース一覧.md` | 対応する UC がある場合 |
|
|
39
|
+
| システム全体俯瞰 | `docs/02_概要設計/システム全体俯瞰.md` | プラグイン構成の変更が全体構造に影響する場合 |
|
|
40
|
+
|
|
41
|
+
### データベーススキーマの変更
|
|
42
|
+
|
|
43
|
+
| ドキュメント | パス | チェック |
|
|
44
|
+
|------------|------|------|
|
|
45
|
+
| データベース設計 | `docs/03_詳細設計/infrastructure/database.md` | テーブル定義・インデックス・リレーション |
|
|
46
|
+
| スキーマ定義 | `docs/03_詳細設計/infrastructure/schema.dbml` | dbml ファイルの更新 |
|
|
47
|
+
| ドメイン設計 | `docs/03_詳細設計/src/agents/{agent_name}/domain.md` | ドメインモデルへの影響 |
|
|
48
|
+
| エージェント設計 | `docs/03_詳細設計/src/agents/{agent_name}/agent.md` | 保存フローやトランザクションへの影響 |
|
|
49
|
+
|
|
50
|
+
### アーキテクチャ・設計方針の変更
|
|
51
|
+
|
|
52
|
+
| ドキュメント | パス | チェック |
|
|
53
|
+
|------------|------|------|
|
|
54
|
+
| ADR | `docs/02_概要設計/90_ADR/` | 横断的な決定 |
|
|
55
|
+
| ADR(ドメインローカル) | `docs/02_概要設計/<ドメイン>/90_ADR/` | 特定ドメインの決定 |
|
|
56
|
+
| システム全体俯瞰 | `docs/02_概要設計/システム全体俯瞰.md` | 技術方針・全体構成の変更 |
|
|
57
|
+
| 要件定義 | `docs/01_要件定義/要件定義.md` | 要件レベルの変更がある場合 |
|
|
58
|
+
| 詳細設計一式 | `docs/03_詳細設計/src/**` | 方針変更の具体反映 |
|
|
59
|
+
|
|
60
|
+
## 二次影響の確認観点
|
|
61
|
+
|
|
62
|
+
- **ユースケース一覧 ↔ エージェント設計**: 一覧に記載の UC がエージェントとプラグインでカバーされているか
|
|
63
|
+
- **システム全体俯瞰 ↔ 詳細設計**: 責務分割が `docs/03_詳細設計/src/**` に落ちているか
|
|
64
|
+
- **ドメイン設計 ↔ DBスキーマ**: ドメインのフィールドが DB カラムと対応しているか
|
|
65
|
+
- **schema.dbml ↔ database.md**: dbml と設計書の内容が一致しているか
|
|
66
|
+
- **frontmatter ↔ 実ファイル**: `depends_on` と `maps_to` が現状に追随しているか
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
---
|
|
2
|
+
spec_runner:
|
|
3
|
+
node_id: adr.{decision_slug}
|
|
4
|
+
kind: adr
|
|
5
|
+
depends_on:
|
|
6
|
+
- overview.system_context
|
|
7
|
+
maps_to: []
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# ADR-0001 {決定内容のタイトル}
|
|
11
|
+
|
|
12
|
+
**ステータス**: 提案 / 採用 / 廃止 / 置換
|
|
13
|
+
**日付**: YYYY-MM-DD
|
|
14
|
+
**決定者**: {名前}
|
|
15
|
+
|
|
16
|
+
## コンテキスト
|
|
17
|
+
|
|
18
|
+
| 項目 | 内容 |
|
|
19
|
+
|------|------|
|
|
20
|
+
| 現在の状況 | {問題・課題} |
|
|
21
|
+
| 要件 | {実現する必要があること} |
|
|
22
|
+
| 制約 | {技術的・ビジネス的制約} |
|
|
23
|
+
|
|
24
|
+
## 選択肢
|
|
25
|
+
|
|
26
|
+
### 案1: {案1の名前}
|
|
27
|
+
|
|
28
|
+
- 概要: {何をするか}
|
|
29
|
+
- メリット:
|
|
30
|
+
- {メリット}
|
|
31
|
+
- デメリット:
|
|
32
|
+
- {デメリット}
|
|
33
|
+
- 適合性: {このプロジェクトにどう合うか}
|
|
34
|
+
|
|
35
|
+
### 案2: {案2の名前}
|
|
36
|
+
|
|
37
|
+
- 概要: {何をするか}
|
|
38
|
+
- メリット:
|
|
39
|
+
- {メリット}
|
|
40
|
+
- デメリット:
|
|
41
|
+
- {デメリット}
|
|
42
|
+
- 適合性: {このプロジェクトにどう合うか}
|
|
43
|
+
|
|
44
|
+
### 案3: {案3の名前}
|
|
45
|
+
|
|
46
|
+
- 概要: {何をするか}
|
|
47
|
+
- メリット:
|
|
48
|
+
- {メリット}
|
|
49
|
+
- デメリット:
|
|
50
|
+
- {デメリット}
|
|
51
|
+
- 適合性: {このプロジェクトにどう合うか}
|
|
52
|
+
|
|
53
|
+
## 決定
|
|
54
|
+
|
|
55
|
+
**採用案**: {案名}
|
|
56
|
+
|
|
57
|
+
### 採用理由
|
|
58
|
+
|
|
59
|
+
- {理由1}
|
|
60
|
+
- {理由2}
|
|
61
|
+
|
|
62
|
+
### 実装方針
|
|
63
|
+
|
|
64
|
+
1. {方針1}
|
|
65
|
+
2. {方針2}
|
|
66
|
+
3. {方針3}
|
|
67
|
+
|
|
68
|
+
## 影響
|
|
69
|
+
|
|
70
|
+
| カテゴリ | 項目 | 内容 |
|
|
71
|
+
|----------|------|------|
|
|
72
|
+
| システム | 新規追加 | {コンポーネント} |
|
|
73
|
+
| システム | 変更 | {コンポーネント} |
|
|
74
|
+
| パフォーマンス | 処理速度 | {変化} |
|
|
75
|
+
| コスト | 追加コスト | {影響} |
|
|
76
|
+
| 制約 | 将来課題 | {課題} |
|
|
77
|
+
|
|
78
|
+
### 反映が必要な文書
|
|
79
|
+
|
|
80
|
+
- `docs/02_概要設計/{対象文書}.md`
|
|
81
|
+
- `docs/03_詳細設計/src/{対象パス}.md`
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: existing-project-to-docs
|
|
3
|
+
description: 既存プロジェクトを読み解き、docs の draft と architecture contract を起こすリバース設計フロー。
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# existing-project-to-docs
|
|
7
|
+
|
|
8
|
+
既存コードから docs を起こすフロー。
|
|
9
|
+
コード、テスト、設定、インフラ定義を読み、`docs/` と `.spec-runner/` の最初の土台を作る。
|
|
10
|
+
|
|
11
|
+
## 全体フロー
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
Phase 1: 現状把握
|
|
15
|
+
Phase 2: 要件とユースケースの抽出
|
|
16
|
+
Phase 3: 概要設計の draft 化
|
|
17
|
+
Phase 4: 詳細設計の draft 化
|
|
18
|
+
Phase 5: architecture contract 化
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Phase 1: 現状把握
|
|
22
|
+
|
|
23
|
+
1. `src/`、`tests/`、設定ファイル、README、IaC を読む
|
|
24
|
+
2. 現状システムの入口、主要フロー、外部依存を一覧化する
|
|
25
|
+
3. `.spec-runner/intake/current-system-inventory.md` を作る
|
|
26
|
+
4. ユーザーに確認・承認を得る
|
|
27
|
+
|
|
28
|
+
## Phase 2: 要件とユースケースの抽出
|
|
29
|
+
|
|
30
|
+
1. 既存機能からユースケースを逆算する
|
|
31
|
+
2. `docs/01_要件定義/要件定義.md` と `docs/02_概要設計/ユースケース一覧.md` の draft を作る
|
|
32
|
+
3. ユーザーに確認・承認を得る
|
|
33
|
+
|
|
34
|
+
## Phase 3: 概要設計の draft 化
|
|
35
|
+
|
|
36
|
+
1. `docs/02_概要設計/システム全体俯瞰.md` を作る
|
|
37
|
+
2. 必要なら ADR 候補も洗い出す
|
|
38
|
+
3. ユーザーに確認・承認を得る
|
|
39
|
+
|
|
40
|
+
## Phase 4: 詳細設計の draft 化
|
|
41
|
+
|
|
42
|
+
1. `docs/03_詳細設計/src/**` を `src/` ミラーで作る
|
|
43
|
+
2. `maps_to` に対応コードとテストを入れる
|
|
44
|
+
3. 補助設計が必要なら `docs/03_詳細設計/infrastructure/**` を作る
|
|
45
|
+
4. ユーザーに確認・承認を得る
|
|
46
|
+
|
|
47
|
+
## Phase 5: architecture contract 化
|
|
48
|
+
|
|
49
|
+
1. `.spec-runner/architecture/architecture.yaml` を作る
|
|
50
|
+
2. 現状構造を project 専用 skill へ渡せる粒度に整える
|
|
51
|
+
3. `architecture-skill-development` へ引き渡す
|
|
52
|
+
|
|
53
|
+
## 原則
|
|
54
|
+
|
|
55
|
+
- 既存コードを正として観測し、推測は明示する
|
|
56
|
+
- docs は最初から完璧を目指さず、draft として起こす
|
|
57
|
+
- `maps_to` と `depends_on` を使って後続変更に耐える形へ整える
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: harness-engineering
|
|
3
|
+
description: AI 開発運用の skills・rules・agents・テンプレートを改善・保守するためのメタスキル。別の作業を進めた結果、繰り返し発生する手戻り、ルール不足、責務の曖昧さ、テンプレートの重複が見つかったときに使用する。通常の機能実装やアプリコードの TDD には使わない。
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# harness-engineering
|
|
7
|
+
|
|
8
|
+
skills・rules・agents・テンプレートを改善するためのメタスキル。
|
|
9
|
+
**主目的の作業を先に進め、再利用価値のある改善が必要なときだけ使う。**
|
|
10
|
+
|
|
11
|
+
## 使うタイミング
|
|
12
|
+
|
|
13
|
+
以下のいずれかに当てはまるときに使う。
|
|
14
|
+
|
|
15
|
+
1. 同じ補足説明や修正が繰り返し必要になった
|
|
16
|
+
2. 複数の skill / rule / agent の責務が曖昧で、手戻りや重複が発生した
|
|
17
|
+
3. 既存の skill / rule / agent が不足しており、品質または作業速度を継続的に落としている
|
|
18
|
+
4. ユーザーが skill / rule / agent 自体の改善を求めた
|
|
19
|
+
|
|
20
|
+
## 使わないタイミング
|
|
21
|
+
|
|
22
|
+
- 1 回限りの例外対応
|
|
23
|
+
- 通常の機能実装やバグ修正
|
|
24
|
+
- アプリケーションコードに対する TDD
|
|
25
|
+
- 単なる言い回しの微調整で済む変更
|
|
26
|
+
|
|
27
|
+
**TDD はこのスキルの対象ではない。**
|
|
28
|
+
TDD は `test-driven-development` スキルに従い、対象プロダクトのコード品質を上げるために行う。
|
|
29
|
+
|
|
30
|
+
## 全体フロー
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
Phase 1: 問題の抽出
|
|
34
|
+
Phase 2: 対応方針の決定
|
|
35
|
+
Phase 3: skill / rule / agent / template の修正
|
|
36
|
+
Phase 4: 影響範囲の反映確認
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Phase 1: 問題の抽出
|
|
40
|
+
|
|
41
|
+
### 手順
|
|
42
|
+
|
|
43
|
+
1. 今回の作業で何が詰まり、どこに無駄が出たかを整理する
|
|
44
|
+
2. その問題が一時的なものか、再発しうる構造的な問題かを判定する
|
|
45
|
+
3. 改善対象を特定する
|
|
46
|
+
- skill
|
|
47
|
+
- rule
|
|
48
|
+
- agent
|
|
49
|
+
- template
|
|
50
|
+
|
|
51
|
+
### 出力
|
|
52
|
+
|
|
53
|
+
- 問題の要約
|
|
54
|
+
- 再発条件
|
|
55
|
+
- 変更対象の候補一覧
|
|
56
|
+
|
|
57
|
+
## Phase 2: 対応方針の決定
|
|
58
|
+
|
|
59
|
+
1. 最小変更で解決できる対象を選ぶ
|
|
60
|
+
2. 新しい skill を増やすべきか、既存 skill / rule / agent の修正で十分かを判断する
|
|
61
|
+
3. Claude / Copilot の両テンプレートに影響するか確認する
|
|
62
|
+
|
|
63
|
+
### 判断原則
|
|
64
|
+
|
|
65
|
+
- まず既存の資産を直す
|
|
66
|
+
- 新しい skill は、繰り返し使う独立したワークフローがある場合だけ追加する
|
|
67
|
+
- 一時的な事情を恒久ルールにしない
|
|
68
|
+
|
|
69
|
+
## Phase 3: skill / rule / agent / template の修正
|
|
70
|
+
|
|
71
|
+
1. 対象ファイルを特定する
|
|
72
|
+
2. 意図が変わらない最小差分で修正する
|
|
73
|
+
3. 片系だけでなく、対応するテンプレートも揃えて更新する
|
|
74
|
+
- `.claude/`
|
|
75
|
+
- `.github/`
|
|
76
|
+
4. references や templates を参照している場合、必要な範囲だけ更新する
|
|
77
|
+
|
|
78
|
+
### 修正時の注意
|
|
79
|
+
|
|
80
|
+
- 役割の重複を増やさない
|
|
81
|
+
- 既存スキルの主要フローを壊さない
|
|
82
|
+
- ユーザー承認が前提のフローは勝手に短絡しない
|
|
83
|
+
- アプリコード向けの TDD ルールを、このスキルの改善目的と混同しない
|
|
84
|
+
|
|
85
|
+
## Phase 4: 影響範囲の反映確認
|
|
86
|
+
|
|
87
|
+
### 確認項目
|
|
88
|
+
|
|
89
|
+
- 問題の原因に対して、変更箇所が直接効いているか
|
|
90
|
+
- 関連する skill / rule / agent / template の記述が矛盾していないか
|
|
91
|
+
- Claude / Copilot の対応ファイルに反映漏れがないか
|
|
92
|
+
- 今回限りのノイズをルール化していないか
|
|
93
|
+
|
|
94
|
+
## 原則
|
|
95
|
+
|
|
96
|
+
- **ハーネス改善は常時実行しない。必要なときだけ行う**
|
|
97
|
+
- **主目的の作業を優先する**
|
|
98
|
+
- **最小変更で改善する**
|
|
99
|
+
- **新しい skill の追加は慎重に行う**
|
|
100
|
+
- **TDD の責務を skill 改善と混同しない**
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: plugin-development
|
|
3
|
+
description: プラグイン型アーキテクチャ向けの reference workflow。docs を正本にし、概要設計から `src/` ミラーの詳細設計、TDD、実装へ進める。
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# plugin-development
|
|
7
|
+
|
|
8
|
+
プラグイン型アーキテクチャ向けの新規開発フロー。
|
|
9
|
+
`architecture-definition` や `architecture-skill-development` が未整備な段階でも使える reference implementation として扱う。
|
|
10
|
+
|
|
11
|
+
## 全体フロー
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
Phase 1: 要件定義
|
|
15
|
+
Phase 2: 概要設計
|
|
16
|
+
Phase 3: ADR(必要時のみ)
|
|
17
|
+
Phase 4: 詳細設計
|
|
18
|
+
Phase 5: TDD → 実装
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## 前提ルール
|
|
22
|
+
|
|
23
|
+
- docs は正本とし、各ドキュメントに `spec_runner` frontmatter を付ける
|
|
24
|
+
- `docs/03_詳細設計/src/**` は原則として `src/` をミラーする
|
|
25
|
+
- `docs/03_詳細設計/infrastructure/**` は例外文書として扱い、必ず `maps_to` で対応先を明示する
|
|
26
|
+
- ユーザー承認なしに次フェーズへ進めない
|
|
27
|
+
|
|
28
|
+
## Phase 1: 要件定義
|
|
29
|
+
|
|
30
|
+
### 手順
|
|
31
|
+
|
|
32
|
+
1. 以下をユーザーにヒアリングする
|
|
33
|
+
- 解決すべき課題
|
|
34
|
+
- 提供価値
|
|
35
|
+
- 対象ユーザー
|
|
36
|
+
- 非機能要件
|
|
37
|
+
- スコープ外
|
|
38
|
+
- 技術・ビジネス制約
|
|
39
|
+
2. テンプレート `templates/01_要件定義/概要テンプレート.md` をコピーして `docs/01_要件定義/要件定義.md` を作る
|
|
40
|
+
3. frontmatter の `node_id` / `kind` / `depends_on` / `maps_to` を埋める
|
|
41
|
+
4. ユーザーに確認・承認を得る
|
|
42
|
+
|
|
43
|
+
### 出力
|
|
44
|
+
|
|
45
|
+
```text
|
|
46
|
+
docs/
|
|
47
|
+
01_要件定義/
|
|
48
|
+
要件定義.md
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## Phase 2: 概要設計
|
|
52
|
+
|
|
53
|
+
### 2-1. ユースケース一覧
|
|
54
|
+
|
|
55
|
+
1. Phase 1 の要件定義からユースケースを洗い出す
|
|
56
|
+
2. Query / Command を意識して一覧化する
|
|
57
|
+
3. テンプレート `templates/02_概要設計/ユースケース一覧テンプレート.md` をコピーして作る
|
|
58
|
+
4. 必要なら `docs/02_概要設計/ユースケース/` 配下に個別 UC も作る
|
|
59
|
+
5. ユーザーに確認・承認を得る
|
|
60
|
+
|
|
61
|
+
### 2-2. システム全体俯瞰
|
|
62
|
+
|
|
63
|
+
1. ユースケース一覧から責務境界、主要コンポーネント、外部 IF を整理する
|
|
64
|
+
2. テンプレート `templates/02_概要設計/システム全体俯瞰テンプレート.md` をコピーして作る
|
|
65
|
+
3. 必要なら `ドメイン責務マップ.md` / `外部IF一覧.md` / `非機能・運用方針.md` を追加する
|
|
66
|
+
4. ユーザーに確認・承認を得る
|
|
67
|
+
|
|
68
|
+
### 出力
|
|
69
|
+
|
|
70
|
+
```text
|
|
71
|
+
docs/
|
|
72
|
+
02_概要設計/
|
|
73
|
+
ユースケース一覧.md
|
|
74
|
+
システム全体俯瞰.md
|
|
75
|
+
ユースケース/
|
|
76
|
+
UC-*.md
|
|
77
|
+
90_ADR/
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
## Phase 3: ADR(必要時のみ)
|
|
81
|
+
|
|
82
|
+
1. 実装方針に意思決定が必要な場合だけ ADR を作る
|
|
83
|
+
2. **必ず 3 案を比較する**
|
|
84
|
+
3. テンプレート `templates/02_概要設計/90_ADR/ADRテンプレート.md` をコピーして生成する
|
|
85
|
+
4. 配置先は `docs/02_概要設計/90_ADR/ADR-0001-{slug}.md` を原則とする
|
|
86
|
+
5. 採用案を概要設計へ反映してから次へ進む
|
|
87
|
+
|
|
88
|
+
## Phase 4: 詳細設計
|
|
89
|
+
|
|
90
|
+
**各ドキュメントは `src/` と決定的に対応づける。**
|
|
91
|
+
|
|
92
|
+
### 4-1. エージェント
|
|
93
|
+
|
|
94
|
+
テンプレート:
|
|
95
|
+
- `templates/03_詳細設計/src/agents/{agent_name}/agent.md`
|
|
96
|
+
- `templates/03_詳細設計/src/agents/{agent_name}/domain.md`
|
|
97
|
+
- `templates/03_詳細設計/src/agents/{agent_name}/prompts.md`
|
|
98
|
+
- `templates/03_詳細設計/src/agents/{agent_name}/config.md`
|
|
99
|
+
|
|
100
|
+
出力:
|
|
101
|
+
|
|
102
|
+
```text
|
|
103
|
+
docs/
|
|
104
|
+
03_詳細設計/
|
|
105
|
+
src/
|
|
106
|
+
agents/
|
|
107
|
+
{agent_name}/
|
|
108
|
+
agent.md
|
|
109
|
+
domain.md
|
|
110
|
+
prompts.md
|
|
111
|
+
config.md
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
### 4-2. プラグイン
|
|
115
|
+
|
|
116
|
+
テンプレート:
|
|
117
|
+
- `templates/03_詳細設計/src/plugins/skills/{skill_name}/skill.md`
|
|
118
|
+
- `templates/03_詳細設計/src/plugins/tools/{tool_name}/tool.md`
|
|
119
|
+
|
|
120
|
+
出力:
|
|
121
|
+
|
|
122
|
+
```text
|
|
123
|
+
docs/
|
|
124
|
+
03_詳細設計/
|
|
125
|
+
src/
|
|
126
|
+
plugins/
|
|
127
|
+
skills/
|
|
128
|
+
{skill_name}/
|
|
129
|
+
skill.md
|
|
130
|
+
tools/
|
|
131
|
+
{tool_name}/
|
|
132
|
+
tool.md
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
### 4-3. インフラ補助設計
|
|
136
|
+
|
|
137
|
+
`src` ミラーだけでは表現しきれない DB / IaC / 運用構成だけ、例外として補助設計を置く。
|
|
138
|
+
|
|
139
|
+
テンプレート:
|
|
140
|
+
- `templates/03_詳細設計/infrastructure/database.md`
|
|
141
|
+
- `templates/03_詳細設計/infrastructure/schema.dbml`
|
|
142
|
+
- `templates/03_詳細設計/infrastructure/aws.md`
|
|
143
|
+
- `templates/03_詳細設計/infrastructure/sequence/シーケンス図テンプレート.md`
|
|
144
|
+
|
|
145
|
+
出力:
|
|
146
|
+
|
|
147
|
+
```text
|
|
148
|
+
docs/
|
|
149
|
+
03_詳細設計/
|
|
150
|
+
infrastructure/
|
|
151
|
+
database.md
|
|
152
|
+
schema.dbml
|
|
153
|
+
aws.md
|
|
154
|
+
sequence/
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
ユーザーに確認・承認を得る
|
|
158
|
+
|
|
159
|
+
## Phase 5: TDD → 実装
|
|
160
|
+
|
|
161
|
+
詳細設計が承認されたら `test-driven-development` スキルへ移行する。
|
|
162
|
+
|
|
163
|
+
### 実装完了後のレビュー
|
|
164
|
+
|
|
165
|
+
- `@design-reviewer` — frontmatter と `maps_to` を起点に設計書⇔実装の整合性チェック
|
|
166
|
+
- `@code-reviewer` — コーディング規約への適合チェック
|
|
167
|
+
|
|
168
|
+
## 原則
|
|
169
|
+
|
|
170
|
+
- **ユースケースは途中で止めずに洗い出す**
|
|
171
|
+
- **詳細設計は `src/` ミラーを優先する**
|
|
172
|
+
- **補助設計を置く場合も `maps_to` で対応先を残す**
|
|
173
|
+
- **`plugin-development` を最終形とみなさず、project 専用 skill の種として扱う**
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
---
|
|
2
|
+
spec_runner:
|
|
3
|
+
node_id: req.{project_slug}
|
|
4
|
+
kind: requirements
|
|
5
|
+
depends_on: []
|
|
6
|
+
maps_to: []
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# {プロジェクト名} 要件定義
|
|
10
|
+
|
|
11
|
+
## 背景・問題提起
|
|
12
|
+
|
|
13
|
+
### 解決すべき課題
|
|
14
|
+
|
|
15
|
+
**課題1: {課題名}**
|
|
16
|
+
|
|
17
|
+
- {問題の詳細}
|
|
18
|
+
- {現状の問題点}
|
|
19
|
+
- {影響範囲}
|
|
20
|
+
|
|
21
|
+
**課題2: {課題名}**
|
|
22
|
+
|
|
23
|
+
- {問題の詳細}
|
|
24
|
+
- {現状の問題点}
|
|
25
|
+
- {影響範囲}
|
|
26
|
+
|
|
27
|
+
## 提供価値
|
|
28
|
+
|
|
29
|
+
### 主要機能
|
|
30
|
+
|
|
31
|
+
1. **{機能名}**
|
|
32
|
+
- {機能の概要}
|
|
33
|
+
- {提供価値}
|
|
34
|
+
|
|
35
|
+
2. **{機能名}**
|
|
36
|
+
- {機能の概要}
|
|
37
|
+
- {提供価値}
|
|
38
|
+
|
|
39
|
+
### 対象ユーザー
|
|
40
|
+
|
|
41
|
+
- **{ユーザー種別}**: {ニーズ・利用シーン}
|
|
42
|
+
- **{ユーザー種別}**: {ニーズ・利用シーン}
|
|
43
|
+
|
|
44
|
+
## 非機能要件
|
|
45
|
+
|
|
46
|
+
### パフォーマンス
|
|
47
|
+
|
|
48
|
+
- {指標名}: {目標値}
|
|
49
|
+
- {指標名}: {目標値}
|
|
50
|
+
|
|
51
|
+
### スケーラビリティ
|
|
52
|
+
|
|
53
|
+
- {要件}
|
|
54
|
+
- {要件}
|
|
55
|
+
|
|
56
|
+
### セキュリティ
|
|
57
|
+
|
|
58
|
+
- {要件}
|
|
59
|
+
- {要件}
|
|
60
|
+
|
|
61
|
+
### 運用性
|
|
62
|
+
|
|
63
|
+
- {要件}
|
|
64
|
+
- {要件}
|
|
65
|
+
|
|
66
|
+
## スコープ外
|
|
67
|
+
|
|
68
|
+
### {機能カテゴリ}
|
|
69
|
+
|
|
70
|
+
- **理由**: {なぜ作らないか}
|
|
71
|
+
- **将来**: {いつ・どのように実装するか}
|
|
72
|
+
|
|
73
|
+
### {機能カテゴリ}
|
|
74
|
+
|
|
75
|
+
- **理由**: {なぜ作らないか}
|
|
76
|
+
- **将来**: {いつ・どのように実装するか}
|
|
77
|
+
|
|
78
|
+
## 制約・前提条件
|
|
79
|
+
|
|
80
|
+
### 技術制約
|
|
81
|
+
|
|
82
|
+
- {制約内容}
|
|
83
|
+
- {制約内容}
|
|
84
|
+
|
|
85
|
+
### ビジネス制約
|
|
86
|
+
|
|
87
|
+
- {制約内容}
|
|
88
|
+
- {制約内容}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
---
|
|
2
|
+
spec_runner:
|
|
3
|
+
node_id: adr.{decision_slug}
|
|
4
|
+
kind: adr
|
|
5
|
+
depends_on:
|
|
6
|
+
- overview.system_context
|
|
7
|
+
maps_to: []
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# ADR-0001 {決定内容のタイトル}
|
|
11
|
+
|
|
12
|
+
**ステータス**: 提案 / 採用 / 廃止 / 置換
|
|
13
|
+
**日付**: YYYY-MM-DD
|
|
14
|
+
**決定者**: {名前}
|
|
15
|
+
|
|
16
|
+
## コンテキスト
|
|
17
|
+
|
|
18
|
+
| 項目 | 内容 |
|
|
19
|
+
|------|------|
|
|
20
|
+
| 現在の状況 | {問題・課題} |
|
|
21
|
+
| 要件 | {実現する必要があること} |
|
|
22
|
+
| 制約 | {技術的・ビジネス的制約} |
|
|
23
|
+
|
|
24
|
+
## 選択肢
|
|
25
|
+
|
|
26
|
+
### 案1: {案1の名前}
|
|
27
|
+
|
|
28
|
+
- 概要: {何をするか}
|
|
29
|
+
- メリット:
|
|
30
|
+
- {メリット}
|
|
31
|
+
- デメリット:
|
|
32
|
+
- {デメリット}
|
|
33
|
+
- 適合性: {このプロジェクトにどう合うか}
|
|
34
|
+
|
|
35
|
+
### 案2: {案2の名前}
|
|
36
|
+
|
|
37
|
+
- 概要: {何をするか}
|
|
38
|
+
- メリット:
|
|
39
|
+
- {メリット}
|
|
40
|
+
- デメリット:
|
|
41
|
+
- {デメリット}
|
|
42
|
+
- 適合性: {このプロジェクトにどう合うか}
|
|
43
|
+
|
|
44
|
+
### 案3: {案3の名前}
|
|
45
|
+
|
|
46
|
+
- 概要: {何をするか}
|
|
47
|
+
- メリット:
|
|
48
|
+
- {メリット}
|
|
49
|
+
- デメリット:
|
|
50
|
+
- {デメリット}
|
|
51
|
+
- 適合性: {このプロジェクトにどう合うか}
|
|
52
|
+
|
|
53
|
+
## 決定
|
|
54
|
+
|
|
55
|
+
**採用案**: {案名}
|
|
56
|
+
|
|
57
|
+
### 採用理由
|
|
58
|
+
|
|
59
|
+
- {理由1}
|
|
60
|
+
- {理由2}
|
|
61
|
+
|
|
62
|
+
### 実装方針
|
|
63
|
+
|
|
64
|
+
1. {方針1}
|
|
65
|
+
2. {方針2}
|
|
66
|
+
3. {方針3}
|
|
67
|
+
|
|
68
|
+
## 影響
|
|
69
|
+
|
|
70
|
+
| カテゴリ | 項目 | 内容 |
|
|
71
|
+
|----------|------|------|
|
|
72
|
+
| システム | 新規追加 | {コンポーネント} |
|
|
73
|
+
| システム | 変更 | {コンポーネント} |
|
|
74
|
+
| パフォーマンス | 処理速度 | {変化} |
|
|
75
|
+
| コスト | 追加コスト | {影響} |
|
|
76
|
+
| 制約 | 将来課題 | {課題} |
|
|
77
|
+
|
|
78
|
+
### 反映が必要な文書
|
|
79
|
+
|
|
80
|
+
- `docs/02_概要設計/{対象文書}.md`
|
|
81
|
+
- `docs/03_詳細設計/src/{対象パス}.md`
|