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,91 @@
1
+ ---
2
+ name: gate-trace
3
+ description: "Deterministic traceability quality gate — reads coverage matrix + blind-spot data, applies decision rules with oracle confidence downgrade, emits PASS/CONCERNS/FAIL/WAIVED verdict. Use before release-branch to gate merges on traceability."
4
+ ---
5
+
6
+ # Gate Trace
7
+
8
+ Deterministic quality gate that combines traceability coverage and blind-spot data into a single PASS/FAIL/CONCERNS/WAIVED decision before release.
9
+
10
+ ## Decision Rules
11
+
12
+ | Rule | Condition | Verdict |
13
+ |------|-----------|---------|
14
+ | R1 | Any undone story with 0 code tags | FAIL |
15
+ | R2 | Any story done but no verify evidence | CONCERNS |
16
+ | R3 | P0 story (top WSJF quartile) with 0% coverage | FAIL |
17
+ | R4 | Overall coverage < 60% | CONCERNS |
18
+ | R6 | P0 story + eNN-TEST_PLAN_LATEST.md exists + zero SC-eNNsYY-P0-* in test files | CONCERNS |
19
+ | R5 | Overall ≥ 80% + no critical gaps + all verify → PASS | PASS |
20
+
21
+ ## Oracle Confidence Downgrade
22
+
23
+ TEA-inspired: if trace links rely on heuristics rather than explicit tags, confidence drops.
24
+
25
+ | Heuristic Ratio | Downgrade |
26
+ |-----------------|-----------|
27
+ | > 50% links from heuristics (file-name or task-reference) | One level (PASS→CONCERNS, CONCERNS→FAIL) |
28
+ | > 80% links from heuristics | Two levels (PASS→FAIL, CONCERNS→FAIL) |
29
+
30
+ ## Process
31
+
32
+ 1. **Pre-flight:** Ensure `scripts/trace-stories.sh --json` has been run (produces `specs/traceability-matrix.json`). If not present, run it.
33
+ 2. Ensure `scripts/check-blind-spots.sh` has been run (produces `specs/blind-spots.json`). If not present, run it.
34
+ 3. Read `specs/traceability-matrix.json` and `specs/blind-spots.json`.
35
+ 4. Apply decision rules R1–R5 in order (first match wins).
36
+ 5. Apply oracle confidence downgrade based on the heuristic link ratio from the matrix's `oracle_stats`.
37
+ 6. **Drift check (e39s03):** If `specs/drift-report.json` exists and has suspect links, mark verdict as CONCERNS with note: "Drift detected — some implementing files are newer than their specs. Run scripts/check-spec-drift.sh for details."
38
+ 7. Output verdict + rationale to stdout.
39
+ 8. **Adversarial refute check (e45s32):** Before emitting PASS, attempt to **refute** the verdict — list at least one concrete traceability gap that would block merge if it were real. If the gap is real, downgrade the verdict. Rubber-stamping is prohibited; every PASS must survive one refutation attempt.
40
+ 9. **Completeness critic (e45s05)** — Run adversarial gap-finding:
41
+
42
+ ```bash
43
+ bash scripts/lib/completeness-critic.sh
44
+ ```
45
+
46
+ Classify output as **BLOCKER / WARNING / FILLED**. **BLOCKER overrides any PASS verdict → FAIL.** Append critic summary to rationale.
47
+ 10. Update `specs/execution-status.yaml` with gate-trace result.
48
+
49
+ ## Verdict Semantics
50
+
51
+ | Verdict | Meaning | Action |
52
+ |---------|---------|--------|
53
+ | PASS | All gates satisfied | Proceed with merge |
54
+ | CONCERNS | Non-critical issues found | Requires explicit human override in `state.yaml` |
55
+ | FAIL | Critical traceability gap | Block merge — fix gap first |
56
+ | WAIVED | Cannot evaluate (missing inputs) | Skip gate — data not available |
57
+
58
+ ## Output Format
59
+
60
+ ```yaml
61
+ gate_trace:
62
+ verdict: PASS|CONCERNS|FAIL|WAIVED
63
+ generated_at: "<ISO 8601>"
64
+ rationale: "<human-readable explanation>"
65
+ heuristic_ratio: <0.0–1.0>
66
+ downgrade_applied: <true|false>
67
+ ```
68
+
69
+ ## Integration Points
70
+
71
+ - **release-branch SKILL.md** — pre-PR gate (FAIL blocks merge).
72
+ - **sync-skills.yml** — runs `trace-stories.sh --strict` as its "Traceability gate" step (FAIL
73
+ blocks pipeline), which shares this skill's coverage data (`traceability-matrix.json`) but
74
+ does not invoke a gate-trace PASS/CONCERNS/FAIL/WAIVED verdict directly.
75
+ - **verify-work SKILL.md** — runs blind-spot checks; gate-trace consumes the result.
76
+
77
+ ## References
78
+
79
+ - BMAD TEA traceability approach (market survey 2026-07-02).
80
+ - scripts/trace-stories.sh (e38s01) — produces traceability-matrix.json.
81
+ - scripts/check-blind-spots.sh (e38s04) — produces blind-spots.json.
82
+ - specs/execution-status.yaml — output target for gate result.
83
+
84
+ ## Handoff
85
+
86
+ Gate: READY → next: release-branch (final step before merge)
87
+ Writes: state.yaml handoff.next_skill = release-branch
88
+
89
+ ## Verify
90
+
91
+ → verify: `test -x scripts/run-gate-trace-verify.sh && bash scripts/run-gate-trace-verify.sh --self-test && echo OK`
@@ -0,0 +1,284 @@
1
+ ---
2
+ name: generate-allure-report
3
+ description: "Generate Allure-ready reports from bigpowers YAML metadata. Reads execution-status.yaml, release-plan.yaml, epic capsules, task YAMLs, cycle-times.yaml, and bug registry to produce allure-results/junit-results.xml, categories.json, and executor.json. Use when preparing progress dashboards, integrating with Allure TestOps, or generating CI reports."
4
+ ---
5
+
6
+ # Generate Allure Report
7
+
8
+ Generate Allure TestOps-compatible reports from bigpowers project metadata. Produces JUnit XML for story-level test results, custom categories for filtering, and executor metadata — all in the `allure-results/` directory.
9
+
10
+ ## Quick Start
11
+
12
+ ```bash
13
+ bash scripts/generate-allure-report.sh
14
+ ```
15
+
16
+ ## What It Produces
17
+
18
+ Three files in `allure-results/`:
19
+
20
+ | File | Description |
21
+ |------|-------------|
22
+ | `junit-results.xml` | One `<testcase>` per story with `<properties>` for risk, security, WSJF, tier, wave, and status. Incomplete stories get a `<failure>` element. |
23
+ | `categories.json` | Custom Allure categories for filtering by epic, risk level (P0), and security reviews. |
24
+ | `executor.json` | Build metadata — name, type, version from release-plan.yaml, build order. |
25
+
26
+ ## Data Sources
27
+
28
+ See [REFERENCE.md](REFERENCE.md)
29
+
30
+ ## Verify
31
+
32
+ ```bash
33
+ test -f allure-results/junit-results.xml && test -f allure-results/categories.json && test -f allure-results/executor.json
34
+ ```
35
+
36
+ ## Handoff
37
+
38
+ - next_skill: null (terminal skill — no downstream workflow step)
39
+
40
+ ---
41
+
42
+ # generate-allure-report — Reference
43
+
44
+ ## Data Sources
45
+
46
+ The script reads five YAML sources from the project:
47
+
48
+ | Source | Path | Fields Used |
49
+ |--------|------|-------------|
50
+ | Execution status | `specs/execution-status.yaml` | `epics`, `stories`, `development_status` |
51
+ | Release plan | `specs/release-plan.yaml` | `release.version`, `release.status`, `bugs` summary |
52
+ | Epic capsules | `specs/epics/**/epic.yaml` + `-tasks.yaml` | Epic metadata, task pass/fail counts |
53
+ | Cycle times | `specs/metrics/cycle-times.yaml` | Story-level `cycle_minutes`, `bcp_per_hour`, `source` |
54
+ | Bug registry | `specs/bugs/registry.yaml` | Bug counts by status and severity |
55
+
56
+ ## Script Body
57
+
58
+ `scripts/generate-allure-report.sh`:
59
+
60
+ ```bash
61
+ #!/usr/bin/env bash
62
+ set -euo pipefail
63
+ source "$(dirname "${BASH_SOURCE[0]}")/lib/python-env.sh"
64
+ ROOT="$(git rev-parse --show-toplevel 2>/dev/null)" || ROOT="$(dirname "${BASH_SOURCE[0]}")/.."
65
+
66
+ mkdir -p "$ROOT/allure-results"
67
+
68
+ $PYTHON - "$ROOT" <<'PY'
69
+ import json
70
+ import sys
71
+ import xml.etree.ElementTree as ET
72
+ from pathlib import Path
73
+
74
+ root = Path(sys.argv[1])
75
+ out = root / "allure-results"
76
+
77
+ # 1. Read execution-status.yaml
78
+ exec_status_file = root / "specs" / "execution-status.yaml"
79
+ release_plan_file = root / "specs" / "release-plan.yaml"
80
+ cycle_times_file = root / "specs" / "metrics" / "cycle-times.yaml"
81
+ bugs_registry_file = root / "specs" / "bugs" / "registry.yaml"
82
+
83
+ sys.path.insert(0, str(root / "scripts" / "lib"))
84
+ from simple_yaml import parse_simple_yaml
85
+
86
+ exec_status = parse_simple_yaml(exec_status_file.read_text()) if exec_status_file.exists() else {}
87
+ release_plan = parse_simple_yaml(release_plan_file.read_text()) if release_plan_file.exists() else {}
88
+ cycle_times = parse_simple_yaml(cycle_times_file.read_text()) if cycle_times_file.exists() else {"stories": []}
89
+ bugs_registry = parse_simple_yaml(bugs_registry_file.read_text()) if bugs_registry_file.exists() else {"bugs": []}
90
+
91
+ # Build cycle-times lookup
92
+ ct_lookup = {}
93
+ for ct in cycle_times.get("stories", []):
94
+ if isinstance(ct, dict):
95
+ ct_lookup[ct.get("id", "")] = ct
96
+
97
+ # 2. Build JUnit XML
98
+ stories = exec_status.get("stories", {})
99
+
100
+ # Counts for testsuite attributes
101
+ total_stories = len(stories)
102
+ incomplete = sum(1 for s in stories.values() if isinstance(s, dict) and s.get("status") != "done")
103
+
104
+ testsuite = ET.Element("testsuite", {
105
+ "name": "bigpowers-epic-progress",
106
+ "tests": str(total_stories),
107
+ "failures": str(incomplete),
108
+ "errors": "0",
109
+ "skipped": "0",
110
+ })
111
+
112
+ for story_id in sorted(stories.keys()):
113
+ story = stories[story_id]
114
+ if not isinstance(story, dict):
115
+ continue
116
+
117
+ epic_id = story.get("epic", "unknown")
118
+ title = story.get("title", story_id)
119
+ bcps = story.get("bcps", 0)
120
+ status = story.get("status", "backlog")
121
+ risk_max = story.get("risk_max", "none")
122
+ security_max = story.get("security_max", "none")
123
+
124
+ # Enrich with cycle-times data
125
+ ct_data = ct_lookup.get(story_id, {})
126
+ cycle_minutes = ct_data.get("cycle_minutes", 0)
127
+ bcp_per_hour = ct_data.get("bcp_per_hour", 0)
128
+
129
+ # Time: cycle_minutes * 60 for seconds in Allure display
130
+ time_seconds = cycle_minutes * 60.0 if cycle_minutes else 0.0
131
+
132
+ testcase = ET.SubElement(testsuite, "testcase", {
133
+ "classname": epic_id,
134
+ "name": f"{story_id}: {title}",
135
+ "time": str(round(time_seconds, 3)),
136
+ })
137
+
138
+ props = ET.SubElement(testcase, "properties")
139
+ ET.SubElement(props, "property", {"name": "risk", "value": risk_max})
140
+ ET.SubElement(props, "property", {"name": "security", "value": security_max})
141
+ ET.SubElement(props, "property", {"name": "bcps", "value": str(bcps)})
142
+ ET.SubElement(props, "property", {"name": "status", "value": status})
143
+ ET.SubElement(props, "property", {"name": "bcp_per_hour", "value": str(bcp_per_hour)})
144
+ ET.SubElement(props, "property", {"name": "lead_time_minutes", "value": str(cycle_minutes)})
145
+
146
+ if status != "done":
147
+ ET.SubElement(testcase, "failure", {
148
+ "message": f"Story {story_id} is {status} [risk={risk_max}, security={security_max}]",
149
+ "type": "StoryIncomplete"
150
+ })
151
+
152
+ tree = ET.ElementTree(testsuite)
153
+ ET.indent(tree, space=" ")
154
+ tree.write(str(out / "junit-results.xml"), encoding="utf-8", xml_declaration=True)
155
+
156
+ # 3. Build categories.json
157
+ epics = exec_status.get("epics", {})
158
+ categories = []
159
+
160
+ for epic_id in sorted(epics.keys()):
161
+ epic = epics[epic_id]
162
+ if isinstance(epic, dict) and epic.get("status") != "done":
163
+ categories.append({
164
+ "name": f"Epic: {epic.get('title', epic_id)}",
165
+ "matchedStatuses": ["failed"],
166
+ "messageRegex": f".*{epic_id}:.*"
167
+ })
168
+
169
+ categories.append({
170
+ "name": "P0 Risk",
171
+ "matchedStatuses": ["failed"],
172
+ "messageRegex": ".*risk.*P0.*"
173
+ })
174
+ categories.append({
175
+ "name": "Security Review",
176
+ "matchedStatuses": ["failed"],
177
+ "messageRegex": ".*security.*(?:medium|high).*"
178
+ })
179
+
180
+ # Add bug-based categories
181
+ bug_list = bugs_registry.get("bugs", [])
182
+ bug_count = len(bug_list) if isinstance(bug_list, list) else 0
183
+ open_bugs = sum(1 for b in bug_list if isinstance(b, dict) and b.get("status") not in ("fixed", "closed", None))
184
+ if open_bugs > 0:
185
+ categories.append({
186
+ "name": "Open Bugs",
187
+ "matchedStatuses": ["failed"],
188
+ "messageRegex": ".*Bug.*"
189
+ })
190
+
191
+ (out / "categories.json").write_text(json.dumps(categories, indent=2))
192
+
193
+ # 4. Build executor.json
194
+ rl = release_plan.get("release", {}) if isinstance(release_plan.get("release"), dict) else {}
195
+ executor = {
196
+ "name": "bigpowers",
197
+ "type": "bigpowers",
198
+ "buildName": rl.get("version", "unknown") if isinstance(rl, dict) else "unknown",
199
+ "buildOrder": len(exec_status.get("development_status", {})),
200
+ }
201
+ (out / "executor.json").write_text(json.dumps(executor, indent=2))
202
+
203
+ # Summary
204
+ epic_count = len([e for e in epics.values() if isinstance(e, dict) and e.get("status") == "done"])
205
+ total_epics = len(epics)
206
+ print(f"generate-allure-report: {total_stories} stories, {epic_count}/{total_epics} epics done, {bug_count} bugs")
207
+ print(f" -> {out}/junit-results.xml")
208
+ print(f" -> {out}/categories.json")
209
+ print(f" -> {out}/executor.json")
210
+ PY
211
+ ```
212
+
213
+ ## JUnit XML Schema
214
+
215
+ ```xml
216
+ <?xml version="1.0" encoding="utf-8"?>
217
+ <testsuite name="bigpowers-epic-progress" tests="N" failures="F" errors="0" skipped="0">
218
+ <testcase classname="e01" name="e01s01: Security slopcheck tags" time="0.75">
219
+ <properties>
220
+ <property name="risk" value="none"/>
221
+ <property name="security" value="none"/>
222
+ <property name="bcps" value="1"/>
223
+ <property name="status" value="done"/>
224
+ <property name="bcp_per_hour" value="1.3"/>
225
+ <property name="lead_time_minutes" value="45"/>
226
+ </properties>
227
+ </testcase>
228
+ <testcase classname="e01" name="e01s99: Some incomplete story" time="0.0">
229
+ <properties>...</properties>
230
+ <failure message="Story e01s99 is backlog [risk=P0, security=high]" type="StoryIncomplete"/>
231
+ </testcase>
232
+ </testsuite>
233
+ ```
234
+
235
+ ## Categories JSON Schema
236
+
237
+ ```json
238
+ [
239
+ {
240
+ "name": "Epic: Quality Core - Skill Hardening",
241
+ "matchedStatuses": ["failed"],
242
+ "messageRegex": ".*e45:.*"
243
+ },
244
+ {
245
+ "name": "P0 Risk",
246
+ "matchedStatuses": ["failed"],
247
+ "messageRegex": ".*risk.*P0.*"
248
+ },
249
+ {
250
+ "name": "Security Review",
251
+ "matchedStatuses": ["failed"],
252
+ "messageRegex": ".*security.*(?:medium|high).*"
253
+ }
254
+ ]
255
+ ```
256
+
257
+ ## Executor JSON Schema
258
+
259
+ ```json
260
+ {
261
+ "name": "bigpowers",
262
+ "type": "bigpowers",
263
+ "buildName": "2.76.2",
264
+ "buildOrder": 400
265
+ }
266
+ ```
267
+
268
+ ## Example Usage
269
+
270
+ ```bash
271
+ # Generate reports
272
+ bash scripts/generate-allure-report.sh
273
+
274
+ # Verify output
275
+ test -f allure-results/junit-results.xml && echo "JUnit OK"
276
+ test -f allure-results/categories.json && echo "Categories OK"
277
+ test -f allure-results/executor.json && echo "Executor OK"
278
+
279
+ # Serve with Allure
280
+ allure serve allure-results/
281
+
282
+ # Or open the Allure TestOps UI
283
+ allure open allure-results/
284
+ ```
@@ -0,0 +1,107 @@
1
+ ---
2
+ name: grill-me
3
+ description: "Interactive assumption-surfacing Q&A that stress-tests a plan through relentless questioning until every decision is resolved. Use when user wants to challenge a plan, validate decisions from conversation/context, or mentions \"grill me\". For doc-grounded variant, use grill-with-docs."
4
+ ---
5
+
6
+ # Grill Me
7
+
8
+ > **Use this vs grill-with-docs:** `grill-me` surfaces assumptions from the conversation and context alone — no documentation fetching. Use `grill-with-docs` (the doc-grounded variant) when the plan relies on a specific library or external API and every challenge must cite a real doc URL.
9
+
10
+ Two modes. Default is **Design**. Switch to **Docs** by saying "grill me with docs" or when the plan relies on a specific library or external API.
11
+
12
+ > **HARD GATE** — Do NOT accept a design until every hard decision has been stress-tested. "Seems right" is not a decision. Grilling must identify and resolve tensions before build begins.
13
+
14
+ ## Design mode (default)
15
+
16
+ Interview relentlessly about every aspect of this plan until reaching shared understanding. Walk each branch of the design tree, resolving dependencies between decisions one-by-one. For each question, provide your recommended answer. Ask one question at a time.
17
+
18
+ If a question can be answered by exploring the codebase, explore it instead.
19
+
20
+ ### Facts vs. Decisions Boundary
21
+
22
+ Distinguish between **facts** and **decisions**:
23
+ - **Facts** — things discoverable by exploring the codebase, reading docs, or checking APIs. Do not ask the user to confirm facts; find them yourself.
24
+ - **Decisions** — choices that require user input (trade-offs, preferences, priorities). Always present options and ask the user to choose.
25
+
26
+ Never "grill yourself" — if the answer is in the code, go find it. Only ask questions where the user's judgment is needed.
27
+
28
+ ## Docs mode
29
+
30
+ Ground every challenge in real documentation — no assumption about a library's behavior goes unchecked. See [REFERENCE.md](REFERENCE.md) for the full process.
31
+
32
+ Short form:
33
+ 1. List every external library, third-party API, and framework behavior relied upon.
34
+ 2. Fetch the actual docs for each (`WebFetch` the official API reference).
35
+ 3. Challenge each plan assumption against the real docs: correct method signature? right version? deprecated?
36
+ 4. Report confirmed ✓, corrected ✗ (with the real behavior), and uncertain → `spike-prototype`.
37
+ 5. Update the plan for each confirmed discrepancy.
38
+
39
+ ## Confirmation Gate
40
+
41
+ > **HARD GATE** — Do NOT enact the plan or generate specifications until the user explicitly confirms shared understanding. Wait for explicit approval (e.g., "looks good", "confirmed", "proceed") before transitioning to any implementation, spec-writing, or task-slicing step.
42
+
43
+ ---
44
+
45
+ # Docs Mode — Full Process
46
+
47
+ Triggered by "grill me with docs" or when a plan depends on a specific library or external API.
48
+
49
+ **Why this matters:** AI agents hallucinate API methods, argument orders, and behaviors. Every assumption about an external dependency must be validated against the actual docs before code is written.
50
+
51
+ ## Step 1 — Identify the dependencies
52
+
53
+ From the plan or conversation, list:
54
+ - Every external library being used
55
+ - Every third-party API being called
56
+ - Every framework behavior being relied upon
57
+
58
+ Ask: "Which of these are you most confident about? Which are you less sure of?"
59
+
60
+ ## Step 2 — Fetch the relevant docs
61
+
62
+ For each dependency, fetch the actual documentation:
63
+
64
+ ```
65
+ WebFetch the official docs for [library/API]
66
+ ```
67
+
68
+ Prioritize:
69
+ - The API reference for the specific method being used
70
+ - The changelog for the version in use (breaking changes)
71
+ - Migration guides if upgrading from a previous version
72
+ - Known gotchas / FAQ sections
73
+
74
+ ## Step 3 — Challenge each assumption
75
+
76
+ For every assumption in the plan, find the corresponding doc section and ask:
77
+
78
+ - "Does the real API actually work this way? Show me the doc."
79
+ - "Is this method available in the version you're using?"
80
+ - "Does this argument order match the actual signature?"
81
+ - "Are there rate limits, quotas, or timeout behaviors that affect this design?"
82
+ - "Is this marked as deprecated in the current version?"
83
+
84
+ Ask one question at a time. For each challenge, cite the specific URL and section.
85
+
86
+ ## Step 4 — Surface hallucinations
87
+
88
+ When an assumption doesn't match the docs:
89
+
90
+ > "Your plan uses `library.doThing(a, b)` but the [docs](https://example.com/api-reference) show the signature is `doThing(config: {a, b})` with a config object. This will fail at runtime."
91
+
92
+ Document each discrepancy clearly.
93
+
94
+ ## Step 5 — Update the plan
95
+
96
+ For each confirmed discrepancy, recommend a concrete fix:
97
+ - Correct method signature
98
+ - Correct argument order
99
+ - Alternative approach that matches what the library actually supports
100
+ - Whether a spike (`spike-prototype`) is needed to validate a remaining uncertainty
101
+
102
+ ## Step 6 — Sign off
103
+
104
+ When all major assumptions have been validated against docs, report:
105
+ - Which assumptions were confirmed ✓
106
+ - Which were corrected ✗ + what the correct approach is
107
+ - Which remain uncertain → recommend `spike-prototype`
@@ -0,0 +1,52 @@
1
+ ---
2
+ name: grill-with-docs
3
+ description: "Doc-grounded variant of grill-me — stress-tests plan assumptions by fetching and citing real library or API documentation. Every challenge must cite a real URL. Use when the plan depends on a specific library or external API."
4
+ ---
5
+
6
+ # Grill With Docs
7
+
8
+ > **Use this vs grill-me:** `grill-with-docs` is the doc-grounded variant of `grill-me`. Use it when the plan relies on external libraries or APIs and every challenge must be grounded in and cite a real documentation URL. Use `grill-me` for context-only assumption surfacing without fetching docs.
9
+
10
+ > **HARD GATE** — Every challenge must cite a real documentation URL. No hallucinated APIs.
11
+
12
+ ## Process
13
+
14
+ 1. Read the plan or design under test (`specs/release-plan.yaml + epic shards`, INTERFACE-OPTIONS.md, etc.).
15
+ 2. List assumptions that depend on external libraries or APIs.
16
+ 3. For each assumption: fetch or quote official docs; challenge with "docs say X, plan says Y."
17
+ 4. Resolve or update the plan inline; unresolved items block `plan-work`.
18
+
19
+ ## Docs mode rules
20
+
21
+ - Cite URL + quoted snippet (method name, parameter, version).
22
+ - If docs contradict the plan, plan loses until updated.
23
+ - Prefer official docs over blog posts.
24
+
25
+ ## Facts vs. Decisions Boundary
26
+
27
+ Distinguish between **facts** and **decisions**:
28
+ - **Facts** — things discoverable by reading docs, checking APIs, or exploring the codebase. Do not ask the user to confirm facts; find them yourself.
29
+ - **Decisions** — choices that require user input (trade-offs, preferences, priorities). Always present options and ask the user to choose.
30
+
31
+ Never "grill yourself" — if the answer is in the docs, go fetch it. Only ask questions where the user's judgment is needed.
32
+
33
+ ## Confirmation Gate
34
+
35
+ > **HARD GATE** — Do NOT enact the plan or generate specifications until the user explicitly confirms shared understanding. Wait for explicit approval (e.g., "looks good", "confirmed", "proceed") before transitioning to any implementation, spec-writing, or task-slicing step.
36
+
37
+ ## Verify
38
+
39
+ → verify: `test -f skills/grill-with-docs/SKILL.md && test -f skills/grill-with-docs/REFERENCE.md`
40
+
41
+ See [REFERENCE.md](REFERENCE.md) for question templates.
42
+
43
+
44
+ <!-- story: e03s01 -->
45
+
46
+ ---
47
+
48
+ # Grill With Docs — Question templates
49
+
50
+ - "Docs at [URL] show signature `foo(bar?: Baz)`. Your plan calls `foo(bar, baz)` — which is correct?"
51
+ - "The changelog at [URL] deprecates X in v3. Your plan still uses X — migrate or pin version?"
52
+ - "Error handling in [URL] throws `NetworkError`. Your plan catches `Error` only — is that sufficient?"