dev-playbooks-cn 2.6.2 → 3.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.
Files changed (28) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/README.md +6 -0
  3. package/bin/devbooks.js +85 -3
  4. package/package.json +2 -4
  5. package/scripts/dependency-audit.sh +96 -0
  6. 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 +3 -3
  7. package/skills/devbooks-docs-consistency/scripts/completeness-checker.sh +2 -2
  8. package/skills/devbooks-router/SKILL.md +1 -0
  9. package/skills/devbooks-router/references//350/267/257/347/224/261/350/247/204/345/210/231/344/270/216/346/250/241/346/235/277.md +12 -0
  10. package/templates/claude-commands/devbooks/backport.md +2 -2
  11. package/templates/claude-commands/devbooks/c4.md +5 -6
  12. package/templates/claude-commands/devbooks/debate.md +13 -7
  13. package/templates/claude-commands/devbooks/federation.md +3 -3
  14. package/templates/claude-commands/devbooks/index.md +6 -7
  15. package/templates/claude-commands/devbooks/quick.md +3 -4
  16. package/templates/claude-commands/devbooks/router.md +1 -1
  17. package/templates/claude-commands/devbooks/start.md +21 -0
  18. package/templates/dev-playbooks/changes/RUNBOOK.md +34 -0
  19. package/templates/dev-playbooks/changes/brief.md +14 -0
  20. package/templates/dev-playbooks/changes/compliance.md +9 -0
  21. package/templates/dev-playbooks/changes/inputs/index.md +8 -0
  22. package/templates/dev-playbooks/changes/proposal.md +40 -0
  23. package/templates/dev-playbooks/changes/prototype/README.md +8 -0
  24. package/templates/dev-playbooks/changes/rollback-plan.md +15 -0
  25. package/templates/dev-playbooks/changes/validation.md +11 -0
  26. package/templates/dev-playbooks/changes/verification.md +17 -0
  27. package/templates/dev-playbooks/specs/bootstrap/README.md +24 -0
  28. package/templates/dev-playbooks/specs/knife/knife-plan.md +21 -0
package/CHANGELOG.md CHANGED
@@ -5,6 +5,25 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [3.0.0] - 2026-01-26
9
+
10
+ ### Added
11
+
12
+ - **AI 原生工作流与协议升级**:
13
+ - 补齐 Start/Router 入口与阶段路由规范
14
+ - 新增变更包模板与协议合同(RUNBOOK、验证/合规/回滚、Knife Plan、合同 schema)
15
+ - 完整化质量闸门与证据结构(G0–G6、风险与审计要求)
16
+ - 新增依赖审计脚本与发布校验入口
17
+ - 更新架构/文件系统视图与工作流示意图模板
18
+
19
+ ### Changed
20
+
21
+ - **CLI 入口补齐**:
22
+ - 新增 `start` 与 `router` 命令,用于入口指引(不执行 AI)
23
+ - 帮助信息指向模板与工作流文档入口
24
+
25
+ ---
26
+
8
27
  ## [2.6.0] - 2026-01-25
9
28
 
10
29
  ### Added
package/README.md CHANGED
@@ -19,6 +19,12 @@
19
19
 
20
20
  这个 skill 会自动编排完整的开发闭环:Proposal → Design → Spec → Plan → Test → Implement → Review → Archive
21
21
 
22
+ 不确定入口时,也可以先运行:
23
+
24
+ ```bash
25
+ /devbooks:start
26
+ ```
27
+
22
28
  **适用场景**:新功能开发、重大重构、不熟悉 DevBooks 工作流
23
29
 
24
30
  ---
package/bin/devbooks.js CHANGED
@@ -9,6 +9,8 @@
9
9
  * dev-playbooks-cn init [path] [options]
10
10
  * dev-playbooks-cn update [path] # 更新 CLI 和已配置的工具
11
11
  * dev-playbooks-cn migrate --from <framework> [options]
12
+ * dev-playbooks-cn start [options] # 入口指引(不执行 AI)
13
+ * dev-playbooks-cn router [options] # 路由与阶段判断(不执行 AI)
12
14
  *
13
15
  * 选项:
14
16
  * --tools <tools> 非交互式指定 AI 工具:all, none, 或逗号分隔的列表
@@ -32,6 +34,12 @@ const __filename = fileURLToPath(import.meta.url);
32
34
  const __dirname = path.dirname(__filename);
33
35
 
34
36
  const CLI_COMMAND = 'dev-playbooks-cn';
37
+ const ENTRY_DOC = 'docs/ai-native-workflow.md';
38
+ const ENTRY_TEMPLATES = {
39
+ start: 'templates/claude-commands/devbooks/start.md',
40
+ router: 'templates/claude-commands/devbooks/router.md',
41
+ index: 'templates/claude-commands/devbooks/index.md'
42
+ };
35
43
  const XDG_CONFIG_HOME = process.env.XDG_CONFIG_HOME || path.join(os.homedir(), '.config');
36
44
 
37
45
  // 版本检查缓存配置
@@ -1842,6 +1850,48 @@ async function migrateCommand(projectDir, options) {
1842
1850
  // 帮助信息
1843
1851
  // ============================================================================
1844
1852
 
1853
+ function showStartHelp() {
1854
+ console.log();
1855
+ console.log(chalk.bold('DevBooks Start') + ' - 默认入口与阶段指引');
1856
+ console.log();
1857
+ console.log(chalk.cyan('用法:'));
1858
+ console.log(` ${CLI_COMMAND} start [options]`);
1859
+ console.log();
1860
+ console.log(chalk.cyan('说明:'));
1861
+ console.log(' 本命令仅提供入口指引,不执行 AI 或调用 Skills。');
1862
+ console.log(' 不确定下一步时,先用 Start 获取路由建议。');
1863
+ console.log();
1864
+ console.log(chalk.cyan('入口模板:'));
1865
+ console.log(` ${ENTRY_TEMPLATES.start}`);
1866
+ console.log();
1867
+ console.log(chalk.cyan('入口文档:'));
1868
+ console.log(` ${ENTRY_DOC}`);
1869
+ console.log();
1870
+ console.log(chalk.cyan('相关命令:'));
1871
+ console.log(` ${CLI_COMMAND} router --help`);
1872
+ }
1873
+
1874
+ function showRouterHelp() {
1875
+ console.log();
1876
+ console.log(chalk.bold('DevBooks Router') + ' - 路由与阶段判断');
1877
+ console.log();
1878
+ console.log(chalk.cyan('用法:'));
1879
+ console.log(` ${CLI_COMMAND} router [options]`);
1880
+ console.log();
1881
+ console.log(chalk.cyan('说明:'));
1882
+ console.log(' 本命令仅提供路由指引,不执行 AI 或调用 Skills。');
1883
+ console.log(' 需要阶段判断与最短闭环路径时使用 Router。');
1884
+ console.log();
1885
+ console.log(chalk.cyan('入口模板:'));
1886
+ console.log(` ${ENTRY_TEMPLATES.router}`);
1887
+ console.log();
1888
+ console.log(chalk.cyan('入口文档:'));
1889
+ console.log(` ${ENTRY_DOC}`);
1890
+ console.log();
1891
+ console.log(chalk.cyan('相关命令:'));
1892
+ console.log(` ${CLI_COMMAND} start --help`);
1893
+ }
1894
+
1845
1895
  function showHelp() {
1846
1896
  console.log();
1847
1897
  console.log(chalk.bold('DevBooks') + ' - AI-agnostic spec-driven development workflow');
@@ -1850,6 +1900,8 @@ function showHelp() {
1850
1900
  console.log(` ${CLI_COMMAND} init [path] [options] 初始化 DevBooks`);
1851
1901
  console.log(` ${CLI_COMMAND} update [path] 更新 CLI 和已配置的工具`);
1852
1902
  console.log(` ${CLI_COMMAND} migrate --from <framework> [opts] 从其他框架迁移`);
1903
+ console.log(` ${CLI_COMMAND} start [options] 入口指引(不执行 AI)`);
1904
+ console.log(` ${CLI_COMMAND} router [options] 路由与阶段判断(不执行 AI)`);
1853
1905
  console.log();
1854
1906
  console.log(chalk.cyan('选项:'));
1855
1907
  console.log(' --tools <tools> 非交互式指定 AI 工具');
@@ -1863,6 +1915,11 @@ function showHelp() {
1863
1915
  console.log(' -h, --help 显示此帮助信息');
1864
1916
  console.log(' -v, --version 显示版本号');
1865
1917
  console.log();
1918
+ console.log(chalk.cyan('入口模板与文档:'));
1919
+ console.log(` Start 模板: ${ENTRY_TEMPLATES.start}`);
1920
+ console.log(` Router 模板: ${ENTRY_TEMPLATES.router}`);
1921
+ console.log(` 文档入口: ${ENTRY_DOC}`);
1922
+ console.log();
1866
1923
  console.log(chalk.cyan('支持的 AI 工具:'));
1867
1924
 
1868
1925
  // 按 Skills 支持级别分组显示
@@ -1906,26 +1963,35 @@ function showHelp() {
1906
1963
  console.log(` ${CLI_COMMAND} migrate --from openspec # 从 OpenSpec 迁移`);
1907
1964
  console.log(` ${CLI_COMMAND} migrate --from speckit # 从 spec-kit 迁移`);
1908
1965
  console.log(` ${CLI_COMMAND} migrate --from openspec --dry-run # 模拟迁移`);
1966
+ console.log(` ${CLI_COMMAND} start # 查看默认入口指引`);
1967
+ console.log(` ${CLI_COMMAND} router # 查看路由与阶段判断`);
1909
1968
  }
1910
1969
 
1911
1970
  // ============================================================================
1912
1971
  // 主入口
1913
1972
  // ============================================================================
1914
1973
 
1974
+ async function startCommand() {
1975
+ showStartHelp();
1976
+ }
1977
+
1978
+ async function routerCommand() {
1979
+ showRouterHelp();
1980
+ }
1981
+
1915
1982
  async function main() {
1916
1983
  const args = process.argv.slice(2);
1917
1984
 
1918
1985
  // 解析参数
1919
1986
  let command = null;
1920
1987
  let projectPath = null;
1921
- const options = {};
1988
+ const options = { help: false };
1922
1989
 
1923
1990
  for (let i = 0; i < args.length; i++) {
1924
1991
  const arg = args[i];
1925
1992
 
1926
1993
  if (arg === '-h' || arg === '--help') {
1927
- showHelp();
1928
- process.exit(0);
1994
+ options.help = true;
1929
1995
  } else if (arg === '-v' || arg === '--version') {
1930
1996
  showVersion();
1931
1997
  process.exit(0);
@@ -1955,12 +2021,28 @@ async function main() {
1955
2021
 
1956
2022
  // 执行命令
1957
2023
  try {
2024
+ if (options.help) {
2025
+ if (command === 'start') {
2026
+ showStartHelp();
2027
+ return;
2028
+ }
2029
+ if (command === 'router') {
2030
+ showRouterHelp();
2031
+ return;
2032
+ }
2033
+ showHelp();
2034
+ return;
2035
+ }
1958
2036
  if (command === 'init' || !command) {
1959
2037
  await initCommand(projectDir, options);
1960
2038
  } else if (command === 'update') {
1961
2039
  await updateCommand(projectDir);
1962
2040
  } else if (command === 'migrate') {
1963
2041
  await migrateCommand(projectDir, options);
2042
+ } else if (command === 'start') {
2043
+ await startCommand();
2044
+ } else if (command === 'router') {
2045
+ await routerCommand();
1964
2046
  } else {
1965
2047
  console.log(chalk.red(`未知命令: ${command}`));
1966
2048
  showHelp();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dev-playbooks-cn",
3
- "version": "2.6.2",
3
+ "version": "3.0.0",
4
4
  "description": "AI-driven spec-based development workflow",
5
5
  "keywords": [
6
6
  "devbooks",
@@ -31,9 +31,7 @@
31
31
  "bin/",
32
32
  "templates/",
33
33
  "skills/",
34
- "scripts/",
35
- ".factory/",
36
- ".cursor/"
34
+ "scripts/"
37
35
  ],
38
36
  "engines": {
39
37
  "node": ">=18"
@@ -0,0 +1,96 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ usage() {
5
+ cat <<'USAGE'
6
+ Usage: dependency-audit.sh [options]
7
+
8
+ Description:
9
+ Run a dependency audit and write a log for evidence review.
10
+
11
+ Options:
12
+ --project-root DIR Project root directory (default: current dir)
13
+ --output FILE Output log file path (default: dependency-audit.log)
14
+ -h, --help Show this help message
15
+
16
+ Examples:
17
+ dependency-audit.sh --output evidence/audit/dependency-audit.log
18
+ USAGE
19
+ }
20
+
21
+ project_root="$(pwd)"
22
+ output_file="dependency-audit.log"
23
+
24
+ while [[ $# -gt 0 ]]; do
25
+ case "$1" in
26
+ -h|--help)
27
+ usage
28
+ exit 0
29
+ ;;
30
+ --project-root)
31
+ project_root="${2:-}"
32
+ shift 2
33
+ ;;
34
+ --output)
35
+ output_file="${2:-}"
36
+ shift 2
37
+ ;;
38
+ *)
39
+ echo "ERROR: unknown option: $1" >&2
40
+ usage >&2
41
+ exit 2
42
+ ;;
43
+ esac
44
+ done
45
+
46
+ if [[ -z "$project_root" || -z "$output_file" ]]; then
47
+ echo "ERROR: project root and output file are required" >&2
48
+ exit 2
49
+ fi
50
+
51
+ pkg_file="${project_root}/package.json"
52
+ lock_file="${project_root}/package-lock.json"
53
+
54
+ if [[ ! -f "$pkg_file" ]]; then
55
+ echo "ERROR: package.json not found at ${pkg_file}" >&2
56
+ exit 1
57
+ fi
58
+
59
+ mkdir -p "$(dirname "$output_file")"
60
+
61
+ {
62
+ echo "Dependency Audit"
63
+ echo "run_at: $(date +%Y-%m-%dT%H:%M:%S%z)"
64
+ echo "project_root: ${project_root}"
65
+ echo "package.json: ${pkg_file}"
66
+ if [[ -f "$lock_file" ]]; then
67
+ echo "package-lock.json: ${lock_file}"
68
+ else
69
+ echo "package-lock.json: missing"
70
+ fi
71
+ echo ""
72
+ } >"$output_file"
73
+
74
+ status=0
75
+
76
+ if command -v npm >/dev/null 2>&1; then
77
+ temp_output="$(mktemp)"
78
+ if npm --prefix "$project_root" audit --json >"$temp_output" 2>/dev/null; then
79
+ echo "npm_audit: ok" >>"$output_file"
80
+ echo "summary: no audit errors" >>"$output_file"
81
+ else
82
+ status=1
83
+ echo "npm_audit: failed" >>"$output_file"
84
+ echo "summary: audit reported issues or failed" >>"$output_file"
85
+ fi
86
+ echo "" >>"$output_file"
87
+ echo "raw_audit_json:" >>"$output_file"
88
+ cat "$temp_output" >>"$output_file"
89
+ rm -f "$temp_output"
90
+ else
91
+ status=1
92
+ echo "npm_audit: skipped (npm not found)" >>"$output_file"
93
+ echo "summary: audit not executed" >>"$output_file"
94
+ fi
95
+
96
+ exit "$status"
@@ -163,8 +163,8 @@
163
163
  **追溯完整性检查**:
164
164
 
165
165
  - [ ] 每个 AC 都能追溯到:`AC-xxx → Requirement/Scenario → Test IDs → Evidence`
166
- - [ ] 没有"孤儿测试"(测试存在但无对应 AC 或设计来源)
167
- - [ ] 没有"孤儿任务"(任务存在但无对应设计来源)
166
+ - [ ] 没有"孤儿测试"(测试存在但无对应 AC 或设计文档条目)
167
+ - [ ] 没有"孤儿任务"(任务存在但无对应设计文档条目)
168
168
  - [ ] 没有"无证据的 DONE"(标记完成但无测试通过或人工签核证据)
169
169
 
170
170
  **归档前最终检查**:
@@ -207,7 +207,7 @@ change-check.sh <change-id> --mode strict --project-root "$(pwd)" --change-root
207
207
  - 将**设计验收点(AC)**逐条映射到:Plan 项 + 验收锚点
208
208
  - 发现两类缺口立即处理:
209
209
  1. **设计有验收点但无锚点** → 补测试/补静态检查/补 checklist
210
- 2. **计划有任务但无设计来源** → 选择:降级为 DEFERRED,或升级进设计(ADR)再验收
210
+ 2. **计划有任务但无设计文档条目** → 选择:降级为 DEFERRED,或升级进设计(ADR)再验收
211
211
 
212
212
  ### Step 4:编写/更新验收锚点(Verification Anchors)
213
213
 
@@ -58,9 +58,9 @@ report_line() {
58
58
  local ok="$2"
59
59
  local msg="$3"
60
60
  if [[ "$ok" == "1" ]]; then
61
- printf "- %s: ✓ %s\n" "$name" "$msg"
61
+ printf -- "- %s: ✓ %s\n" "$name" "$msg"
62
62
  else
63
- printf "- %s: ✗ %s\n" "$name" "$msg"
63
+ printf -- "- %s: ✗ %s\n" "$name" "$msg"
64
64
  fi
65
65
  }
66
66
 
@@ -29,6 +29,7 @@ allowed-tools:
29
29
  - 先做配置发现(优先读取 `.devbooks/config.yaml`)与规则文档读取,再进入路由判断。
30
30
  - 输出 2 个最小关键问题 + 3–6 条路由结果(含路径与理由)。
31
31
  - 用户要求“直接开始产出”时,切换到目标 Skill 的输出模式。
32
+ - Start 为默认入口,使用 Router 输出阶段建议与路径。
32
33
 
33
34
  ## 参考资料
34
35
  - `skills/devbooks-router/references/路由规则与模板.md`:入口定位、配置发现、Impact 画像、路由规则、原型模式与上下文检测。
@@ -57,6 +57,18 @@
57
57
  3) 下一步该用哪个(或哪些)`devbooks-*` Skills
58
58
  4) 每个产物应落到哪个文件路径
59
59
 
60
+ ## Start 入口规则
61
+
62
+ Start 是默认入口,触发时按以下规则输出:
63
+
64
+ 1) 如果 `<change-id>` 不明确,先询问 `<change-id>` 与 `<truth-root>/<change-root>`。
65
+ 2) 如果可读取变更包状态(如 `pending/in_progress/review/completed`),按状态给出推荐入口:
66
+ - pending → proposal
67
+ - in_progress → design/spec/plan(按缺失产物建议)
68
+ - review → review
69
+ - completed → archive
70
+ 3) 保持路由输出 3–6 条,包含 Skill + 路径 + 理由。
71
+
60
72
  ## 输出要求(强制)
61
73
 
62
74
  1) 先问清楚 2 个最小关键问题(若上下文里已有答案则不问):
@@ -1,10 +1,10 @@
1
1
  ---
2
- skill: devbooks-design-backport
2
+ skill: devbooks-design-doc
3
3
  ---
4
4
 
5
5
  # DevBooks: 设计回写
6
6
 
7
- 使用 devbooks-design-backport 把实现过程中发现的新约束/冲突/缺口回写到 design.md。
7
+ 使用 devbooks-design-doc 把实现过程中发现的新约束/冲突/缺口回写到 design.md。
8
8
 
9
9
  ## 用法
10
10
 
@@ -1,10 +1,10 @@
1
1
  ---
2
- skill: devbooks-c4-map
2
+ skill: devbooks-design-doc
3
3
  ---
4
4
 
5
5
  # DevBooks: C4 架构地图
6
6
 
7
- 使用 devbooks-c4-map 维护 C4 架构文档。
7
+ 使用 devbooks-design-doc 产出或更新架构影响(包含 C4 视图要点)。
8
8
 
9
9
  ## 用法
10
10
 
@@ -16,7 +16,6 @@ $ARGUMENTS
16
16
 
17
17
  ## 说明
18
18
 
19
- 自动检测模式(新增 delta/更新真理):
20
- - 维护架构层级(Context/Container/Component/Code)
21
- - 更新 Fitness Tests
22
- - 同步架构守护规则
19
+ - 输出架构影响与 C4 Delta(如适用):
20
+ - 维护架构层级(Context/Container/Component/Code)
21
+ - 同步架构约束与守门规则(如有变更)
@@ -1,10 +1,14 @@
1
1
  ---
2
- skill: devbooks-proposal-debate-workflow
2
+ skill: multi-skill-combo
3
+ skills:
4
+ - devbooks-proposal-author
5
+ - devbooks-proposal-challenger
6
+ - devbooks-proposal-judge
3
7
  ---
4
8
 
5
- # DevBooks: 提案辩论
9
+ # DevBooks: 提案辩论(向后兼容)
6
10
 
7
- 使用 devbooks-proposal-debate-workflow 执行完整的提案辩论流程。
11
+ 编排 Author → Challenger → Judge 的完整辩论流程。
8
12
 
9
13
  ## 用法
10
14
 
@@ -16,7 +20,9 @@ $ARGUMENTS
16
20
 
17
21
  ## 说明
18
22
 
19
- 编排 Author → Challenger → Judge 的完整辩论流程:
20
- - 自动协调多角色交互
21
- - 记录辩论过程
22
- - 产出最终裁决
23
+ 这是一个向后兼容命令,触发多 Skill 组合。
24
+
25
+ 也可使用更精确的直达命令:
26
+ - /devbooks:proposal
27
+ - /devbooks:challenger
28
+ - /devbooks:judge
@@ -1,10 +1,10 @@
1
1
  ---
2
- skill: devbooks-federation
2
+ skill: devbooks-impact-analysis
3
3
  ---
4
4
 
5
5
  # DevBooks: 联邦分析
6
6
 
7
- 使用 devbooks-federation 进行跨仓库依赖分析。
7
+ 使用 devbooks-impact-analysis 进行跨仓库影响与依赖分析。
8
8
 
9
9
  ## 用法
10
10
 
@@ -19,4 +19,4 @@ $ARGUMENTS
19
19
  分析多仓库之间的依赖关系:
20
20
  - 识别跨仓库影响
21
21
  - 协调版本兼容性
22
- - 生成联邦依赖图
22
+ - 记录兼容性与风险提示
@@ -1,10 +1,10 @@
1
1
  ---
2
- skill: devbooks-index-bootstrap
2
+ skill: devbooks-router
3
3
  ---
4
4
 
5
- # DevBooks: 索引初始化
5
+ # DevBooks: 命令索引
6
6
 
7
- 使用 devbooks-index-bootstrap 初始化代码索引。
7
+ DevBooks 常用命令索引入口。
8
8
 
9
9
  ## 用法
10
10
 
@@ -16,7 +16,6 @@ $ARGUMENTS
16
16
 
17
17
  ## 说明
18
18
 
19
- 为项目建立代码索引:
20
- - 生成 SCIP 索引
21
- - 配置符号导航
22
- - 启用代码智能功能
19
+ - 默认入口:/devbooks:start
20
+ - 路由与阶段判断:/devbooks:router
21
+ - 完整闭环:/devbooks:delivery
@@ -1,10 +1,10 @@
1
1
  ---
2
- skill: quick-mode
2
+ skill: devbooks-router
3
3
  ---
4
4
 
5
5
  # DevBooks: 快速模式(向后兼容)
6
6
 
7
- 触发快速模式,适用于小型变更(5 文件以内)。
7
+ 快速入口,适用于小型变更(5 文件以内),由 Router 输出最短闭环路径。
8
8
 
9
9
  ## 用法
10
10
 
@@ -17,8 +17,7 @@ $ARGUMENTS
17
17
  ## 说明
18
18
 
19
19
  这是一个向后兼容命令,适用于简单变更场景:
20
- - 跳过完整的 proposal/design 流程
21
- - 直接进入实现阶段
20
+ - Router 判断是否可走轻量路径
22
21
  - 适用于 bug 修复、小功能、文档更新等
23
22
 
24
23
  对于复杂变更(>5 文件或跨模块),建议使用 /devbooks:router 获取完整执行计划。
@@ -21,4 +21,4 @@ Router 是 DevBooks 工作流的主入口,适用于复杂变更(>5文件或
21
21
  - 检测项目当前状态
22
22
  - 推荐下一步 Skill
23
23
 
24
- 对于已知具体要执行的 Skill,可直接使用对应的直达命令。
24
+ 对于已知具体要执行的 Skill,可直接使用对应的直达命令;不确定时优先使用 /devbooks:start。
@@ -0,0 +1,21 @@
1
+ ---
2
+ skill: devbooks-router
3
+ ---
4
+
5
+ # DevBooks: Start
6
+
7
+ Start 是默认入口,用于判定当前阶段并给出下一步路由建议。
8
+
9
+ ## 用法
10
+
11
+ /devbooks:start [参数]
12
+
13
+ ## 参数
14
+
15
+ $ARGUMENTS
16
+
17
+ ## 说明
18
+
19
+ - 当不确定下一步时,从 Start 进入。
20
+ - Router 会读取配置映射与现有产物,给出最短闭环路径。
21
+ - 如果已知 change-id,可在参数中提供以减少询问。
@@ -0,0 +1,34 @@
1
+ # RUNBOOK
2
+
3
+ ## 目标与范围
4
+
5
+ - 目标:<goal>
6
+ - 范围:<scope>
7
+
8
+ ## 前置条件
9
+
10
+ - 依赖:<dependencies>
11
+ - 假设:<assumptions>
12
+
13
+ ## 执行清单
14
+
15
+ | 步骤 | 责任角色 | 说明 |
16
+ | --- | --- | --- |
17
+ | 1 | owner | <step> |
18
+
19
+ ## 验证锚点
20
+
21
+ - 入口:<command>
22
+ - 成功标准:<criteria>
23
+
24
+ ## 回滚计划
25
+
26
+ - 回滚触发:<trigger>
27
+ - 回滚步骤:<steps>
28
+
29
+ ## 证据落点
30
+
31
+ - red-baseline: `evidence/red-baseline/`
32
+ - green-final: `evidence/green-final/`
33
+ - gates: `evidence/gates/`
34
+ - risks: `evidence/risks/`
@@ -0,0 +1,14 @@
1
+ # brief
2
+
3
+ ## 背景
4
+
5
+ - <background>
6
+
7
+ ## 目标
8
+
9
+ - <goal>
10
+
11
+ ## 范围
12
+
13
+ - in: <in-scope>
14
+ - out: <out-scope>
@@ -0,0 +1,9 @@
1
+ # compliance
2
+
3
+ ## 合规要求
4
+
5
+ - <requirement>
6
+
7
+ ## 证据
8
+
9
+ - <evidence>
@@ -0,0 +1,8 @@
1
+ # inputs
2
+
3
+ ## 输入清单
4
+
5
+ - design.md
6
+ - tasks.md
7
+ - specs/**
8
+ - verification.md
@@ -0,0 +1,40 @@
1
+ # proposal
2
+
3
+ ## 元信息
4
+
5
+ | 字段 | 值 |
6
+ | --- | --- |
7
+ | change_id | <change-id> |
8
+ | intervention_level | <level> |
9
+ | change_type | <change-type> |
10
+ | risk_level | <risk-level> |
11
+ | state | pending |
12
+ | state_reason | <reason-if-needed> |
13
+ | next_action | <next-action> |
14
+ | epic_id | <epic-id> |
15
+ | slice_id | <slice-id> |
16
+ | ac_ids | [AC-001] |
17
+ | acceptance_ids | [ACC-001] |
18
+ | truth_refs | [] |
19
+ | risk_flags | [] |
20
+ | required_gates | [G0, G1] |
21
+ | approvals | [] |
22
+ | escape_hatch | <optional> |
23
+
24
+ ## Why
25
+
26
+ - <why>
27
+
28
+ ## What
29
+
30
+ - <what>
31
+
32
+ ## Impact
33
+
34
+ - <impact>
35
+
36
+ ## Debate Packet
37
+
38
+ - 选项 A:<option-a>
39
+ - 选项 B:<option-b>
40
+ - 决策点:<decision>
@@ -0,0 +1,8 @@
1
+ # Prototype
2
+
3
+ 本目录用于快速验证原型,不得直接进入真理源。
4
+
5
+ ## 规则
6
+
7
+ - 所有原型必须标注目的与范围
8
+ - 通过验证后再进入正式变更包流程
@@ -0,0 +1,15 @@
1
+ # rollback-plan
2
+
3
+ ## 回滚触发条件
4
+
5
+ - <trigger>
6
+
7
+ ## 回滚步骤
8
+
9
+ | 步骤 | 说明 |
10
+ | --- | --- |
11
+ | 1 | <step> |
12
+
13
+ ## 回滚验证
14
+
15
+ - <verification>
@@ -0,0 +1,11 @@
1
+ # validation
2
+
3
+ ## 验证计划
4
+
5
+ | 项目 | 方式 | 通过标准 |
6
+ | --- | --- | --- |
7
+ | 测试 | <command> | 全部通过 |
8
+
9
+ ## 结果记录
10
+
11
+ - <result>
@@ -0,0 +1,17 @@
1
+ # verification
2
+
3
+ ## 追溯矩阵
4
+
5
+ | AC-ID | Spec | Tests | Evidence |
6
+ | --- | --- | --- | --- |
7
+ | AC-001 | <spec> | <test> | <evidence> |
8
+
9
+ ## Gate 状态
10
+
11
+ | Gate | 状态 | 证据 |
12
+ | --- | --- | --- |
13
+ | G0 | pending | <evidence> |
14
+
15
+ ## 备注
16
+
17
+ - <notes>
@@ -0,0 +1,24 @@
1
+ # Bootstrap 规格说明模板
2
+
3
+ 本模板用于存量项目初始化时的基线工件说明与落盘清单。
4
+
5
+ ## 最小工件集
6
+
7
+ - 项目画像
8
+ - 术语表
9
+ - 关键概念
10
+ - 基线规格
11
+ - 最小验证锚点
12
+
13
+ ## DoR(Definition of Ready)
14
+
15
+ | 条件 | 判定 | 处理策略 |
16
+ | --- | --- | --- |
17
+ | 基线工件齐备 | 必须满足 | 未满足则触发补齐 |
18
+ | 变更范围明确 | 必须满足 | 未满足则返回澄清 |
19
+ | 风险标记可用 | 必须满足 | 未满足则记录为阻断 |
20
+
21
+ ## 验证锚点
22
+
23
+ - 产出路径:`dev-playbooks/specs/_meta/`
24
+ - 证据落点:`dev-playbooks/changes/<change-id>/evidence/`
@@ -0,0 +1,21 @@
1
+ # Knife Plan 模板
2
+
3
+ > 用于切片计划的机读合同与验证锚点清单。
4
+
5
+ ## 元信息
6
+
7
+ - plan_id: <plan-id>
8
+ - epic_id: <epic-id>
9
+ - slice_id: <slice-id>
10
+ - ac_ids: [AC-001]
11
+ - acceptance_ids: [ACC-001]
12
+ - change_type: feature
13
+ - risk_level: medium
14
+ - dependencies: []
15
+ - assumptions: <assumptions>
16
+
17
+ ## 验证锚点
18
+
19
+ | anchor_id | gate_id | evidence_type | success_criteria | owner |
20
+ | --- | --- | --- | --- | --- |
21
+ | ANCHOR-001 | G3 | checklist | 验证锚点字段齐备 | planner |