bigpowers 2.87.4 → 2.87.6

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 (259) hide show
  1. package/.cursor/rules/align-grid.mdc +109 -0
  2. package/.cursor/rules/assess-impact.mdc +90 -0
  3. package/.cursor/rules/audit-code.mdc +183 -0
  4. package/.cursor/rules/audit-plan.mdc +88 -0
  5. package/.cursor/rules/build-epic.mdc +104 -0
  6. package/.cursor/rules/change-request.mdc +120 -0
  7. package/.cursor/rules/commit-message.mdc +139 -0
  8. package/.cursor/rules/compose-workflow.mdc +81 -0
  9. package/.cursor/rules/context7-mcp.mdc +54 -0
  10. package/.cursor/rules/craft-skill.mdc +195 -0
  11. package/.cursor/rules/deepen-architecture.mdc +259 -0
  12. package/.cursor/rules/define-language.mdc +79 -0
  13. package/.cursor/rules/define-success.mdc +11 -0
  14. package/.cursor/rules/delegate-task.mdc +90 -0
  15. package/.cursor/rules/deploy.mdc +197 -0
  16. package/.cursor/rules/design-interface.mdc +96 -0
  17. package/.cursor/rules/develop-tdd.mdc +415 -0
  18. package/.cursor/rules/diagnose-root.mdc +23 -0
  19. package/.cursor/rules/diagnose-stall.mdc +53 -0
  20. package/.cursor/rules/dispatch-agents.mdc +117 -0
  21. package/.cursor/rules/edit-document.mdc +22 -0
  22. package/.cursor/rules/elaborate-spec.mdc +100 -0
  23. package/.cursor/rules/enforce-first.mdc +44 -0
  24. package/.cursor/rules/evolve-skill.mdc +54 -0
  25. package/.cursor/rules/execute-plan.mdc +60 -0
  26. package/.cursor/rules/extract-design.mdc +131 -0
  27. package/.cursor/rules/find-way.mdc +190 -0
  28. package/.cursor/rules/fix-bug.mdc +66 -0
  29. package/.cursor/rules/gate-trace.mdc +91 -0
  30. package/.cursor/rules/generate-allure-report.mdc +284 -0
  31. package/.cursor/rules/grill-me.mdc +107 -0
  32. package/.cursor/rules/grill-with-docs.mdc +52 -0
  33. package/.cursor/rules/guard-git.mdc +230 -0
  34. package/.cursor/rules/harden-vps.mdc +290 -0
  35. package/.cursor/rules/hook-commits.mdc +93 -0
  36. package/.cursor/rules/inspect-quality.mdc +105 -0
  37. package/.cursor/rules/investigate-bug.mdc +126 -0
  38. package/.cursor/rules/kickoff-branch.mdc +142 -0
  39. package/.cursor/rules/maintain-wiki.mdc +63 -0
  40. package/.cursor/rules/map-codebase.mdc +70 -0
  41. package/.cursor/rules/migrate-spec.mdc +907 -0
  42. package/.cursor/rules/model-domain.mdc +231 -0
  43. package/.cursor/rules/orchestrate-project.mdc +173 -0
  44. package/.cursor/rules/organize-workspace.mdc +163 -0
  45. package/.cursor/rules/plan-refactor.mdc +86 -0
  46. package/.cursor/rules/plan-release.mdc +144 -0
  47. package/.cursor/rules/plan-tests.mdc +74 -0
  48. package/.cursor/rules/plan-work.mdc +271 -0
  49. package/.cursor/rules/publish-package.mdc +337 -0
  50. package/.cursor/rules/quick-fix.mdc +113 -0
  51. package/.cursor/rules/release-branch.mdc +301 -0
  52. package/.cursor/rules/request-review.mdc +112 -0
  53. package/.cursor/rules/research-first.mdc +86 -0
  54. package/.cursor/rules/reset-baseline.mdc +20 -0
  55. package/.cursor/rules/respond-review.mdc +70 -0
  56. package/.cursor/rules/run-benchmark.mdc +84 -0
  57. package/.cursor/rules/run-evals.mdc +79 -0
  58. package/.cursor/rules/run-planning.mdc +100 -0
  59. package/.cursor/rules/scope-work.mdc +62 -0
  60. package/.cursor/rules/search-skills.mdc +72 -0
  61. package/.cursor/rules/security-review.mdc +383 -0
  62. package/.cursor/rules/seed-conventions.mdc +311 -0
  63. package/.cursor/rules/session-state.mdc +145 -0
  64. package/.cursor/rules/setup-environment.mdc +38 -0
  65. package/.cursor/rules/simple-english.mdc +345 -0
  66. package/.cursor/rules/simulate-agents.mdc +25 -0
  67. package/.cursor/rules/slice-tasks.mdc +67 -0
  68. package/.cursor/rules/smoke-test.mdc +260 -0
  69. package/.cursor/rules/spike-prototype.mdc +94 -0
  70. package/.cursor/rules/stocktake-skills.mdc +73 -0
  71. package/.cursor/rules/survey-context.mdc +134 -0
  72. package/.cursor/rules/terse-mode.mdc +41 -0
  73. package/.cursor/rules/trace-requirement.mdc +68 -0
  74. package/.cursor/rules/using-bigpowers.mdc +110 -0
  75. package/.cursor/rules/validate-contracts.mdc +285 -0
  76. package/.cursor/rules/validate-fix.mdc +146 -0
  77. package/.cursor/rules/verify-work.mdc +190 -0
  78. package/.cursor/rules/visual-dashboard.mdc +49 -0
  79. package/.cursor/rules/wire-ci.mdc +380 -0
  80. package/.cursor/rules/wire-observability.mdc +96 -0
  81. package/.cursor/rules/write-document.mdc +280 -0
  82. package/.gemini/extensions/bigpowers/commands/prompts/align-grid.md +109 -0
  83. package/.gemini/extensions/bigpowers/commands/prompts/assess-impact.md +90 -0
  84. package/.gemini/extensions/bigpowers/commands/prompts/audit-code.md +183 -0
  85. package/.gemini/extensions/bigpowers/commands/prompts/audit-plan.md +88 -0
  86. package/.gemini/extensions/bigpowers/commands/prompts/build-epic.md +104 -0
  87. package/.gemini/extensions/bigpowers/commands/prompts/change-request.md +120 -0
  88. package/.gemini/extensions/bigpowers/commands/prompts/commit-message.md +139 -0
  89. package/.gemini/extensions/bigpowers/commands/prompts/compose-workflow.md +81 -0
  90. package/.gemini/extensions/bigpowers/commands/prompts/context7-mcp.md +54 -0
  91. package/.gemini/extensions/bigpowers/commands/prompts/craft-skill.md +195 -0
  92. package/.gemini/extensions/bigpowers/commands/prompts/deepen-architecture.md +259 -0
  93. package/.gemini/extensions/bigpowers/commands/prompts/define-language.md +79 -0
  94. package/.gemini/extensions/bigpowers/commands/prompts/define-success.md +11 -0
  95. package/.gemini/extensions/bigpowers/commands/prompts/delegate-task.md +90 -0
  96. package/.gemini/extensions/bigpowers/commands/prompts/deploy.md +197 -0
  97. package/.gemini/extensions/bigpowers/commands/prompts/design-interface.md +96 -0
  98. package/.gemini/extensions/bigpowers/commands/prompts/develop-tdd.md +415 -0
  99. package/.gemini/extensions/bigpowers/commands/prompts/diagnose-root.md +23 -0
  100. package/.gemini/extensions/bigpowers/commands/prompts/diagnose-stall.md +53 -0
  101. package/.gemini/extensions/bigpowers/commands/prompts/dispatch-agents.md +117 -0
  102. package/.gemini/extensions/bigpowers/commands/prompts/edit-document.md +22 -0
  103. package/.gemini/extensions/bigpowers/commands/prompts/elaborate-spec.md +100 -0
  104. package/.gemini/extensions/bigpowers/commands/prompts/enforce-first.md +44 -0
  105. package/.gemini/extensions/bigpowers/commands/prompts/evolve-skill.md +54 -0
  106. package/.gemini/extensions/bigpowers/commands/prompts/execute-plan.md +60 -0
  107. package/.gemini/extensions/bigpowers/commands/prompts/extract-design.md +131 -0
  108. package/.gemini/extensions/bigpowers/commands/prompts/find-way.md +190 -0
  109. package/.gemini/extensions/bigpowers/commands/prompts/fix-bug.md +66 -0
  110. package/.gemini/extensions/bigpowers/commands/prompts/gate-trace.md +91 -0
  111. package/.gemini/extensions/bigpowers/commands/prompts/generate-allure-report.md +284 -0
  112. package/.gemini/extensions/bigpowers/commands/prompts/grill-me.md +107 -0
  113. package/.gemini/extensions/bigpowers/commands/prompts/grill-with-docs.md +52 -0
  114. package/.gemini/extensions/bigpowers/commands/prompts/guard-git.md +230 -0
  115. package/.gemini/extensions/bigpowers/commands/prompts/harden-vps.md +290 -0
  116. package/.gemini/extensions/bigpowers/commands/prompts/hook-commits.md +93 -0
  117. package/.gemini/extensions/bigpowers/commands/prompts/inspect-quality.md +105 -0
  118. package/.gemini/extensions/bigpowers/commands/prompts/investigate-bug.md +126 -0
  119. package/.gemini/extensions/bigpowers/commands/prompts/kickoff-branch.md +142 -0
  120. package/.gemini/extensions/bigpowers/commands/prompts/maintain-wiki.md +63 -0
  121. package/.gemini/extensions/bigpowers/commands/prompts/map-codebase.md +70 -0
  122. package/.gemini/extensions/bigpowers/commands/prompts/migrate-spec.md +907 -0
  123. package/.gemini/extensions/bigpowers/commands/prompts/model-domain.md +231 -0
  124. package/.gemini/extensions/bigpowers/commands/prompts/orchestrate-project.md +173 -0
  125. package/.gemini/extensions/bigpowers/commands/prompts/organize-workspace.md +163 -0
  126. package/.gemini/extensions/bigpowers/commands/prompts/plan-refactor.md +86 -0
  127. package/.gemini/extensions/bigpowers/commands/prompts/plan-release.md +144 -0
  128. package/.gemini/extensions/bigpowers/commands/prompts/plan-tests.md +74 -0
  129. package/.gemini/extensions/bigpowers/commands/prompts/plan-work.md +271 -0
  130. package/.gemini/extensions/bigpowers/commands/prompts/publish-package.md +337 -0
  131. package/.gemini/extensions/bigpowers/commands/prompts/quick-fix.md +113 -0
  132. package/.gemini/extensions/bigpowers/commands/prompts/release-branch.md +301 -0
  133. package/.gemini/extensions/bigpowers/commands/prompts/request-review.md +112 -0
  134. package/.gemini/extensions/bigpowers/commands/prompts/research-first.md +86 -0
  135. package/.gemini/extensions/bigpowers/commands/prompts/reset-baseline.md +20 -0
  136. package/.gemini/extensions/bigpowers/commands/prompts/respond-review.md +70 -0
  137. package/.gemini/extensions/bigpowers/commands/prompts/run-benchmark.md +84 -0
  138. package/.gemini/extensions/bigpowers/commands/prompts/run-evals.md +79 -0
  139. package/.gemini/extensions/bigpowers/commands/prompts/run-planning.md +100 -0
  140. package/.gemini/extensions/bigpowers/commands/prompts/scope-work.md +62 -0
  141. package/.gemini/extensions/bigpowers/commands/prompts/search-skills.md +72 -0
  142. package/.gemini/extensions/bigpowers/commands/prompts/security-review.md +383 -0
  143. package/.gemini/extensions/bigpowers/commands/prompts/seed-conventions.md +311 -0
  144. package/.gemini/extensions/bigpowers/commands/prompts/session-state.md +145 -0
  145. package/.gemini/extensions/bigpowers/commands/prompts/setup-environment.md +38 -0
  146. package/.gemini/extensions/bigpowers/commands/prompts/simple-english.md +345 -0
  147. package/.gemini/extensions/bigpowers/commands/prompts/simulate-agents.md +25 -0
  148. package/.gemini/extensions/bigpowers/commands/prompts/slice-tasks.md +67 -0
  149. package/.gemini/extensions/bigpowers/commands/prompts/smoke-test.md +260 -0
  150. package/.gemini/extensions/bigpowers/commands/prompts/spike-prototype.md +94 -0
  151. package/.gemini/extensions/bigpowers/commands/prompts/stocktake-skills.md +73 -0
  152. package/.gemini/extensions/bigpowers/commands/prompts/survey-context.md +134 -0
  153. package/.gemini/extensions/bigpowers/commands/prompts/terse-mode.md +41 -0
  154. package/.gemini/extensions/bigpowers/commands/prompts/trace-requirement.md +68 -0
  155. package/.gemini/extensions/bigpowers/commands/prompts/using-bigpowers.md +110 -0
  156. package/.gemini/extensions/bigpowers/commands/prompts/validate-contracts.md +285 -0
  157. package/.gemini/extensions/bigpowers/commands/prompts/validate-fix.md +146 -0
  158. package/.gemini/extensions/bigpowers/commands/prompts/verify-work.md +190 -0
  159. package/.gemini/extensions/bigpowers/commands/prompts/visual-dashboard.md +49 -0
  160. package/.gemini/extensions/bigpowers/commands/prompts/wire-ci.md +380 -0
  161. package/.gemini/extensions/bigpowers/commands/prompts/wire-observability.md +96 -0
  162. package/.gemini/extensions/bigpowers/commands/prompts/write-document.md +280 -0
  163. package/.gemini/extensions/bigpowers/gemini-extension.json +16 -0
  164. package/.gemini/extensions/bigpowers/hooks/HOOKS.md +43 -0
  165. package/.gemini/extensions/bigpowers/hooks/before-tool-git-guard.sh +26 -0
  166. package/.gemini/extensions/bigpowers/hooks/before-tool-rtk.sh +14 -0
  167. package/.gemini/extensions/bigpowers/hooks/before-tool-token-mgmt.sh +19 -0
  168. package/.gemini/extensions/bigpowers/hooks/hooks-manifest.json +36 -0
  169. package/.gemini/extensions/bigpowers/hooks/run-hook.cmd +29 -0
  170. package/.gemini/extensions/bigpowers/hooks/session-start +48 -0
  171. package/.gemini/extensions/bigpowers/hooks/settings.json.example +41 -0
  172. package/.gemini/extensions/bigpowers/skills/align-grid/SKILL.md +111 -0
  173. package/.gemini/extensions/bigpowers/skills/assess-impact/SKILL.md +92 -0
  174. package/.gemini/extensions/bigpowers/skills/audit-code/SKILL.md +185 -0
  175. package/.gemini/extensions/bigpowers/skills/audit-plan/SKILL.md +90 -0
  176. package/.gemini/extensions/bigpowers/skills/build-epic/SKILL.md +106 -0
  177. package/.gemini/extensions/bigpowers/skills/change-request/SKILL.md +122 -0
  178. package/.gemini/extensions/bigpowers/skills/commit-message/SKILL.md +141 -0
  179. package/.gemini/extensions/bigpowers/skills/compose-workflow/SKILL.md +83 -0
  180. package/.gemini/extensions/bigpowers/skills/context7-mcp/SKILL.md +56 -0
  181. package/.gemini/extensions/bigpowers/skills/craft-skill/SKILL.md +197 -0
  182. package/.gemini/extensions/bigpowers/skills/deepen-architecture/SKILL.md +261 -0
  183. package/.gemini/extensions/bigpowers/skills/define-language/SKILL.md +81 -0
  184. package/.gemini/extensions/bigpowers/skills/define-success/SKILL.md +13 -0
  185. package/.gemini/extensions/bigpowers/skills/delegate-task/SKILL.md +92 -0
  186. package/.gemini/extensions/bigpowers/skills/deploy/SKILL.md +199 -0
  187. package/.gemini/extensions/bigpowers/skills/design-interface/SKILL.md +98 -0
  188. package/.gemini/extensions/bigpowers/skills/develop-tdd/SKILL.md +417 -0
  189. package/.gemini/extensions/bigpowers/skills/diagnose-root/SKILL.md +25 -0
  190. package/.gemini/extensions/bigpowers/skills/diagnose-stall/SKILL.md +55 -0
  191. package/.gemini/extensions/bigpowers/skills/dispatch-agents/SKILL.md +119 -0
  192. package/.gemini/extensions/bigpowers/skills/edit-document/SKILL.md +24 -0
  193. package/.gemini/extensions/bigpowers/skills/elaborate-spec/SKILL.md +102 -0
  194. package/.gemini/extensions/bigpowers/skills/enforce-first/SKILL.md +46 -0
  195. package/.gemini/extensions/bigpowers/skills/evolve-skill/SKILL.md +56 -0
  196. package/.gemini/extensions/bigpowers/skills/execute-plan/SKILL.md +62 -0
  197. package/.gemini/extensions/bigpowers/skills/extract-design/SKILL.md +133 -0
  198. package/.gemini/extensions/bigpowers/skills/find-way/SKILL.md +192 -0
  199. package/.gemini/extensions/bigpowers/skills/fix-bug/SKILL.md +68 -0
  200. package/.gemini/extensions/bigpowers/skills/gate-trace/SKILL.md +93 -0
  201. package/.gemini/extensions/bigpowers/skills/generate-allure-report/SKILL.md +286 -0
  202. package/.gemini/extensions/bigpowers/skills/grill-me/SKILL.md +109 -0
  203. package/.gemini/extensions/bigpowers/skills/grill-with-docs/SKILL.md +54 -0
  204. package/.gemini/extensions/bigpowers/skills/guard-git/SKILL.md +232 -0
  205. package/.gemini/extensions/bigpowers/skills/harden-vps/SKILL.md +292 -0
  206. package/.gemini/extensions/bigpowers/skills/hook-commits/SKILL.md +95 -0
  207. package/.gemini/extensions/bigpowers/skills/inspect-quality/SKILL.md +107 -0
  208. package/.gemini/extensions/bigpowers/skills/investigate-bug/SKILL.md +128 -0
  209. package/.gemini/extensions/bigpowers/skills/kickoff-branch/SKILL.md +144 -0
  210. package/.gemini/extensions/bigpowers/skills/maintain-wiki/SKILL.md +65 -0
  211. package/.gemini/extensions/bigpowers/skills/map-codebase/SKILL.md +72 -0
  212. package/.gemini/extensions/bigpowers/skills/migrate-spec/SKILL.md +909 -0
  213. package/.gemini/extensions/bigpowers/skills/model-domain/SKILL.md +233 -0
  214. package/.gemini/extensions/bigpowers/skills/orchestrate-project/SKILL.md +175 -0
  215. package/.gemini/extensions/bigpowers/skills/organize-workspace/SKILL.md +165 -0
  216. package/.gemini/extensions/bigpowers/skills/plan-refactor/SKILL.md +88 -0
  217. package/.gemini/extensions/bigpowers/skills/plan-release/SKILL.md +146 -0
  218. package/.gemini/extensions/bigpowers/skills/plan-tests/SKILL.md +76 -0
  219. package/.gemini/extensions/bigpowers/skills/plan-work/SKILL.md +273 -0
  220. package/.gemini/extensions/bigpowers/skills/publish-package/SKILL.md +339 -0
  221. package/.gemini/extensions/bigpowers/skills/quick-fix/SKILL.md +115 -0
  222. package/.gemini/extensions/bigpowers/skills/release-branch/SKILL.md +303 -0
  223. package/.gemini/extensions/bigpowers/skills/request-review/SKILL.md +114 -0
  224. package/.gemini/extensions/bigpowers/skills/research-first/SKILL.md +88 -0
  225. package/.gemini/extensions/bigpowers/skills/reset-baseline/SKILL.md +22 -0
  226. package/.gemini/extensions/bigpowers/skills/respond-review/SKILL.md +72 -0
  227. package/.gemini/extensions/bigpowers/skills/run-benchmark/SKILL.md +86 -0
  228. package/.gemini/extensions/bigpowers/skills/run-evals/SKILL.md +81 -0
  229. package/.gemini/extensions/bigpowers/skills/run-planning/SKILL.md +102 -0
  230. package/.gemini/extensions/bigpowers/skills/scope-work/SKILL.md +64 -0
  231. package/.gemini/extensions/bigpowers/skills/search-skills/SKILL.md +74 -0
  232. package/.gemini/extensions/bigpowers/skills/security-review/SKILL.md +385 -0
  233. package/.gemini/extensions/bigpowers/skills/seed-conventions/SKILL.md +313 -0
  234. package/.gemini/extensions/bigpowers/skills/session-state/SKILL.md +147 -0
  235. package/.gemini/extensions/bigpowers/skills/setup-environment/SKILL.md +40 -0
  236. package/.gemini/extensions/bigpowers/skills/simple-english/SKILL.md +347 -0
  237. package/.gemini/extensions/bigpowers/skills/simulate-agents/SKILL.md +27 -0
  238. package/.gemini/extensions/bigpowers/skills/slice-tasks/SKILL.md +69 -0
  239. package/.gemini/extensions/bigpowers/skills/smoke-test/SKILL.md +262 -0
  240. package/.gemini/extensions/bigpowers/skills/spike-prototype/SKILL.md +96 -0
  241. package/.gemini/extensions/bigpowers/skills/stocktake-skills/SKILL.md +75 -0
  242. package/.gemini/extensions/bigpowers/skills/survey-context/SKILL.md +136 -0
  243. package/.gemini/extensions/bigpowers/skills/terse-mode/SKILL.md +43 -0
  244. package/.gemini/extensions/bigpowers/skills/trace-requirement/SKILL.md +70 -0
  245. package/.gemini/extensions/bigpowers/skills/using-bigpowers/SKILL.md +112 -0
  246. package/.gemini/extensions/bigpowers/skills/validate-contracts/SKILL.md +287 -0
  247. package/.gemini/extensions/bigpowers/skills/validate-fix/SKILL.md +148 -0
  248. package/.gemini/extensions/bigpowers/skills/verify-work/SKILL.md +192 -0
  249. package/.gemini/extensions/bigpowers/skills/visual-dashboard/SKILL.md +51 -0
  250. package/.gemini/extensions/bigpowers/skills/wire-ci/SKILL.md +382 -0
  251. package/.gemini/extensions/bigpowers/skills/wire-observability/SKILL.md +98 -0
  252. package/.gemini/extensions/bigpowers/skills/write-document/SKILL.md +282 -0
  253. package/.pi/package.json +1 -1
  254. package/CHANGELOG.md +14 -0
  255. package/package.json +1 -1
  256. package/scripts/lib/__pycache__/link_utils.cpython-312.pyc +0 -0
  257. package/scripts/lib/__pycache__/srp_engine_links.cpython-312.pyc +0 -0
  258. package/scripts/lib/install-helpers.js +33 -17
  259. package/scripts/test-install-helpers.js +31 -0
@@ -0,0 +1,262 @@
1
+ ---
2
+ name: smoke-test
3
+ model: sonnet
4
+ description: "Post-deploy health-check against a live URL. Validates HTTP status, response content, and critical endpoints. Runnable standalone OR as the final step of the deploy skill."
5
+ disable-model-invocation: true
6
+ ---
7
+
8
+ # Smoke Test
9
+
10
+ > **HARD GATE** — Do NOT run smoke-test against a URL that hasn't been deployed yet. Always run `deploy` first, then `smoke-test`.
11
+ >
12
+ > **HARD GATE** — A failed smoke test means the deployment is broken. Do NOT mark a deploy as successful until all smoke checks pass.
13
+
14
+ Validate a deployed application is healthy by running HTTP checks against live URLs. Each check asserts HTTP status, optional body signal (regex), and optional response-time threshold.
15
+
16
+ ## Configuration
17
+
18
+ Smoke checks live in `smoke-checks.yaml` at the project root:
19
+
20
+ ```yaml
21
+ base_url: "https://example.com"
22
+ checks:
23
+ - name: "Homepage"
24
+ path: "/"
25
+ expected_status: 200
26
+ content_signal: "welcome|ok"
27
+ max_response_time_ms: 3000
28
+ ```
29
+
30
+ | Field | Required | Default | Description |
31
+ |-------|----------|---------|-------------|
32
+ | `name` | Yes | — | Human-readable check name |
33
+ | `path` | Yes | `/` | URL path relative to base_url |
34
+ | `method` | No | `GET` | HTTP method |
35
+ | `expected_status` | No | `200` | Expected HTTP status code |
36
+ | `content_signal` | No | — | Regex or string in response body |
37
+ | `max_response_time_ms` | No | — | Fail if slower than threshold (ms) |
38
+
39
+ Ad-hoc single-URL mode: `DEPLOY_URL=https://host bash scripts/run-smoke.sh`
40
+
41
+ ## Process
42
+
43
+ ### 1. Load checks
44
+
45
+ ```bash
46
+ SMOKE_CHECKS_FILE="${SMOKE_CHECKS_FILE:-smoke-checks.yaml}"
47
+ BASE_URL="${DEPLOY_URL:-$BASE_URL}"
48
+ test -f "$SMOKE_CHECKS_FILE" || test -n "$BASE_URL" || { echo "ERROR: no checks file or URL"; exit 1; }
49
+ ```
50
+
51
+ ### 2. Run each check
52
+
53
+ ```bash
54
+ bash scripts/run-smoke.sh "${DEPLOY_URL:-}" "${SMOKE_CHECKS_FILE:-smoke-checks.yaml}"
55
+ ```
56
+
57
+ The runner performs curl requests per check, records pass/fail per assertion, and prints a summary.
58
+
59
+ ### 3. Assert results
60
+
61
+ - Any HTTP status mismatch → FAIL
62
+ - Missing `content_signal` when configured → FAIL
63
+ - Response time over `max_response_time_ms` → FAIL
64
+ - Exit code non-zero → deployment not healthy
65
+
66
+ ### 4. Generate report
67
+
68
+ Capture stdout from `run-smoke.sh` as evidence. Persist to `specs/verifications/smoke-<date>.log` for release-branch.
69
+
70
+ ## Integration with deploy skill
71
+
72
+ ```bash
73
+ DEPLOY_URL="$DEPLOY_URL" bash scripts/run-smoke.sh
74
+ ```
75
+
76
+ ## Verify arc
77
+
78
+ Part of **★ VERIFY ★**: `verify-work` → `validate-contracts` → `smoke-test` → `run-evals` → `audit-code`
79
+
80
+ ## Verify
81
+
82
+ → verify: `test -x scripts/run-smoke.sh && grep -q 'run-smoke.sh' skills/smoke-test/SKILL.md && ! grep -q 'See \[REFERENCE.md\](REFERENCE.md)$' skills/smoke-test/SKILL.md && echo OK`
83
+
84
+ ---
85
+
86
+ # Smoke Test — Reference
87
+
88
+ ## Navigation
89
+
90
+ | Lines | Section |
91
+ |-------|---------|
92
+ | 1 | Title |
93
+ | 3–17 | Navigation |
94
+ | 18–34 | Runner script |
95
+ | 35–46 | Configuration reference |
96
+ | 47–55 | Verification |
97
+ | 56–89 | Reference block 1 |
98
+ | 90–107 | Reference block 2 |
99
+ | 108–122 | Reference block 3 |
100
+ | 123–159 | Reference block 4 |
101
+ | 160–177 | Reference block 5 |
102
+
103
+ ## Runner script
104
+
105
+ A ready-to-use runner is provided for standalone operation:
106
+
107
+ ```bash
108
+ bash scripts/run-smoke.sh [url] [smoke-checks-file]
109
+ ```
110
+
111
+ The runner:
112
+ 1. Uses `$DEPLOY_URL`, `$SMOKE_CHECKS_FILE`, or CLI arguments
113
+ 2. Runs all defined checks
114
+ 3. Prints a pass/fail summary
115
+ 4. Exits 0 on all pass, non-zero on any failure
116
+
117
+
118
+ ---
119
+
120
+ ## Configuration reference
121
+
122
+ | Variable | Default | Description |
123
+ |----------|---------|-------------|
124
+ | `SMOKE_CHECKS_FILE` | `smoke-checks.yaml` | Path to smoke checks YAML |
125
+ | `DEPLOY_URL` / `BASE_URL` | *(required)* | Base URL for all checks |
126
+ | `SMOKE_TIMEOUT` | `30` | Per-check timeout (seconds) |
127
+ | `SMOKE_RETRIES` | `0` | Number of retries on failure |
128
+
129
+
130
+ ---
131
+
132
+ ## Verification
133
+
134
+ → verify: `test -f smoke-test/SKILL.md && grep -q 'name: smoke-test' smoke-test/SKILL.md && echo OK`
135
+ → verify: `grep -qi 'smoke.checks.yaml\|checklist\|expected_status\|content_signal' smoke-test/SKILL.md && echo OK`
136
+ → verify: `grep -ci 'pass\|fail\|summary\|report' smoke-test/SKILL.md | awk '{if($1>=2) print "OK"; else print "FAIL"}'`
137
+ → verify: `grep -q 'smoke-test' SKILL-INDEX.md && echo OK`
138
+
139
+ ---
140
+
141
+ ## Reference block 1
142
+
143
+ ```yaml
144
+ # smoke-checks.yaml — auto-loaded if present at project root
145
+ base_url: "https://example.com"
146
+ checks:
147
+ - name: "Homepage"
148
+ path: "/"
149
+ method: GET
150
+ expected_status: 200
151
+ content_signal: "bigpowers"
152
+ max_response_time_ms: 3000
153
+
154
+ - name: "API Health"
155
+ path: "/api/health"
156
+ method: GET
157
+ expected_status: 200
158
+ content_signal: "ok|healthy"
159
+
160
+ - name: "API Jogos"
161
+ path: "/api/jogos"
162
+ method: GET
163
+ expected_status: 200
164
+ content_signal: "jogos|games"
165
+
166
+ - name: "Not Found handling"
167
+ path: "/nonexistent"
168
+ method: GET
169
+ expected_status: 404
170
+ content_signal: "not found|404"
171
+ ```
172
+
173
+ ---
174
+
175
+ ## Reference block 2
176
+
177
+ ```bash
178
+ SMOKE_CHECKS_FILE="${SMOKE_CHECKS_FILE:-smoke-checks.yaml}"
179
+ BASE_URL="${DEPLOY_URL:-$BASE_URL}"
180
+
181
+ if [ -f "$SMOKE_CHECKS_FILE" ]; then
182
+ echo "Loaded smoke checks from $SMOKE_CHECKS_FILE"
183
+ elif [ -n "$BASE_URL" ]; then
184
+ echo "No smoke-checks.yaml found. Using single URL check against $BASE_URL"
185
+ else
186
+ echo "ERROR: No smoke-checks.yaml found and no DEPLOY_URL/BASE_URL set."
187
+ exit 1
188
+ fi
189
+ ```
190
+
191
+ ---
192
+
193
+ ## Reference block 3
194
+
195
+ ```bash
196
+ url="${BASE_URL}${path}"
197
+ start_time=$(python3 -c 'import time; print(int(time.time() * 1000))')
198
+
199
+ # Perform the HTTP request
200
+ response=$(curl -s -o /tmp/smoke_body.txt -w "%{http_code}" "$url")
201
+ response_time=$(( $(python3 -c 'import time; print(int(time.time() * 1000))') - start_time ))
202
+ status=$response
203
+ body=$(cat /tmp/smoke_body.txt)
204
+ ```
205
+
206
+ ---
207
+
208
+ ## Reference block 4
209
+
210
+ ```bash
211
+ checks_passed=0
212
+ checks_failed=0
213
+ failures=""
214
+
215
+ # Assert status code
216
+ if [ "$status" -ne "${expected_status:-200}" ]; then
217
+ echo " FAIL: expected status ${expected_status} but got $status"
218
+ checks_failed=$((checks_failed + 1))
219
+ failures="${failures} - $name: HTTP $status (expected ${expected_status})\n"
220
+ else
221
+ echo " PASS: HTTP $status"
222
+ fi
223
+
224
+ # Assert content signal
225
+ if [ -n "$content_signal" ]; then
226
+ if echo "$body" | grep -qiE "$content_signal"; then
227
+ echo " PASS: body contains \"$content_signal\""
228
+ else
229
+ echo " FAIL: body does not contain \"$content_signal\""
230
+ checks_failed=$((checks_failed + 1))
231
+ failures="${failures} - $name: missing content signal \"$content_signal\"\n"
232
+ fi
233
+ fi
234
+
235
+ # Assert response time
236
+ if [ -n "$max_response_time_ms" ] && [ "$response_time" -gt "$max_response_time_ms" ]; then
237
+ echo " FAIL: response time ${response_time}ms exceeds ${max_response_time_ms}ms"
238
+ checks_failed=$((checks_failed + 1))
239
+ failures="${failures} - $name: response time ${response_time}ms (max ${max_response_time_ms}ms)\n"
240
+ fi
241
+ ```
242
+
243
+ ---
244
+
245
+ ## Reference block 5
246
+
247
+ ```bash
248
+ total=$((checks_passed + checks_failed))
249
+ echo ""
250
+ echo "=== Smoke Test Summary ==="
251
+ echo "Total: $total | Passed: $checks_passed | Failed: $checks_failed"
252
+
253
+ if [ "$checks_failed" -gt 0 ]; then
254
+ echo ""
255
+ echo "Failures:"
256
+ echo -e "$failures"
257
+ exit 1
258
+ else
259
+ echo "All checks passed."
260
+ exit 0
261
+ fi
262
+ ```
@@ -0,0 +1,96 @@
1
+ ---
2
+ name: spike-prototype
3
+ model: sonnet
4
+ description: "Throw-away prototype for unknown problem spaces. Output is learning notes in specs/archive/spikes/SPIKE-<name>.md, not production code. Use when the domain or technology is unexplored, when estimates are impossible without experimentation, or when user says \"spike\", \"prototype\", or \"proof of concept\"."
5
+ disable-model-invocation: true
6
+ ---
7
+
8
+ # Spike Prototype
9
+ > **HARD GATE** — **HARD GATE** — Spikes are time-boxed experiments, not shipping code. Results must be throwaway or clearly isolated. Do NOT merge a spike without a plan to integrate it or replace it with a proper implementation.
10
+
11
+
12
+ A spike is a time-boxed experiment to answer a specific question. The code is thrown away. The learning is kept in `specs/archive/spikes/SPIKE-<name>.md`.
13
+
14
+ **The spike produces learning, not code to ship.** If you find yourself cleaning up spike code for production, stop — run `plan-work` and `develop-tdd` instead with the insights you gained.
15
+
16
+ ## When to spike
17
+
18
+ - The technology is unfamiliar (new library, API, infrastructure)
19
+ - The approach is uncertain (multiple solutions exist; none has been tried)
20
+ - Estimates are impossible without seeing how the thing actually behaves
21
+ - A key assumption needs to be validated before committing to a design
22
+
23
+ ## Process
24
+
25
+ ### 1. Define the question
26
+
27
+ Before writing a single line, state the question the spike must answer:
28
+
29
+ > "Can we [specific thing] using [specific approach] within [constraint]?"
30
+
31
+ Examples:
32
+ - "Can we stream large files from S3 to the client without buffering in memory?"
33
+ - "Does the Stripe webhook SDK handle signature verification correctly in our edge runtime?"
34
+ - "Can we achieve < 100ms p99 response time for the search endpoint with a naive Postgres full-text search?"
35
+
36
+ A spike with no question is just unplanned coding. Refuse to start if the question isn't clear.
37
+
38
+ ### 2. Set a timebox
39
+
40
+ Agree on a timebox with the user: 30 minutes, 1 hour, 2 hours. When time is up, stop — even if the question isn't fully answered. Partial learning is still learning.
41
+
42
+ ### 3. Experiment
43
+
44
+ Write the simplest code that could answer the question. Ignore:
45
+ - Error handling
46
+ - Test coverage
47
+ - Code quality
48
+ - Production concerns
49
+
50
+ Focus entirely on answering the question.
51
+
52
+ ### 4. Write specs/archive/spikes/SPIKE-<name>.md
53
+
54
+ Save the learning to `specs/archive/spikes/SPIKE-<name>.md`. Create the `specs/` directory if it doesn't exist.
55
+
56
+ <spike-template>
57
+
58
+ # Spike: [name]
59
+
60
+ ## Question
61
+
62
+ [The specific question this spike was answering]
63
+
64
+ ## Result
65
+
66
+ [Answered / Partially answered / Not answered]
67
+
68
+ ## Findings
69
+
70
+ [What you learned — concrete observations, not opinions]
71
+
72
+ ## Evidence
73
+
74
+ [Code snippet, benchmark result, API response, or screenshot that proves the finding]
75
+
76
+ ## Implications for the plan
77
+
78
+ [How this changes the approach, the design, or the estimate]
79
+
80
+ ## What was NOT explored
81
+
82
+ [Known gaps — things the spike didn't validate]
83
+
84
+ ## Recommendation
85
+
86
+ [Should we proceed with this approach? If yes, what does plan-work need to account for?]
87
+
88
+ </spike-template>
89
+
90
+ ### 5. Delete the spike code
91
+
92
+ After writing the findings, delete or discard the spike code. It is not meant to ship.
93
+
94
+ ### 6. Feed back into plan-work
95
+
96
+ The spike findings are the input to `plan-work`. Call `plan-work` next, informed by `specs/archive/spikes/SPIKE-<name>.md`.
@@ -0,0 +1,75 @@
1
+ ---
2
+ name: stocktake-skills
3
+ model: sonnet
4
+ description: "Sequential subagent batch audit of the bigpowers skill catalog — Quick Scan (changed only) or Full (all skills). Use during sustain phase, before a major release, or when catalog drift is suspected."
5
+ disable-model-invocation: true
6
+ ---
7
+
8
+ # story: e09s01
9
+ <!-- story: e45s12 -->
10
+ <!-- story: e79s04 -->
11
+
12
+
13
+ # Stocktake Skills
14
+ > **HARD GATE** — **HARD GATE** — Skill inventory must be current. Missing HARD GATEs, stale descriptions, or broken verify commands are defects, not cosmetic. Fix them in `evolve-skill`.
15
+
16
+
17
+ Audit SKILL.md catalog for drift, stale triggers, missing HARD GATEs, and INDEX mismatches.
18
+
19
+ ## Modes
20
+
21
+ | Mode | Scope |
22
+ |------|-------|
23
+ | **Quick Scan** | Skills changed since last tag or in current diff |
24
+ | **Full** | All skills per SKILL-INDEX.md + catalog audit |
25
+ | **--verify** | Run `bash scripts/run-skill-verify.sh` and append health results to the stocktake report |
26
+
27
+ ## Process
28
+
29
+ 0. **Catalog validator (code-enforced)** — run `bash scripts/validate-skill-catalog.sh`. Any FAIL is a critical finding before manual review. Add `--archive` to list zero-usage skills from `metrics.skill_timings` for auto-archiving candidates (move to `specs/epics/archive/` or delete after user confirms).
30
+ 0b. **Agentic STE audit (e79s04)** — run `bash scripts/validate-agentic-ste.sh --audit skills/`. Flag hedge words and sentences over 20 words per [AGENTIC-STE.md](../../docs/AGENTIC-STE.md). Record WARN lines in the stocktake report as **STE debt** — do NOT rewrite the full catalog in one pass. Route critical repeat offenders to `evolve-skill`.
31
+ 1. Run `bash scripts/audit-catalog.sh` to verify pi/skills ↔ source SKILL.md sync. Mismatch is a critical finding.
32
+ 2. Run mode; for each skill check: exists, verb-noun, &lt;300 lines total, HARD GATE present, INDEX row matches.
33
+ 3. Write `specs/STOCKTAKE-<date>.md` with findings table (skill, issue, severity).
34
+ 4. **Effectiveness report (--full mode only):** Read `specs/state.yaml` `metrics.skill_timings` and report:
35
+ - Top 5 most-used skills (by calls, total_seconds)
36
+ - Skills with zero calls (potential dead weight)
37
+ - Skills with high average time (candidates for `evolve-skill`)
38
+ 5. Critical findings → `plan-work` story; cosmetic → `evolve-skill` candidate.
39
+ 6. **--verify mode:** Run `bash scripts/run-skill-verify.sh` and append a `## Verify Health` section to the stocktake report: `"N/68 PASS, M FAIL, K SKIP"`. FAIL skills are critical findings and go straight to `plan-work`.
40
+
41
+ ### Skill timing data (`metrics.skill_timings`)
42
+
43
+ In `--full` mode, read `specs/state.yaml` `metrics.skill_timings` for per-skill usage stats:
44
+
45
+ ```yaml
46
+ metrics:
47
+ skill_timings:
48
+ survey-context:
49
+ calls: 12
50
+ total_seconds: 180
51
+ avg_seconds: 15.0
52
+ develop-tdd:
53
+ calls: 30
54
+ total_seconds: 5400
55
+ avg_seconds: 180.0
56
+ ```
57
+
58
+ Timing data is populated by `scripts/bp-timing.sh start|end <skill>` calls within critical-path skills.
59
+
60
+ ## Verify
61
+
62
+ → verify: `compgen -G 'specs/STOCKTAKE-*.md' >/dev/null && bash scripts/validate-skill-catalog.sh`
63
+
64
+ See [REFERENCE.md](REFERENCE.md) for checklist.
65
+
66
+ ---
67
+
68
+ # Stocktake checklist
69
+
70
+ - [ ] SKILL.md exists at repo root `&lt;name&gt;/SKILL.md`
71
+ - [ ] Listed in SKILL-INDEX.md with correct phase
72
+ - [ ] `description` includes "Use when..."
73
+ - [ ] At least one HARD GATE callout
74
+ - [ ] specs/ output documented if applicable
75
+ - [ ] No edit to `.cursor/rules/` or `.gemini/` (generated only)
@@ -0,0 +1,136 @@
1
+ ---
2
+ name: survey-context
3
+ model: haiku
4
+ description: "Per-task context bootstrap — reads existing specs/ and tech-architecture docs to map the current lifecycle phase and suggest the next skill. Use at the start of any task, when returning after a break, or when unsure what to do next. For deriving a tech-stack doc from scratch, use map-codebase first."
5
+ disable-model-invocation: true
6
+ ---
7
+
8
+ # Survey Context
9
+
10
+ Read the project's current state and give a phase map + next-skill recommendation. This is the "where am I?" skill — run it at the start of every task.
11
+
12
+ > **Use this vs map-codebase:** `survey-context` consumes existing specs and docs (fast; does not re-derive). `map-codebase` builds the tech-stack doc from scratch by scanning the codebase. Run `map-codebase` when `specs/tech-architecture/tech-stack.md` doesn't exist yet; run `survey-context` when it does.
13
+
14
+ > **HARD GATE** — Read specs/ files before suggesting next steps. If state.yaml is stale or contradicts the codebase, request clarification rather than assuming intent.
15
+
16
+ Orchestrate-project 6 phases: Phase 1 Discover - Phase 2 Elaborate - Phase 3 Plan - Phase 4 Build - Phase 5 Verify - Phase 6 Release
17
+
18
+ ## Process
19
+
20
+ > **Timing:** `bash scripts/bp-timing.sh start survey-context` at invocation; `bash scripts/bp-timing.sh end survey-context` before handoff.
21
+
22
+ ### 1. Read CONVENTIONS.md
23
+
24
+ If `CONVENTIONS.md` exists at the project root, read it first. It contains the rules all agents must follow in this project.
25
+
26
+ ### 2. Read specs/ (YAML-first)
27
+
28
+ Scan the `specs/` directory if it exists:
29
+
30
+ ```
31
+ specs/
32
+ ├── state.yaml → session: active_flow, epic, git, handoff
33
+ ├── release-plan.yaml → target version, WSJF epic index
34
+ ├── execution-status.yaml → flat story/epic status
35
+ ├── planning-status.yaml → discover-phase checklist (optional)
36
+ ├── requirements/
37
+ │ ├── VISION_LATEST.yaml
38
+ │ ├── SCOPE_LATEST.yaml
39
+ │ └── GLOSSARY_LATEST.yaml
40
+ ├── plans/ → TECH_STACK, TEST_PLAN, etc.
41
+ ├── epics/ → eNN shards (flat yaml or eNN/stories/)
42
+ └── bugs/ → BUG-*.md + registry.yaml
43
+ ```
44
+
45
+ For each YAML file found, note: exists? keys populated? `handoff.next_skill`?
46
+
47
+ Legacy markdown (`specs/archive/STATE.md`, `RELEASE-PLAN.md`) is **not** SoT if YAML exists.
48
+
49
+ → verify: `bash scripts/validate-specs-yaml.sh`
50
+
51
+ ### 3. Read CLAUDE.md
52
+
53
+ If `CLAUDE.md` exists at the project root, read it for project context (stack, commands, architecture, conventions).
54
+
55
+ ### 4. Check git state
56
+
57
+ ```bash
58
+ git status --short
59
+ git log --oneline -5
60
+ git branch --show-current
61
+ ```
62
+
63
+ Note: is there a feature branch active? Are there uncommitted changes? Do they match `specs/state.yaml` `git` block?
64
+
65
+ ### 5. Map the lifecycle phase
66
+
67
+ Based on what you've found, identify which PMBOK phase this project is currently in:
68
+
69
+ | Phase | Signals |
70
+ |-------|---------|
71
+ | **Discover** | No `requirements/SCOPE_LATEST.yaml` yet, or only rough notes |
72
+ | **Design** | SCOPE exists but no `release-plan.yaml` |
73
+ | **Plan** | `release-plan.yaml` exists; on `main`/`master` branch |
74
+ | **Initiate** | On a feature branch; no code changes yet |
75
+ | **Execute** | `state.yaml` `active_flow: build_epic`; epic capsule in progress |
76
+ | **Verify** | Implementation done; run `verify-work` or `run-evals` |
77
+ | **Bug** | `state.yaml` `active_flow: fix_bug` or open `specs/bugs/BUG-*.md` |
78
+ | **Review** | All code written; no PR yet |
79
+ | **Integrate** | PR open; tests passing |
80
+ | **Sustain** | Ongoing; no active task |
81
+
82
+ Prefer `specs/state.yaml` `active_flow` and `handoff.next_skill` when present.
83
+
84
+ ### 6. Suggest next skill
85
+
86
+ Based on the phase and state, recommend the most useful next step:
87
+
88
+ - **If in Plan/Bug phase and on `main`**: Suggest `kickoff-branch` next.
89
+ - **If in Initiate phase**: Suggest `develop-tdd` or `execute-plan` or `ship-epic`.
90
+ - **If in Execute phase**: Suggest `ship-epic` (resume) or `develop-tdd` for `active_story_id`.
91
+ - **If in Verify phase**: Suggest `verify-work` (UAT) or `run-evals`.
92
+
93
+ Example:
94
+ ```
95
+ Phase: Execute
96
+ Active branch: feat/e02-verify (state.yaml matches)
97
+ release-plan.yaml: v3.0.0, 10 epics
98
+ active_epic_id: e02
99
+
100
+ Suggested next: ship-epic (resume e02s01 at develop-tdd)
101
+ ```
102
+
103
+ Be specific — name the exact skill and why. If multiple options exist, list them in priority order.
104
+
105
+ ### 7. Surface blockers
106
+
107
+ If something looks wrong:
108
+ - Broken tests in the baseline
109
+ - Open `specs/bugs/BUG-*.md` with no active fix branch
110
+ - Epic shards missing `verify:` on tasks
111
+ - `validate-specs-yaml.sh` fails
112
+ - Git hash in `state.yaml` stale vs `git rev-parse`
113
+
114
+ Report blockers first, before recommendations.
115
+
116
+ ### 8. Record story start timestamp
117
+
118
+ At story start, write `metrics.story_start` with the current ISO 8601 timestamp to `specs/state.yaml` as an **informational progress marker only** — not a measurement input. Cycle-time metrics are now derived from git commit history via `scripts/record-cycle-time.sh` (see `skills/release-branch/REFERENCE.md` §Cycle-time recording).
119
+
120
+ ## Utility outputs
121
+
122
+ ### list-epics (absorbed)
123
+
124
+ Loop through all `specs/epics/*/epic.yaml` files and print a summary of story counts per epic. Useful for understanding overall project scope and epic distribution.
125
+
126
+ ### check-gates (absorbed)
127
+
128
+ Print the current `active_flow` from `specs/state.yaml`, run `bash scripts/validate-specs-yaml.sh` to verify YAML integrity, and show `git status` to report uncommitted changes and branch state. Use before handoffs or context transitions.
129
+
130
+ ## Handoff
131
+
132
+ Gate: READY -> next: plan-work
133
+ Writes: state.yaml handoff.next_skill = plan-work
134
+
135
+
136
+ <!-- story: e03s03 -->
@@ -0,0 +1,43 @@
1
+ ---
2
+ name: terse-mode
3
+ model: haiku
4
+ description: "Fallback ultra-compressed communication mode. Cuts token usage ~75% by dropping filler, articles, and pleasantries while keeping full technical accuracy. Use ONLY when context is critically long and compressing output is necessary to continue. Not a strategy — token discipline comes from code shape (small functions, unique names, headless tests), not terser prompts. Use when user says \"caveman mode\", \"terse mode\", \"less tokens\", \"be brief\", or invokes /terse-mode."
5
+ disable-model-invocation: true
6
+ ---
7
+
8
+ Respond terse like smart caveman. All technical substance stay. Only fluff die.
9
+
10
+ ## Persistence
11
+ > **HARD GATE** — **HARD GATE** — Terse mode is for reducing token usage in long sessions. Do NOT use terse mode when clarity is critical (complex design decisions, bug investigations). Enable it only on explicit user request.
12
+
13
+
14
+ ACTIVE EVERY RESPONSE once triggered. No revert after many turns. No filler drift. Still active if unsure. Off only when user says "stop" or "normal mode".
15
+
16
+ ## Rules
17
+
18
+ Drop: articles (a/an/the), filler (just/really/basically/actually/simply), pleasantries (sure/certainly/of course/happy to), hedging. Fragments OK. Short synonyms (big not extensive, fix not "implement a solution for"). Abbreviate common terms (DB/auth/config/req/res/fn/impl). Strip conjunctions. Use arrows for causality (X -> Y). One word when one word enough.
19
+
20
+ Technical terms stay exact. Code blocks unchanged. Errors quoted exact.
21
+
22
+ Pattern: `[thing] [action] [reason]. [next step].`
23
+
24
+ Not: "Sure! I'd be happy to help you with that. The issue you're experiencing is likely caused by..."
25
+ Yes: "Bug in auth middleware. Token expiry check use `<` not `<=`. Fix:"
26
+
27
+ ## Auto-Clarity Exception
28
+
29
+ Drop terse temporarily for: security warnings, irreversible action confirmations, multi-step sequences where fragment order risks misread, user asks to clarify or repeats question. Resume after clear part done.
30
+
31
+ Example — destructive op:
32
+
33
+ > **Warning:** This will permanently delete all rows in the `users` table and cannot be undone.
34
+ >
35
+ > ```sql
36
+ > DROP TABLE users;
37
+ > ```
38
+ >
39
+ > Terse resume. Verify backup exist first.
40
+
41
+
42
+
43
+ <!-- story: e04s02 -->
@@ -0,0 +1,70 @@
1
+ ---
2
+ name: trace-requirement
3
+ model: haiku
4
+ description: "Link story IDs from specs/release-plan.yaml + epic capsule directories to the implementing code and tests. Produces specs/TRACEABILITY_LATEST.md. Use when you want to verify coverage of a release plan, audit which stories are implemented, or find \"dark\" stories with no code."
5
+ disable-model-invocation: true
6
+ ---
7
+
8
+ # Trace Requirement
9
+
10
+ Build a traceability matrix from `specs/release-plan.yaml + epic capsule directories` to implementing code and tests. Surfaces gaps in both directions: stories with no code, and code with no story.
11
+
12
+ ## Pre-flight
13
+
14
+ > **HARD GATE** — `specs/release-plan.yaml + epic capsule directories` must exist. If it doesn't, run `plan-release` first.
15
+
16
+ → verify: `test -f specs/release-plan.yaml && test -d specs/epics`
17
+
18
+ Read `specs/release-plan.yaml + epic capsule directories` fully before proceeding.
19
+
20
+ ## Process
21
+
22
+ ### 1. Extract story IDs
23
+
24
+ From release-plan.yaml, collect all story IDs (e.g. `1.1`, `1.2`, `2.1`).
25
+
26
+ → verify: `grep -rho 'e[0-9]\+s[0-9]\+' specs/release-plan.yaml specs/epics/*/epic.yaml 2>/dev/null | sort -u | head -1 | grep -q .`
27
+
28
+ ### 2. Search for story tags in code
29
+
30
+ Look for `// story: X.Y` or `# story: X.Y` comments in source files and tests:
31
+
32
+ ```
33
+ grep -rn "story: " . --include="*.ts" --include="*.js" --include="*.py" --include="*.sh" | grep -v node_modules
34
+ ```
35
+
36
+ → verify: `[ "$(grep -rl "story: " . --include="*.ts" --include="*.sh" --include="*.py" 2>/dev/null | wc -l | tr -d " ")" -gt 0 ]`
37
+
38
+ ### 3. Build the matrix
39
+
40
+ For each story ID:
41
+ - **Implemented**: list files that contain `// story: X.Y`
42
+ - **Tested**: list test files that contain `// story: X.Y`
43
+ - **Dark**: story has no tag in any file — flag as unimplemented
44
+
45
+ For each tagged file with no matching story ID in release-plan.yaml:
46
+ - **Orphan**: code exists but story was removed or never planned — flag for cleanup
47
+
48
+ ### 4. Write specs/TRACEABILITY_LATEST.md
49
+
50
+ ```
51
+ ## Story Coverage
52
+
53
+ | Story | Title | Files | Tests | Status |
54
+ |-------|--------------------|-------|-------|-----------|
55
+ | 1.1 | [title] | 2 | 1 | Covered |
56
+ | 1.2 | [title] | 0 | 0 | Dark |
57
+
58
+ ## Orphan Code (no story tag)
59
+ - [file]: contains untagged implementation
60
+
61
+ ## Gaps (dark stories)
62
+ - Story 1.2: no implementation found → run plan-work
63
+
64
+ ## Coverage summary
65
+ Stories: [X] covered / [Y] dark / [Z] total
66
+ ```
67
+
68
+ → verify: `grep -c "Covered\|Dark" specs/TRACEABILITY_LATEST.md`
69
+
70
+ Suggest `plan-work` for each dark story found.