bigpowers 2.87.4 → 2.87.5

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 (258) 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 +7 -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/test-install-helpers.js +31 -0
@@ -0,0 +1,260 @@
1
+ ---
2
+ 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."
3
+ alwaysApply: false
4
+ ---
5
+
6
+ # Smoke Test
7
+
8
+ > **HARD GATE** — Do NOT run smoke-test against a URL that hasn't been deployed yet. Always run `deploy` first, then `smoke-test`.
9
+ >
10
+ > **HARD GATE** — A failed smoke test means the deployment is broken. Do NOT mark a deploy as successful until all smoke checks pass.
11
+
12
+ 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.
13
+
14
+ ## Configuration
15
+
16
+ Smoke checks live in `smoke-checks.yaml` at the project root:
17
+
18
+ ```yaml
19
+ base_url: "https://example.com"
20
+ checks:
21
+ - name: "Homepage"
22
+ path: "/"
23
+ expected_status: 200
24
+ content_signal: "welcome|ok"
25
+ max_response_time_ms: 3000
26
+ ```
27
+
28
+ | Field | Required | Default | Description |
29
+ |-------|----------|---------|-------------|
30
+ | `name` | Yes | — | Human-readable check name |
31
+ | `path` | Yes | `/` | URL path relative to base_url |
32
+ | `method` | No | `GET` | HTTP method |
33
+ | `expected_status` | No | `200` | Expected HTTP status code |
34
+ | `content_signal` | No | — | Regex or string in response body |
35
+ | `max_response_time_ms` | No | — | Fail if slower than threshold (ms) |
36
+
37
+ Ad-hoc single-URL mode: `DEPLOY_URL=https://host bash scripts/run-smoke.sh`
38
+
39
+ ## Process
40
+
41
+ ### 1. Load checks
42
+
43
+ ```bash
44
+ SMOKE_CHECKS_FILE="${SMOKE_CHECKS_FILE:-smoke-checks.yaml}"
45
+ BASE_URL="${DEPLOY_URL:-$BASE_URL}"
46
+ test -f "$SMOKE_CHECKS_FILE" || test -n "$BASE_URL" || { echo "ERROR: no checks file or URL"; exit 1; }
47
+ ```
48
+
49
+ ### 2. Run each check
50
+
51
+ ```bash
52
+ bash scripts/run-smoke.sh "${DEPLOY_URL:-}" "${SMOKE_CHECKS_FILE:-smoke-checks.yaml}"
53
+ ```
54
+
55
+ The runner performs curl requests per check, records pass/fail per assertion, and prints a summary.
56
+
57
+ ### 3. Assert results
58
+
59
+ - Any HTTP status mismatch → FAIL
60
+ - Missing `content_signal` when configured → FAIL
61
+ - Response time over `max_response_time_ms` → FAIL
62
+ - Exit code non-zero → deployment not healthy
63
+
64
+ ### 4. Generate report
65
+
66
+ Capture stdout from `run-smoke.sh` as evidence. Persist to `specs/verifications/smoke-<date>.log` for release-branch.
67
+
68
+ ## Integration with deploy skill
69
+
70
+ ```bash
71
+ DEPLOY_URL="$DEPLOY_URL" bash scripts/run-smoke.sh
72
+ ```
73
+
74
+ ## Verify arc
75
+
76
+ Part of **★ VERIFY ★**: `verify-work` → `validate-contracts` → `smoke-test` → `run-evals` → `audit-code`
77
+
78
+ ## Verify
79
+
80
+ → 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`
81
+
82
+ ---
83
+
84
+ # Smoke Test — Reference
85
+
86
+ ## Navigation
87
+
88
+ | Lines | Section |
89
+ |-------|---------|
90
+ | 1 | Title |
91
+ | 3–17 | Navigation |
92
+ | 18–34 | Runner script |
93
+ | 35–46 | Configuration reference |
94
+ | 47–55 | Verification |
95
+ | 56–89 | Reference block 1 |
96
+ | 90–107 | Reference block 2 |
97
+ | 108–122 | Reference block 3 |
98
+ | 123–159 | Reference block 4 |
99
+ | 160–177 | Reference block 5 |
100
+
101
+ ## Runner script
102
+
103
+ A ready-to-use runner is provided for standalone operation:
104
+
105
+ ```bash
106
+ bash scripts/run-smoke.sh [url] [smoke-checks-file]
107
+ ```
108
+
109
+ The runner:
110
+ 1. Uses `$DEPLOY_URL`, `$SMOKE_CHECKS_FILE`, or CLI arguments
111
+ 2. Runs all defined checks
112
+ 3. Prints a pass/fail summary
113
+ 4. Exits 0 on all pass, non-zero on any failure
114
+
115
+
116
+ ---
117
+
118
+ ## Configuration reference
119
+
120
+ | Variable | Default | Description |
121
+ |----------|---------|-------------|
122
+ | `SMOKE_CHECKS_FILE` | `smoke-checks.yaml` | Path to smoke checks YAML |
123
+ | `DEPLOY_URL` / `BASE_URL` | *(required)* | Base URL for all checks |
124
+ | `SMOKE_TIMEOUT` | `30` | Per-check timeout (seconds) |
125
+ | `SMOKE_RETRIES` | `0` | Number of retries on failure |
126
+
127
+
128
+ ---
129
+
130
+ ## Verification
131
+
132
+ → verify: `test -f smoke-test/SKILL.md && grep -q 'name: smoke-test' smoke-test/SKILL.md && echo OK`
133
+ → verify: `grep -qi 'smoke.checks.yaml\|checklist\|expected_status\|content_signal' smoke-test/SKILL.md && echo OK`
134
+ → verify: `grep -ci 'pass\|fail\|summary\|report' smoke-test/SKILL.md | awk '{if($1>=2) print "OK"; else print "FAIL"}'`
135
+ → verify: `grep -q 'smoke-test' SKILL-INDEX.md && echo OK`
136
+
137
+ ---
138
+
139
+ ## Reference block 1
140
+
141
+ ```yaml
142
+ # smoke-checks.yaml — auto-loaded if present at project root
143
+ base_url: "https://example.com"
144
+ checks:
145
+ - name: "Homepage"
146
+ path: "/"
147
+ method: GET
148
+ expected_status: 200
149
+ content_signal: "bigpowers"
150
+ max_response_time_ms: 3000
151
+
152
+ - name: "API Health"
153
+ path: "/api/health"
154
+ method: GET
155
+ expected_status: 200
156
+ content_signal: "ok|healthy"
157
+
158
+ - name: "API Jogos"
159
+ path: "/api/jogos"
160
+ method: GET
161
+ expected_status: 200
162
+ content_signal: "jogos|games"
163
+
164
+ - name: "Not Found handling"
165
+ path: "/nonexistent"
166
+ method: GET
167
+ expected_status: 404
168
+ content_signal: "not found|404"
169
+ ```
170
+
171
+ ---
172
+
173
+ ## Reference block 2
174
+
175
+ ```bash
176
+ SMOKE_CHECKS_FILE="${SMOKE_CHECKS_FILE:-smoke-checks.yaml}"
177
+ BASE_URL="${DEPLOY_URL:-$BASE_URL}"
178
+
179
+ if [ -f "$SMOKE_CHECKS_FILE" ]; then
180
+ echo "Loaded smoke checks from $SMOKE_CHECKS_FILE"
181
+ elif [ -n "$BASE_URL" ]; then
182
+ echo "No smoke-checks.yaml found. Using single URL check against $BASE_URL"
183
+ else
184
+ echo "ERROR: No smoke-checks.yaml found and no DEPLOY_URL/BASE_URL set."
185
+ exit 1
186
+ fi
187
+ ```
188
+
189
+ ---
190
+
191
+ ## Reference block 3
192
+
193
+ ```bash
194
+ url="${BASE_URL}${path}"
195
+ start_time=$(python3 -c 'import time; print(int(time.time() * 1000))')
196
+
197
+ # Perform the HTTP request
198
+ response=$(curl -s -o /tmp/smoke_body.txt -w "%{http_code}" "$url")
199
+ response_time=$(( $(python3 -c 'import time; print(int(time.time() * 1000))') - start_time ))
200
+ status=$response
201
+ body=$(cat /tmp/smoke_body.txt)
202
+ ```
203
+
204
+ ---
205
+
206
+ ## Reference block 4
207
+
208
+ ```bash
209
+ checks_passed=0
210
+ checks_failed=0
211
+ failures=""
212
+
213
+ # Assert status code
214
+ if [ "$status" -ne "${expected_status:-200}" ]; then
215
+ echo " FAIL: expected status ${expected_status} but got $status"
216
+ checks_failed=$((checks_failed + 1))
217
+ failures="${failures} - $name: HTTP $status (expected ${expected_status})\n"
218
+ else
219
+ echo " PASS: HTTP $status"
220
+ fi
221
+
222
+ # Assert content signal
223
+ if [ -n "$content_signal" ]; then
224
+ if echo "$body" | grep -qiE "$content_signal"; then
225
+ echo " PASS: body contains \"$content_signal\""
226
+ else
227
+ echo " FAIL: body does not contain \"$content_signal\""
228
+ checks_failed=$((checks_failed + 1))
229
+ failures="${failures} - $name: missing content signal \"$content_signal\"\n"
230
+ fi
231
+ fi
232
+
233
+ # Assert response time
234
+ if [ -n "$max_response_time_ms" ] && [ "$response_time" -gt "$max_response_time_ms" ]; then
235
+ echo " FAIL: response time ${response_time}ms exceeds ${max_response_time_ms}ms"
236
+ checks_failed=$((checks_failed + 1))
237
+ failures="${failures} - $name: response time ${response_time}ms (max ${max_response_time_ms}ms)\n"
238
+ fi
239
+ ```
240
+
241
+ ---
242
+
243
+ ## Reference block 5
244
+
245
+ ```bash
246
+ total=$((checks_passed + checks_failed))
247
+ echo ""
248
+ echo "=== Smoke Test Summary ==="
249
+ echo "Total: $total | Passed: $checks_passed | Failed: $checks_failed"
250
+
251
+ if [ "$checks_failed" -gt 0 ]; then
252
+ echo ""
253
+ echo "Failures:"
254
+ echo -e "$failures"
255
+ exit 1
256
+ else
257
+ echo "All checks passed."
258
+ exit 0
259
+ fi
260
+ ```
@@ -0,0 +1,94 @@
1
+ ---
2
+ 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\"."
3
+ alwaysApply: false
4
+ ---
5
+
6
+ # Spike Prototype
7
+ > **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.
8
+
9
+
10
+ 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`.
11
+
12
+ **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.
13
+
14
+ ## When to spike
15
+
16
+ - The technology is unfamiliar (new library, API, infrastructure)
17
+ - The approach is uncertain (multiple solutions exist; none has been tried)
18
+ - Estimates are impossible without seeing how the thing actually behaves
19
+ - A key assumption needs to be validated before committing to a design
20
+
21
+ ## Process
22
+
23
+ ### 1. Define the question
24
+
25
+ Before writing a single line, state the question the spike must answer:
26
+
27
+ > "Can we [specific thing] using [specific approach] within [constraint]?"
28
+
29
+ Examples:
30
+ - "Can we stream large files from S3 to the client without buffering in memory?"
31
+ - "Does the Stripe webhook SDK handle signature verification correctly in our edge runtime?"
32
+ - "Can we achieve < 100ms p99 response time for the search endpoint with a naive Postgres full-text search?"
33
+
34
+ A spike with no question is just unplanned coding. Refuse to start if the question isn't clear.
35
+
36
+ ### 2. Set a timebox
37
+
38
+ 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.
39
+
40
+ ### 3. Experiment
41
+
42
+ Write the simplest code that could answer the question. Ignore:
43
+ - Error handling
44
+ - Test coverage
45
+ - Code quality
46
+ - Production concerns
47
+
48
+ Focus entirely on answering the question.
49
+
50
+ ### 4. Write specs/archive/spikes/SPIKE-<name>.md
51
+
52
+ Save the learning to `specs/archive/spikes/SPIKE-<name>.md`. Create the `specs/` directory if it doesn't exist.
53
+
54
+ <spike-template>
55
+
56
+ # Spike: [name]
57
+
58
+ ## Question
59
+
60
+ [The specific question this spike was answering]
61
+
62
+ ## Result
63
+
64
+ [Answered / Partially answered / Not answered]
65
+
66
+ ## Findings
67
+
68
+ [What you learned — concrete observations, not opinions]
69
+
70
+ ## Evidence
71
+
72
+ [Code snippet, benchmark result, API response, or screenshot that proves the finding]
73
+
74
+ ## Implications for the plan
75
+
76
+ [How this changes the approach, the design, or the estimate]
77
+
78
+ ## What was NOT explored
79
+
80
+ [Known gaps — things the spike didn't validate]
81
+
82
+ ## Recommendation
83
+
84
+ [Should we proceed with this approach? If yes, what does plan-work need to account for?]
85
+
86
+ </spike-template>
87
+
88
+ ### 5. Delete the spike code
89
+
90
+ After writing the findings, delete or discard the spike code. It is not meant to ship.
91
+
92
+ ### 6. Feed back into plan-work
93
+
94
+ The spike findings are the input to `plan-work`. Call `plan-work` next, informed by `specs/archive/spikes/SPIKE-<name>.md`.
@@ -0,0 +1,73 @@
1
+ ---
2
+ 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."
3
+ alwaysApply: false
4
+ ---
5
+
6
+ # story: e09s01
7
+ <!-- story: e45s12 -->
8
+ <!-- story: e79s04 -->
9
+
10
+
11
+ # Stocktake Skills
12
+ > **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`.
13
+
14
+
15
+ Audit SKILL.md catalog for drift, stale triggers, missing HARD GATEs, and INDEX mismatches.
16
+
17
+ ## Modes
18
+
19
+ | Mode | Scope |
20
+ |------|-------|
21
+ | **Quick Scan** | Skills changed since last tag or in current diff |
22
+ | **Full** | All skills per SKILL-INDEX.md + catalog audit |
23
+ | **--verify** | Run `bash scripts/run-skill-verify.sh` and append health results to the stocktake report |
24
+
25
+ ## Process
26
+
27
+ 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).
28
+ 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`.
29
+ 1. Run `bash scripts/audit-catalog.sh` to verify pi/skills ↔ source SKILL.md sync. Mismatch is a critical finding.
30
+ 2. Run mode; for each skill check: exists, verb-noun, &lt;300 lines total, HARD GATE present, INDEX row matches.
31
+ 3. Write `specs/STOCKTAKE-<date>.md` with findings table (skill, issue, severity).
32
+ 4. **Effectiveness report (--full mode only):** Read `specs/state.yaml` `metrics.skill_timings` and report:
33
+ - Top 5 most-used skills (by calls, total_seconds)
34
+ - Skills with zero calls (potential dead weight)
35
+ - Skills with high average time (candidates for `evolve-skill`)
36
+ 5. Critical findings → `plan-work` story; cosmetic → `evolve-skill` candidate.
37
+ 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`.
38
+
39
+ ### Skill timing data (`metrics.skill_timings`)
40
+
41
+ In `--full` mode, read `specs/state.yaml` `metrics.skill_timings` for per-skill usage stats:
42
+
43
+ ```yaml
44
+ metrics:
45
+ skill_timings:
46
+ survey-context:
47
+ calls: 12
48
+ total_seconds: 180
49
+ avg_seconds: 15.0
50
+ develop-tdd:
51
+ calls: 30
52
+ total_seconds: 5400
53
+ avg_seconds: 180.0
54
+ ```
55
+
56
+ Timing data is populated by `scripts/bp-timing.sh start|end <skill>` calls within critical-path skills.
57
+
58
+ ## Verify
59
+
60
+ → verify: `compgen -G 'specs/STOCKTAKE-*.md' >/dev/null && bash scripts/validate-skill-catalog.sh`
61
+
62
+ See [REFERENCE.md](REFERENCE.md) for checklist.
63
+
64
+ ---
65
+
66
+ # Stocktake checklist
67
+
68
+ - [ ] SKILL.md exists at repo root `&lt;name&gt;/SKILL.md`
69
+ - [ ] Listed in SKILL-INDEX.md with correct phase
70
+ - [ ] `description` includes "Use when..."
71
+ - [ ] At least one HARD GATE callout
72
+ - [ ] specs/ output documented if applicable
73
+ - [ ] No edit to `.cursor/rules/` or `.gemini/` (generated only)
@@ -0,0 +1,134 @@
1
+ ---
2
+ 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."
3
+ alwaysApply: false
4
+ ---
5
+
6
+ # Survey Context
7
+
8
+ 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.
9
+
10
+ > **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.
11
+
12
+ > **HARD GATE** — Read specs/ files before suggesting next steps. If state.yaml is stale or contradicts the codebase, request clarification rather than assuming intent.
13
+
14
+ Orchestrate-project 6 phases: Phase 1 Discover - Phase 2 Elaborate - Phase 3 Plan - Phase 4 Build - Phase 5 Verify - Phase 6 Release
15
+
16
+ ## Process
17
+
18
+ > **Timing:** `bash scripts/bp-timing.sh start survey-context` at invocation; `bash scripts/bp-timing.sh end survey-context` before handoff.
19
+
20
+ ### 1. Read CONVENTIONS.md
21
+
22
+ If `CONVENTIONS.md` exists at the project root, read it first. It contains the rules all agents must follow in this project.
23
+
24
+ ### 2. Read specs/ (YAML-first)
25
+
26
+ Scan the `specs/` directory if it exists:
27
+
28
+ ```
29
+ specs/
30
+ ├── state.yaml → session: active_flow, epic, git, handoff
31
+ ├── release-plan.yaml → target version, WSJF epic index
32
+ ├── execution-status.yaml → flat story/epic status
33
+ ├── planning-status.yaml → discover-phase checklist (optional)
34
+ ├── requirements/
35
+ │ ├── VISION_LATEST.yaml
36
+ │ ├── SCOPE_LATEST.yaml
37
+ │ └── GLOSSARY_LATEST.yaml
38
+ ├── plans/ → TECH_STACK, TEST_PLAN, etc.
39
+ ├── epics/ → eNN shards (flat yaml or eNN/stories/)
40
+ └── bugs/ → BUG-*.md + registry.yaml
41
+ ```
42
+
43
+ For each YAML file found, note: exists? keys populated? `handoff.next_skill`?
44
+
45
+ Legacy markdown (`specs/archive/STATE.md`, `RELEASE-PLAN.md`) is **not** SoT if YAML exists.
46
+
47
+ → verify: `bash scripts/validate-specs-yaml.sh`
48
+
49
+ ### 3. Read CLAUDE.md
50
+
51
+ If `CLAUDE.md` exists at the project root, read it for project context (stack, commands, architecture, conventions).
52
+
53
+ ### 4. Check git state
54
+
55
+ ```bash
56
+ git status --short
57
+ git log --oneline -5
58
+ git branch --show-current
59
+ ```
60
+
61
+ Note: is there a feature branch active? Are there uncommitted changes? Do they match `specs/state.yaml` `git` block?
62
+
63
+ ### 5. Map the lifecycle phase
64
+
65
+ Based on what you've found, identify which PMBOK phase this project is currently in:
66
+
67
+ | Phase | Signals |
68
+ |-------|---------|
69
+ | **Discover** | No `requirements/SCOPE_LATEST.yaml` yet, or only rough notes |
70
+ | **Design** | SCOPE exists but no `release-plan.yaml` |
71
+ | **Plan** | `release-plan.yaml` exists; on `main`/`master` branch |
72
+ | **Initiate** | On a feature branch; no code changes yet |
73
+ | **Execute** | `state.yaml` `active_flow: build_epic`; epic capsule in progress |
74
+ | **Verify** | Implementation done; run `verify-work` or `run-evals` |
75
+ | **Bug** | `state.yaml` `active_flow: fix_bug` or open `specs/bugs/BUG-*.md` |
76
+ | **Review** | All code written; no PR yet |
77
+ | **Integrate** | PR open; tests passing |
78
+ | **Sustain** | Ongoing; no active task |
79
+
80
+ Prefer `specs/state.yaml` `active_flow` and `handoff.next_skill` when present.
81
+
82
+ ### 6. Suggest next skill
83
+
84
+ Based on the phase and state, recommend the most useful next step:
85
+
86
+ - **If in Plan/Bug phase and on `main`**: Suggest `kickoff-branch` next.
87
+ - **If in Initiate phase**: Suggest `develop-tdd` or `execute-plan` or `ship-epic`.
88
+ - **If in Execute phase**: Suggest `ship-epic` (resume) or `develop-tdd` for `active_story_id`.
89
+ - **If in Verify phase**: Suggest `verify-work` (UAT) or `run-evals`.
90
+
91
+ Example:
92
+ ```
93
+ Phase: Execute
94
+ Active branch: feat/e02-verify (state.yaml matches)
95
+ release-plan.yaml: v3.0.0, 10 epics
96
+ active_epic_id: e02
97
+
98
+ Suggested next: ship-epic (resume e02s01 at develop-tdd)
99
+ ```
100
+
101
+ Be specific — name the exact skill and why. If multiple options exist, list them in priority order.
102
+
103
+ ### 7. Surface blockers
104
+
105
+ If something looks wrong:
106
+ - Broken tests in the baseline
107
+ - Open `specs/bugs/BUG-*.md` with no active fix branch
108
+ - Epic shards missing `verify:` on tasks
109
+ - `validate-specs-yaml.sh` fails
110
+ - Git hash in `state.yaml` stale vs `git rev-parse`
111
+
112
+ Report blockers first, before recommendations.
113
+
114
+ ### 8. Record story start timestamp
115
+
116
+ 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).
117
+
118
+ ## Utility outputs
119
+
120
+ ### list-epics (absorbed)
121
+
122
+ 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.
123
+
124
+ ### check-gates (absorbed)
125
+
126
+ 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.
127
+
128
+ ## Handoff
129
+
130
+ Gate: READY -> next: plan-work
131
+ Writes: state.yaml handoff.next_skill = plan-work
132
+
133
+
134
+ <!-- story: e03s03 -->
@@ -0,0 +1,41 @@
1
+ ---
2
+ 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."
3
+ alwaysApply: false
4
+ ---
5
+
6
+ Respond terse like smart caveman. All technical substance stay. Only fluff die.
7
+
8
+ ## Persistence
9
+ > **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.
10
+
11
+
12
+ 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".
13
+
14
+ ## Rules
15
+
16
+ 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.
17
+
18
+ Technical terms stay exact. Code blocks unchanged. Errors quoted exact.
19
+
20
+ Pattern: `[thing] [action] [reason]. [next step].`
21
+
22
+ Not: "Sure! I'd be happy to help you with that. The issue you're experiencing is likely caused by..."
23
+ Yes: "Bug in auth middleware. Token expiry check use `<` not `<=`. Fix:"
24
+
25
+ ## Auto-Clarity Exception
26
+
27
+ 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.
28
+
29
+ Example — destructive op:
30
+
31
+ > **Warning:** This will permanently delete all rows in the `users` table and cannot be undone.
32
+ >
33
+ > ```sql
34
+ > DROP TABLE users;
35
+ > ```
36
+ >
37
+ > Terse resume. Verify backup exist first.
38
+
39
+
40
+
41
+ <!-- story: e04s02 -->
@@ -0,0 +1,68 @@
1
+ ---
2
+ 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."
3
+ alwaysApply: false
4
+ ---
5
+
6
+ # Trace Requirement
7
+
8
+ 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.
9
+
10
+ ## Pre-flight
11
+
12
+ > **HARD GATE** — `specs/release-plan.yaml + epic capsule directories` must exist. If it doesn't, run `plan-release` first.
13
+
14
+ → verify: `test -f specs/release-plan.yaml && test -d specs/epics`
15
+
16
+ Read `specs/release-plan.yaml + epic capsule directories` fully before proceeding.
17
+
18
+ ## Process
19
+
20
+ ### 1. Extract story IDs
21
+
22
+ From release-plan.yaml, collect all story IDs (e.g. `1.1`, `1.2`, `2.1`).
23
+
24
+ → 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 .`
25
+
26
+ ### 2. Search for story tags in code
27
+
28
+ Look for `// story: X.Y` or `# story: X.Y` comments in source files and tests:
29
+
30
+ ```
31
+ grep -rn "story: " . --include="*.ts" --include="*.js" --include="*.py" --include="*.sh" | grep -v node_modules
32
+ ```
33
+
34
+ → verify: `[ "$(grep -rl "story: " . --include="*.ts" --include="*.sh" --include="*.py" 2>/dev/null | wc -l | tr -d " ")" -gt 0 ]`
35
+
36
+ ### 3. Build the matrix
37
+
38
+ For each story ID:
39
+ - **Implemented**: list files that contain `// story: X.Y`
40
+ - **Tested**: list test files that contain `// story: X.Y`
41
+ - **Dark**: story has no tag in any file — flag as unimplemented
42
+
43
+ For each tagged file with no matching story ID in release-plan.yaml:
44
+ - **Orphan**: code exists but story was removed or never planned — flag for cleanup
45
+
46
+ ### 4. Write specs/TRACEABILITY_LATEST.md
47
+
48
+ ```
49
+ ## Story Coverage
50
+
51
+ | Story | Title | Files | Tests | Status |
52
+ |-------|--------------------|-------|-------|-----------|
53
+ | 1.1 | [title] | 2 | 1 | Covered |
54
+ | 1.2 | [title] | 0 | 0 | Dark |
55
+
56
+ ## Orphan Code (no story tag)
57
+ - [file]: contains untagged implementation
58
+
59
+ ## Gaps (dark stories)
60
+ - Story 1.2: no implementation found → run plan-work
61
+
62
+ ## Coverage summary
63
+ Stories: [X] covered / [Y] dark / [Z] total
64
+ ```
65
+
66
+ → verify: `grep -c "Covered\|Dark" specs/TRACEABILITY_LATEST.md`
67
+
68
+ Suggest `plan-work` for each dark story found.