dev-playbooks 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 (142) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +463 -0
  3. package/bin/devbooks.js +986 -0
  4. package/package.json +41 -0
  5. package/skills/Skill-Development-Guide.md +249 -0
  6. package/skills/Skills-Usage-Guide.md +447 -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/universal-gating-protocol.md +114 -0
  10. package/skills/_template/config-discovery-template.md +126 -0
  11. package/skills/devbooks-brownfield-bootstrap/SKILL.md +168 -0
  12. package/skills/devbooks-brownfield-bootstrap/references/10-glossary-template.md +42 -0
  13. package/skills/devbooks-brownfield-bootstrap/references/brownfield-bootstrap-prompt.md +115 -0
  14. package/skills/devbooks-brownfield-bootstrap/references/brownfield-bootstrap.md +96 -0
  15. package/skills/devbooks-brownfield-bootstrap/references/code-navigation-strategy.md +203 -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-architecture-map-prompt.md +33 -0
  20. package/skills/devbooks-c4-map/references/layered-constraint-checklist.md +185 -0
  21. package/skills/devbooks-code-review/SKILL.md +175 -0
  22. package/skills/devbooks-code-review/references/code-review-prompt.md +100 -0
  23. package/skills/devbooks-code-review/references/code-smell-cheatsheet.md +498 -0
  24. package/skills/devbooks-code-review/references/pr-template-and-guidelines.md +321 -0
  25. package/skills/devbooks-code-review/references/resource-management-review-checklist.md +311 -0
  26. package/skills/devbooks-coder/SKILL.md +219 -0
  27. package/skills/devbooks-coder/references/code-implementation-prompt.md +74 -0
  28. package/skills/devbooks-coder/references/coding-style-guidelines.md +351 -0
  29. package/skills/devbooks-coder/references/error-code-standard.md +463 -0
  30. package/skills/devbooks-coder/references/logging-standard.md +329 -0
  31. package/skills/devbooks-coder/references/low-risk-modification-techniques.md +275 -0
  32. package/skills/devbooks-delivery-workflow/SKILL.md +217 -0
  33. package/skills/devbooks-delivery-workflow/references/9-change-verification-traceability-template.md +133 -0
  34. package/skills/devbooks-delivery-workflow/references/delivery-acceptance-workflow.md +177 -0
  35. package/skills/devbooks-delivery-workflow/references/prototype-production-dual-track.md +169 -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 +1039 -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 +467 -0
  42. package/skills/devbooks-delivery-workflow/scripts/change-spec-delta-scaffold.sh +135 -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 +365 -0
  46. package/skills/devbooks-delivery-workflow/scripts/guardrail-check.sh +516 -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/design-backport-prompt.md +132 -0
  64. package/skills/devbooks-design-doc/SKILL.md +121 -0
  65. package/skills/devbooks-design-doc/references/design-doc-prompt.md +188 -0
  66. package/skills/devbooks-design-doc/references/microservice-design-checklist.md +149 -0
  67. package/skills/devbooks-design-doc/references/privacy-compliance-checklist.md +240 -0
  68. package/skills/devbooks-entropy-monitor/SKILL.md +188 -0
  69. package/skills/devbooks-entropy-monitor/references/entropy-metrics-methodology.md +218 -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/impact-analysis-prompt.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/implementation-plan-prompt.md +95 -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/proposal-authoring-prompt.md +66 -0
  84. package/skills/devbooks-proposal-challenger/SKILL.md +86 -0
  85. package/skills/devbooks-proposal-challenger/references/ethics-and-compliance-checklist.md +176 -0
  86. package/skills/devbooks-proposal-challenger/references/proposal-challenge-prompt.md +57 -0
  87. package/skills/devbooks-proposal-debate-workflow/SKILL.md +78 -0
  88. package/skills/devbooks-proposal-debate-workflow/references/11-proposal-debate-template.md +35 -0
  89. package/skills/devbooks-proposal-debate-workflow/references/proposal-debate-workflow.md +24 -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/proposal-judge-prompt.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-design-guide.md +349 -0
  96. package/skills/devbooks-spec-contract/references/contract-and-data-definition-prompt.md +85 -0
  97. package/skills/devbooks-spec-contract/references/implicit-change-detection-prompt.md +183 -0
  98. package/skills/devbooks-spec-contract/references/spec-change-prompt.md +63 -0
  99. package/skills/devbooks-spec-contract/scripts/implicit-change-detect.sh +378 -0
  100. package/skills/devbooks-spec-gardener/SKILL.md +73 -0
  101. package/skills/devbooks-spec-gardener/references/spec-gardener-prompt.md +41 -0
  102. package/skills/devbooks-test-owner/SKILL.md +173 -0
  103. package/skills/devbooks-test-owner/references/9-change-verification-traceability-template.md +133 -0
  104. package/skills/devbooks-test-owner/references/async-system-test-strategy.md +316 -0
  105. package/skills/devbooks-test-owner/references/decoupling-techniques-cheatsheet.md +269 -0
  106. package/skills/devbooks-test-owner/references/test-code-prompt.md +171 -0
  107. package/skills/devbooks-test-owner/references/test-driven-development.md +351 -0
  108. package/skills/devbooks-test-owner/references/test-layering-strategy.md +281 -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 +20 -0
  115. package/templates/claude-commands/devbooks/c4.md +20 -0
  116. package/templates/claude-commands/devbooks/challenger.md +19 -0
  117. package/templates/claude-commands/devbooks/code.md +20 -0
  118. package/templates/claude-commands/devbooks/debate.md +20 -0
  119. package/templates/claude-commands/devbooks/delivery.md +20 -0
  120. package/templates/claude-commands/devbooks/design.md +20 -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 +20 -0
  128. package/templates/claude-commands/devbooks/proposal.md +20 -0
  129. package/templates/claude-commands/devbooks/quick.md +43 -0
  130. package/templates/claude-commands/devbooks/review.md +20 -0
  131. package/templates/claude-commands/devbooks/router.md +19 -0
  132. package/templates/claude-commands/devbooks/spec.md +20 -0
  133. package/templates/claude-commands/devbooks/test-review.md +19 -0
  134. package/templates/claude-commands/devbooks/test.md +20 -0
  135. package/templates/dev-playbooks/changes/.gitkeep +1 -0
  136. package/templates/dev-playbooks/constitution.md +116 -0
  137. package/templates/dev-playbooks/project.md +96 -0
  138. package/templates/dev-playbooks/scripts/.gitkeep +1 -0
  139. package/templates/dev-playbooks/specs/_meta/anti-patterns/.gitkeep +2 -0
  140. package/templates/dev-playbooks/specs/_meta/glossary.md +48 -0
  141. package/templates/dev-playbooks/specs/_meta/project-profile.md +79 -0
  142. package/templates/dev-playbooks/specs/architecture/fitness-rules.md +95 -0
@@ -0,0 +1,135 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ usage() {
5
+ cat <<'EOF' >&2
6
+ usage: change-codemod-scaffold.sh <change-id> [--name <codemod-name>] [--project-root <dir>] [--change-root <dir>] [--force]
7
+
8
+ Creates a runnable codemod script under:
9
+ <change-root>/<change-id>/scripts/codemod-<codemod-name>.sh
10
+
11
+ Defaults (can be overridden by flags or env):
12
+ DEVBOOKS_PROJECT_ROOT: pwd
13
+ DEVBOOKS_CHANGE_ROOT: changes
14
+ EOF
15
+ }
16
+
17
+ if [[ $# -eq 0 ]]; then
18
+ usage
19
+ exit 2
20
+ fi
21
+
22
+ if [[ "${1:-}" == "-h" || "${1:-}" == "--help" ]]; then
23
+ usage
24
+ exit 0
25
+ fi
26
+
27
+ change_id="$1"
28
+ shift
29
+
30
+ project_root="${DEVBOOKS_PROJECT_ROOT:-$(pwd)}"
31
+ change_root="${DEVBOOKS_CHANGE_ROOT:-changes}"
32
+ name="lsc"
33
+ force=false
34
+
35
+ while [[ $# -gt 0 ]]; do
36
+ case "$1" in
37
+ -h|--help)
38
+ usage
39
+ exit 0
40
+ ;;
41
+ --name)
42
+ name="${2:-}"
43
+ shift 2
44
+ ;;
45
+ --project-root)
46
+ project_root="${2:-}"
47
+ shift 2
48
+ ;;
49
+ --change-root)
50
+ change_root="${2:-}"
51
+ shift 2
52
+ ;;
53
+ --force)
54
+ force=true
55
+ shift
56
+ ;;
57
+ *)
58
+ usage
59
+ exit 2
60
+ ;;
61
+ esac
62
+ done
63
+
64
+ if [[ -z "$change_id" || "$change_id" == "-"* || "$change_id" =~ [[:space:]] ]]; then
65
+ echo "error: invalid change-id: '$change_id'" >&2
66
+ exit 2
67
+ fi
68
+
69
+ if [[ -z "$name" || "$name" =~ [[:space:]] || "$name" == *"/"* ]]; then
70
+ echo "error: invalid --name (no whitespace, no '/'): '$name'" >&2
71
+ exit 2
72
+ fi
73
+
74
+ project_root="${project_root%/}"
75
+ change_root="${change_root%/}"
76
+
77
+ if [[ "$change_root" = /* ]]; then
78
+ change_dir="${change_root}/${change_id}"
79
+ else
80
+ change_dir="${project_root}/${change_root}/${change_id}"
81
+ fi
82
+
83
+ target_dir="${change_dir}/scripts"
84
+ target_file="${target_dir}/codemod-${name}.sh"
85
+
86
+ if [[ -f "$target_file" && "$force" != true ]]; then
87
+ echo "skip: ${target_file}"
88
+ exit 0
89
+ fi
90
+
91
+ mkdir -p "$target_dir"
92
+
93
+ cat >"$target_file" <<'EOF'
94
+ #!/usr/bin/env bash
95
+ set -euo pipefail
96
+
97
+ usage() {
98
+ cat <<'USAGE' >&2
99
+ usage: codemod-<name>.sh [--apply]
100
+
101
+ Runs a large-scale mechanical change. Default is dry-run.
102
+
103
+ Recommended flow:
104
+ 1) Implement the mechanical transformation deterministically.
105
+ 2) Run tests / static checks.
106
+ 3) Capture evidence to <change-root>/<change-id>/evidence/ via change-evidence.sh.
107
+ USAGE
108
+ }
109
+
110
+ apply=false
111
+ while [[ $# -gt 0 ]]; do
112
+ case "$1" in
113
+ -h|--help) usage; exit 0 ;;
114
+ --apply) apply=true; shift ;;
115
+ *) usage; exit 2 ;;
116
+ esac
117
+ done
118
+
119
+ repo_root="$(pwd)"
120
+
121
+ if [[ "$apply" != true ]]; then
122
+ echo "dry-run: no changes applied"
123
+ echo "repo_root: ${repo_root}"
124
+ echo "next: edit this script to implement your codemod, then re-run with --apply"
125
+ exit 0
126
+ fi
127
+
128
+ echo "apply: TODO implement codemod steps"
129
+ exit 2
130
+ EOF
131
+
132
+ chmod +x "$target_file"
133
+ echo "wrote: ${target_file}"
134
+ echo "ok: scaffolded codemod script for ${change_id} (${name})"
135
+
@@ -0,0 +1,152 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ usage() {
5
+ cat <<'EOF' >&2
6
+ usage: change-evidence.sh <change-id> [--project-root <dir>] [--change-root <dir>] [--label <name>] [--out <file>] -- <command> [args...]
7
+
8
+ Runs a command and captures its combined stdout/stderr into:
9
+ <change-root>/<change-id>/evidence/
10
+
11
+ Defaults (can be overridden by flags or env):
12
+ DEVBOOKS_PROJECT_ROOT: pwd
13
+ DEVBOOKS_CHANGE_ROOT: changes
14
+ EOF
15
+ }
16
+
17
+ if [[ $# -eq 0 ]]; then
18
+ usage
19
+ exit 2
20
+ fi
21
+
22
+ if [[ "${1:-}" == "-h" || "${1:-}" == "--help" ]]; then
23
+ usage
24
+ exit 0
25
+ fi
26
+
27
+ change_id="$1"
28
+ shift
29
+
30
+ project_root="${DEVBOOKS_PROJECT_ROOT:-$(pwd)}"
31
+ change_root="${DEVBOOKS_CHANGE_ROOT:-changes}"
32
+ label="evidence"
33
+ out_path=""
34
+
35
+ while [[ $# -gt 0 ]]; do
36
+ case "$1" in
37
+ -h|--help)
38
+ usage
39
+ exit 0
40
+ ;;
41
+ --project-root)
42
+ project_root="${2:-}"
43
+ shift 2
44
+ ;;
45
+ --change-root)
46
+ change_root="${2:-}"
47
+ shift 2
48
+ ;;
49
+ --label)
50
+ label="${2:-}"
51
+ shift 2
52
+ ;;
53
+ --out)
54
+ out_path="${2:-}"
55
+ shift 2
56
+ ;;
57
+ --)
58
+ shift
59
+ break
60
+ ;;
61
+ *)
62
+ usage
63
+ exit 2
64
+ ;;
65
+ esac
66
+ done
67
+
68
+ if [[ -z "$change_id" || "$change_id" == "-"* || "$change_id" =~ [[:space:]] ]]; then
69
+ echo "error: invalid change-id: '$change_id'" >&2
70
+ exit 2
71
+ fi
72
+
73
+ if [[ -z "$label" || "$label" =~ [[:space:]] ]]; then
74
+ echo "error: invalid --label (no whitespace): '$label'" >&2
75
+ exit 2
76
+ fi
77
+
78
+ if [[ $# -lt 1 ]]; then
79
+ echo "error: missing command after '--'" >&2
80
+ usage
81
+ exit 2
82
+ fi
83
+
84
+ project_root="${project_root%/}"
85
+ change_root="${change_root%/}"
86
+
87
+ if [[ "$change_root" = /* ]]; then
88
+ change_dir="${change_root}/${change_id}"
89
+ else
90
+ change_dir="${project_root}/${change_root}/${change_id}"
91
+ fi
92
+
93
+ evidence_dir="${change_dir}/evidence"
94
+ mkdir -p "$evidence_dir"
95
+
96
+ sanitize() {
97
+ printf '%s' "$1" | sed -E 's/[^A-Za-z0-9._-]+/-/g; s/^-+//; s/-+$//'
98
+ }
99
+
100
+ ts="$(date +%Y%m%d-%H%M%S)"
101
+ safe_label="$(sanitize "$label")"
102
+ if [[ -z "$safe_label" ]]; then
103
+ safe_label="evidence"
104
+ fi
105
+
106
+ if [[ -n "$out_path" ]]; then
107
+ if [[ "$out_path" = /* ]]; then
108
+ out_file="$out_path"
109
+ else
110
+ out_file="${evidence_dir}/${out_path}"
111
+ fi
112
+ else
113
+ out_file="${evidence_dir}/${ts}-${safe_label}.log"
114
+ fi
115
+
116
+ mkdir -p "$(dirname "$out_file")"
117
+
118
+ cmd_pretty="$(printf '%q ' "$@")"
119
+
120
+ {
121
+ echo "# Evidence capture"
122
+ echo "# change-id: ${change_id}"
123
+ echo "# timestamp: $(date -Iseconds)"
124
+ echo "# project-root: ${project_root}"
125
+ echo "# cwd: ${project_root}"
126
+ echo "# command: ${cmd_pretty}"
127
+ echo
128
+ } >"$out_file"
129
+
130
+ echo "devbooks: capturing evidence -> ${out_file}"
131
+ echo "devbooks: running: ${cmd_pretty}"
132
+
133
+ set +e
134
+ (
135
+ cd "$project_root"
136
+ "$@" 2>&1
137
+ ) | tee -a "$out_file"
138
+ exit_code="${PIPESTATUS[0]}"
139
+ set -e
140
+
141
+ {
142
+ echo
143
+ echo "# exit_code: ${exit_code}"
144
+ } >>"$out_file"
145
+
146
+ if [[ "$exit_code" -ne 0 ]]; then
147
+ echo "fail: command exit_code=${exit_code} (evidence recorded)" >&2
148
+ exit "$exit_code"
149
+ fi
150
+
151
+ echo "ok: evidence recorded"
152
+