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,80 @@
|
|
|
1
|
+
---
|
|
2
|
+
spec_runner:
|
|
3
|
+
node_id: overview.system_context
|
|
4
|
+
kind: overview
|
|
5
|
+
depends_on:
|
|
6
|
+
- req.{project_slug}
|
|
7
|
+
- overview.usecases
|
|
8
|
+
maps_to: []
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# システム全体俯瞰
|
|
12
|
+
|
|
13
|
+
## 目的
|
|
14
|
+
|
|
15
|
+
{システムの目的と全体的なアーキテクチャを説明する}
|
|
16
|
+
|
|
17
|
+
## 全体像
|
|
18
|
+
|
|
19
|
+
```mermaid
|
|
20
|
+
graph TB
|
|
21
|
+
subgraph Input["入力"]
|
|
22
|
+
A["{入力1}"]
|
|
23
|
+
B["{入力2}"]
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
subgraph Core["主要コンポーネント"]
|
|
27
|
+
C["{コンポーネント1}"]
|
|
28
|
+
D["{コンポーネント2}"]
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
subgraph External["外部 IF"]
|
|
32
|
+
E["{外部IF1}"]
|
|
33
|
+
F["{外部IF2}"]
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
A --> C
|
|
37
|
+
B --> D
|
|
38
|
+
C --> E
|
|
39
|
+
D --> F
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## 主要コンポーネント
|
|
43
|
+
|
|
44
|
+
| コンポーネント | 責務 | 実現するユースケース | 主な依存 |
|
|
45
|
+
|---------------|------|-------------------|----------|
|
|
46
|
+
| **{コンポーネント名}** | {責務の説明} | {UC一覧} | {依存一覧} |
|
|
47
|
+
|
|
48
|
+
## ドメイン責務
|
|
49
|
+
|
|
50
|
+
| ドメイン | 責務 | 主要な入出力 | 境界の根拠 |
|
|
51
|
+
|---------|------|------------|-----------|
|
|
52
|
+
| **{ドメイン名}** | {責務} | {入出力} | {根拠} |
|
|
53
|
+
|
|
54
|
+
## 外部 IF / 連携先
|
|
55
|
+
|
|
56
|
+
| IF名 | 相手先 | 目的 | 入力 | 出力 |
|
|
57
|
+
|------|--------|------|------|------|
|
|
58
|
+
| **{IF名}** | {相手先} | {目的} | {入力} | {出力} |
|
|
59
|
+
|
|
60
|
+
## データフロー
|
|
61
|
+
|
|
62
|
+
```mermaid
|
|
63
|
+
sequenceDiagram
|
|
64
|
+
participant User as ユーザー
|
|
65
|
+
participant App as {主要コンポーネント}
|
|
66
|
+
participant Tool as {ツールまたは外部IF}
|
|
67
|
+
|
|
68
|
+
User->>App: {操作}
|
|
69
|
+
App->>Tool: {依頼}
|
|
70
|
+
Tool-->>App: {結果}
|
|
71
|
+
App-->>User: {応答}
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
## 非機能・運用方針
|
|
75
|
+
|
|
76
|
+
| 項目 | 方針 | 根拠 |
|
|
77
|
+
|------|------|------|
|
|
78
|
+
| パフォーマンス | {方針} | {根拠} |
|
|
79
|
+
| セキュリティ | {方針} | {根拠} |
|
|
80
|
+
| 運用 | {方針} | {根拠} |
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
---
|
|
2
|
+
spec_runner:
|
|
3
|
+
node_id: overview.usecases
|
|
4
|
+
kind: overview
|
|
5
|
+
depends_on:
|
|
6
|
+
- req.{project_slug}
|
|
7
|
+
maps_to: []
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# ユースケース一覧
|
|
11
|
+
|
|
12
|
+
## ユースケースマップ
|
|
13
|
+
|
|
14
|
+
```mermaid
|
|
15
|
+
graph LR
|
|
16
|
+
subgraph Domain1["{Domain1}"]
|
|
17
|
+
D1Q1["UC-{日本語名1}"]
|
|
18
|
+
D1C1["UC-{日本語名2}"]
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
subgraph Domain2["{Domain2}"]
|
|
22
|
+
D2Q1["UC-{日本語名3}"]
|
|
23
|
+
D2C1["UC-{日本語名4}"]
|
|
24
|
+
end
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## {Domain1}
|
|
28
|
+
|
|
29
|
+
| ユースケース | 種別 | 概要 | アクター | 入力 | 出力 |
|
|
30
|
+
|------------|------|------|---------|------|------|
|
|
31
|
+
| **UC-{日本語名1}** | Query | {概要} | {アクター} | {入力} | {出力} |
|
|
32
|
+
| **UC-{日本語名2}** | Command | {概要} | {アクター} | {入力} | {出力} |
|
|
33
|
+
|
|
34
|
+
**特記事項**
|
|
35
|
+
|
|
36
|
+
- {前提条件}
|
|
37
|
+
- {例外条件}
|
|
38
|
+
|
|
39
|
+
## {Domain2}
|
|
40
|
+
|
|
41
|
+
| ユースケース | 種別 | 概要 | アクター | 入力 | 出力 |
|
|
42
|
+
|------------|------|------|---------|------|------|
|
|
43
|
+
| **UC-{日本語名3}** | Query | {概要} | {アクター} | {入力} | {出力} |
|
|
44
|
+
| **UC-{日本語名4}** | Command | {概要} | {アクター} | {入力} | {出力} |
|
|
45
|
+
|
|
46
|
+
**特記事項**
|
|
47
|
+
|
|
48
|
+
- {前提条件}
|
|
49
|
+
- {例外条件}
|
|
50
|
+
|
|
51
|
+
## ユースケース間の依存関係
|
|
52
|
+
|
|
53
|
+
```mermaid
|
|
54
|
+
graph TD
|
|
55
|
+
UC1["UC-{日本語名1}"] -->|"{関係}"| UC2["UC-{日本語名2}"]
|
|
56
|
+
UC2 -->|"{関係}"| UC3["UC-{日本語名3}"]
|
|
57
|
+
```
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
---
|
|
2
|
+
spec_runner:
|
|
3
|
+
node_id: detail.infrastructure.aws.{stack_slug}
|
|
4
|
+
kind: detailed_design
|
|
5
|
+
depends_on:
|
|
6
|
+
- overview.system_context
|
|
7
|
+
maps_to:
|
|
8
|
+
- infra/{iac_path}
|
|
9
|
+
- src/infrastructure/{component_path}.py
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# AWS構成: {サービス名・機能名}
|
|
13
|
+
|
|
14
|
+
## アーキテクチャ図
|
|
15
|
+
|
|
16
|
+
```mermaid
|
|
17
|
+
graph LR
|
|
18
|
+
User[ユーザー] --> API[API Gateway]
|
|
19
|
+
API --> Lambda[Lambda]
|
|
20
|
+
Lambda --> RDS[(RDS)]
|
|
21
|
+
Lambda --> S3[S3]
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## AWSサービス構成
|
|
25
|
+
|
|
26
|
+
| サービス | リソース名 | 用途 | 設定値 |
|
|
27
|
+
|----------|-----------|------|--------|
|
|
28
|
+
| Lambda | `{function-name}` | {用途} | メモリ: {MB}, タイムアウト: {秒} |
|
|
29
|
+
| RDS | `{db-instance}` | {用途} | インスタンス: {type}, ストレージ: {GB} |
|
|
30
|
+
| S3 | `{bucket-name}` | {用途} | バージョニング: {有無} |
|
|
31
|
+
|
|
32
|
+
## IAM / ネットワーク
|
|
33
|
+
|
|
34
|
+
| 項目 | 設定 |
|
|
35
|
+
|------|------|
|
|
36
|
+
| IAMロール | {role-name} |
|
|
37
|
+
| VPC | {vpc-id} |
|
|
38
|
+
| サブネット | {subnet-ids} |
|
|
39
|
+
| セキュリティグループ | {sg-id}: {ルール} |
|
|
40
|
+
|
|
41
|
+
## デプロイ構成
|
|
42
|
+
|
|
43
|
+
| 項目 | 設定 |
|
|
44
|
+
|------|------|
|
|
45
|
+
| デプロイ方法 | {CDK / Terraform / CloudFormation} |
|
|
46
|
+
| デプロイ単位 | {スタック名} |
|
|
47
|
+
| 環境 | {dev / staging / production} |
|
|
48
|
+
|
|
49
|
+
## 監視・アラート
|
|
50
|
+
|
|
51
|
+
| 監視項目 | 閾値 | 通知先 |
|
|
52
|
+
|----------|------|--------|
|
|
53
|
+
| {メトリクス名} | {閾値} | {通知先} |
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
---
|
|
2
|
+
spec_runner:
|
|
3
|
+
node_id: detail.infrastructure.database
|
|
4
|
+
kind: detailed_design
|
|
5
|
+
depends_on:
|
|
6
|
+
- overview.system_context
|
|
7
|
+
maps_to:
|
|
8
|
+
- src/infrastructure/{component_path}.py
|
|
9
|
+
- migrations/{migration_file}.sql
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# データベース設計: {テーブル名・スキーマ名}
|
|
13
|
+
|
|
14
|
+
## スキーマ定義
|
|
15
|
+
|
|
16
|
+
**DBMLファイル**: `schema.dbml`
|
|
17
|
+
|
|
18
|
+
## テーブル設計方針
|
|
19
|
+
|
|
20
|
+
### {table_name}
|
|
21
|
+
|
|
22
|
+
**責務**: {このテーブルが担う役割}
|
|
23
|
+
|
|
24
|
+
**インデックス設計**
|
|
25
|
+
|
|
26
|
+
- `idx_{table}_{column}`: {理由}
|
|
27
|
+
- `idx_{table}_{column}`: {理由}
|
|
28
|
+
|
|
29
|
+
## アクセスパターン
|
|
30
|
+
|
|
31
|
+
| 操作 | クエリ | 頻度 | 使用インデックス |
|
|
32
|
+
|------|--------|------|----------------|
|
|
33
|
+
| {操作名} | `SELECT ...` | {高/中/低} | `idx_{table}_{column}` |
|
|
34
|
+
| {操作名} | `INSERT ...` | {高/中/低} | - |
|
|
35
|
+
|
|
36
|
+
## パフォーマンス考慮事項
|
|
37
|
+
|
|
38
|
+
- 想定データ量: {件数}
|
|
39
|
+
- 増加率: {増加件数}
|
|
40
|
+
- アーカイブ戦略: {方針}
|
|
41
|
+
|
|
42
|
+
## データ整合性
|
|
43
|
+
|
|
44
|
+
| 項目 | 方法 |
|
|
45
|
+
|------|------|
|
|
46
|
+
| トランザクション分離レベル | {READ COMMITTED / REPEATABLE READ} |
|
|
47
|
+
| 楽観的ロック | {使用有無・方法} |
|
|
48
|
+
| 悲観的ロック | {使用有無・方法} |
|
|
49
|
+
|
|
50
|
+
## テスト観点
|
|
51
|
+
|
|
52
|
+
- 主要クエリの成立
|
|
53
|
+
- インデックス前提の検索
|
|
54
|
+
- マイグレーション後方互換
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
// maps_to:
|
|
2
|
+
// - migrations/{migration_file}.sql
|
|
3
|
+
// - src/infrastructure/{component_path}.py
|
|
4
|
+
|
|
5
|
+
Table {table_name} {
|
|
6
|
+
id varchar(26) [pk, note: "ULID"]
|
|
7
|
+
{field_name} varchar(255) [not null, note: "{説明}"]
|
|
8
|
+
created_at timestamptz [not null, default: `now()`]
|
|
9
|
+
updated_at timestamptz [not null, default: `now()`]
|
|
10
|
+
|
|
11
|
+
indexes {
|
|
12
|
+
{field_name} [name: "idx_{table_name}_{field_name}"]
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
Note: "{テーブルの説明}"
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
Table {child_table_name} {
|
|
19
|
+
id varchar(26) [pk, note: "ULID"]
|
|
20
|
+
{table_name}_id varchar(26) [not null, note: "FK to {table_name}"]
|
|
21
|
+
{field_name} text [null, note: "{説明}"]
|
|
22
|
+
created_at timestamptz [not null, default: `now()`]
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
Ref: {child_table_name}.{table_name}_id > {table_name}.id [delete: cascade]
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
---
|
|
2
|
+
spec_runner:
|
|
3
|
+
node_id: detail.infrastructure.sequence.{sequence_slug}
|
|
4
|
+
kind: detailed_design
|
|
5
|
+
depends_on:
|
|
6
|
+
- overview.system_context
|
|
7
|
+
maps_to:
|
|
8
|
+
- src/{related_path}
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# {シーケンス名}
|
|
12
|
+
|
|
13
|
+
```mermaid
|
|
14
|
+
sequenceDiagram
|
|
15
|
+
participant U as ユーザー
|
|
16
|
+
participant A as {参加者A}
|
|
17
|
+
participant B as {参加者B}
|
|
18
|
+
|
|
19
|
+
U->>A: {操作}
|
|
20
|
+
A->>B: {依頼}
|
|
21
|
+
B-->>A: {結果}
|
|
22
|
+
A-->>U: {応答}
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## 補足
|
|
26
|
+
|
|
27
|
+
- 対象ユースケース: {UC}
|
|
28
|
+
- 例外分岐: {分岐}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
---
|
|
2
|
+
spec_runner:
|
|
3
|
+
node_id: detail.src.agents.{agent_name}.agent
|
|
4
|
+
kind: detailed_design
|
|
5
|
+
depends_on:
|
|
6
|
+
- overview.system_context
|
|
7
|
+
- use_case.{use_case_slug}
|
|
8
|
+
maps_to:
|
|
9
|
+
- src/agents/{agent_name}/agent.py
|
|
10
|
+
- tests/agents/{agent_name}/test_agent.py
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# `src/agents/{agent_name}/agent.py` 詳細設計
|
|
14
|
+
|
|
15
|
+
## 責務
|
|
16
|
+
|
|
17
|
+
- {このモジュールが果たす役割}
|
|
18
|
+
- 実現するユースケース: {UC一覧}
|
|
19
|
+
- 呼び出す依存: {依存一覧}
|
|
20
|
+
|
|
21
|
+
## 入力と出力
|
|
22
|
+
|
|
23
|
+
| 種別 | 名前 | 型 | 説明 |
|
|
24
|
+
|------|------|----|------|
|
|
25
|
+
| 入力 | {入力名} | {型} | {説明} |
|
|
26
|
+
| 出力 | {出力名} | {型} | {説明} |
|
|
27
|
+
|
|
28
|
+
## 主要フロー
|
|
29
|
+
|
|
30
|
+
1. {ステップ1}
|
|
31
|
+
2. {ステップ2}
|
|
32
|
+
3. {ステップ3}
|
|
33
|
+
|
|
34
|
+
## 判断条件
|
|
35
|
+
|
|
36
|
+
| 判断ポイント | 条件 | アクション |
|
|
37
|
+
|------------|------|----------|
|
|
38
|
+
| **{判断ポイント}** | {条件} | {アクション} |
|
|
39
|
+
|
|
40
|
+
## エラーハンドリング
|
|
41
|
+
|
|
42
|
+
| エラーケース | 検知方法 | 対応方法 |
|
|
43
|
+
|------------|---------|---------|
|
|
44
|
+
| **{エラーケース}** | {検知方法} | {対応方法} |
|
|
45
|
+
|
|
46
|
+
## 依存モジュール
|
|
47
|
+
|
|
48
|
+
| 依存 | 目的 | 呼び出しタイミング |
|
|
49
|
+
|------|------|----------------|
|
|
50
|
+
| **{依存モジュール}** | {目的} | {タイミング} |
|
|
51
|
+
|
|
52
|
+
## テスト観点
|
|
53
|
+
|
|
54
|
+
- {正常系の観点}
|
|
55
|
+
- {異常系の観点}
|
|
56
|
+
- {境界条件の観点}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
---
|
|
2
|
+
spec_runner:
|
|
3
|
+
node_id: detail.src.agents.{agent_name}.config
|
|
4
|
+
kind: detailed_design
|
|
5
|
+
depends_on:
|
|
6
|
+
- overview.system_context
|
|
7
|
+
- detail.src.agents.{agent_name}.agent
|
|
8
|
+
maps_to:
|
|
9
|
+
- src/agents/{agent_name}/config.py
|
|
10
|
+
- tests/agents/{agent_name}/test_config.py
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# `src/agents/{agent_name}/config.py` 詳細設計
|
|
14
|
+
|
|
15
|
+
## LLM設定
|
|
16
|
+
|
|
17
|
+
| 項目 | 値 | 理由 |
|
|
18
|
+
|------|----|------|
|
|
19
|
+
| モデル | {モデル名} | {選定理由} |
|
|
20
|
+
| temperature | {値} | {理由} |
|
|
21
|
+
| max_tokens | {値} | {理由} |
|
|
22
|
+
|
|
23
|
+
## エージェント固有設定
|
|
24
|
+
|
|
25
|
+
| 設定項目 | 値 | 説明 |
|
|
26
|
+
|---------|----|------|
|
|
27
|
+
| **{設定名}** | {デフォルト値} | {説明} |
|
|
28
|
+
|
|
29
|
+
## タイムアウト / リトライ
|
|
30
|
+
|
|
31
|
+
| 処理 | 設定 | 理由 |
|
|
32
|
+
|------|------|------|
|
|
33
|
+
| LLM呼び出し | {秒または回数} | {理由} |
|
|
34
|
+
| 外部 API | {秒または回数} | {理由} |
|
|
35
|
+
|
|
36
|
+
## 環境別設定
|
|
37
|
+
|
|
38
|
+
| 環境 | 差分 |
|
|
39
|
+
|------|------|
|
|
40
|
+
| 開発 | {差分} |
|
|
41
|
+
| 本番 | {差分} |
|
|
42
|
+
|
|
43
|
+
## テスト観点
|
|
44
|
+
|
|
45
|
+
- 設定値の既定値
|
|
46
|
+
- 不正値の拒否
|
|
47
|
+
- 環境差分の取り扱い
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
---
|
|
2
|
+
spec_runner:
|
|
3
|
+
node_id: detail.src.agents.{agent_name}.domain
|
|
4
|
+
kind: detailed_design
|
|
5
|
+
depends_on:
|
|
6
|
+
- overview.system_context
|
|
7
|
+
- use_case.{use_case_slug}
|
|
8
|
+
maps_to:
|
|
9
|
+
- src/agents/{agent_name}/domain.py
|
|
10
|
+
- tests/agents/{agent_name}/test_domain.py
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# `src/agents/{agent_name}/domain.py` 詳細設計
|
|
14
|
+
|
|
15
|
+
## 概要
|
|
16
|
+
|
|
17
|
+
このエージェントが扱うビジネスロジックとデータモデルを定義する。
|
|
18
|
+
|
|
19
|
+
## エンティティ
|
|
20
|
+
|
|
21
|
+
### {日本語名}(`{ClassName}`)
|
|
22
|
+
|
|
23
|
+
{責務の説明}
|
|
24
|
+
|
|
25
|
+
| フィールド | 型 | 説明 |
|
|
26
|
+
|----------|----|------|
|
|
27
|
+
| {フィールド名} | {型} | {説明} |
|
|
28
|
+
|
|
29
|
+
**不変条件**
|
|
30
|
+
|
|
31
|
+
- {条件1}
|
|
32
|
+
- {条件2}
|
|
33
|
+
|
|
34
|
+
## 値オブジェクト
|
|
35
|
+
|
|
36
|
+
### {日本語名}(`{ClassName}`)
|
|
37
|
+
|
|
38
|
+
{責務の説明}
|
|
39
|
+
|
|
40
|
+
| フィールド | 型 | 説明 |
|
|
41
|
+
|----------|----|------|
|
|
42
|
+
| {フィールド名} | {型} | {説明} |
|
|
43
|
+
|
|
44
|
+
**バリデーション**
|
|
45
|
+
|
|
46
|
+
- {ルール1}
|
|
47
|
+
|
|
48
|
+
## ビジネスロジック
|
|
49
|
+
|
|
50
|
+
### {ロジック名}
|
|
51
|
+
|
|
52
|
+
1. {ステップ1}
|
|
53
|
+
2. {ステップ2}
|
|
54
|
+
3. {ステップ3}
|
|
55
|
+
|
|
56
|
+
## ビジネスルール
|
|
57
|
+
|
|
58
|
+
| 条件 | アクション |
|
|
59
|
+
|------|----------|
|
|
60
|
+
| {条件} | {アクション} |
|
|
61
|
+
|
|
62
|
+
## データ変換 / 境界
|
|
63
|
+
|
|
64
|
+
| 変換方向 | 入力 | 出力 | 概要 |
|
|
65
|
+
|---------|------|------|------|
|
|
66
|
+
| {外部} → 内部 | {外部形式} | {ドメインモデル} | {変換内容} |
|
|
67
|
+
| 内部 → {外部} | {ドメインモデル} | {外部形式} | {変換内容} |
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
---
|
|
2
|
+
spec_runner:
|
|
3
|
+
node_id: detail.src.agents.{agent_name}.prompts
|
|
4
|
+
kind: detailed_design
|
|
5
|
+
depends_on:
|
|
6
|
+
- overview.system_context
|
|
7
|
+
- detail.src.agents.{agent_name}.agent
|
|
8
|
+
maps_to:
|
|
9
|
+
- src/agents/{agent_name}/prompts.py
|
|
10
|
+
- tests/agents/{agent_name}/test_prompts.py
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# `src/agents/{agent_name}/prompts.py` 詳細設計
|
|
14
|
+
|
|
15
|
+
## システムプロンプト
|
|
16
|
+
|
|
17
|
+
### 役割定義
|
|
18
|
+
|
|
19
|
+
```text
|
|
20
|
+
あなたは{役割}です。
|
|
21
|
+
|
|
22
|
+
【責務】
|
|
23
|
+
- {責務1}
|
|
24
|
+
- {責務2}
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
### 出力形式
|
|
28
|
+
|
|
29
|
+
```text
|
|
30
|
+
{出力形式の例}
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## タスク別プロンプト
|
|
34
|
+
|
|
35
|
+
### タスク: {タスク名}
|
|
36
|
+
|
|
37
|
+
**用途**: {タスクの説明}
|
|
38
|
+
|
|
39
|
+
```text
|
|
40
|
+
{タスク固有の指示}
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## Few-shot 例
|
|
44
|
+
|
|
45
|
+
### 例1
|
|
46
|
+
|
|
47
|
+
入力:
|
|
48
|
+
|
|
49
|
+
```text
|
|
50
|
+
{入力例1}
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
出力:
|
|
54
|
+
|
|
55
|
+
```text
|
|
56
|
+
{出力例1}
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## ガードレール
|
|
60
|
+
|
|
61
|
+
| 項目 | 内容 |
|
|
62
|
+
|------|------|
|
|
63
|
+
| 禁止事項 | {禁止事項} |
|
|
64
|
+
| 失敗時の扱い | {扱い} |
|
|
65
|
+
| 再試行条件 | {条件} |
|
|
66
|
+
|
|
67
|
+
## プロンプト戦略
|
|
68
|
+
|
|
69
|
+
| 戦略 | 適用箇所 | 理由 |
|
|
70
|
+
|------|---------|------|
|
|
71
|
+
| 出力形式固定 | {適用箇所} | {理由} |
|
|
72
|
+
| Few-shot | {適用箇所} | {理由} |
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
---
|
|
2
|
+
spec_runner:
|
|
3
|
+
node_id: detail.src.plugins.skills.{skill_name}.skill
|
|
4
|
+
kind: detailed_design
|
|
5
|
+
depends_on:
|
|
6
|
+
- overview.system_context
|
|
7
|
+
maps_to:
|
|
8
|
+
- src/plugins/skills/{skill_name}/skill.py
|
|
9
|
+
- tests/plugins/skills/{skill_name}/test_skill.py
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# `src/plugins/skills/{skill_name}/skill.py` 詳細設計
|
|
13
|
+
|
|
14
|
+
## 概要
|
|
15
|
+
|
|
16
|
+
| 項目 | 内容 |
|
|
17
|
+
|------|------|
|
|
18
|
+
| スキル名 | {スキル名} |
|
|
19
|
+
| 責務 | {スキルが果たす役割} |
|
|
20
|
+
| 使用するエージェント | {エージェント名} |
|
|
21
|
+
| トリガー | {呼び出しタイミング} |
|
|
22
|
+
|
|
23
|
+
## 入出力
|
|
24
|
+
|
|
25
|
+
| 種別 | 名前 | 型 | 説明 |
|
|
26
|
+
|------|------|----|------|
|
|
27
|
+
| 入力 | {入力名} | {型} | {説明} |
|
|
28
|
+
| 出力 | {出力名} | {型} | {説明} |
|
|
29
|
+
|
|
30
|
+
## 判定ロジック
|
|
31
|
+
|
|
32
|
+
| 観点 | 確認内容 | 重要度 |
|
|
33
|
+
|------|---------|--------|
|
|
34
|
+
| **{観点名}** | {確認内容} | {高/中/低} |
|
|
35
|
+
|
|
36
|
+
## プロンプト
|
|
37
|
+
|
|
38
|
+
```text
|
|
39
|
+
あなたは{専門家の役割}です。
|
|
40
|
+
{タスクの説明}
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## エラーケース
|
|
44
|
+
|
|
45
|
+
| エラーケース | 発生条件 | 対応方法 |
|
|
46
|
+
|------------|---------|---------|
|
|
47
|
+
| **{エラーケース}** | {発生条件} | {対応方法} |
|
|
48
|
+
|
|
49
|
+
## テスト観点
|
|
50
|
+
|
|
51
|
+
- 判定ロジックの正常系
|
|
52
|
+
- 閾値・境界条件
|
|
53
|
+
- 入力不足・異常値
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
---
|
|
2
|
+
spec_runner:
|
|
3
|
+
node_id: detail.src.plugins.tools.{tool_name}.tool
|
|
4
|
+
kind: detailed_design
|
|
5
|
+
depends_on:
|
|
6
|
+
- overview.system_context
|
|
7
|
+
maps_to:
|
|
8
|
+
- src/plugins/tools/{tool_name}/tool.py
|
|
9
|
+
- tests/plugins/tools/{tool_name}/test_tool.py
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# `src/plugins/tools/{tool_name}/tool.py` 詳細設計
|
|
13
|
+
|
|
14
|
+
## 概要
|
|
15
|
+
|
|
16
|
+
| 項目 | 内容 |
|
|
17
|
+
|------|------|
|
|
18
|
+
| ツール名 | {ツール名} |
|
|
19
|
+
| 責務 | {ツールが果たす役割} |
|
|
20
|
+
| 使用するエージェント | {エージェント名} |
|
|
21
|
+
| カテゴリ | {計算/検索/変換/その他} |
|
|
22
|
+
|
|
23
|
+
## 入力
|
|
24
|
+
|
|
25
|
+
| パラメータ名 | 型 | 必須 | 説明 | 制約 |
|
|
26
|
+
|------------|----|------|------|------|
|
|
27
|
+
| **{パラメータ名}** | {型} | {○/×} | {説明} | {制約条件} |
|
|
28
|
+
|
|
29
|
+
## 出力
|
|
30
|
+
|
|
31
|
+
| フィールド名 | 型 | 説明 |
|
|
32
|
+
|------------|----|------|
|
|
33
|
+
| **{フィールド名}** | {型} | {説明} |
|
|
34
|
+
|
|
35
|
+
## 処理内容
|
|
36
|
+
|
|
37
|
+
1. {処理ステップ1}
|
|
38
|
+
2. {処理ステップ2}
|
|
39
|
+
3. {処理ステップ3}
|
|
40
|
+
|
|
41
|
+
## エラーケース
|
|
42
|
+
|
|
43
|
+
| エラーケース | 発生条件 | 対応方法 |
|
|
44
|
+
|------------|---------|---------|
|
|
45
|
+
| **{エラーケース}** | {発生条件} | {対応方法} |
|
|
46
|
+
|
|
47
|
+
## テスト観点
|
|
48
|
+
|
|
49
|
+
- 正常系の入出力
|
|
50
|
+
- エラー時の戻り値または例外
|
|
51
|
+
- 外部依存の失敗時の扱い
|