dev-playbooks-cn 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +466 -0
- package/bin/devbooks.js +987 -0
- package/package.json +43 -0
- package/skills/Skills/344/275/277/347/224/250/350/257/264/346/230/216.md +446 -0
- package/skills/Skill/345/274/200/345/217/221/346/214/207/345/215/227.md +248 -0
- package/skills/_shared/context-detection-template.md +315 -0
- package/skills/_shared/mcp-enhancement-template.md +144 -0
- package/skills/_shared/references//351/200/232/347/224/250/345/256/210/351/227/250/345/215/217/350/256/256.md +114 -0
- package/skills/_template/config-discovery-template.md +126 -0
- package/skills/devbooks-brownfield-bootstrap/SKILL.md +167 -0
- package/skills/devbooks-brownfield-bootstrap/references//344/273/243/347/240/201/345/257/274/350/210/252/347/255/226/347/225/245.md +203 -0
- package/skills/devbooks-brownfield-bootstrap/references//345/255/230/351/207/217/351/241/271/347/233/256/345/210/235/345/247/213/345/214/226.md +96 -0
- package/skills/devbooks-brownfield-bootstrap/references//345/255/230/351/207/217/351/241/271/347/233/256/345/210/235/345/247/213/345/214/226/346/217/220/347/244/272/350/257/215.md +115 -0
- package/skills/devbooks-brownfield-bootstrap/references//346/234/257/350/257/255/350/241/250/346/250/241/346/235/277.md +42 -0
- package/skills/devbooks-brownfield-bootstrap/scripts/cod-update.sh +357 -0
- package/skills/devbooks-brownfield-bootstrap/templates/project-profile-template.md +172 -0
- package/skills/devbooks-c4-map/SKILL.md +151 -0
- package/skills/devbooks-c4-map/references/C4/346/236/266/346/236/204/345/234/260/345/233/276/346/217/220/347/244/272/350/257/215.md +33 -0
- package/skills/devbooks-c4-map/references//345/210/206/345/261/202/347/272/246/346/235/237/346/243/200/346/237/245/346/270/205/345/215/225.md +185 -0
- package/skills/devbooks-code-review/SKILL.md +175 -0
- package/skills/devbooks-code-review/references/PR/346/250/241/346/235/277/344/270/216/346/214/207/345/215/227.md +321 -0
- package/skills/devbooks-code-review/references//344/273/243/347/240/201/350/257/204/345/256/241/346/217/220/347/244/272/350/257/215.md +100 -0
- package/skills/devbooks-code-review/references//345/235/217/345/221/263/351/201/223/351/200/237/346/237/245/350/241/250.md +495 -0
- package/skills/devbooks-code-review/references//350/265/204/346/272/220/347/256/241/347/220/206/345/256/241/346/237/245/346/270/205/345/215/225.md +311 -0
- package/skills/devbooks-coder/SKILL.md +219 -0
- package/skills/devbooks-coder/references//344/273/243/347/240/201/345/256/236/347/216/260/346/217/220/347/244/272/350/257/215.md +70 -0
- package/skills/devbooks-coder/references//344/275/216/351/243/216/351/231/251/346/224/271/345/212/250/346/212/200/346/234/257.md +275 -0
- package/skills/devbooks-coder/references//346/227/245/345/277/227/350/247/204/350/214/203.md +329 -0
- package/skills/devbooks-coder/references//347/274/226/347/240/201/351/243/216/346/240/274/347/273/206/345/210/231.md +351 -0
- package/skills/devbooks-coder/references//351/224/231/350/257/257/347/240/201/350/247/204/350/214/203.md +463 -0
- package/skills/devbooks-delivery-workflow/SKILL.md +217 -0
- package/skills/devbooks-delivery-workflow/references//344/272/244/344/273/230/351/252/214/346/224/266/345/267/245/344/275/234/346/265/201.md +256 -0
- package/skills/devbooks-delivery-workflow/references//345/216/237/345/236/213-/347/224/237/344/272/247/345/217/214/350/275/250/346/250/241/345/274/217.md +168 -0
- package/skills/devbooks-delivery-workflow/references//345/217/230/346/233/264/351/252/214/350/257/201/344/270/216/350/277/275/346/272/257/346/250/241/346/235/277.md +133 -0
- package/skills/devbooks-delivery-workflow/scripts/ac-trace-check.sh +330 -0
- package/skills/devbooks-delivery-workflow/scripts/audit-scope.sh +262 -0
- package/skills/devbooks-delivery-workflow/scripts/change-check.sh +1040 -0
- package/skills/devbooks-delivery-workflow/scripts/change-codemod-scaffold.sh +135 -0
- package/skills/devbooks-delivery-workflow/scripts/change-evidence.sh +152 -0
- package/skills/devbooks-delivery-workflow/scripts/change-scaffold.sh +442 -0
- package/skills/devbooks-delivery-workflow/scripts/change-spec-delta-scaffold.sh +136 -0
- package/skills/devbooks-delivery-workflow/scripts/constitution-check.sh +237 -0
- package/skills/devbooks-delivery-workflow/scripts/env-match-check.sh +128 -0
- package/skills/devbooks-delivery-workflow/scripts/fitness-check.sh +387 -0
- package/skills/devbooks-delivery-workflow/scripts/guardrail-check.sh +519 -0
- package/skills/devbooks-delivery-workflow/scripts/handoff-check.sh +141 -0
- package/skills/devbooks-delivery-workflow/scripts/hygiene-check.sh +340 -0
- package/skills/devbooks-delivery-workflow/scripts/migrate-from-openspec.sh +385 -0
- package/skills/devbooks-delivery-workflow/scripts/migrate-to-v2-gates.sh +202 -0
- package/skills/devbooks-delivery-workflow/scripts/progress-dashboard.sh +319 -0
- package/skills/devbooks-delivery-workflow/scripts/prototype-promote.sh +341 -0
- package/skills/devbooks-delivery-workflow/scripts/spec-preview.sh +203 -0
- package/skills/devbooks-delivery-workflow/scripts/spec-promote.sh +118 -0
- package/skills/devbooks-delivery-workflow/scripts/spec-rollback.sh +124 -0
- package/skills/devbooks-delivery-workflow/scripts/spec-stage.sh +117 -0
- package/skills/devbooks-delivery-workflow/scripts/verify-all.sh +78 -0
- package/skills/devbooks-delivery-workflow/scripts/verify-npm-package.sh +123 -0
- package/skills/devbooks-delivery-workflow/scripts/verify-openspec-free.sh +81 -0
- package/skills/devbooks-delivery-workflow/scripts/verify-slash-commands.sh +146 -0
- package/skills/devbooks-delivery-workflow/templates/handoff.md +50 -0
- package/skills/devbooks-design-backport/SKILL.md +73 -0
- package/skills/devbooks-design-backport/references//345/233/236/345/206/231/350/256/276/350/256/241/346/226/207/346/241/243/346/217/220/347/244/272/350/257/215.md +196 -0
- package/skills/devbooks-design-doc/SKILL.md +121 -0
- package/skills/devbooks-design-doc/references//345/276/256/346/234/215/345/212/241/350/256/276/350/256/241/346/270/205/345/215/225.md +149 -0
- package/skills/devbooks-design-doc/references//350/256/276/350/256/241/346/226/207/346/241/243/346/217/220/347/244/272/350/257/215.md +189 -0
- package/skills/devbooks-design-doc/references//351/232/220/347/247/201/345/220/210/350/247/204/346/243/200/346/237/245/346/270/205/345/215/225.md +240 -0
- package/skills/devbooks-entropy-monitor/SKILL.md +188 -0
- package/skills/devbooks-entropy-monitor/references//347/206/265/345/272/246/351/207/217/346/226/271/346/263/225/350/256/272.md +223 -0
- package/skills/devbooks-entropy-monitor/scripts/entropy-measure.sh +449 -0
- package/skills/devbooks-entropy-monitor/scripts/entropy-report.sh +303 -0
- package/skills/devbooks-entropy-monitor/templates/thresholds.json +99 -0
- package/skills/devbooks-federation/SKILL.md +264 -0
- package/skills/devbooks-federation/scripts/federation-check.sh +144 -0
- package/skills/devbooks-federation/templates/federation.yaml +89 -0
- package/skills/devbooks-impact-analysis/SKILL.md +135 -0
- package/skills/devbooks-impact-analysis/references//345/275/261/345/223/215/345/210/206/346/236/220/346/217/220/347/244/272/350/257/215.md +82 -0
- package/skills/devbooks-impact-analysis/scripts/graph-cache.sh +214 -0
- package/skills/devbooks-implementation-plan/SKILL.md +83 -0
- package/skills/devbooks-implementation-plan/references//347/274/226/347/240/201/350/256/241/345/210/222/346/217/220/347/244/272/350/257/215.md +99 -0
- package/skills/devbooks-index-bootstrap/SKILL.md +240 -0
- package/skills/devbooks-proposal-author/SKILL.md +83 -0
- package/skills/devbooks-proposal-author/references//346/217/220/346/241/210/346/222/260/345/206/231/346/217/220/347/244/272/350/257/215.md +66 -0
- package/skills/devbooks-proposal-challenger/SKILL.md +86 -0
- package/skills/devbooks-proposal-challenger/references//344/274/246/347/220/206/344/270/216/345/220/210/350/247/204/346/243/200/346/237/245/346/270/205/345/215/225.md +176 -0
- package/skills/devbooks-proposal-challenger/references//346/217/220/346/241/210/350/264/250/347/226/221/346/217/220/347/244/272/350/257/215.md +57 -0
- package/skills/devbooks-proposal-debate-workflow/SKILL.md +78 -0
- package/skills/devbooks-proposal-debate-workflow/references//346/217/220/346/241/210/345/257/271/350/276/251/345/267/245/344/275/234/346/265/201.md +24 -0
- package/skills/devbooks-proposal-debate-workflow/references//346/217/220/346/241/210/345/257/271/350/276/251/346/250/241/346/235/277.md +35 -0
- package/skills/devbooks-proposal-debate-workflow/scripts/proposal-debate-check.sh +102 -0
- package/skills/devbooks-proposal-judge/SKILL.md +78 -0
- package/skills/devbooks-proposal-judge/references//346/217/220/346/241/210/350/243/201/345/206/263/346/217/220/347/244/272/350/257/215.md +37 -0
- package/skills/devbooks-router/SKILL.md +346 -0
- package/skills/devbooks-spec-contract/SKILL.md +191 -0
- package/skills/devbooks-spec-contract/references/API/350/256/276/350/256/241/346/214/207/345/215/227.md +349 -0
- package/skills/devbooks-spec-contract/references//345/245/221/347/272/246/344/270/216/346/225/260/346/215/256/345/256/232/344/271/211/346/217/220/347/244/272/350/257/215.md +85 -0
- package/skills/devbooks-spec-contract/references//350/247/204/346/240/274/345/217/230/346/233/264/346/217/220/347/244/272/350/257/215.md +63 -0
- package/skills/devbooks-spec-contract/references//351/232/220/345/274/217/345/217/230/346/233/264/346/243/200/346/265/213/346/217/220/347/244/272/350/257/215.md +183 -0
- package/skills/devbooks-spec-contract/scripts/implicit-change-detect.sh +378 -0
- package/skills/devbooks-spec-gardener/SKILL.md +72 -0
- package/skills/devbooks-spec-gardener/references//350/247/204/346/240/274/345/233/255/344/270/201/346/217/220/347/244/272/350/257/215.md +41 -0
- package/skills/devbooks-test-owner/SKILL.md +172 -0
- package/skills/devbooks-test-owner/references//345/217/230/346/233/264/351/252/214/350/257/201/344/270/216/350/277/275/346/272/257/346/250/241/346/235/277.md +228 -0
- package/skills/devbooks-test-owner/references//345/274/202/346/255/245/347/263/273/347/273/237/346/265/213/350/257/225/347/255/226/347/225/245.md +316 -0
- package/skills/devbooks-test-owner/references//346/265/213/350/257/225/344/273/243/347/240/201/346/217/220/347/244/272/350/257/215.md +208 -0
- package/skills/devbooks-test-owner/references//346/265/213/350/257/225/345/210/206/345/261/202/347/255/226/347/225/245.md +281 -0
- package/skills/devbooks-test-owner/references//346/265/213/350/257/225/351/251/261/345/212/250.md +394 -0
- package/skills/devbooks-test-owner/references//350/247/243/344/276/235/350/265/226/346/212/200/346/234/257/351/200/237/346/237/245/350/241/250.md +432 -0
- package/skills/devbooks-test-reviewer/SKILL.md +189 -0
- package/templates/.devbooks/config.yaml +88 -0
- package/templates/claude-commands/devbooks/apply.md +38 -0
- package/templates/claude-commands/devbooks/archive.md +33 -0
- package/templates/claude-commands/devbooks/backport.md +19 -0
- package/templates/claude-commands/devbooks/bootstrap.md +19 -0
- package/templates/claude-commands/devbooks/c4.md +19 -0
- package/templates/claude-commands/devbooks/challenger.md +19 -0
- package/templates/claude-commands/devbooks/code.md +19 -0
- package/templates/claude-commands/devbooks/debate.md +19 -0
- package/templates/claude-commands/devbooks/delivery.md +19 -0
- package/templates/claude-commands/devbooks/design.md +19 -0
- package/templates/claude-commands/devbooks/entropy.md +19 -0
- package/templates/claude-commands/devbooks/federation.md +19 -0
- package/templates/claude-commands/devbooks/gardener.md +19 -0
- package/templates/claude-commands/devbooks/impact.md +19 -0
- package/templates/claude-commands/devbooks/index.md +19 -0
- package/templates/claude-commands/devbooks/judge.md +19 -0
- package/templates/claude-commands/devbooks/plan.md +19 -0
- package/templates/claude-commands/devbooks/proposal.md +19 -0
- package/templates/claude-commands/devbooks/quick.md +42 -0
- package/templates/claude-commands/devbooks/review.md +19 -0
- package/templates/claude-commands/devbooks/router.md +19 -0
- package/templates/claude-commands/devbooks/spec.md +19 -0
- package/templates/claude-commands/devbooks/test-review.md +19 -0
- package/templates/claude-commands/devbooks/test.md +19 -0
- package/templates/dev-playbooks/README.md +458 -0
- package/templates/dev-playbooks/changes/.gitkeep +1 -0
- package/templates/dev-playbooks/constitution.md +116 -0
- package/templates/dev-playbooks/project.md +96 -0
- package/templates/dev-playbooks/scripts/.gitkeep +1 -0
- package/templates/dev-playbooks/specs/_meta/anti-patterns/.gitkeep +2 -0
- package/templates/dev-playbooks/specs/_meta/glossary.md +47 -0
- package/templates/dev-playbooks/specs/_meta/project-profile.md +79 -0
- package/templates/dev-playbooks/specs/architecture/fitness-rules.md +95 -0
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: devbooks-implementation-plan
|
|
3
|
+
description: devbooks-implementation-plan:从设计文档推导编码计划(tasks.md),输出可跟踪的主线计划/临时计划/断点区,并绑定验收锚点。用户说"写编码计划/Implementation Plan/tasks.md/任务拆解/并行拆分/里程碑/验收锚点"等时使用。
|
|
4
|
+
tools:
|
|
5
|
+
- Glob
|
|
6
|
+
- Grep
|
|
7
|
+
- Read
|
|
8
|
+
- Write
|
|
9
|
+
- Edit
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# DevBooks:编码计划(Implementation Plan)
|
|
13
|
+
|
|
14
|
+
## 前置:配置发现(协议无关)
|
|
15
|
+
|
|
16
|
+
- `<truth-root>`:当前真理目录根
|
|
17
|
+
- `<change-root>`:变更包目录根
|
|
18
|
+
|
|
19
|
+
执行前**必须**按以下顺序查找配置(找到后停止):
|
|
20
|
+
1. `.devbooks/config.yaml`(如存在)→ 解析并使用其中的映射
|
|
21
|
+
2. `dev-playbooks/project.md`(如存在)→ DevBooks 2.0 协议,使用默认映射
|
|
22
|
+
4. `project.md`(如存在)→ template 协议,使用默认映射
|
|
23
|
+
5. 若仍无法确定 → **停止并询问用户**
|
|
24
|
+
|
|
25
|
+
**关键约束**:
|
|
26
|
+
- 如果配置中指定了 `agents_doc`(规则文档),**必须先阅读该文档**再执行任何操作
|
|
27
|
+
- 禁止猜测目录根
|
|
28
|
+
- 禁止跳过规则文档阅读
|
|
29
|
+
|
|
30
|
+
## 产物落点
|
|
31
|
+
|
|
32
|
+
- 编码计划:`<change-root>/<change-id>/tasks.md`
|
|
33
|
+
|
|
34
|
+
## 执行方式
|
|
35
|
+
|
|
36
|
+
1) 先阅读并遵守:`_shared/references/通用守门协议.md`(可验证性 + 结构质量守门)。
|
|
37
|
+
2) 严格按完整提示词输出:`references/编码计划提示词.md`(只从设计推导,不参考 tests/)。
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## 上下文感知
|
|
42
|
+
|
|
43
|
+
本 Skill 在执行前自动检测上下文,选择合适的运行模式。
|
|
44
|
+
|
|
45
|
+
检测规则参考:`skills/_shared/context-detection-template.md`
|
|
46
|
+
|
|
47
|
+
### 检测流程
|
|
48
|
+
|
|
49
|
+
1. 检测 `design.md` 是否存在(计划的输入)
|
|
50
|
+
2. 检测 `tasks.md` 是否已存在
|
|
51
|
+
3. 若存在,检测进度(完成/进行中/待开始)
|
|
52
|
+
|
|
53
|
+
### 本 Skill 支持的模式
|
|
54
|
+
|
|
55
|
+
| 模式 | 触发条件 | 行为 |
|
|
56
|
+
|------|----------|------|
|
|
57
|
+
| **新建计划** | `tasks.md` 不存在 | 从 design.md 推导完整计划 |
|
|
58
|
+
| **更新计划** | `tasks.md` 存在,design.md 有更新 | 同步计划与设计变更 |
|
|
59
|
+
| **添加临时任务** | 发现计划外紧急任务 | 添加到临时计划区 |
|
|
60
|
+
|
|
61
|
+
### Planner 约束
|
|
62
|
+
|
|
63
|
+
- 只读 design.md 和 specs/
|
|
64
|
+
- **不得参考 tests/**(避免实现偏见)
|
|
65
|
+
- 不得写实现代码
|
|
66
|
+
|
|
67
|
+
### 检测输出示例
|
|
68
|
+
|
|
69
|
+
```
|
|
70
|
+
检测结果:
|
|
71
|
+
- design.md:存在,AC 数量 14 个
|
|
72
|
+
- tasks.md:不存在
|
|
73
|
+
- 运行模式:新建计划
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## MCP 增强
|
|
79
|
+
|
|
80
|
+
本 Skill 不依赖 MCP 服务,无需运行时检测。
|
|
81
|
+
|
|
82
|
+
MCP 增强规则参考:`skills/_shared/mcp-enhancement-template.md`
|
|
83
|
+
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
# 编码计划提示词
|
|
2
|
+
|
|
3
|
+
> **角色设定**:你是项目规划领域的**最强大脑**——融合了 Fred Brooks(软件工程管理)、Kent Beck(敏捷迭代)、Martin Fowler(任务拆解与演进)的智慧。你的计划必须达到这些大师级专家的水准。
|
|
4
|
+
|
|
5
|
+
最高指示(优先级最高):
|
|
6
|
+
- 在执行本提示词前,先阅读 `_shared/references/通用守门协议.md` 并遵循其中所有协议。
|
|
7
|
+
|
|
8
|
+
你是项目资深技术负责人/架构师,目标产出是“编码计划(Implementation Plan)/任务指令表”,用于指导多人并行开发与后续 AI执行与验收。
|
|
9
|
+
|
|
10
|
+
产物落点(目录约定,协议无关):
|
|
11
|
+
- 本编码计划通常保存为:`<change-root>/<change-id>/tasks.md`
|
|
12
|
+
- 计划应以 `<change-root>/<change-id>/design.md`(设计文档)为输入真理源;不要参考验收测试内容(tests/)来反推计划
|
|
13
|
+
- 若你发现计划需要引入设计未声明的新约束:必须输出 “Design Backport Candidates(需回写设计)”,并把相关任务标记为“需先设计确认/回写后实施”
|
|
14
|
+
|
|
15
|
+
输入材料(由我提供给你):
|
|
16
|
+
- 设计文档
|
|
17
|
+
|
|
18
|
+
同源隔离(建议强制):
|
|
19
|
+
- 为避免“按验收题目反推计划”的同源偏差,你在生成编码计划时**不要**参考 `tests/` 中的验收测试内容;编码计划应只从设计文档推导。
|
|
20
|
+
|
|
21
|
+
任务:
|
|
22
|
+
1) 生成一份编码计划指令表,要求具备【主线计划区】与【临时计划区】两种模式,并包含【断点区】。
|
|
23
|
+
2) 编码计划必须体现“规划优势与抽象优势”:以模块/能力/接口/数据契约/验收为中心,而不是落入实现细节。
|
|
24
|
+
|
|
25
|
+
硬约束(必须遵守):
|
|
26
|
+
- 你输出的是【编码计划】,不是代码实现。
|
|
27
|
+
- 禁止输出:任何可直接复制运行的完整实现代码、函数/方法的完整函数体、超过 25 行的代码块。
|
|
28
|
+
- 允许输出:接口签名(不含实现)、数据结构字段清单、事件 schema、迁移/表结构草图、以及“复杂算法的伪代码或结构化自然语言流程”(见下方算法规范)。
|
|
29
|
+
- 计划颗粒度必须可用于任务跟踪与并行开发:每个子任务应可独立作为 1 个 PR 或 0.5–2 天工作量(按项目实际调整),避免“巨型任务”或“微步骤清单”。
|
|
30
|
+
- **小变更约束**:每个子任务预期代码改动量不超过 **200 行**(不含自动生成代码);超过必须拆分为可独立验收的子任务。
|
|
31
|
+
- 计划必须可验收:每个子任务必须有明确 Acceptance Criteria,并尽可能映射到测试(单测/集成测/架构适配测试/回放测试)。
|
|
32
|
+
- 若信息不足:不要停在提问;先列出“假设(Assumptions)”,继续产出计划;开放问题最多 3 个,放到文档末尾。
|
|
33
|
+
|
|
34
|
+
范围与变更控制(必须遵守):
|
|
35
|
+
- **设计优先**:编码计划必须可追溯到设计文档(至少引用设计章节号;若设计文档提供 AC-xxx,则必须引用 AC ID)。
|
|
36
|
+
- **禁止无声扩展范围**:如果你发现“为了落地,计划必须引入设计文档未明确的新约束/新概念/新验收口径”,你必须:
|
|
37
|
+
1) 在计划细化区新增一个 **Design Backport Candidates(需回写设计)** 小节,列出候选变更(<=10 条),并标注原因与影响;
|
|
38
|
+
2) 在主线计划区中,把对应任务标记为“需先设计确认/回写后实施”,不得把它们伪装成本次必做且已被设计确认的需求;
|
|
39
|
+
3) 提供建议的回写路径(可直接使用“回写设计文档提示词”)。
|
|
40
|
+
- **验收锚点强制**:每个子任务必须声明候选验收锚点(tests/静态检查/命令/人工清单);无锚点的任务必须被标记为
|
|
41
|
+
`UNSCOPED/DEFERRED/缺锚点`,否则无法客观宣告 DONE。
|
|
42
|
+
- **大规模变更(LSC)触发**:若改动涉及 >10 个文件或跨多个模块的同质化修改,必须启用 LSC 模式:
|
|
43
|
+
1) 优先写 codemod/脚本执行批量变更;
|
|
44
|
+
- 建议落盘到:`<change-root>/<change-id>/scripts/`(可选用 `change-codemod-scaffold.sh <change-id> --name <codemod-name>` 生成脚本骨架)
|
|
45
|
+
2) 将任务拆为可独立归档的分片(允许过渡期新旧共存);
|
|
46
|
+
3) 明确“兼容窗口 + 清理时机”(不要追求一次性原子切换)。
|
|
47
|
+
|
|
48
|
+
输出格式(严格按此顺序;并且【计划区域必须处于文档最上方】):
|
|
49
|
+
1) 文档标题 + 元信息(维护者/关联规范/输入材料清单)
|
|
50
|
+
2) 【模式选择】声明:默认 `主线计划模式`
|
|
51
|
+
3) 计划区域(必须紧贴文档顶部出现):
|
|
52
|
+
- **主线计划区 (Main Plan Area)**:写出任务包/子任务/验收标准(保持原文稳定,不要在其中写“已完成/进行中”等状
|
|
53
|
+
态)
|
|
54
|
+
- **临时计划区 (Temporary Plan Area)**:预留模板(可以为空或只有占位)
|
|
55
|
+
4) 计划细化区(在计划区域之后):
|
|
56
|
+
- Scope & Non-goals
|
|
57
|
+
- Architecture Delta(新增/收敛模块边界;依赖方向;扩展点)
|
|
58
|
+
- Data Contracts(Artifacts/事件信封/schema_version/idempotency_key;兼容策略)
|
|
59
|
+
- Milestones(按 Phase 或 Release 划分;每个里程碑的验收口径)
|
|
60
|
+
- Work Breakdown(PR 切分建议 + 可并行点 + 依赖关系)
|
|
61
|
+
- Deprecation & Cleanup(替换/弃用策略、删除窗口、回滚条件)
|
|
62
|
+
- Dependency Policy(One Version Rule / Strict Deps / lock 文件对齐)
|
|
63
|
+
- Quality Gates(lint/复杂度/重复度/依赖规则)
|
|
64
|
+
- Guardrail Conflicts(代理指标要求与结构风险评估;必要时停线并回到设计)
|
|
65
|
+
- Observability(指标/KPI/SLO/日志与审计落点)
|
|
66
|
+
- Rollout & Rollback(灰度/开关/回滚/数据迁移与恢复)
|
|
67
|
+
- Risks & Edge Cases(含降级策略)
|
|
68
|
+
- Open Questions(<=3)
|
|
69
|
+
5) 【断点区】(Context Switch Breakpoint Area):按模板输出(留空即可,用于未来切换主线/临时计划时记录)
|
|
70
|
+
|
|
71
|
+
主线计划区写法规范(强制):
|
|
72
|
+
- 每个任务包必须有:目的(Why)、交付物(Deliverables)、影响范围(Files/Modules)、验收标准(Acceptance
|
|
73
|
+
Criteria)、依赖(Dependencies)、风险(Risks)。
|
|
74
|
+
- 子任务写到“接口/契约/行为边界”为止,不写函数体实现。
|
|
75
|
+
- 验收标准必须“可观察、可测试”:优先写成“新增/更新哪些测试用例、通过哪些验收检查、关键指标达到什么阈值”。
|
|
76
|
+
|
|
77
|
+
临时计划区写法规范(强制):
|
|
78
|
+
- 仅用于计划外高优任务;需要说明:触发原因、影响面、最小修复范围、回归测试要求。
|
|
79
|
+
- 临时计划不得破坏主线计划的总体架构约束(例如依赖方向/数据契约/安全边界)。
|
|
80
|
+
|
|
81
|
+
复杂算法规范(用来减轻后续编码 AI 负担;必须遵守):
|
|
82
|
+
- 当子任务涉及复杂算法/策略(例如:去重、置信度传播、三角验证、动态阈值、增量索引、调度策略),必须在计划细化区
|
|
83
|
+
增加一个 **Algorithm Spec** 小节,内容包括:
|
|
84
|
+
1) 输入/输出(Inputs/Outputs)
|
|
85
|
+
2) 关键不变量(Invariants)与失败模式(Failure Modes)
|
|
86
|
+
3) 核心流程(用伪代码或结构化自然语言描述;每个算法伪代码 ≤ 40 行;禁止语言特定语法与可运行代码)
|
|
87
|
+
4) 复杂度与资源上限(Time/Space/IO/预算)
|
|
88
|
+
5) 边界条件与测试用例要点(至少 5 条)
|
|
89
|
+
- 伪代码要求“不可直接运行”:例如使用 `FOR EACH`, `IF`, `EMIT EVENT`, `WRITE WORKSPACE` 等抽象指令;不要出现某语
|
|
90
|
+
言的具体库调用与语法细节。
|
|
91
|
+
|
|
92
|
+
写作风格约束:
|
|
93
|
+
- 使用 Markdown;条目编号要稳定(如 MP1.1、MP1.2…,便于追踪与引用)。
|
|
94
|
+
- 不要复述设计文档全文;引用关键原则/约束即可。
|
|
95
|
+
- 计划必须可被另一个执行型 AI 按步骤落地,并能用测试/验收标准判断是否完成。
|
|
96
|
+
|
|
97
|
+
现在开始输出该“编码计划指令表”Markdown,严格遵循上述格式与约束,不要输出额外解释。
|
|
98
|
+
|
|
99
|
+
这是输入材料:
|
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: devbooks-index-bootstrap
|
|
3
|
+
description: devbooks-index-bootstrap:自动检测项目语言栈并生成 SCIP 索引,激活图基代码理解能力。在首次进入大型项目、或 CKB 报告索引缺失时自动触发。
|
|
4
|
+
tools:
|
|
5
|
+
- Glob
|
|
6
|
+
- Read
|
|
7
|
+
- Bash
|
|
8
|
+
- mcp__ckb__getStatus
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# DevBooks:索引引导(Index Bootstrap)
|
|
12
|
+
|
|
13
|
+
## 触发条件
|
|
14
|
+
|
|
15
|
+
以下任一条件满足时自动执行:
|
|
16
|
+
1. 用户说"初始化索引/建立代码图谱/激活图分析"
|
|
17
|
+
2. `mcp__ckb__getStatus` 返回 SCIP 后端 `healthy: false`
|
|
18
|
+
3. 进入新项目且 `index.scip` 不存在
|
|
19
|
+
|
|
20
|
+
## 执行流程
|
|
21
|
+
|
|
22
|
+
### Step 1: 检测项目语言栈
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
# 检测主要语言
|
|
26
|
+
if [ -f "package.json" ] || [ -f "tsconfig.json" ]; then
|
|
27
|
+
echo "LANG=typescript"
|
|
28
|
+
elif [ -f "pyproject.toml" ] || [ -f "setup.py" ] || [ -f "requirements.txt" ]; then
|
|
29
|
+
echo "LANG=python"
|
|
30
|
+
elif [ -f "go.mod" ]; then
|
|
31
|
+
echo "LANG=go"
|
|
32
|
+
elif [ -f "pom.xml" ] || [ -f "build.gradle" ] || [ -f "build.gradle.kts" ]; then
|
|
33
|
+
echo "LANG=java"
|
|
34
|
+
elif [ -f "Cargo.toml" ]; then
|
|
35
|
+
echo "LANG=rust"
|
|
36
|
+
else
|
|
37
|
+
echo "LANG=unknown"
|
|
38
|
+
fi
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### Step 2: 检查索引器是否已安装
|
|
42
|
+
|
|
43
|
+
| 语言 | 检查命令 | 安装命令 |
|
|
44
|
+
|------|----------|----------|
|
|
45
|
+
| TypeScript/JS | `which scip-typescript` | `npm install -g @sourcegraph/scip-typescript` |
|
|
46
|
+
| Python | `which scip-python` | `pip install scip-python` |
|
|
47
|
+
| Go | `which scip-go` | `go install github.com/sourcegraph/scip-go@latest` |
|
|
48
|
+
| Java | 检查 gradle/maven 插件 | 见 scip-java 文档 |
|
|
49
|
+
| Rust | `which rust-analyzer` | `rustup component add rust-analyzer` |
|
|
50
|
+
|
|
51
|
+
### Step 3: 生成索引
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
# TypeScript/JavaScript
|
|
55
|
+
scip-typescript index --output index.scip
|
|
56
|
+
|
|
57
|
+
# Python
|
|
58
|
+
scip-python index . --output index.scip
|
|
59
|
+
|
|
60
|
+
# Go
|
|
61
|
+
scip-go --output index.scip
|
|
62
|
+
|
|
63
|
+
# Rust (通过 rust-analyzer)
|
|
64
|
+
rust-analyzer scip . > index.scip
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### Step 4: 验证索引
|
|
68
|
+
|
|
69
|
+
生成后调用 `mcp__ckb__getStatus`,确认 SCIP 后端变为 `healthy: true`。
|
|
70
|
+
|
|
71
|
+
## 输出
|
|
72
|
+
|
|
73
|
+
成功时输出:
|
|
74
|
+
```
|
|
75
|
+
✓ 检测到 TypeScript 项目
|
|
76
|
+
✓ scip-typescript 已安装
|
|
77
|
+
✓ index.scip 已生成 (2.3 MB, 15,234 symbols)
|
|
78
|
+
✓ CKB SCIP 后端已激活
|
|
79
|
+
|
|
80
|
+
图基能力已就绪:
|
|
81
|
+
- mcp__ckb__searchSymbols
|
|
82
|
+
- mcp__ckb__findReferences
|
|
83
|
+
- mcp__ckb__getCallGraph
|
|
84
|
+
- mcp__ckb__analyzeImpact
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
## 索引维护建议
|
|
88
|
+
|
|
89
|
+
生成索引后,建议配置自动更新以保持索引最新:
|
|
90
|
+
|
|
91
|
+
### 方式一:Git Hook(推荐)
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
# 创建 post-commit hook
|
|
95
|
+
cat > .git/hooks/post-commit << 'EOF'
|
|
96
|
+
#!/bin/bash
|
|
97
|
+
if command -v scip-typescript &> /dev/null; then
|
|
98
|
+
scip-typescript index --output index.scip &
|
|
99
|
+
fi
|
|
100
|
+
EOF
|
|
101
|
+
chmod +x .git/hooks/post-commit
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### 方式三:CI Pipeline(团队协作)
|
|
105
|
+
|
|
106
|
+
```yaml
|
|
107
|
+
# .github/workflows/index.yml
|
|
108
|
+
on:
|
|
109
|
+
push:
|
|
110
|
+
paths: ['src/**', 'lib/**']
|
|
111
|
+
jobs:
|
|
112
|
+
index:
|
|
113
|
+
runs-on: ubuntu-latest
|
|
114
|
+
steps:
|
|
115
|
+
- uses: actions/checkout@v4
|
|
116
|
+
- run: npm install -g @anthropic-ai/scip-typescript
|
|
117
|
+
- run: scip-typescript index --output index.scip
|
|
118
|
+
- uses: actions/upload-artifact@v4
|
|
119
|
+
with:
|
|
120
|
+
name: scip-index
|
|
121
|
+
path: index.scip
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
## 注意事项
|
|
125
|
+
|
|
126
|
+
- 大型项目首次索引可能需要 1-5 分钟
|
|
127
|
+
- 索引文件建议加入 `.gitignore`(或作为 CI artifact 共享)
|
|
128
|
+
- 索引过期不影响功能,只是图数据可能不完整
|
|
129
|
+
|
|
130
|
+
## CKB 索引检测路径
|
|
131
|
+
|
|
132
|
+
DevBooks 会自动检测以下路径来判断索引是否可用:
|
|
133
|
+
|
|
134
|
+
| 路径 | 说明 |
|
|
135
|
+
|------|------|
|
|
136
|
+
| `$CWD/index.scip` | SCIP 索引文件(推荐) |
|
|
137
|
+
| `$CWD/.git/ckb/` | CKB 本地缓存目录 |
|
|
138
|
+
| `$CWD/.devbooks/embeddings/index.tsv` | DevBooks Embedding 索引 |
|
|
139
|
+
|
|
140
|
+
任一路径存在即认为索引可用,Hook 输出会显示 `✅ 索引可用`。
|
|
141
|
+
|
|
142
|
+
## 常见问题
|
|
143
|
+
|
|
144
|
+
### Q: 为什么提示「可启用 CKB 加速代码分析」?
|
|
145
|
+
|
|
146
|
+
A: 这表示当前项目没有可用的代码索引。运行此 Skill 生成索引后,可启用以下高级功能:
|
|
147
|
+
- `mcp__ckb__searchSymbols` - 符号搜索
|
|
148
|
+
- `mcp__ckb__findReferences` - 引用查找
|
|
149
|
+
- `mcp__ckb__getCallGraph` - 调用图分析
|
|
150
|
+
- `mcp__ckb__analyzeImpact` - 影响分析
|
|
151
|
+
|
|
152
|
+
### Q: macOS 上 grep 不支持 `-P` 选项怎么办?
|
|
153
|
+
|
|
154
|
+
A: 安装 GNU grep:
|
|
155
|
+
```bash
|
|
156
|
+
brew install grep
|
|
157
|
+
# 使用 ggrep 替代 grep
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
### Q: 索引文件太大怎么办?
|
|
161
|
+
|
|
162
|
+
A: 建议将 `index.scip` 加入 `.gitignore`,在 CI 中生成并作为 artifact 共享:
|
|
163
|
+
```bash
|
|
164
|
+
echo "index.scip" >> .gitignore
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
### Q: 如何验证索引是否生效?
|
|
168
|
+
|
|
169
|
+
A: 使用 CKB 状态检查工具:
|
|
170
|
+
```
|
|
171
|
+
# 在 Claude Code 中
|
|
172
|
+
mcp__ckb__getStatus
|
|
173
|
+
```
|
|
174
|
+
应返回 `scip: { healthy: true }`。
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
178
|
+
## 上下文感知
|
|
179
|
+
|
|
180
|
+
本 Skill 在执行前自动检测上下文,选择合适的索引策略。
|
|
181
|
+
|
|
182
|
+
检测规则参考:`skills/_shared/context-detection-template.md`
|
|
183
|
+
|
|
184
|
+
### 检测流程
|
|
185
|
+
|
|
186
|
+
1. 检测 `index.scip` 是否存在
|
|
187
|
+
2. 调用 `mcp__ckb__getStatus` 检查 SCIP 后端状态
|
|
188
|
+
3. 检测项目语言栈
|
|
189
|
+
|
|
190
|
+
### 本 Skill 支持的模式
|
|
191
|
+
|
|
192
|
+
| 模式 | 触发条件 | 行为 |
|
|
193
|
+
|------|----------|------|
|
|
194
|
+
| **首次索引** | index.scip 不存在 | 检测语言栈并生成索引 |
|
|
195
|
+
| **更新索引** | index.scip 存在但过期 | 重新生成索引 |
|
|
196
|
+
| **验证模式** | 带 --check 参数 | 只验证索引状态,不生成 |
|
|
197
|
+
|
|
198
|
+
### 检测输出示例
|
|
199
|
+
|
|
200
|
+
```
|
|
201
|
+
检测结果:
|
|
202
|
+
- index.scip:不存在
|
|
203
|
+
- CKB SCIP 后端:不可用
|
|
204
|
+
- 语言栈:TypeScript
|
|
205
|
+
- 运行模式:首次索引
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
---
|
|
209
|
+
|
|
210
|
+
## MCP 增强
|
|
211
|
+
|
|
212
|
+
本 Skill 支持 MCP 运行时增强,用于检测索引状态。
|
|
213
|
+
|
|
214
|
+
MCP 增强规则参考:`skills/_shared/mcp-enhancement-template.md`
|
|
215
|
+
|
|
216
|
+
### 依赖的 MCP 服务
|
|
217
|
+
|
|
218
|
+
| 服务 | 用途 | 超时 |
|
|
219
|
+
|------|------|------|
|
|
220
|
+
| `mcp__ckb__getStatus` | 检测 SCIP 后端状态 | 2s |
|
|
221
|
+
|
|
222
|
+
### 检测流程
|
|
223
|
+
|
|
224
|
+
1. 调用 `mcp__ckb__getStatus`(2s 超时)
|
|
225
|
+
2. 检查 SCIP 后端是否 healthy
|
|
226
|
+
3. 若不可用 → 触发索引生成流程
|
|
227
|
+
|
|
228
|
+
### 索引生成后激活的 MCP 能力
|
|
229
|
+
|
|
230
|
+
| 功能 | MCP 工具 |
|
|
231
|
+
|------|----------|
|
|
232
|
+
| 符号搜索 | `mcp__ckb__searchSymbols` |
|
|
233
|
+
| 引用查找 | `mcp__ckb__findReferences` |
|
|
234
|
+
| 调用图分析 | `mcp__ckb__getCallGraph` |
|
|
235
|
+
| 影响分析 | `mcp__ckb__analyzeImpact` |
|
|
236
|
+
|
|
237
|
+
### 降级提示
|
|
238
|
+
|
|
239
|
+
本 Skill 不需要降级,其目的就是生成索引以启用其他 Skill 的 MCP 增强能力。
|
|
240
|
+
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: devbooks-proposal-author
|
|
3
|
+
description: devbooks-proposal-author:撰写变更提案 proposal.md(Why/What/Impact + Debate Packet),作为后续 Design/Spec/Plan 的入口。对设计性决策会呈现选项给用户选择。用户说"写提案/proposal/为什么要改/影响范围/坏味道重构提案"等时使用。
|
|
4
|
+
tools:
|
|
5
|
+
- Glob
|
|
6
|
+
- Grep
|
|
7
|
+
- Read
|
|
8
|
+
- Write
|
|
9
|
+
- Edit
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# DevBooks:提案撰写(Proposal Author)
|
|
13
|
+
|
|
14
|
+
## 前置:配置发现(协议无关)
|
|
15
|
+
|
|
16
|
+
- `<truth-root>`:当前真理目录根
|
|
17
|
+
- `<change-root>`:变更包目录根
|
|
18
|
+
|
|
19
|
+
执行前**必须**按以下顺序查找配置(找到后停止):
|
|
20
|
+
1. `.devbooks/config.yaml`(如存在)→ 解析并使用其中的映射
|
|
21
|
+
2. `dev-playbooks/project.md`(如存在)→ DevBooks 2.0 协议,使用默认映射
|
|
22
|
+
3. `project.md`(如存在)→ template 协议,使用默认映射
|
|
23
|
+
4. 若仍无法确定 → **停止并询问用户**
|
|
24
|
+
|
|
25
|
+
**关键约束**:
|
|
26
|
+
- 如果配置中指定了 `agents_doc`(规则文档),**必须先阅读该文档**再执行任何操作
|
|
27
|
+
- 禁止猜测目录根
|
|
28
|
+
- 禁止跳过规则文档阅读
|
|
29
|
+
|
|
30
|
+
## 核心职责
|
|
31
|
+
|
|
32
|
+
1. **提案撰写**:产出清晰、可审查、可落地的变更提案
|
|
33
|
+
2. **设计性决策交互**:对于无法客观判断好坏的设计选择,呈现选项给用户决策,不自行拍板
|
|
34
|
+
|
|
35
|
+
## 产物落点
|
|
36
|
+
|
|
37
|
+
- 提案:`<change-root>/<change-id>/proposal.md`
|
|
38
|
+
|
|
39
|
+
## 执行方式
|
|
40
|
+
|
|
41
|
+
1) 先阅读并遵守:`_shared/references/通用守门协议.md`(可验证性 + 结构质量守门)。
|
|
42
|
+
2) 严格按完整提示词输出:`references/提案撰写提示词.md`。
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## 上下文感知
|
|
47
|
+
|
|
48
|
+
本 Skill 在执行前自动检测上下文,选择合适的运行模式。
|
|
49
|
+
|
|
50
|
+
检测规则参考:`skills/_shared/context-detection-template.md`
|
|
51
|
+
|
|
52
|
+
### 检测流程
|
|
53
|
+
|
|
54
|
+
1. 检测变更包是否存在
|
|
55
|
+
2. 检测 `proposal.md` 是否已存在
|
|
56
|
+
3. 若存在,检测是否有 Decision Log(是否已裁决)
|
|
57
|
+
|
|
58
|
+
### 本 Skill 支持的模式
|
|
59
|
+
|
|
60
|
+
| 模式 | 触发条件 | 行为 |
|
|
61
|
+
|------|----------|------|
|
|
62
|
+
| **新建提案** | 变更包不存在或 `proposal.md` 不存在 | 创建完整提案文档 |
|
|
63
|
+
| **修订提案** | `proposal.md` 存在,Judge 要求 Revise | 根据裁决意见修改提案 |
|
|
64
|
+
| **补充 Impact** | `proposal.md` 存在但缺少 Impact 章节 | 补充影响分析部分 |
|
|
65
|
+
|
|
66
|
+
### 检测输出示例
|
|
67
|
+
|
|
68
|
+
```
|
|
69
|
+
检测结果:
|
|
70
|
+
- 变更包状态:存在
|
|
71
|
+
- proposal.md:存在
|
|
72
|
+
- 裁决状态:Revise(需要修改)
|
|
73
|
+
- 运行模式:修订提案
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## MCP 增强
|
|
79
|
+
|
|
80
|
+
本 Skill 不依赖 MCP 服务,无需运行时检测。
|
|
81
|
+
|
|
82
|
+
MCP 增强规则参考:`skills/_shared/mcp-enhancement-template.md`
|
|
83
|
+
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# 提案撰写提示词
|
|
2
|
+
|
|
3
|
+
> **角色设定**:你是软件架构领域的**最强大脑**——融合了 Eric Evans(领域驱动设计)、Martin Fowler(架构与重构)、Sam Newman(微服务设计)的智慧。你的提案必须达到这些大师级专家的水准。
|
|
4
|
+
|
|
5
|
+
最高指示(优先级最高):
|
|
6
|
+
- 在执行本提示词前,先阅读 `_shared/references/通用守门协议.md` 并遵循其中所有协议。
|
|
7
|
+
|
|
8
|
+
你是"提案负责人(Proposal Author)"。你的任务是在 proposal 阶段产出清晰、可审查、可落地的变更提案,确保范围最小且可验证。
|
|
9
|
+
|
|
10
|
+
输入材料(由我提供):
|
|
11
|
+
- 需求与目标(1–3 句)
|
|
12
|
+
- 当前真理:`<truth-root>/`
|
|
13
|
+
- 项目画像:`<truth-root>/_meta/project-profile.md`
|
|
14
|
+
- 统一语言表(如存在):`<truth-root>/_meta/glossary.md`
|
|
15
|
+
- 已有影响分析(如有)
|
|
16
|
+
|
|
17
|
+
硬约束(必须遵守):
|
|
18
|
+
1) 你只负责 `proposal.md`:只允许创建/更新 `(<change-root>/<change-id>/proposal.md)`;不得创建/修改任何其他文件(包括但不限于 `design.md`、`tasks.md`、`specs/**`、`tests/**`、`<truth-root>/**`)。
|
|
19
|
+
2) 用证据与可验证判据表达范围;避免"泛化承诺"。
|
|
20
|
+
3) 主动列出可争议点(供 Challenger 辩论),不要把风险藏起来。
|
|
21
|
+
4) **设计性决策交互**:对于无法客观判断好坏的设计选择(A、B 都可行,取决于偏好),必须:
|
|
22
|
+
- 明确列出各选项及其优劣
|
|
23
|
+
- 在 Debate Packet 中标注为"需用户决策"
|
|
24
|
+
- 暂停等待用户选择,不自行拍板
|
|
25
|
+
5) 如果用户要求你运行验证命令:
|
|
26
|
+
- 允许运行,但把它当作**只读检查**。
|
|
27
|
+
- 你不得为"修复 validate 报错"而越权创建/修改 `design/tasks/specs/tests` 等文件。
|
|
28
|
+
- 你只能:把报错摘要写进 `proposal.md` 的 Debate Packet 或 Open Questions,并给出下一步应由哪个角色/Skill 处理。
|
|
29
|
+
|
|
30
|
+
核心价值观(不可妥协):
|
|
31
|
+
- 价值与范围最小化(小而清晰)
|
|
32
|
+
- 可验证性(验收锚点明确)
|
|
33
|
+
- 可回滚与风险透明
|
|
34
|
+
|
|
35
|
+
设计性决策识别标准:
|
|
36
|
+
以下类型的决策属于"设计性决策",需要呈现给用户选择:
|
|
37
|
+
- 命名风格(如 `/devbooks:*` vs `/db:*`)
|
|
38
|
+
- 目录结构组织方式
|
|
39
|
+
- 技术栈选择(如 npm 包名策略)
|
|
40
|
+
- 阶段划分方式
|
|
41
|
+
- 兼容性策略(是否保留向后兼容)
|
|
42
|
+
|
|
43
|
+
输出格式(严格):
|
|
44
|
+
1) **Why**(问题与目标)
|
|
45
|
+
2) **What Changes**(范围、非目标、影响范围)
|
|
46
|
+
3) **Impact**(对外契约/数据/模块/测试/价值信号/价值流瓶颈假设)
|
|
47
|
+
- **Transaction Scope**: `None | Single-DB | Cross-Service | Eventual`(必填,标明事务边界复杂度)
|
|
48
|
+
4) **Risks & Rollback**(风险与回滚)
|
|
49
|
+
5) **Validation**(候选验收锚点 + 证据落点)
|
|
50
|
+
6) **Debate Packet**(争议点/不确定点/需要辩论的问题)
|
|
51
|
+
- 对于设计性决策,使用以下格式:
|
|
52
|
+
```
|
|
53
|
+
#### DP-XX:<决策主题>(需用户决策)
|
|
54
|
+
|
|
55
|
+
**选项**:
|
|
56
|
+
- A:<选项描述> - 优点:xxx;缺点:xxx
|
|
57
|
+
- B:<选项描述> - 优点:xxx;缺点:xxx
|
|
58
|
+
|
|
59
|
+
**Author 建议**:<建议选项及理由>
|
|
60
|
+
**等待用户选择**
|
|
61
|
+
```
|
|
62
|
+
7) **Decision Log(占位)**:
|
|
63
|
+
- 决策状态:`Pending | Approved | Revise | Rejected`
|
|
64
|
+
- 需要裁决的问题清单
|
|
65
|
+
|
|
66
|
+
现在开始输出 `proposal.md` Markdown,不要输出额外解释。
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: devbooks-proposal-challenger
|
|
3
|
+
description: devbooks-proposal-challenger:对 proposal.md 发起质疑(Challenger)+ 查漏补缺,指出风险/遗漏/不一致并给结论,发现缺失的验收标准和未覆盖场景。用户说"质疑提案/挑刺/风险评估/提案对辩 challenger/查漏补缺"等时使用。
|
|
4
|
+
tools:
|
|
5
|
+
- Glob
|
|
6
|
+
- Grep
|
|
7
|
+
- Read
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# DevBooks:提案质疑 + 查漏补缺(Proposal Challenger)
|
|
11
|
+
|
|
12
|
+
## 前置:配置发现(协议无关)
|
|
13
|
+
|
|
14
|
+
- `<truth-root>`:当前真理目录根
|
|
15
|
+
- `<change-root>`:变更包目录根
|
|
16
|
+
|
|
17
|
+
执行前**必须**按以下顺序查找配置(找到后停止):
|
|
18
|
+
1. `.devbooks/config.yaml`(如存在)→ 解析并使用其中的映射
|
|
19
|
+
2. `dev-playbooks/project.md`(如存在)→ DevBooks 2.0 协议,使用默认映射
|
|
20
|
+
3. `project.md`(如存在)→ template 协议,使用默认映射
|
|
21
|
+
4. 若仍无法确定 → **停止并询问用户**
|
|
22
|
+
|
|
23
|
+
**关键约束**:
|
|
24
|
+
- 如果配置中指定了 `agents_doc`(规则文档),**必须先阅读该文档**再执行任何操作
|
|
25
|
+
- 禁止猜测目录根
|
|
26
|
+
- 禁止跳过规则文档阅读
|
|
27
|
+
|
|
28
|
+
## 核心职责
|
|
29
|
+
|
|
30
|
+
1. **质疑审查**:对提案进行强约束审查,指出风险、不一致和设计缺陷
|
|
31
|
+
2. **查漏补缺**:主动发现提案中遗漏的内容,包括:
|
|
32
|
+
- 缺失的验收标准(AC)
|
|
33
|
+
- 未覆盖的边界场景
|
|
34
|
+
- 未定义的回滚策略
|
|
35
|
+
- 遗漏的依赖分析
|
|
36
|
+
- 缺少的证据落点
|
|
37
|
+
|
|
38
|
+
## 执行方式
|
|
39
|
+
|
|
40
|
+
1) 先阅读并遵守:`_shared/references/通用守门协议.md`(可验证性 + 结构质量守门)。
|
|
41
|
+
2) 严格按完整提示词输出质疑报告:`references/提案质疑提示词.md`。
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## 上下文感知
|
|
46
|
+
|
|
47
|
+
本 Skill 在执行前自动检测上下文,确保角色隔离。
|
|
48
|
+
|
|
49
|
+
检测规则参考:`skills/_shared/context-detection-template.md`
|
|
50
|
+
|
|
51
|
+
### 检测流程
|
|
52
|
+
|
|
53
|
+
1. 检测 `proposal.md` 是否存在
|
|
54
|
+
2. 检测当前会话是否已执行过 Author 角色
|
|
55
|
+
3. 检测是否已有 Challenger 的质疑意见
|
|
56
|
+
|
|
57
|
+
### 本 Skill 支持的模式
|
|
58
|
+
|
|
59
|
+
| 模式 | 触发条件 | 行为 |
|
|
60
|
+
|------|----------|------|
|
|
61
|
+
| **首次质疑** | 无质疑记录 | 执行完整质疑流程 |
|
|
62
|
+
| **补充质疑** | 已有质疑,Author 修改后 | 针对修改部分补充质疑 |
|
|
63
|
+
|
|
64
|
+
### 角色隔离检查
|
|
65
|
+
|
|
66
|
+
- [ ] 当前会话未执行过 Author
|
|
67
|
+
- [ ] 当前会话未执行过 Judge
|
|
68
|
+
|
|
69
|
+
### 检测输出示例
|
|
70
|
+
|
|
71
|
+
```
|
|
72
|
+
检测结果:
|
|
73
|
+
- proposal.md:存在
|
|
74
|
+
- 角色隔离:✓(当前会话未执行 Author/Judge)
|
|
75
|
+
- 质疑历史:无
|
|
76
|
+
- 运行模式:首次质疑
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## MCP 增强
|
|
82
|
+
|
|
83
|
+
本 Skill 不依赖 MCP 服务,无需运行时检测。
|
|
84
|
+
|
|
85
|
+
MCP 增强规则参考:`skills/_shared/mcp-enhancement-template.md`
|
|
86
|
+
|