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.
Files changed (143) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +466 -0
  3. package/bin/devbooks.js +987 -0
  4. package/package.json +43 -0
  5. package/skills/Skills/344/275/277/347/224/250/350/257/264/346/230/216.md +446 -0
  6. package/skills/Skill/345/274/200/345/217/221/346/214/207/345/215/227.md +248 -0
  7. package/skills/_shared/context-detection-template.md +315 -0
  8. package/skills/_shared/mcp-enhancement-template.md +144 -0
  9. 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
  10. package/skills/_template/config-discovery-template.md +126 -0
  11. package/skills/devbooks-brownfield-bootstrap/SKILL.md +167 -0
  12. 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
  13. 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
  14. 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
  15. package/skills/devbooks-brownfield-bootstrap/references//346/234/257/350/257/255/350/241/250/346/250/241/346/235/277.md +42 -0
  16. package/skills/devbooks-brownfield-bootstrap/scripts/cod-update.sh +357 -0
  17. package/skills/devbooks-brownfield-bootstrap/templates/project-profile-template.md +172 -0
  18. package/skills/devbooks-c4-map/SKILL.md +151 -0
  19. 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
  20. 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
  21. package/skills/devbooks-code-review/SKILL.md +175 -0
  22. 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
  23. 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
  24. 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
  25. 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
  26. package/skills/devbooks-coder/SKILL.md +219 -0
  27. 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
  28. 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
  29. package/skills/devbooks-coder/references//346/227/245/345/277/227/350/247/204/350/214/203.md +329 -0
  30. 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
  31. package/skills/devbooks-coder/references//351/224/231/350/257/257/347/240/201/350/247/204/350/214/203.md +463 -0
  32. package/skills/devbooks-delivery-workflow/SKILL.md +217 -0
  33. 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
  34. 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
  35. 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
  36. package/skills/devbooks-delivery-workflow/scripts/ac-trace-check.sh +330 -0
  37. package/skills/devbooks-delivery-workflow/scripts/audit-scope.sh +262 -0
  38. package/skills/devbooks-delivery-workflow/scripts/change-check.sh +1040 -0
  39. package/skills/devbooks-delivery-workflow/scripts/change-codemod-scaffold.sh +135 -0
  40. package/skills/devbooks-delivery-workflow/scripts/change-evidence.sh +152 -0
  41. package/skills/devbooks-delivery-workflow/scripts/change-scaffold.sh +442 -0
  42. package/skills/devbooks-delivery-workflow/scripts/change-spec-delta-scaffold.sh +136 -0
  43. package/skills/devbooks-delivery-workflow/scripts/constitution-check.sh +237 -0
  44. package/skills/devbooks-delivery-workflow/scripts/env-match-check.sh +128 -0
  45. package/skills/devbooks-delivery-workflow/scripts/fitness-check.sh +387 -0
  46. package/skills/devbooks-delivery-workflow/scripts/guardrail-check.sh +519 -0
  47. package/skills/devbooks-delivery-workflow/scripts/handoff-check.sh +141 -0
  48. package/skills/devbooks-delivery-workflow/scripts/hygiene-check.sh +340 -0
  49. package/skills/devbooks-delivery-workflow/scripts/migrate-from-openspec.sh +385 -0
  50. package/skills/devbooks-delivery-workflow/scripts/migrate-to-v2-gates.sh +202 -0
  51. package/skills/devbooks-delivery-workflow/scripts/progress-dashboard.sh +319 -0
  52. package/skills/devbooks-delivery-workflow/scripts/prototype-promote.sh +341 -0
  53. package/skills/devbooks-delivery-workflow/scripts/spec-preview.sh +203 -0
  54. package/skills/devbooks-delivery-workflow/scripts/spec-promote.sh +118 -0
  55. package/skills/devbooks-delivery-workflow/scripts/spec-rollback.sh +124 -0
  56. package/skills/devbooks-delivery-workflow/scripts/spec-stage.sh +117 -0
  57. package/skills/devbooks-delivery-workflow/scripts/verify-all.sh +78 -0
  58. package/skills/devbooks-delivery-workflow/scripts/verify-npm-package.sh +123 -0
  59. package/skills/devbooks-delivery-workflow/scripts/verify-openspec-free.sh +81 -0
  60. package/skills/devbooks-delivery-workflow/scripts/verify-slash-commands.sh +146 -0
  61. package/skills/devbooks-delivery-workflow/templates/handoff.md +50 -0
  62. package/skills/devbooks-design-backport/SKILL.md +73 -0
  63. 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
  64. package/skills/devbooks-design-doc/SKILL.md +121 -0
  65. 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
  66. 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
  67. 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
  68. package/skills/devbooks-entropy-monitor/SKILL.md +188 -0
  69. 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
  70. package/skills/devbooks-entropy-monitor/scripts/entropy-measure.sh +449 -0
  71. package/skills/devbooks-entropy-monitor/scripts/entropy-report.sh +303 -0
  72. package/skills/devbooks-entropy-monitor/templates/thresholds.json +99 -0
  73. package/skills/devbooks-federation/SKILL.md +264 -0
  74. package/skills/devbooks-federation/scripts/federation-check.sh +144 -0
  75. package/skills/devbooks-federation/templates/federation.yaml +89 -0
  76. package/skills/devbooks-impact-analysis/SKILL.md +135 -0
  77. 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
  78. package/skills/devbooks-impact-analysis/scripts/graph-cache.sh +214 -0
  79. package/skills/devbooks-implementation-plan/SKILL.md +83 -0
  80. 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
  81. package/skills/devbooks-index-bootstrap/SKILL.md +240 -0
  82. package/skills/devbooks-proposal-author/SKILL.md +83 -0
  83. 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
  84. package/skills/devbooks-proposal-challenger/SKILL.md +86 -0
  85. 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
  86. 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
  87. package/skills/devbooks-proposal-debate-workflow/SKILL.md +78 -0
  88. 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
  89. 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
  90. package/skills/devbooks-proposal-debate-workflow/scripts/proposal-debate-check.sh +102 -0
  91. package/skills/devbooks-proposal-judge/SKILL.md +78 -0
  92. 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
  93. package/skills/devbooks-router/SKILL.md +346 -0
  94. package/skills/devbooks-spec-contract/SKILL.md +191 -0
  95. package/skills/devbooks-spec-contract/references/API/350/256/276/350/256/241/346/214/207/345/215/227.md +349 -0
  96. 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
  97. 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
  98. 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
  99. package/skills/devbooks-spec-contract/scripts/implicit-change-detect.sh +378 -0
  100. package/skills/devbooks-spec-gardener/SKILL.md +72 -0
  101. 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
  102. package/skills/devbooks-test-owner/SKILL.md +172 -0
  103. 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
  104. 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
  105. 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
  106. 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
  107. package/skills/devbooks-test-owner/references//346/265/213/350/257/225/351/251/261/345/212/250.md +394 -0
  108. 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
  109. package/skills/devbooks-test-reviewer/SKILL.md +189 -0
  110. package/templates/.devbooks/config.yaml +88 -0
  111. package/templates/claude-commands/devbooks/apply.md +38 -0
  112. package/templates/claude-commands/devbooks/archive.md +33 -0
  113. package/templates/claude-commands/devbooks/backport.md +19 -0
  114. package/templates/claude-commands/devbooks/bootstrap.md +19 -0
  115. package/templates/claude-commands/devbooks/c4.md +19 -0
  116. package/templates/claude-commands/devbooks/challenger.md +19 -0
  117. package/templates/claude-commands/devbooks/code.md +19 -0
  118. package/templates/claude-commands/devbooks/debate.md +19 -0
  119. package/templates/claude-commands/devbooks/delivery.md +19 -0
  120. package/templates/claude-commands/devbooks/design.md +19 -0
  121. package/templates/claude-commands/devbooks/entropy.md +19 -0
  122. package/templates/claude-commands/devbooks/federation.md +19 -0
  123. package/templates/claude-commands/devbooks/gardener.md +19 -0
  124. package/templates/claude-commands/devbooks/impact.md +19 -0
  125. package/templates/claude-commands/devbooks/index.md +19 -0
  126. package/templates/claude-commands/devbooks/judge.md +19 -0
  127. package/templates/claude-commands/devbooks/plan.md +19 -0
  128. package/templates/claude-commands/devbooks/proposal.md +19 -0
  129. package/templates/claude-commands/devbooks/quick.md +42 -0
  130. package/templates/claude-commands/devbooks/review.md +19 -0
  131. package/templates/claude-commands/devbooks/router.md +19 -0
  132. package/templates/claude-commands/devbooks/spec.md +19 -0
  133. package/templates/claude-commands/devbooks/test-review.md +19 -0
  134. package/templates/claude-commands/devbooks/test.md +19 -0
  135. package/templates/dev-playbooks/README.md +458 -0
  136. package/templates/dev-playbooks/changes/.gitkeep +1 -0
  137. package/templates/dev-playbooks/constitution.md +116 -0
  138. package/templates/dev-playbooks/project.md +96 -0
  139. package/templates/dev-playbooks/scripts/.gitkeep +1 -0
  140. package/templates/dev-playbooks/specs/_meta/anti-patterns/.gitkeep +2 -0
  141. package/templates/dev-playbooks/specs/_meta/glossary.md +47 -0
  142. package/templates/dev-playbooks/specs/_meta/project-profile.md +79 -0
  143. package/templates/dev-playbooks/specs/architecture/fitness-rules.md +95 -0
@@ -0,0 +1,123 @@
1
+ #!/bin/bash
2
+ # verify-npm-package.sh - Verify npm package structure
3
+ #
4
+ # Verify AC-011 ~ AC-016
5
+
6
+ set -uo pipefail # Remove -e, handle errors manually
7
+
8
+ GREEN='\033[0;32m'
9
+ RED='\033[0;31m'
10
+ NC='\033[0m'
11
+
12
+ PASSED=0
13
+ FAILED=0
14
+
15
+ check() {
16
+ local name="$1"
17
+ local result="$2"
18
+ if [[ "$result" == "0" ]]; then
19
+ echo -e "${GREEN}✅ $name${NC}"
20
+ PASSED=$((PASSED + 1))
21
+ else
22
+ echo -e "${RED}❌ $name${NC}"
23
+ FAILED=$((FAILED + 1))
24
+ fi
25
+ }
26
+
27
+ echo "=== npm Package Verification ==="
28
+ echo ""
29
+
30
+ # Use an isolated npm cache to avoid permission issues in CI/dev environments.
31
+ NPM_CACHE_DIR="$(mktemp -d 2>/dev/null || mktemp -d -t 'devbooks-npm-cache')"
32
+ cleanup() {
33
+ rm -rf "$NPM_CACHE_DIR"
34
+ }
35
+ trap cleanup EXIT
36
+
37
+ # AC-011: CLI entry exists and is executable
38
+ # Note: Design changed to `devbooks init` instead of `create-devbooks`
39
+ echo "AC-011: Checking CLI entry..."
40
+ if [[ -f "bin/devbooks.js" ]] && [[ -x "bin/devbooks.js" ]]; then
41
+ check "AC-011: CLI entry exists and is executable" "0"
42
+ else
43
+ check "AC-011: CLI entry exists and is executable" "1"
44
+ fi
45
+
46
+ # AC-012: package.json exists and is valid
47
+ echo "AC-012: Checking package.json..."
48
+ if [[ -f "package.json" ]] && node -e '
49
+ const fs = require("fs");
50
+ const pkg = JSON.parse(fs.readFileSync("package.json", "utf8"));
51
+ const hasName = typeof pkg.name === "string" && pkg.name.trim().length > 0;
52
+ const bin = pkg.bin;
53
+ const normalize = (p) => (typeof p === "string" && p.startsWith("./")) ? p.slice(2) : p;
54
+ const hasBin = (() => {
55
+ if (typeof bin === "string") return normalize(bin) === "bin/devbooks.js";
56
+ if (!bin || typeof bin !== "object") return false;
57
+ return Object.values(bin).some(v => typeof v === "string" && normalize(v) === "bin/devbooks.js");
58
+ })();
59
+ process.exit(hasName && hasBin ? 0 : 1);
60
+ ' >/dev/null 2>&1; then
61
+ check "AC-012: package.json exists and is valid" "0"
62
+ else
63
+ check "AC-012: package.json exists and is valid" "1"
64
+ fi
65
+
66
+ # AC-013: templates/ directory exists
67
+ echo "AC-013: Checking templates/ directory..."
68
+ if [[ -d "templates" ]]; then
69
+ check "AC-013: templates/ directory exists" "0"
70
+ else
71
+ check "AC-013: templates/ directory exists" "1"
72
+ fi
73
+
74
+ # AC-014: Skills count is correct (21 devbooks-* Skills)
75
+ echo "AC-014: Checking Skills count..."
76
+ skill_count=$(ls -d skills/devbooks-* 2>/dev/null | wc -l | tr -d ' ')
77
+ if [[ "$skill_count" -ge 20 ]]; then
78
+ check "AC-014: Skills count is correct ($skill_count)" "0"
79
+ else
80
+ check "AC-014: Skills count is correct ($skill_count, expected >= 20)" "1"
81
+ fi
82
+
83
+ # AC-015: Packaging is controlled (files whitelist or .npmignore)
84
+ echo "AC-015: Checking packaging control..."
85
+ has_files_whitelist="1"
86
+ if [[ -f "package.json" ]] && node -e '
87
+ const fs = require("fs");
88
+ const pkg = JSON.parse(fs.readFileSync("package.json", "utf8"));
89
+ const files = pkg.files;
90
+ const ok = Array.isArray(files) && files.length > 0;
91
+ process.exit(ok ? 0 : 1);
92
+ ' >/dev/null 2>&1; then
93
+ has_files_whitelist="0"
94
+ fi
95
+ if [[ "$has_files_whitelist" == "0" || -f ".npmignore" ]]; then
96
+ check "AC-015: packaging is controlled" "0"
97
+ else
98
+ check "AC-015: packaging is controlled" "1"
99
+ fi
100
+
101
+ # AC-016: npm pack does not include project change packages (exclude template directory)
102
+ # Note: templates/dev-playbooks/changes/ is user project template, should be included
103
+ # dev-playbooks/changes/ is project development change package, should be excluded
104
+ echo "AC-016: Checking npm pack output..."
105
+ pack_output="$(npm --cache "$NPM_CACHE_DIR" pack --dry-run --ignore-scripts 2>&1 || true)"
106
+ if echo "$pack_output" | grep "changes/" | grep -v "templates/" | grep -q "changes/"; then
107
+ check "AC-016: npm pack does not include changes/" "1"
108
+ else
109
+ check "AC-016: npm pack does not include changes/" "0"
110
+ fi
111
+
112
+ echo ""
113
+ echo "=== Results ==="
114
+ echo "Passed: $PASSED"
115
+ echo "Failed: $FAILED"
116
+
117
+ if [[ $FAILED -eq 0 ]]; then
118
+ echo -e "${GREEN}All passed!${NC}"
119
+ exit 0
120
+ else
121
+ echo -e "${RED}Some checks failed${NC}"
122
+ exit 1
123
+ fi
@@ -0,0 +1,81 @@
1
+ #!/bin/bash
2
+ # verify-openspec-free.sh - Verify OpenSpec references are cleared
3
+ #
4
+ # Verify AC-001 ~ AC-004
5
+
6
+ set -uo pipefail # Remove -e, handle errors manually
7
+
8
+ GREEN='\033[0;32m'
9
+ RED='\033[0;31m'
10
+ NC='\033[0m'
11
+
12
+ PASSED=0
13
+ FAILED=0
14
+
15
+ check() {
16
+ local name="$1"
17
+ local result="$2"
18
+ if [[ "$result" == "0" ]]; then
19
+ echo -e "${GREEN}✅ $name${NC}"
20
+ PASSED=$((PASSED + 1))
21
+ else
22
+ echo -e "${RED}❌ $name${NC}"
23
+ FAILED=$((FAILED + 1))
24
+ fi
25
+ }
26
+
27
+ echo "=== OpenSpec Cleanup Verification ==="
28
+ echo ""
29
+
30
+ # AC-001: No OpenSpec references (exclude legitimate references)
31
+ echo "AC-001: Checking OpenSpec references..."
32
+ # Exclude legitimate references:
33
+ # - backup, changes, .git: history/work directories
34
+ # - migrate-from-openspec.sh: migration script
35
+ # - verify-*.sh: verification scripts
36
+ # - c4.md: architecture documentation (records historical changes)
37
+ # - specs/config-protocol/spec.md: rule definition document
38
+ # - specs/slash-commands/spec.md: historical record document
39
+ ref_count=$(grep -rn "openspec\|OpenSpec" . --include="*.md" --include="*.sh" --include="*.yaml" --include="*.yml" --include="*.js" 2>/dev/null | grep -v backup | grep -v changes | grep -v "\.git" | grep -v "DEVBOOKS-EVOLUTION-PROPOSAL.md" | grep -v "migrate-from-openspec.sh" | grep -v "tests/" | grep -v "verify-openspec-free.sh" | grep -v "verify-all.sh" | grep -v "c4.md" | grep -v "specs/config-protocol/spec.md" | grep -v "specs/slash-commands/spec.md" | wc -l | tr -d ' ') || ref_count=0
40
+ if [[ "$ref_count" == "0" ]]; then
41
+ check "AC-001: OpenSpec references cleared" "0"
42
+ else
43
+ check "AC-001: OpenSpec references cleared ($ref_count remaining)" "1"
44
+ fi
45
+
46
+ # AC-002: setup/openspec deleted
47
+ echo "AC-002: Checking setup/openspec directory..."
48
+ if [[ ! -d "setup/openspec" ]]; then
49
+ check "AC-002: setup/openspec deleted" "0"
50
+ else
51
+ check "AC-002: setup/openspec deleted" "1"
52
+ fi
53
+
54
+ # AC-003: .claude/commands/openspec deleted
55
+ echo "AC-003: Checking .claude/commands/openspec directory..."
56
+ if [[ ! -d ".claude/commands/openspec" ]]; then
57
+ check "AC-003: .claude/commands/openspec deleted" "0"
58
+ else
59
+ check "AC-003: .claude/commands/openspec deleted" "1"
60
+ fi
61
+
62
+ # AC-004: dev-playbooks/specs/openspec-integration deleted
63
+ echo "AC-004: Checking dev-playbooks/specs/openspec-integration directory..."
64
+ if [[ ! -d "dev-playbooks/specs/openspec-integration" ]]; then
65
+ check "AC-004: dev-playbooks/specs/openspec-integration deleted" "0"
66
+ else
67
+ check "AC-004: dev-playbooks/specs/openspec-integration deleted" "1"
68
+ fi
69
+
70
+ echo ""
71
+ echo "=== Results ==="
72
+ echo "Passed: $PASSED"
73
+ echo "Failed: $FAILED"
74
+
75
+ if [[ $FAILED -eq 0 ]]; then
76
+ echo -e "${GREEN}All passed!${NC}"
77
+ exit 0
78
+ else
79
+ echo -e "${RED}Some checks failed${NC}"
80
+ exit 1
81
+ fi
@@ -0,0 +1,146 @@
1
+ #!/bin/bash
2
+ # verify-slash-commands.sh - Verify Slash command definitions
3
+ #
4
+ # Verify AC-001 (24 commands) and AC-002 (command to Skill 1:1 mapping)
5
+
6
+ set -uo pipefail
7
+
8
+ GREEN='\033[0;32m'
9
+ RED='\033[0;31m'
10
+ YELLOW='\033[1;33m'
11
+ NC='\033[0m'
12
+
13
+ PASSED=0
14
+ FAILED=0
15
+
16
+ check() {
17
+ local name="$1"
18
+ local result="$2"
19
+ if [[ "$result" == "0" ]]; then
20
+ echo -e "${GREEN}✅ $name${NC}"
21
+ PASSED=$((PASSED + 1))
22
+ else
23
+ echo -e "${RED}❌ $name${NC}"
24
+ FAILED=$((FAILED + 1))
25
+ fi
26
+ }
27
+
28
+ check_skill_mapping() {
29
+ local cmd="$1"
30
+ local expected_skill="$2"
31
+ local file="$COMMANDS_DIR/$cmd.md"
32
+ if [[ -f "$file" ]]; then
33
+ if grep -q "skill: $expected_skill" "$file"; then
34
+ check "AC-002: $cmd.md → $expected_skill" "0"
35
+ else
36
+ check "AC-002: $cmd.md → $expected_skill (skill metadata mismatch)" "1"
37
+ fi
38
+ fi
39
+ }
40
+
41
+ echo "=== Slash Command Verification (21 core + 3 backward compatible = 24 commands) ==="
42
+ echo ""
43
+
44
+ COMMANDS_DIR="templates/claude-commands/devbooks"
45
+
46
+ # AC-001: Check command count (24 = 21 core + 3 backward compatible)
47
+ echo "AC-001: Checking command count..."
48
+ cmd_count=$(ls "$COMMANDS_DIR"/*.md 2>/dev/null | wc -l | tr -d ' ')
49
+ if [[ "$cmd_count" -eq 24 ]]; then
50
+ check "AC-001: Command count is 24 (21 core + 3 backward compatible)" "0"
51
+ else
52
+ check "AC-001: Command count is 24 (actual: $cmd_count)" "1"
53
+ fi
54
+
55
+ echo ""
56
+ echo "=== Checking 21 command file existence ==="
57
+
58
+ # 21 command files list
59
+ COMMANDS=(
60
+ "router"
61
+ "proposal"
62
+ "challenger"
63
+ "judge"
64
+ "debate"
65
+ "design"
66
+ "backport"
67
+ "plan"
68
+ "spec"
69
+ "gardener"
70
+ "test"
71
+ "test-review"
72
+ "code"
73
+ "review"
74
+ "delivery"
75
+ "c4"
76
+ "impact"
77
+ "entropy"
78
+ "federation"
79
+ "bootstrap"
80
+ "index"
81
+ )
82
+
83
+ for cmd in "${COMMANDS[@]}"; do
84
+ if [[ -f "$COMMANDS_DIR/$cmd.md" ]]; then
85
+ check "AC-011~AC-031: $cmd.md exists" "0"
86
+ else
87
+ check "AC-011~AC-031: $cmd.md exists" "1"
88
+ fi
89
+ done
90
+
91
+ echo ""
92
+ echo "=== AC-002: Checking command to Skill mapping ==="
93
+
94
+ # Command -> Skill mapping check
95
+ check_skill_mapping "router" "devbooks-router"
96
+ check_skill_mapping "proposal" "devbooks-proposal-author"
97
+ check_skill_mapping "challenger" "devbooks-proposal-challenger"
98
+ check_skill_mapping "judge" "devbooks-proposal-judge"
99
+ check_skill_mapping "debate" "devbooks-proposal-debate-workflow"
100
+ check_skill_mapping "design" "devbooks-design-doc"
101
+ check_skill_mapping "backport" "devbooks-design-backport"
102
+ check_skill_mapping "plan" "devbooks-implementation-plan"
103
+ check_skill_mapping "spec" "devbooks-spec-contract"
104
+ check_skill_mapping "gardener" "devbooks-spec-gardener"
105
+ check_skill_mapping "test" "devbooks-test-owner"
106
+ check_skill_mapping "test-review" "devbooks-test-reviewer"
107
+ check_skill_mapping "code" "devbooks-coder"
108
+ check_skill_mapping "review" "devbooks-code-review"
109
+ check_skill_mapping "delivery" "devbooks-delivery-workflow"
110
+ check_skill_mapping "c4" "devbooks-c4-map"
111
+ check_skill_mapping "impact" "devbooks-impact-analysis"
112
+ check_skill_mapping "entropy" "devbooks-entropy-monitor"
113
+ check_skill_mapping "federation" "devbooks-federation"
114
+ check_skill_mapping "bootstrap" "devbooks-brownfield-bootstrap"
115
+ check_skill_mapping "index" "devbooks-index-bootstrap"
116
+
117
+ echo ""
118
+ echo "=== AC-008: Checking backward compatible commands ==="
119
+
120
+ # Backward compatible commands list
121
+ COMPAT_COMMANDS=("apply" "archive" "quick")
122
+
123
+ for cmd in "${COMPAT_COMMANDS[@]}"; do
124
+ if [[ -f "$COMMANDS_DIR/$cmd.md" ]]; then
125
+ if grep -q "backward-compat: true" "$COMMANDS_DIR/$cmd.md"; then
126
+ check "AC-008: $cmd.md exists and marked as backward compatible" "0"
127
+ else
128
+ check "AC-008: $cmd.md exists but missing backward-compat marker" "1"
129
+ fi
130
+ else
131
+ check "AC-008: $cmd.md exists" "1"
132
+ fi
133
+ done
134
+
135
+ echo ""
136
+ echo "=== Results ==="
137
+ echo "Passed: $PASSED"
138
+ echo "Failed: $FAILED"
139
+
140
+ if [[ $FAILED -eq 0 ]]; then
141
+ echo -e "${GREEN}All passed!${NC}"
142
+ exit 0
143
+ else
144
+ echo -e "${RED}Some checks failed${NC}"
145
+ exit 1
146
+ fi
@@ -0,0 +1,50 @@
1
+ # 角色交接记录 / Role Handoff Record
2
+
3
+ ## 交接信息 / Handoff Metadata
4
+
5
+ - **变更ID**: <change-id>
6
+ - **交出角色**: <Test Owner / Design Owner / Planner / ...>
7
+ - **接收角色**: <Coder / Reviewer / ...>
8
+ - **交接时间**: <YYYY-MM-DD HH:MM>
9
+ - **对话/实例ID**: <session-id>
10
+
11
+ ## 交接内容 / Handoff Content
12
+
13
+ ### 已完成产物 / Completed Deliverables
14
+
15
+ - [ ] `design.md` - 设计文档已产出并通过评审
16
+ - [ ] `tasks.md` - 编码计划已产出
17
+ - [ ] `verification.md` - 验收测试已定义
18
+ - [ ] `tests/**` - 测试代码已实现
19
+ - [ ] Red 基线已记录到 `evidence/red-baseline/`
20
+
21
+ ### 上下文信息 / Context Information
22
+
23
+ > 请填写接收角色需要了解的关键信息
24
+
25
+ - **当前状态**: <简述当前进展>
26
+ - **关键决策**: <需要了解的重要决策>
27
+ - **已知问题**: <可能遇到的问题或风险>
28
+ - **参考文档**: <其他需要阅读的文档>
29
+
30
+ ### 剩余工作 / Remaining Work
31
+
32
+ > 请列出接收角色需要完成的工作
33
+
34
+ 1. <待完成项 1>
35
+ 2. <待完成项 2>
36
+
37
+ ## 确认签名 / Confirmation Signatures
38
+
39
+ > 交接完成后,双方在此签名确认
40
+
41
+ - [ ] **交出方确认**: 我确认已完成上述产物,信息准确完整
42
+ - [ ] **接收方确认**: 我确认已收到交接内容,理解当前状态和待完成工作
43
+
44
+ ---
45
+
46
+ ## 附注 / Notes
47
+
48
+ > 可选:其他需要记录的信息
49
+
50
+ <填写附加说明或留空>
@@ -0,0 +1,73 @@
1
+ ---
2
+ name: devbooks-design-backport
3
+ description: devbooks-design-backport:把实现过程中发现的新约束/冲突/缺口回写到 design.md(保持设计为黄金真理),并标注决策与影响。用户说"回写设计/补充设计文档/Design Backport/设计与实现不一致/需要澄清约束"等时使用。
4
+ tools:
5
+ - Glob
6
+ - Grep
7
+ - Read
8
+ - Write
9
+ - Edit
10
+ ---
11
+
12
+ # DevBooks:回写设计文档(Design Backport)
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
+ 1) 先阅读并遵守:`_shared/references/通用守门协议.md`(可验证性 + 结构质量守门)。
33
+ 2) 严格按完整提示词执行:`references/回写设计文档提示词.md`。
34
+
35
+ ---
36
+
37
+ ## 上下文感知
38
+
39
+ 本 Skill 在执行前自动检测上下文,识别需要回写的内容。
40
+
41
+ 检测规则参考:`skills/_shared/context-detection-template.md`
42
+
43
+ ### 检测流程
44
+
45
+ 1. 检测 `design.md` 是否存在
46
+ 2. 检测实现过程中是否有新发现(冲突/约束/缺口)
47
+ 3. 对比设计与实现的差异
48
+
49
+ ### 本 Skill 支持的模式
50
+
51
+ | 模式 | 触发条件 | 行为 |
52
+ |------|----------|------|
53
+ | **冲突回写** | 发现设计与实现冲突 | 记录冲突点和解决方案 |
54
+ | **约束回写** | 发现新的实现约束 | 补充约束条件到设计 |
55
+ | **缺口回写** | 发现设计未覆盖的场景 | 补充遗漏的设计决策 |
56
+
57
+ ### 检测输出示例
58
+
59
+ ```
60
+ 检测结果:
61
+ - design.md:存在
62
+ - 发现内容:2 个新约束,1 个设计冲突
63
+ - 运行模式:约束回写 + 冲突回写
64
+ ```
65
+
66
+ ---
67
+
68
+ ## MCP 增强
69
+
70
+ 本 Skill 不依赖 MCP 服务,无需运行时检测。
71
+
72
+ MCP 增强规则参考:`skills/_shared/mcp-enhancement-template.md`
73
+
@@ -0,0 +1,196 @@
1
+ # 回写设计文档提示词
2
+
3
+ > **角色设定**:你是设计演进领域的**最强大脑**——融合了 Michael Nygard(架构决策记录)、Martin Fowler(演进式设计)、Kent Beck(渐进式改进)的智慧。你的设计同步必须达到这些大师级专家的水准。
4
+
5
+ 最高指示(优先级最高):
6
+ - 在执行本提示词前,先阅读 `_shared/references/通用守门协议.md` 并遵循其中所有协议。
7
+
8
+ # 提示词:当编码计划超出设计文档范围时,回写设计文档(Design Backport)
9
+
10
+
11
+
12
+ > 使用场景:你发现“编码计划(tasks/plan)”中出现了“设计文档(design/spec)”未包含的新约束/新概念/新验收口径,导致“计划驱动实现”与“设计驱动验收”出现漂移。
13
+
14
+ 产物落点(目录约定,协议无关):
15
+ - 设计文档通常位于:`<change-root>/<change-id>/design.md`
16
+ - 编码计划通常位于:`<change-root>/<change-id>/tasks.md`
17
+ - 规格 delta 通常位于:`<change-root>/<change-id>/specs/<capability>/spec.md`
18
+ - 当前真理源位于:`<truth-root>/`(不要试图回写/篡改历史归档来“统一口径”;用新的变更包更新当前真理)
19
+
20
+ > 目标:把“应该成为设计的一部分”的内容回写进设计文档,降低后续测试、实现、验收的分歧。
21
+
22
+
23
+
24
+ ---
25
+
26
+
27
+
28
+ ## 可回写到设计文档的内容(What can be backported)
29
+
30
+
31
+
32
+ 只有当计划内容满足以下任一条件时,才适合回写到设计文档(属于 **Design-level**):
33
+
34
+
35
+
36
+ 1. **对外语义或用户可感知行为**
37
+
38
+ - 新增/修改关键用户流程(例如显式状态机、异步会话、可取消/可超时)
39
+
40
+ - 对外契约(API 输入输出形状、错误语义、必填字段、兼容窗口)
41
+
42
+ 2. **系统级不可变约束(Invariants / Red Lines)**
43
+
44
+ - 成本/资源上限(例如禁止 N² LLM 调用、`max_llm_calls` 硬上限、预算触发降级)
45
+
46
+ - 可靠性/安全红线(例如多租户隔离默认开启、外部不可信边界、注入默认隔离)
47
+
48
+ 3. **核心数据契约与演进策略(Contracts & Evolution)**
49
+
50
+ - `schema_version`、事件信封必需字段、幂等键原则、兼容策略(DLQ/迁移/回放)
51
+
52
+ - “什么必须能回放/可审计/可追溯”的最低标准
53
+
54
+ 4. **跨阶段治理策略(Cross-cutting Concerns)**
55
+
56
+ - 观测指标、SLO/KPI、告警与运营策略
57
+
58
+ - 生命周期/保留策略(Valid/Quarantine/Garbage 的策略与目的)
59
+
60
+ - 灰度/回滚路径与功能开关(Feature Flags)
61
+
62
+ 5. **关键取舍与决策(Decisions)**
63
+
64
+ - 选择 A 而非 B 的原因、替代方案、风险、降级策略
65
+
66
+ - 新增/修改“非目标(Non-goals)”或“开放问题(Open Questions)”
67
+
68
+
69
+
70
+ ---
71
+
72
+
73
+
74
+ ## 不应回写到设计文档的内容(What must NOT be backported)
75
+
76
+
77
+
78
+ 以下内容属于 **Implementation-level**,不应直接写入设计文档(除非你要把它升级为正式设计决策):
79
+
80
+
81
+
82
+ - 具体文件路径、类名/函数名、表名/字段名的实现细节(除非它是稳定的架构边界且必须对齐)
83
+
84
+ - PR 切分建议、任务执行顺序、脚本/命令的临时实现步骤
85
+
86
+ - 过细的算法伪代码(可回写“输入/输出/不变量/复杂度上限/降级策略”,避免把代码写进设计)
87
+
88
+ - 仅为某次实现方便的技巧性约束(没有长期价值或不可被验证)
89
+
90
+
91
+
92
+ ---
93
+
94
+
95
+
96
+ ## 冲突处理规则(Plan vs Design)
97
+
98
+
99
+
100
+ - **设计文档优先(Design is the Golden Truth)**:若编码计划与设计冲突,不要直接用计划覆盖设计。
101
+
102
+ - 允许两种处理方式:
103
+
104
+ 1) **提案式回写**:把计划内容作为 “Proposed Design Change(提案)” 写入设计文档,并明确需要决策/确认;
105
+
106
+ 2) **降级/延期**:将计划条目标记为 `DEFERRED/UNSCOPED`,直到设计明确后再进入实施。
107
+
108
+ - 回写时必须显式标注:这是“新增设计决策/补充约束”,并说明原因与影响范围。
109
+
110
+
111
+
112
+ ---
113
+
114
+
115
+
116
+ ## 输出要求(你要产出的东西)
117
+
118
+
119
+
120
+ 1. **对比清单**:列出“计划超出设计”的候选条目(按 Plan ID 分组),并给出分类:`Design-level / Implementation-level / Out-of-scope`。
121
+
122
+ 2. **设计回写补丁**:将所有 `Design-level` 内容以最小改动写回设计文档,放到最合适的章节(例如:非目标/设计原则/风险与降级/契约/里程碑/关键决策汇总)。
123
+
124
+ 3. **追溯更新**:对每条回写的设计内容,明确其验收方式(A/B/C)与验收锚点,并要求同步更新:
125
+ - 追溯矩阵(优先更新本次变更的 `<change-root>/<change-id>/verification.md`;如需对外公开再同步到 `docs/`)
126
+ - 非机器验收清单(优先更新 `<change-root>/<change-id>/verification.md` 中的 `MANUAL-*` 条目;如需对外公开再同步到 `docs/`)
127
+ - 如需新增/更新自动化锚点:列出对应的测试/静态检查建议(tests/命令/marker)
128
+
129
+
130
+
131
+ ---
132
+
133
+
134
+
135
+ ## 可直接复制使用的提示词(Prompt)
136
+
137
+
138
+
139
+ ```text
140
+
141
+ 你是“设计文档编辑器(Design Doc Editor)”。你的目标是把编码计划中超出设计文档范围、但属于设计层的内容,回写到设计文档中,使其成为可追溯、可验收的设计约束。
142
+
143
+
144
+
145
+ 输入:
146
+
147
+ - 设计文档:`<change-root>/<change-id>/design.md`(或你提供的等价路径)
148
+
149
+ - 编码计划:`<change-root>/<change-id>/tasks.md`(或你提供的等价路径)
150
+
151
+
152
+
153
+ 任务:
154
+
155
+ 1) 通读编码计划,找出所有“设计文档没有覆盖或表述不足”的条目(按 MP/章节聚类)。
156
+
157
+ 2) 对每条候选内容做分类:
158
+
159
+ - Design-level(应回写到设计):影响对外语义/用户流程/系统红线/数据契约/演进策略/运维治理/关键决策
160
+
161
+ - Implementation-level(不回写):实现细节、文件路径、PR 切分、执行顺序、伪代码细节
162
+
163
+ - Out-of-scope(不回写且应延期):不在本次范围或属于未来阶段但未被设计确认
164
+
165
+ 3) 仅对 Design-level 内容,回写到设计文档:
166
+
167
+ - 放到最合适的现有章节;必要时新增小节,但不要重构整篇文档
168
+
169
+ - 以“设计约束/决策”的口吻描述,避免实现细节
170
+
171
+ - 如与原设计冲突:不要直接改写原结论;新增“Proposed Design Change/开放问题”并说明原因、影响、需要决策点
172
+
173
+ - 更新设计文档头部的“更新时间”(如存在)
174
+
175
+ 4) 输出:
176
+
177
+ - A) 候选清单与分类结果(按 Plan ID)
178
+
179
+ - B) 对设计文档的最小补丁(只包含新增/修改的段落)
180
+
181
+ - C) 追溯与锚点更新清单(按优先级排序):
182
+ - 需要新增/更新哪些 tests/静态检查(A 类锚点)
183
+ - 需要新增/更新哪些人工/混合验收条目(B/C 类锚点,优先落到 `<change-root>/<change-id>/verification.md`)
184
+ - 需要如何更新追溯矩阵(优先落到 `<change-root>/<change-id>/verification.md`)
185
+
186
+
187
+
188
+ 限制:
189
+
190
+ - 不要把文件路径、类名/函数名、DB 表名等实现细节写进设计文档(除非它是稳定架构边界且必须暴露)
191
+
192
+ - 不要把大段伪代码写进设计文档;可以写不变量、复杂度上限、降级策略
193
+
194
+ - 语言保持与设计文档一致(中文为主,必要时英文术语括号解释)
195
+
196
+ ```