wicked-garden 12.27.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (640) hide show
  1. package/.claude-plugin/archetypes.json +166 -0
  2. package/.claude-plugin/components.json +75 -0
  3. package/.claude-plugin/marketplace.json +15 -0
  4. package/.claude-plugin/plugin.json +174 -0
  5. package/.claude-plugin/specialist.json +48 -0
  6. package/.claude-plugin/stack-registry.json +96 -0
  7. package/AGENTS.md +13 -0
  8. package/CHANGELOG.md +712 -0
  9. package/CONTRIBUTING.md +99 -0
  10. package/ETHOS.md +83 -0
  11. package/LICENSE +21 -0
  12. package/README.md +115 -0
  13. package/WICKED_GARDEN_BUS_EVENTS.md +149 -0
  14. package/agents/agentic/architect.md +449 -0
  15. package/agents/agentic/performance-analyst.md +702 -0
  16. package/agents/agentic/safety-reviewer.md +662 -0
  17. package/agents/crew/implementer.md +163 -0
  18. package/agents/crew/researcher.md +94 -0
  19. package/agents/crew/reviewer.md +184 -0
  20. package/agents/data/data-engineer.md +227 -0
  21. package/agents/engineering/api-documentarian.md +440 -0
  22. package/agents/engineering/migration-engineer.md +301 -0
  23. package/agents/engineering/solution-architect.md +208 -0
  24. package/agents/jam/brainstorm-facilitator.md +297 -0
  25. package/agents/jam/council.md +322 -0
  26. package/agents/jam/quick-facilitator.md +85 -0
  27. package/agents/persona/persona-agent.md +121 -0
  28. package/agents/platform/compliance-officer.md +266 -0
  29. package/agents/platform/privacy-expert.md +496 -0
  30. package/agents/platform/security-engineer.md +287 -0
  31. package/agents/product/a11y-expert.md +323 -0
  32. package/agents/product/requirements-analyst.md +238 -0
  33. package/agents/product/ui-reviewer.md +180 -0
  34. package/agents/product/ux-designer.md +199 -0
  35. package/agents/product/value-strategist.md +269 -0
  36. package/agents/qe/semantic-reviewer.md +78 -0
  37. package/commands/agentic/audit.md +24 -0
  38. package/commands/agentic/design.md +24 -0
  39. package/commands/agentic/frameworks.md +25 -0
  40. package/commands/agentic/review.md +27 -0
  41. package/commands/archetype/build.md +12 -0
  42. package/commands/archetype/decide.md +12 -0
  43. package/commands/archetype/explore.md +12 -0
  44. package/commands/archetype/incident.md +12 -0
  45. package/commands/archetype/migrate.md +12 -0
  46. package/commands/archetype/modernize.md +12 -0
  47. package/commands/archetype/review.md +14 -0
  48. package/commands/archetype/ship.md +12 -0
  49. package/commands/archetype/specify.md +12 -0
  50. package/commands/archetype/triage.md +12 -0
  51. package/commands/compile.md +37 -0
  52. package/commands/data/analyze.md +18 -0
  53. package/commands/data/data.md +21 -0
  54. package/commands/data/ml.md +18 -0
  55. package/commands/data/ontology.md +22 -0
  56. package/commands/data/pipeline.md +17 -0
  57. package/commands/deliberate.md +181 -0
  58. package/commands/engineering/add-field.md +77 -0
  59. package/commands/engineering/apply.md +58 -0
  60. package/commands/engineering/arch.md +26 -0
  61. package/commands/engineering/debug.md +27 -0
  62. package/commands/engineering/docs.md +27 -0
  63. package/commands/engineering/new-generator.md +257 -0
  64. package/commands/engineering/patch-plan.md +59 -0
  65. package/commands/engineering/plan.md +29 -0
  66. package/commands/engineering/remove.md +48 -0
  67. package/commands/engineering/rename.md +44 -0
  68. package/commands/engineering/review.md +32 -0
  69. package/commands/help.md +128 -0
  70. package/commands/install.md +118 -0
  71. package/commands/intent.md +54 -0
  72. package/commands/jam/brainstorm.md +37 -0
  73. package/commands/jam/council.md +49 -0
  74. package/commands/jam/quick.md +21 -0
  75. package/commands/jam/revisit.md +79 -0
  76. package/commands/persona/as.md +136 -0
  77. package/commands/persona/define.md +24 -0
  78. package/commands/persona/list.md +118 -0
  79. package/commands/platform/actions.md +20 -0
  80. package/commands/platform/assert.md +18 -0
  81. package/commands/platform/audit.md +23 -0
  82. package/commands/platform/compliance.md +20 -0
  83. package/commands/platform/gh.md +22 -0
  84. package/commands/platform/health.md +22 -0
  85. package/commands/platform/incident.md +23 -0
  86. package/commands/platform/infra.md +24 -0
  87. package/commands/platform/peer-health.md +103 -0
  88. package/commands/platform/plugin-health.md +58 -0
  89. package/commands/platform/security.md +38 -0
  90. package/commands/platform/toolchain.md +96 -0
  91. package/commands/platform/traces.md +20 -0
  92. package/commands/product/a11y.md +19 -0
  93. package/commands/product/acceptance.md +19 -0
  94. package/commands/product/align.md +20 -0
  95. package/commands/product/analyze.md +23 -0
  96. package/commands/product/elicit.md +19 -0
  97. package/commands/product/listen.md +24 -0
  98. package/commands/product/mockup.md +20 -0
  99. package/commands/product/screenshot.md +19 -0
  100. package/commands/product/strategy.md +40 -0
  101. package/commands/product/synthesize.md +23 -0
  102. package/commands/product/ux-review.md +42 -0
  103. package/commands/product/ux.md +20 -0
  104. package/commands/product/visual-direction.md +34 -0
  105. package/commands/prove.md +47 -0
  106. package/commands/report-issue.md +243 -0
  107. package/commands/reset.md +144 -0
  108. package/commands/search/blast-radius.md +58 -0
  109. package/commands/search/hotspots.md +55 -0
  110. package/commands/search/index.md +38 -0
  111. package/commands/search/lineage.md +47 -0
  112. package/commands/search/service-map.md +79 -0
  113. package/commands/setup.md +363 -0
  114. package/commands/smaht/briefing.md +200 -0
  115. package/commands/smaht/events-import.md +95 -0
  116. package/commands/smaht/state.md +19 -0
  117. package/commands/where-am-i.md +58 -0
  118. package/docs/README.md +32 -0
  119. package/docs/adr/0001-code-relationship-graph-engine.md +116 -0
  120. package/docs/adr/0002-major-cleanup-keep-cut.md +91 -0
  121. package/docs/adr/0003-peers-gate-required-layers-optin.md +41 -0
  122. package/docs/adr/0004-code-graph-moves-to-wicked-brain.md +47 -0
  123. package/docs/brain-chunk-format.md +135 -0
  124. package/docs/compiler.md +95 -0
  125. package/docs/daemon-api.md +70 -0
  126. package/docs/domains.md +197 -0
  127. package/docs/getting-started.md +208 -0
  128. package/docs/plans/2026-06-08-wicked-loom-conduct.md +1337 -0
  129. package/docs/plans/2026-06-08-wicked-loom-contract.md +638 -0
  130. package/docs/plans/2026-06-08-wicked-loom-cutover.md +1300 -0
  131. package/docs/plans/2026-06-08-wicked-loom-expand-compose.md +843 -0
  132. package/docs/plans/2026-06-08-wicked-loom-flow-cutover.md +403 -0
  133. package/docs/plans/2026-06-10-codegraph-to-brain-phase1a-graph-core.md +838 -0
  134. package/docs/plans/2026-06-10-codegraph-to-brain-phase1b-injected-edges.md +44 -0
  135. package/docs/required-peers.md +60 -0
  136. package/docs/specs/2026-06-08-wicked-loom-extraction.md +225 -0
  137. package/docs/specs/2026-06-10-codegraph-to-brain-migration.md +168 -0
  138. package/docs/v11/archetypes.md +231 -0
  139. package/hooks/hooks.json +275 -0
  140. package/hooks/scripts/bootstrap.py +1797 -0
  141. package/hooks/scripts/invoke.py +62 -0
  142. package/hooks/scripts/notification.py +166 -0
  143. package/hooks/scripts/permission_request.py +223 -0
  144. package/hooks/scripts/post_tool.py +1374 -0
  145. package/hooks/scripts/pre_compact.py +272 -0
  146. package/hooks/scripts/pre_tool.py +1278 -0
  147. package/hooks/scripts/prompt_submit.py +1109 -0
  148. package/hooks/scripts/session_end.py +95 -0
  149. package/hooks/scripts/stop.py +624 -0
  150. package/hooks/scripts/subagent_lifecycle.py +464 -0
  151. package/hooks/scripts/subscribers/on_gate_decided.py +84 -0
  152. package/hooks/scripts/task_completed.py +322 -0
  153. package/hooks/scripts/worktree_guard.py +148 -0
  154. package/hooks/subscriptions/on_gate_decided.json +9 -0
  155. package/install.mjs +128 -0
  156. package/package.json +41 -0
  157. package/pyproject.toml +59 -0
  158. package/schemas/README.md +32 -0
  159. package/schemas/assert_contracts.json +37 -0
  160. package/schemas/health_probe.json +46 -0
  161. package/schemas/plugin_status.json +37 -0
  162. package/scripts/_adapters/__init__.py +166 -0
  163. package/scripts/_adapters/jira_adapter.py +18 -0
  164. package/scripts/_adapters/linear_adapter.py +18 -0
  165. package/scripts/_adapters/miro_adapter.py +18 -0
  166. package/scripts/_adapters/notion_adapter.py +18 -0
  167. package/scripts/_agents.py +357 -0
  168. package/scripts/_brain_ingest/__init__.py +2 -0
  169. package/scripts/_brain_ingest/session_fact_extractor.py +341 -0
  170. package/scripts/_brain_port.py +163 -0
  171. package/scripts/_bus.py +1081 -0
  172. package/scripts/_bus_catalog_gen.py +93 -0
  173. package/scripts/_bus_consumers.json +46 -0
  174. package/scripts/_bus_emit.py +43 -0
  175. package/scripts/_capability_registry.py +334 -0
  176. package/scripts/_capability_resolver.py +322 -0
  177. package/scripts/_domain_store.py +559 -0
  178. package/scripts/_event_log_reader.py +154 -0
  179. package/scripts/_event_schema.py +305 -0
  180. package/scripts/_event_store.py +397 -0
  181. package/scripts/_heavy_cadence.py +324 -0
  182. package/scripts/_integration_resolver.py +321 -0
  183. package/scripts/_logger.py +151 -0
  184. package/scripts/_loom.py +482 -0
  185. package/scripts/_paths.py +133 -0
  186. package/scripts/_python.sh +22 -0
  187. package/scripts/_run.py +137 -0
  188. package/scripts/_session.py +502 -0
  189. package/scripts/_validate_registry.py +1042 -0
  190. package/scripts/_wicked_testing_probe.py +277 -0
  191. package/scripts/agentic/analyze_agents.py +391 -0
  192. package/scripts/agentic/detect_framework.py +420 -0
  193. package/scripts/agentic/issue_taxonomy.py +357 -0
  194. package/scripts/agentic/pattern_scorer.py +434 -0
  195. package/scripts/classify/persist.py +169 -0
  196. package/scripts/compiler/compile.py +552 -0
  197. package/scripts/compiler/phase0/VERDICT.md +60 -0
  198. package/scripts/compiler/phase0/detect.py +292 -0
  199. package/scripts/compiler/phase0/emit.py +228 -0
  200. package/scripts/compiler/phase0/evidence/Enterprise-AISDLC.bindings.json +30 -0
  201. package/scripts/compiler/phase0/evidence/Enterprise-AISDLC.lint-output.txt +17 -0
  202. package/scripts/compiler/phase0/evidence/Enterprise-AISDLC.stage/.wg/evidence/failing-tests.txt +4 -0
  203. package/scripts/compiler/phase0/evidence/Enterprise-AISDLC.stage/.wg/evidence/honest-tests.txt +2 -0
  204. package/scripts/compiler/phase0/evidence/Enterprise-AISDLC.stage/fab-fail.build.md +8 -0
  205. package/scripts/compiler/phase0/evidence/Enterprise-AISDLC.stage/fab-missing.build.md +8 -0
  206. package/scripts/compiler/phase0/evidence/Enterprise-AISDLC.stage/honest.build.md +8 -0
  207. package/scripts/compiler/phase0/evidence/Enterprise-AISDLC.stage/wg_check_claims.py +174 -0
  208. package/scripts/compiler/phase0/evidence/command_iq.bindings.json +45 -0
  209. package/scripts/compiler/phase0/evidence/command_iq.lint-output.txt +17 -0
  210. package/scripts/compiler/phase0/evidence/command_iq.stage/.projects/evidence-domain/phase-1-clarify/evidence/failing-tests.txt +4 -0
  211. package/scripts/compiler/phase0/evidence/command_iq.stage/.projects/evidence-domain/phase-1-clarify/evidence/honest-tests.txt +3 -0
  212. package/scripts/compiler/phase0/evidence/command_iq.stage/fab-fail.build.md +8 -0
  213. package/scripts/compiler/phase0/evidence/command_iq.stage/fab-missing.build.md +8 -0
  214. package/scripts/compiler/phase0/evidence/command_iq.stage/honest.build.md +8 -0
  215. package/scripts/compiler/phase0/evidence/command_iq.stage/wg_check_claims.py +174 -0
  216. package/scripts/compiler/phase0/evidence/memos.bindings.json +28 -0
  217. package/scripts/compiler/phase0/evidence/memos.lint-output.txt +17 -0
  218. package/scripts/compiler/phase0/evidence/memos.stage/.wg/evidence/failing-tests.txt +4 -0
  219. package/scripts/compiler/phase0/evidence/memos.stage/.wg/evidence/honest-tests.txt +2 -0
  220. package/scripts/compiler/phase0/evidence/memos.stage/fab-fail.build.md +8 -0
  221. package/scripts/compiler/phase0/evidence/memos.stage/fab-missing.build.md +8 -0
  222. package/scripts/compiler/phase0/evidence/memos.stage/honest.build.md +8 -0
  223. package/scripts/compiler/phase0/evidence/memos.stage/wg_check_claims.py +174 -0
  224. package/scripts/compiler/phase0/evidence/verdict.json +104 -0
  225. package/scripts/compiler/phase0/evidence/wicked-bus.bindings.json +29 -0
  226. package/scripts/compiler/phase0/evidence/wicked-bus.lint-output.txt +17 -0
  227. package/scripts/compiler/phase0/evidence/wicked-bus.stage/coverage/failing-tests.txt +4 -0
  228. package/scripts/compiler/phase0/evidence/wicked-bus.stage/coverage/honest-tests.txt +3 -0
  229. package/scripts/compiler/phase0/evidence/wicked-bus.stage/fab-fail.build.md +8 -0
  230. package/scripts/compiler/phase0/evidence/wicked-bus.stage/fab-missing.build.md +8 -0
  231. package/scripts/compiler/phase0/evidence/wicked-bus.stage/honest.build.md +8 -0
  232. package/scripts/compiler/phase0/evidence/wicked-bus.stage/wg_check_claims.py +174 -0
  233. package/scripts/compiler/phase0/evidence/wire-vault-transcript.txt +60 -0
  234. package/scripts/compiler/phase0/run_probe.py +234 -0
  235. package/scripts/compiler/phase0/wire_vault.py +310 -0
  236. package/scripts/crew/__init__.py +0 -0
  237. package/scripts/crew/_task_audit_writer.py +243 -0
  238. package/scripts/crew/_task_reader.py +389 -0
  239. package/scripts/crew/archetypes_v11.py +348 -0
  240. package/scripts/crew/detectors/__init__.py +12 -0
  241. package/scripts/crew/flow_compiler.py +121 -0
  242. package/scripts/crew/phase_manager.py +703 -0
  243. package/scripts/crew/scope_delta.py +264 -0
  244. package/scripts/crew/specialist_resolver.py +218 -0
  245. package/scripts/crew/stack_registry.py +189 -0
  246. package/scripts/data/data_profiler.py +271 -0
  247. package/scripts/data/ontology_recommender.py +231 -0
  248. package/scripts/data/schema_validator.py +267 -0
  249. package/scripts/delivery/drift.py +739 -0
  250. package/scripts/delivery/telemetry.py +614 -0
  251. package/scripts/engineering/patch/codegraph_db.py +125 -0
  252. package/scripts/engineering/patch/generators/__init__.py +56 -0
  253. package/scripts/engineering/patch/generators/base.py +373 -0
  254. package/scripts/engineering/patch/generators/csharp_generator.py +494 -0
  255. package/scripts/engineering/patch/generators/go_generator.py +430 -0
  256. package/scripts/engineering/patch/generators/java_generator.py +928 -0
  257. package/scripts/engineering/patch/generators/jsp_generator.py +454 -0
  258. package/scripts/engineering/patch/generators/kotlin_generator.py +561 -0
  259. package/scripts/engineering/patch/generators/perl_generator.py +510 -0
  260. package/scripts/engineering/patch/generators/php_generator.py +644 -0
  261. package/scripts/engineering/patch/generators/propagation_engine.py +929 -0
  262. package/scripts/engineering/patch/generators/python_generator.py +487 -0
  263. package/scripts/engineering/patch/generators/ruby_generator.py +463 -0
  264. package/scripts/engineering/patch/generators/rust_generator.py +400 -0
  265. package/scripts/engineering/patch/generators/sql_generator.py +594 -0
  266. package/scripts/engineering/patch/generators/typescript_generator.py +439 -0
  267. package/scripts/engineering/patch/patch.py +800 -0
  268. package/scripts/engineering/patch/safety.py +429 -0
  269. package/scripts/jam/__init__.py +0 -0
  270. package/scripts/jam/_bus_consumers.py +271 -0
  271. package/scripts/jam/agentic_cli_registry.py +703 -0
  272. package/scripts/jam/consensus.py +737 -0
  273. package/scripts/jam/detect_clis.py +409 -0
  274. package/scripts/jam/jam.py +283 -0
  275. package/scripts/jam/save_transcript.py +171 -0
  276. package/scripts/loom/__init__.py +22 -0
  277. package/scripts/loom/cli.py +170 -0
  278. package/scripts/loom/compose.py +180 -0
  279. package/scripts/loom/gate.py +120 -0
  280. package/scripts/loom/manifest.py +140 -0
  281. package/scripts/loom/resolve.py +59 -0
  282. package/scripts/persona/__init__.py +0 -0
  283. package/scripts/persona/registry.py +688 -0
  284. package/scripts/platform/guard_pipeline.py +1214 -0
  285. package/scripts/platform/guard_profiles.py +216 -0
  286. package/scripts/platform/observability/assert_contracts.py +434 -0
  287. package/scripts/platform/observability/health_probe.py +915 -0
  288. package/scripts/platform/observability/ops_log_viewer.py +209 -0
  289. package/scripts/platform/prereq_doctor.py +567 -0
  290. package/scripts/qe/conditions_manifest.py +260 -0
  291. package/scripts/qe/content_sanitizer.py +160 -0
  292. package/scripts/qe/coverage_tracker.py +535 -0
  293. package/scripts/qe/discover_scenarios.py +243 -0
  294. package/scripts/qe/evidence_tracker.py +232 -0
  295. package/scripts/qe/prove.py +196 -0
  296. package/scripts/qe/registry_lookup.py +80 -0
  297. package/scripts/qe/registry_store.py +176 -0
  298. package/scripts/qe/semantic_review.py +1005 -0
  299. package/scripts/qe/vault_gate.py +382 -0
  300. package/scripts/qe/verdict_audit.py +175 -0
  301. package/scripts/qe/verdict_schema.py +335 -0
  302. package/scripts/reset.py +220 -0
  303. package/scripts/resolve_path.py +22 -0
  304. package/scripts/sentinel/invariants.py +402 -0
  305. package/scripts/sentinel/pre_push.py +73 -0
  306. package/scripts/setup/__init__.py +1 -0
  307. package/scripts/setup/detect_state.py +114 -0
  308. package/scripts/setup/migrate_legacy.py +67 -0
  309. package/scripts/setup/migrate_v6_projects.py +232 -0
  310. package/scripts/setup/onboarding.py +114 -0
  311. package/scripts/smaht/_bus_consumers.py +98 -0
  312. package/scripts/smaht/adapters/__init__.py +83 -0
  313. package/scripts/smaht/adapters/brain_adapter.py +254 -0
  314. package/scripts/smaht/adapters/context7_adapter.py +438 -0
  315. package/scripts/smaht/adapters/delegation_adapter.py +104 -0
  316. package/scripts/smaht/adapters/domain_adapter.py +206 -0
  317. package/scripts/smaht/adapters/events_adapter.py +231 -0
  318. package/scripts/smaht/adapters/tools_adapter.py +49 -0
  319. package/scripts/smaht/cheatsheet_store.py +236 -0
  320. package/scripts/smaht/context_package.py +386 -0
  321. package/scripts/smaht/knowledge_graph.py +395 -0
  322. package/scripts/smaht/propose_skills.py +856 -0
  323. package/scripts/smaht/test_cheatsheet_store.py +428 -0
  324. package/scripts/statusline.py +151 -0
  325. package/scripts/where_am_i.py +236 -0
  326. package/skills/agentic/agentic-patterns/SKILL.md +91 -0
  327. package/skills/agentic/agentic-patterns/refs/anti-patterns-design.md +283 -0
  328. package/skills/agentic/agentic-patterns/refs/anti-patterns-operational.md +216 -0
  329. package/skills/agentic/agentic-patterns/refs/pattern-catalog.md +329 -0
  330. package/skills/agentic/context-engineering/SKILL.md +142 -0
  331. package/skills/agentic/context-engineering/refs/caching-and-optimization.md +251 -0
  332. package/skills/agentic/context-engineering/refs/compression-techniques.md +171 -0
  333. package/skills/agentic/context-engineering/refs/cost-calculation-budget.md +250 -0
  334. package/skills/agentic/context-engineering/refs/cost-optimization-reporting.md +300 -0
  335. package/skills/agentic/context-engineering/refs/selective-loading.md +179 -0
  336. package/skills/agentic/frameworks/SKILL.md +191 -0
  337. package/skills/agentic/frameworks/refs/framework-profiles-1.md +209 -0
  338. package/skills/agentic/frameworks/refs/framework-profiles-2.md +214 -0
  339. package/skills/agentic/frameworks/refs/migration-patterns-paths.md +267 -0
  340. package/skills/agentic/frameworks/refs/migration-patterns-testing.md +208 -0
  341. package/skills/agentic/refs/audit.md +134 -0
  342. package/skills/agentic/refs/design.md +137 -0
  343. package/skills/agentic/refs/frameworks.md +102 -0
  344. package/skills/agentic/refs/review.md +160 -0
  345. package/skills/agentic/review-methodology/SKILL.md +186 -0
  346. package/skills/agentic/review-methodology/refs/deliverable-templates.md +246 -0
  347. package/skills/agentic/review-methodology/refs/issue-taxonomy-quality-testing.md +277 -0
  348. package/skills/agentic/review-methodology/refs/issue-taxonomy-reliability-safety.md +253 -0
  349. package/skills/agentic/trust-and-safety/SKILL.md +177 -0
  350. package/skills/agentic/trust-and-safety/refs/guardrails-actions.md +246 -0
  351. package/skills/agentic/trust-and-safety/refs/guardrails-input-output.md +238 -0
  352. package/skills/agentic/trust-and-safety/refs/guardrails-resources.md +209 -0
  353. package/skills/agentic/trust-and-safety/refs/safety-checklist-advanced.md +209 -0
  354. package/skills/agentic/trust-and-safety/refs/safety-checklist-core.md +215 -0
  355. package/skills/archetype/SKILL.md +104 -0
  356. package/skills/archetype/refs/build.md +142 -0
  357. package/skills/archetype/refs/decide.md +117 -0
  358. package/skills/archetype/refs/explore.md +66 -0
  359. package/skills/archetype/refs/incident.md +149 -0
  360. package/skills/archetype/refs/migrate.md +170 -0
  361. package/skills/archetype/refs/modernize.md +187 -0
  362. package/skills/archetype/refs/review.md +145 -0
  363. package/skills/archetype/refs/ship.md +117 -0
  364. package/skills/archetype/refs/specify.md +108 -0
  365. package/skills/archetype/refs/triage.md +62 -0
  366. package/skills/classify/SKILL.md +157 -0
  367. package/skills/data/analysis/SKILL.md +125 -0
  368. package/skills/data/analysis/refs/templates.md +170 -0
  369. package/skills/data/data/SKILL.md +118 -0
  370. package/skills/data/data/refs/examples.md +235 -0
  371. package/skills/data/ml/SKILL.md +125 -0
  372. package/skills/data/ml/refs/templates.md +172 -0
  373. package/skills/data/pipeline/SKILL.md +136 -0
  374. package/skills/data/pipeline/refs/templates.md +175 -0
  375. package/skills/data/refs/analyze.md +123 -0
  376. package/skills/data/refs/data.md +95 -0
  377. package/skills/data/refs/ml.md +118 -0
  378. package/skills/data/refs/pipeline.md +92 -0
  379. package/skills/deliberate/SKILL.md +125 -0
  380. package/skills/deliberate/refs/architecture-lens.md +37 -0
  381. package/skills/deliberate/refs/assumptions-lens.md +43 -0
  382. package/skills/deliberate/refs/code-lens.md +38 -0
  383. package/skills/deliberate/refs/content-lens.md +37 -0
  384. package/skills/deliberate/refs/data-lens.md +43 -0
  385. package/skills/deliberate/refs/design-lens.md +37 -0
  386. package/skills/deliberate/refs/opportunity-patterns.md +107 -0
  387. package/skills/deliberate/refs/ops-lens.md +43 -0
  388. package/skills/deliberate/refs/product-lens.md +46 -0
  389. package/skills/deliberate/refs/rethink-framework.md +77 -0
  390. package/skills/deliberate/refs/security-lens.md +47 -0
  391. package/skills/deliberate/refs/testing-lens.md +45 -0
  392. package/skills/deliberate/refs/timing-lens.md +42 -0
  393. package/skills/engineering/architecture/SKILL.md +177 -0
  394. package/skills/engineering/architecture/refs/adr-template.md +268 -0
  395. package/skills/engineering/architecture/refs/architecture-template-deployment.md +176 -0
  396. package/skills/engineering/architecture/refs/architecture-template-design.md +300 -0
  397. package/skills/engineering/architecture/refs/examples-ecommerce-analytics.md +299 -0
  398. package/skills/engineering/architecture/refs/examples-saas-trading.md +291 -0
  399. package/skills/engineering/architecture/refs/patterns-advanced.md +238 -0
  400. package/skills/engineering/architecture/refs/patterns-structural.md +303 -0
  401. package/skills/engineering/backend/SKILL.md +102 -0
  402. package/skills/engineering/backend/refs/checklists.md +146 -0
  403. package/skills/engineering/backend/refs/patterns.md +181 -0
  404. package/skills/engineering/debugging/SKILL.md +99 -0
  405. package/skills/engineering/debugging/refs/patterns.md +248 -0
  406. package/skills/engineering/debugging/refs/process.md +203 -0
  407. package/skills/engineering/docs/SKILL.md +97 -0
  408. package/skills/engineering/engineering/SKILL.md +88 -0
  409. package/skills/engineering/engineering/refs/checklists.md +91 -0
  410. package/skills/engineering/engineering/refs/templates.md +71 -0
  411. package/skills/engineering/frontend/SKILL.md +92 -0
  412. package/skills/engineering/frontend/refs/checklists.md +96 -0
  413. package/skills/engineering/frontend/refs/patterns.md +167 -0
  414. package/skills/engineering/integration/SKILL.md +183 -0
  415. package/skills/engineering/integration/refs/error-handling-best-practices.md +139 -0
  416. package/skills/engineering/integration/refs/error-handling-error-classes-typescript.md +212 -0
  417. package/skills/engineering/integration/refs/error-handling-error-response-format.md +301 -0
  418. package/skills/engineering/integration/refs/error-handling-retry-strategies.md +190 -0
  419. package/skills/engineering/integration/refs/event-schemas-best-practices.md +225 -0
  420. package/skills/engineering/integration/refs/event-schemas-event-naming-conventions.md +303 -0
  421. package/skills/engineering/integration/refs/event-schemas-event-structure.md +288 -0
  422. package/skills/engineering/integration/refs/graphql-best-practices.md +138 -0
  423. package/skills/engineering/integration/refs/graphql-error-handling.md +198 -0
  424. package/skills/engineering/integration/refs/graphql-graphql-basics.md +197 -0
  425. package/skills/engineering/integration/refs/graphql-query-examples.md +226 -0
  426. package/skills/engineering/integration/refs/graphql-schema-design-patterns.md +280 -0
  427. package/skills/engineering/integration/refs/grpc-grpc-overview.md +246 -0
  428. package/skills/engineering/integration/refs/grpc-implementation-examples.md +269 -0
  429. package/skills/engineering/integration/refs/grpc-metadata-headers.md +304 -0
  430. package/skills/engineering/integration/refs/grpc-testing.md +49 -0
  431. package/skills/engineering/integration/refs/openapi-template.yaml +682 -0
  432. package/skills/engineering/integration/refs/resilience-best-practices.md +109 -0
  433. package/skills/engineering/integration/refs/resilience-circuit-breaker-pattern.md +302 -0
  434. package/skills/engineering/integration/refs/resilience-rate-limiting.md +245 -0
  435. package/skills/engineering/integration/refs/resilience-timeout-pattern.md +212 -0
  436. package/skills/engineering/integration/refs/rest-api-fundamentals.md +299 -0
  437. package/skills/engineering/integration/refs/rest-api-responses-security.md +302 -0
  438. package/skills/engineering/integration/refs/versioning-breaking-changes.md +237 -0
  439. package/skills/engineering/integration/refs/versioning-migration-strategies.md +257 -0
  440. package/skills/engineering/integration/refs/versioning-versioning-strategies.md +296 -0
  441. package/skills/engineering/large-scale-migration/SKILL.md +65 -0
  442. package/skills/engineering/patch/SKILL.md +184 -0
  443. package/skills/engineering/refs/arch.md +126 -0
  444. package/skills/engineering/refs/debug.md +142 -0
  445. package/skills/engineering/refs/docs.md +190 -0
  446. package/skills/engineering/refs/plan.md +109 -0
  447. package/skills/engineering/refs/review.md +138 -0
  448. package/skills/engineering/system-design/SKILL.md +154 -0
  449. package/skills/engineering/system-design/refs/anti-patterns-big-ball-of-mud.md +254 -0
  450. package/skills/engineering/system-design/refs/anti-patterns-circular-dependencies.md +241 -0
  451. package/skills/engineering/system-design/refs/anti-patterns-feature-envy.md +168 -0
  452. package/skills/engineering/system-design/refs/anti-patterns-god-object.md +247 -0
  453. package/skills/engineering/system-design/refs/component-template-lifecycle.md +210 -0
  454. package/skills/engineering/system-design/refs/component-template-maintenance.md +219 -0
  455. package/skills/engineering/system-design/refs/component-template-structure.md +276 -0
  456. package/skills/engineering/system-design/refs/dependencies-best-practices.md +260 -0
  457. package/skills/engineering/system-design/refs/dependencies-dependency-principles.md +295 -0
  458. package/skills/engineering/system-design/refs/dependencies-dependency-tracking.md +261 -0
  459. package/skills/engineering/system-design/refs/interface-template-lifecycle.md +211 -0
  460. package/skills/engineering/system-design/refs/interface-template-maintenance.md +212 -0
  461. package/skills/engineering/system-design/refs/interface-template-structure.md +269 -0
  462. package/skills/engineering/system-design/refs/patterns-dependency-injection.md +151 -0
  463. package/skills/engineering/system-design/refs/patterns-facade-pattern.md +257 -0
  464. package/skills/engineering/system-design/refs/patterns-layered-pattern.md +204 -0
  465. package/skills/engineering/system-design/refs/patterns-plugin-architecture.md +229 -0
  466. package/skills/engineering/unit-test-quality/SKILL.md +194 -0
  467. package/skills/ground/SKILL.md +130 -0
  468. package/skills/integration-discovery/SKILL.md +168 -0
  469. package/skills/integration-discovery/refs/capabilities.md +282 -0
  470. package/skills/integration-discovery/refs/cli-detection.md +295 -0
  471. package/skills/integration-discovery/refs/discovery-sources.md +233 -0
  472. package/skills/integration-discovery/refs/task-patterns.md +206 -0
  473. package/skills/jam/SKILL.md +45 -0
  474. package/skills/jam/refs/facilitation-patterns.md +125 -0
  475. package/skills/jam/refs/quick.md +64 -0
  476. package/skills/jam/refs/synthesis-patterns.md +114 -0
  477. package/skills/multi-model/SKILL.md +168 -0
  478. package/skills/multi-model/refs/aichat.md +119 -0
  479. package/skills/multi-model/refs/aider.md +100 -0
  480. package/skills/multi-model/refs/auditability.md +238 -0
  481. package/skills/multi-model/refs/codex.md +169 -0
  482. package/skills/multi-model/refs/context.md +306 -0
  483. package/skills/multi-model/refs/copilot.md +161 -0
  484. package/skills/multi-model/refs/examples.md +224 -0
  485. package/skills/multi-model/refs/gemini.md +185 -0
  486. package/skills/multi-model/refs/goose.md +112 -0
  487. package/skills/multi-model/refs/llm.md +124 -0
  488. package/skills/multi-model/refs/opencode.md +196 -0
  489. package/skills/multi-model/refs/orchestration.md +188 -0
  490. package/skills/multi-model/refs/pi.md +208 -0
  491. package/skills/persona/SKILL.md +144 -0
  492. package/skills/persona/refs/define.md +133 -0
  493. package/skills/platform/actions/refs/actions.md +114 -0
  494. package/skills/platform/audit/SKILL.md +174 -0
  495. package/skills/platform/audit/refs/audit.md +145 -0
  496. package/skills/platform/audit/refs/checklists-evidence-operations.md +144 -0
  497. package/skills/platform/audit/refs/checklists-gdpr-pci-evidence.md +213 -0
  498. package/skills/platform/audit/refs/checklists-soc2-hipaa.md +120 -0
  499. package/skills/platform/audit/refs/frameworks-gdpr-pci.md +225 -0
  500. package/skills/platform/audit/refs/frameworks-soc2-hipaa.md +228 -0
  501. package/skills/platform/compliance/SKILL.md +169 -0
  502. package/skills/platform/compliance/refs/checklists.md +303 -0
  503. package/skills/platform/compliance/refs/compliance.md +117 -0
  504. package/skills/platform/compliance/refs/frameworks.md +282 -0
  505. package/skills/platform/errors/SKILL.md +183 -0
  506. package/skills/platform/errors/refs/patterns.md +271 -0
  507. package/skills/platform/errors/refs/severity.md +264 -0
  508. package/skills/platform/gate-benchmark-rebaseline/SKILL.md +108 -0
  509. package/skills/platform/gh/refs/gh.md +105 -0
  510. package/skills/platform/gh-cli/SKILL.md +120 -0
  511. package/skills/platform/gh-cli/refs/automation.md +63 -0
  512. package/skills/platform/gh-cli/refs/gh-ops.md +103 -0
  513. package/skills/platform/gh-cli/refs/patterns.md +132 -0
  514. package/skills/platform/gh-cli/scripts/gh_ops.py +454 -0
  515. package/skills/platform/github-actions/SKILL.md +159 -0
  516. package/skills/platform/github-actions/refs/security.md +150 -0
  517. package/skills/platform/github-actions/refs/templates.md +230 -0
  518. package/skills/platform/github-actions/refs/troubleshooting.md +174 -0
  519. package/skills/platform/github-actions/scripts/workflow_gen.py +215 -0
  520. package/skills/platform/gitlab-ci/SKILL.md +140 -0
  521. package/skills/platform/gitlab-ci/refs/templates.md +223 -0
  522. package/skills/platform/gitlab-ci/refs/troubleshooting.md +213 -0
  523. package/skills/platform/glab-cli/SKILL.md +133 -0
  524. package/skills/platform/glab-cli/refs/ci-debugging.md +95 -0
  525. package/skills/platform/glab-cli/refs/glab-ops.md +78 -0
  526. package/skills/platform/glab-cli/refs/patterns.md +131 -0
  527. package/skills/platform/glab-cli/scripts/glab_ops.py +313 -0
  528. package/skills/platform/health/SKILL.md +177 -0
  529. package/skills/platform/health/refs/health.md +72 -0
  530. package/skills/platform/health/refs/sources.md +302 -0
  531. package/skills/platform/incident/refs/incident.md +136 -0
  532. package/skills/platform/infra/refs/infra.md +104 -0
  533. package/skills/platform/observability/SKILL.md +128 -0
  534. package/skills/platform/observability/refs/toolchain-discovery.md +243 -0
  535. package/skills/platform/prereq-doctor/SKILL.md +57 -0
  536. package/skills/platform/prereq-doctor/refs/tool-registry.md +58 -0
  537. package/skills/platform/traces/refs/traces.md +101 -0
  538. package/skills/product/acceptance-criteria/SKILL.md +193 -0
  539. package/skills/product/acceptance-criteria/refs/ac-anti-patterns.md +291 -0
  540. package/skills/product/acceptance-criteria/refs/ac-examples.md +277 -0
  541. package/skills/product/accessibility/SKILL.md +197 -0
  542. package/skills/product/accessibility/refs/aria-patterns-basics.md +250 -0
  543. package/skills/product/accessibility/refs/aria-patterns-dynamic.md +187 -0
  544. package/skills/product/accessibility/refs/aria-patterns-interactive.md +246 -0
  545. package/skills/product/accessibility/refs/audit-report-findings.md +248 -0
  546. package/skills/product/accessibility/refs/audit-report-results.md +276 -0
  547. package/skills/product/accessibility/refs/common-violations-html-css.md +270 -0
  548. package/skills/product/accessibility/refs/common-violations-interactive.md +303 -0
  549. package/skills/product/accessibility/refs/keyboard-testing-basics.md +222 -0
  550. package/skills/product/accessibility/refs/keyboard-testing-patterns.md +173 -0
  551. package/skills/product/accessibility/refs/screen-reader-testing-advanced.md +294 -0
  552. package/skills/product/accessibility/refs/screen-reader-testing-commands.md +255 -0
  553. package/skills/product/accessibility/refs/wcag-checklist.md +262 -0
  554. package/skills/product/analyze/SKILL.md +164 -0
  555. package/skills/product/analyze/refs/algorithms.md +238 -0
  556. package/skills/product/analyze/refs/sentiment-patterns.md +180 -0
  557. package/skills/product/imagery/SKILL.md +97 -0
  558. package/skills/product/imagery/alter/SKILL.md +105 -0
  559. package/skills/product/imagery/alter/refs/editing-reference.md +146 -0
  560. package/skills/product/imagery/create/SKILL.md +109 -0
  561. package/skills/product/imagery/create/refs/prompt-engineering.md +112 -0
  562. package/skills/product/imagery/create/refs/provider-reference.md +219 -0
  563. package/skills/product/imagery/review/SKILL.md +101 -0
  564. package/skills/product/imagery/review/refs/analysis-lenses.md +136 -0
  565. package/skills/product/imagery/review/refs/quality-gates.md +153 -0
  566. package/skills/product/imagery/scripts/analyze.sh +23 -0
  567. package/skills/product/imagery/scripts/edit.sh +14 -0
  568. package/skills/product/imagery/scripts/generate.sh +13 -0
  569. package/skills/product/imagery/scripts/provider.py +787 -0
  570. package/skills/product/listen/SKILL.md +175 -0
  571. package/skills/product/listen/refs/channels.md +220 -0
  572. package/skills/product/mockup/SKILL.md +106 -0
  573. package/skills/product/mockup/refs/templates.md +95 -0
  574. package/skills/product/refs/a11y.md +109 -0
  575. package/skills/product/refs/acceptance.md +79 -0
  576. package/skills/product/refs/align.md +67 -0
  577. package/skills/product/refs/analyze.md +77 -0
  578. package/skills/product/refs/elicit.md +67 -0
  579. package/skills/product/refs/listen.md +58 -0
  580. package/skills/product/refs/mockup.md +77 -0
  581. package/skills/product/refs/screenshot.md +59 -0
  582. package/skills/product/refs/strategy.md +77 -0
  583. package/skills/product/refs/synthesize.md +54 -0
  584. package/skills/product/refs/ux-review.md +68 -0
  585. package/skills/product/refs/ux.md +101 -0
  586. package/skills/product/requirements-analysis/SKILL.md +136 -0
  587. package/skills/product/requirements-analysis/refs/requirements-example-auth.md +264 -0
  588. package/skills/product/requirements-analysis/refs/requirements-example-export-integration.md +88 -0
  589. package/skills/product/requirements-analysis/refs/requirements-output-format-template.md +247 -0
  590. package/skills/product/requirements-analysis/refs/user-story-guide.md +296 -0
  591. package/skills/product/requirements-graph/SKILL.md +155 -0
  592. package/skills/product/requirements-graph/refs/examples.md +223 -0
  593. package/skills/product/requirements-graph/refs/schema.md +162 -0
  594. package/skills/product/requirements-migrate/SKILL.md +90 -0
  595. package/skills/product/requirements-navigate/SKILL.md +141 -0
  596. package/skills/product/requirements-navigate/refs/meta-templates.md +141 -0
  597. package/skills/product/screenshot/SKILL.md +147 -0
  598. package/skills/product/strategy/SKILL.md +198 -0
  599. package/skills/product/strategy/refs/frameworks.md +295 -0
  600. package/skills/product/strategy/refs/templates-competitive-market.md +299 -0
  601. package/skills/product/strategy/refs/templates-roi-value.md +207 -0
  602. package/skills/product/synthesize/SKILL.md +116 -0
  603. package/skills/product/synthesize/refs/journey-mapping.md +212 -0
  604. package/skills/product/synthesize/refs/prioritization.md +193 -0
  605. package/skills/product/ux-review/SKILL.md +164 -0
  606. package/skills/product/visual-direction/SKILL.md +137 -0
  607. package/skills/product/visual-review/SKILL.md +131 -0
  608. package/skills/runtime-exec/SKILL.md +138 -0
  609. package/skills/search/codebase-narrator/SKILL.md +131 -0
  610. package/skills/search/codebase-narrator/refs/output-template.md +100 -0
  611. package/skills/smaht/SKILL.md +72 -0
  612. package/skills/smaht/discovery/SKILL.md +65 -0
  613. package/skills/smaht/intent/SKILL.md +89 -0
  614. package/skills/smaht/propose-skills/SKILL.md +142 -0
  615. package/skills/smaht/refs/state.md +76 -0
  616. package/skills/swarm/SKILL.md +132 -0
  617. package/skills/swarm/refs/fan-out.md +104 -0
  618. package/skills/swarm/refs/independent-verification.md +86 -0
  619. package/skills/swarm/refs/receipts-and-evidence.md +69 -0
  620. package/skills/swarm/refs/recon-synthesis.md +87 -0
  621. package/skills/swarm/refs/ship-discipline.md +90 -0
  622. package/skills/wickedizer/SKILL.md +147 -0
  623. package/skills/wickedizer/refs/artifact-types.md +238 -0
  624. package/skills/wickedizer/refs/complexity.md +278 -0
  625. package/skills/wickedizer/refs/de-ai-pass.md +140 -0
  626. package/skills/wickedizer/refs/failure-modes.md +249 -0
  627. package/skills/wickedizer/refs/patterns.md +282 -0
  628. package/skills/wickedizer/refs/review.md +221 -0
  629. package/skills/wickedizer/refs/structure.md +282 -0
  630. package/skills/wickedizer/refs/voice-profile.md +125 -0
  631. package/skills/workflow/SKILL.md +132 -0
  632. package/skills/workflow/refs/archetype-adjustments.md +205 -0
  633. package/skills/workflow/refs/evidence.md +58 -0
  634. package/skills/workflow/refs/integration.md +130 -0
  635. package/skills/workflow/refs/risk-dimension-signals.md +260 -0
  636. package/skills/workflow/refs/scoring-rubric.md +49 -0
  637. package/skills/workflow/refs/signal-keywords.md +176 -0
  638. package/skills/workflow/refs/specialist-routing-rules.md +159 -0
  639. package/skills/worktrees/SKILL.md +87 -0
  640. package/skills/worktrees/refs/recipes.md +96 -0
@@ -0,0 +1,142 @@
1
+ ---
2
+ name: propose-skills
3
+ description: |
4
+ Mine recent Claude Code session transcripts to propose skills that would
5
+ automate repetitive patterns the user actually does. Read-only MVP — outputs a
6
+ markdown report only. No interactive UI, no scaffolding handoff in v1 (those
7
+ are v2/v3 follow-ups).
8
+
9
+ Use when: "find skills I should build", "what should I automate", "propose
10
+ skills from my sessions", "mine my history for skill ideas",
11
+ "session-mined skill builder", "skill discovery from past usage".
12
+ user-invocable: true
13
+ phase_relevance: ["*"]
14
+ archetype_relevance: ["*"]
15
+ ---
16
+
17
+ # Propose Skills (session-mined, MVP)
18
+
19
+ Detect recurring patterns in Claude Code session transcripts and emit a markdown
20
+ report of skill candidates. The framework grows from what the user *actually
21
+ does*, not from speculative authoring (#677).
22
+
23
+ ## Quick Reference
24
+
25
+ ```bash
26
+ # Default — current project, last 10 sessions
27
+ sh "${CLAUDE_PLUGIN_ROOT}/scripts/_python.sh" \
28
+ "${CLAUDE_PLUGIN_ROOT}/scripts/smaht/propose_skills.py"
29
+
30
+ # Scan a different project (use --project= because the slug starts with '-')
31
+ sh "${CLAUDE_PLUGIN_ROOT}/scripts/_python.sh" \
32
+ "${CLAUDE_PLUGIN_ROOT}/scripts/smaht/propose_skills.py" \
33
+ --project=-Users-me-Projects-other --limit 25
34
+
35
+ # Print structured JSON alongside the markdown report
36
+ sh "${CLAUDE_PLUGIN_ROOT}/scripts/_python.sh" \
37
+ "${CLAUDE_PLUGIN_ROOT}/scripts/smaht/propose_skills.py" --json
38
+ ```
39
+
40
+ **Output modes**:
41
+
42
+ - Default — prints the report file path on stdout (one line). Read the file,
43
+ summarize the top 3 candidates inline, and stop.
44
+ - `--json` — prints a JSON object on stdout with `report_path`, scan stats, and
45
+ the full `candidates` array. The markdown report is still written to disk.
46
+
47
+ Do not auto-invoke `/wg-scaffold` — this is a read-only proposer.
48
+
49
+ ## What It Detects (3 cheap detectors, no LLM)
50
+
51
+ | Kind | Trigger |
52
+ |------|---------|
53
+ | **Repeated tool sequence** | Same ordered N-tuple of tool names appears in >= 3 distinct sessions (N in [2, 5]). Homogeneous sequences like `Bash → Bash → Bash` are filtered. |
54
+ | **Repeated prompt template** | User prompts whose first 5 normalized words match across >= 3 sessions. Generic continuations (`yes`, `continue`) and Claude Code system envelopes (`<local-command-...>`, `<command-name>`) are filtered. |
55
+ | **Repeated bash shape** | Same first 2 tokens of a bash command across >= 3 sessions (e.g. `gh pr ...`). Generic file-inspection commands (`ls`, `cat`, `cd`, ...) are filtered. |
56
+
57
+ ## Pipeline
58
+
59
+ 1. **Locate sessions**: `${CLAUDE_CONFIG_DIR:-~/.claude}/projects/{project-slug}/*.jsonl`.
60
+ The analyzer honors `CLAUDE_CONFIG_DIR` so users with custom config dirs
61
+ (e.g. `$HOME/alt-configs/.claude`) get matched correctly. Default slug
62
+ is derived from the current working directory.
63
+ 2. **Parse**: each `.jsonl` line, extracting `tool_use` items from assistant
64
+ messages and the leading text of user messages. Robust against malformed
65
+ lines.
66
+ 3. **Privacy filter**: skip any session whose user prompt contains the literal
67
+ token `private` or `secret` (case-insensitive). The check runs on the
68
+ FULL untruncated prompt — a trigger token past the 200-char detector limit
69
+ still flags the session.
70
+ 4. **Detect**: run the 3 detectors over the parsed sessions. A candidate must
71
+ meet `MIN_FREQUENCY` (total occurrences) AND `MIN_SESSION_COUNT` (distinct
72
+ sessions) — those are independent counters, not the same number.
73
+ 5. **Dedupe**: drop any tool-sequence candidate that is a contiguous
74
+ subsequence of a more-frequent (or equal-frequency) longer parent.
75
+ 6. **Propose**: for each candidate, build a kebab-case slug, a frontmatter-ready
76
+ description (≤140 chars), and a `/wg-scaffold skill <name> --domain <d>`
77
+ suggestion. Domain is inferred from tool / bash keywords.
78
+ 7. **Render**: write a markdown report to
79
+ `tempfile.gettempdir()/wg-propose-skills-{timestamp}.md`. On macOS this
80
+ resolves to a per-user dir under `/var/folders/...`; on Linux it follows
81
+ `$TMPDIR` and falls back to `/tmp`. Print the report path (default mode)
82
+ or a JSON envelope including the full candidates array (`--json` mode).
83
+ 8. **Summarize inline**: read the top 3 candidates from the report and quote
84
+ them in the assistant reply.
85
+
86
+ ## Hard Constraints
87
+
88
+ - **Read-only.** Never writes outside `tempfile.gettempdir()`. Never modifies
89
+ session files.
90
+ - **Local-only.** No network, no telemetry, no LLM calls inside the analyzer.
91
+ - **stdlib-only.** Cross-platform Python — `pathlib.Path`,
92
+ `tempfile.gettempdir()`, no third-party deps.
93
+ - **Privacy-first.** Absolute paths under `$HOME` are scrubbed to `~/...` in the
94
+ report. Sessions mentioning `private` / `secret` are skipped entirely.
95
+ - **Heuristic, not deterministic.** Treat each candidate as a *prompt for
96
+ judgment*, not a directive. False positives are expected.
97
+
98
+ ## What v1 Does NOT Do
99
+
100
+ These are explicit v2 / v3 follow-ups and out of scope for this MVP:
101
+
102
+ - Interactive accept/reject UI.
103
+ - Direct handoff to `/wg-scaffold` or the `scaffolding` skill.
104
+ - LLM-based pattern extraction or summarization.
105
+ - Cross-project mining (only the current project's sessions are scanned).
106
+ - Propose agents, hooks, or commands — the issue scope is *skills only*.
107
+
108
+ ## Inline Summary Format
109
+
110
+ After running the script, the assistant should reply with something like:
111
+
112
+ ```
113
+ Report: /var/folders/.../wg-propose-skills-20260427T030000Z.md (4 candidates)
114
+
115
+ Top 3 candidates:
116
+ 1. run-curl-s — `curl -s …` shell pattern, 24 occurrences across 12 sessions
117
+ 2. run-pnpm-run — `pnpm run …` shell pattern, 9 occurrences across 6 sessions
118
+ 3. run-lsof-ti-4321 — `lsof -ti:4321 …` shell pattern, 5 occurrences across 5 sessions
119
+
120
+ Run `/wg-scaffold skill <name> --domain <d>` for any candidate that's
121
+ worth building.
122
+ ```
123
+
124
+ Exit codes:
125
+
126
+ - `0` — graceful run (even when no candidates are found).
127
+ - `1` — failed to write the report file (I/O error after analysis succeeded).
128
+
129
+ ## Related
130
+
131
+ - `/wg-scaffold skill ...` — manual scaffolding (the v2 handoff target).
132
+ - `hookify:hookify` — different direction (proposes *hooks*, not skills).
133
+ - `claude-code-setup:claude-automation-recommender` — codebase-level analysis,
134
+ not session-level.
135
+
136
+ ## Provenance
137
+
138
+ - Issue: [#677](https://github.com/mikeparcewski/wicked-garden/issues/677)
139
+ - Helper script: `scripts/smaht/propose_skills.py`
140
+ - Tests: `tests/smaht/test_propose_skills.py` (3 detectors + dedupe + privacy
141
+ scrub + end-to-end smoke).
142
+ - Scenario: `scenarios/smaht/propose-skills-shape.md`.
@@ -0,0 +1,76 @@
1
+ # smaht:state — Session State + Recent Events Rubric
2
+
3
+ Full rubric sourced from `commands/smaht/state.md`.
4
+ Snapshot and report current session state and recent events.
5
+
6
+ ## Step 1: Load SessionState
7
+
8
+ ```bash
9
+ sh "${CLAUDE_PLUGIN_ROOT}/scripts/_python.sh" -c "
10
+ import sys, json
11
+ from pathlib import Path
12
+ sys.path.insert(0, '${CLAUDE_PLUGIN_ROOT}/scripts')
13
+ from _session import SessionState
14
+ state = SessionState.load()
15
+ print(json.dumps(state.to_dict() if hasattr(state, 'to_dict') else state.__dict__, indent=2, default=str))
16
+ "
17
+ ```
18
+
19
+ ## Step 2: Display Session State
20
+
21
+ ```markdown
22
+ ## Session State
23
+
24
+ **Turn count**: {turn_count}
25
+ **Active chain**: {active_chain_id or "(none)"}
26
+ **Active crew project**: {active_project or "(none)"}
27
+ **Current phase**: {current_phase or "(none)"}
28
+ **Session goal**: {session_goal or "(not set)"}
29
+ ```
30
+
31
+ Skip this section if `--state` is not the only flag (i.e. when `--events` is also given, show both; when `--state` only, skip events).
32
+
33
+ ## Step 3: Display Recent Events
34
+
35
+ Pull the last N events from the wicked-bus (default 10, override with `--events N`):
36
+
37
+ ```bash
38
+ sh "${CLAUDE_PLUGIN_ROOT}/scripts/_python.sh" -c "
39
+ import sys, json
40
+ from pathlib import Path
41
+ sys.path.insert(0, '${CLAUDE_PLUGIN_ROOT}/scripts')
42
+ try:
43
+ from _bus import tail_events
44
+ events = tail_events(limit=${EVENTS_LIMIT:-10})
45
+ for e in events:
46
+ print(f\" [{e.get('event_type','?')}] {e.get('data',{}).get('summary','')}\")
47
+ except Exception as exc:
48
+ print(f'bus unavailable: {exc}')
49
+ "
50
+ ```
51
+
52
+ ```markdown
53
+ ## Recent Events (last {N})
54
+
55
+ {bulleted list of event_type + summary}
56
+ ```
57
+
58
+ ## Step 4: v11 Project Context (when `--project <name>` is given)
59
+
60
+ The v6-era "active crew project" auto-resolver was deleted in v11. When the
61
+ caller passes `--project <name>`, look up via phase_manager:
62
+
63
+ ```markdown
64
+ ## Project (v11 archetype-mode)
65
+
66
+ **Name**: {name}
67
+ **Archetype**: {v11_archetype}
68
+ **Current phase**: {current_phase}
69
+ **Phase plan**: {phase_plan}
70
+ **Is complete**: {is_complete}
71
+ ```
72
+
73
+ ## When Context Is Thin
74
+
75
+ If the output above doesn't surface what you need, invoke `wicked-garden:ground`
76
+ to pull richer brain + bus context for the current task.
@@ -0,0 +1,132 @@
1
+ ---
2
+ name: wicked-garden-swarm
3
+ context: fork
4
+ description: |
5
+ Parallel verification-swarm orchestration playbook: fan out N scoped
6
+ subagents over N units of work (repos / modules / files), then run a
7
+ SEPARATE verifier wave that re-derives each result from a clean state —
8
+ self-graded "done" is rejected. Composes the crew agents, the qe
9
+ semantic-reviewer, /wicked-garden:prove, wicked-vault attestation, and
10
+ the worktrees + deliberate skills rather than reinventing them. This is
11
+ multi-AGENT parallel execution+verification; for independent multi-MODEL
12
+ perspectives use jam:council instead.
13
+
14
+ Use when: multi-unit / fan-out work ("review every repo", "resolve the
15
+ backlog with proof", "apply this across all modules", "audit each
16
+ service"), high-blast-radius changes that need independent verification,
17
+ or any run where a claimed "done" must be re-derivable from receipts.
18
+ status: stable
19
+ phase_relevance: ["build", "test", "review"]
20
+ archetype_relevance: ["build", "review", "migrate", "modernize", "incident"]
21
+ ---
22
+
23
+ # Swarm — parallel verification swarm
24
+
25
+ Orchestrate **N units of work in parallel** (one scoped subagent per unit),
26
+ then **independently verify** every result with a separate wave of agents that
27
+ re-derive "done" from a clean state. The swarm's value is not the parallelism —
28
+ it's that **no agent grades its own work**. A claimed "tests pass" / "done" that
29
+ can't be re-derived from receipts is rejected.
30
+
31
+ > **Swarm vs council.** `jam:council` gets independent *multi-model* opinions on
32
+ > one decision (different vendors answer the same scaffold). Swarm gets parallel
33
+ > *multi-agent* execution + verification over many units. Use council to decide;
34
+ > use swarm to execute-and-prove. They compose: run a council inside the verify
35
+ > wave for a high-stakes verdict (see `refs/independent-verification.md`).
36
+
37
+ ## Compose, don't reinvent
38
+
39
+ This skill is orchestration prose. Every primitive it needs already exists in
40
+ the garden — reference these, do not duplicate them:
41
+
42
+ | Need | Use (existing garden piece) |
43
+ |------|------------------------------|
44
+ | Per-unit implementer subagent | `agents/crew/implementer.md` (already does parallel-when-independent + evidence) |
45
+ | Per-unit recon subagent | `agents/crew/researcher.md` (read-only context gathering) |
46
+ | Independent semantic verdict | `agents/qe/semantic-reviewer.md` (independent-by-construction; refuses to attest its own work) |
47
+ | Fallback reviewer | `agents/crew/reviewer.md` (reviewer-separation + external-review rules baked in) |
48
+ | Re-derive a claim (the receipt) | `/wicked-garden:prove` (run + freeze evidence + gate; fail-closed) |
49
+ | Hard-gate independent sign-off | `/wicked-garden:prove --with-attestations` → `wicked-vault attest` (evaluator ≠ creator, G10) |
50
+ | Blast-radius / scope lens | `wicked-garden:deliberate` (lens 2 + 3) and `/wicked-garden:search:blast-radius` |
51
+ | Per-unit isolation + commit hygiene | `wicked-garden:worktrees` (dangling-commit trust-but-verify) |
52
+ | Phase shape per unit | `wicked-garden:archetype` refs (`build` / `review` / `migrate`) |
53
+ | Multi-model verdict in a wave | `wicked-garden:jam:council` |
54
+
55
+ ## The wave loop
56
+
57
+ ```
58
+ 0. recon → parallel researcher agents → concept catalog + per-unit profiles
59
+ synthesize → fit-matrix + relevance tiers
60
+ checkpoint → ONE structured scope question to the user (skip under full latitude)
61
+ 1. implement → N parallel implementer agents (one per unit, self-contained brief)
62
+ each writes DETAILED artifacts to disk, returns a ~150-word summary
63
+ 2. verify → M parallel verifier agents (SEPARATE from implementers)
64
+ re-run from clean state, read the ACTUAL diff, render PASS/FAIL/PARTIAL
65
+ 3. receipts → /wicked-garden:prove per claim; hard gates add --with-attestations
66
+ 4. ship → branch per unit, conventional commits, CI-green, independent review,
67
+ clean merge tree, tag-driven release (only when asked)
68
+ ```
69
+
70
+ Each numbered step has a ref. Waves hand off **via disk artifacts**, never via
71
+ the orchestrator's context — that is what keeps the parent lean and the run
72
+ auditable.
73
+
74
+ ## Orchestrator hygiene (the parent context stays lean)
75
+
76
+ - **Detail to disk, summary to context.** Subagents write the full profile /
77
+ plan / diff / receipt to the scratch dir and return ≤150 words. Never let a
78
+ subagent dump raw output into your context.
79
+ - **One message, many Task calls** for each wave — that is what makes it
80
+ parallel. A serial run with no documented `serial_reason` is a protocol miss
81
+ (same rule `agents/crew/implementer.md` enforces).
82
+ - **Background long/external work** and synthesize on completion rather than
83
+ blocking the wave.
84
+ - **The verifier is a different agent than the implementer.** If the same agent
85
+ type did the work, the verdict is a self-grade — `agents/qe/semantic-reviewer.md`
86
+ and the vault `attest` both refuse `evaluator == creator`.
87
+
88
+ ## The two reusable briefs
89
+
90
+ The mechanics that make this repeatable are the **briefs** handed to each wave.
91
+ Both live in `refs/fan-out.md` (implementer) and `refs/independent-verification.md`
92
+ (verifier) as copy-paste templates. The shape:
93
+
94
+ - **Implementer brief** (per unit): read THIS unit's own rules/conventions →
95
+ impact analysis (blast radius) BEFORE changing → implement with **in-scope
96
+ tech-debt cleanup only** (no opportunistic refactor sprawl) → functionally
97
+ test **proportional to blast radius** → write artifacts to disk → return a
98
+ concise summary.
99
+ - **Verifier brief** (per unit): ignore the implementer's prose → re-run the
100
+ suite/build from clean → read the ACTUAL diff → check over-claims (e.g. a
101
+ claimed "pre-existing failure" must actually fail on the BASE commit) →
102
+ render PASS / FAIL / PARTIAL → write the authoritative receipt.
103
+
104
+ ## Honest marking (no padding)
105
+
106
+ Mark every finding `GAP` / `PARTIAL` / `ALREADY-COVERED`. Surface
107
+ reverse-transfers and "you're already ahead of this" honestly. **A short true
108
+ list beats a long speculative one.** Record considered-and-rejected items
109
+ explicitly so they read as weighed, not missed. Details in
110
+ `refs/receipts-and-evidence.md`.
111
+
112
+ ## Recon-first, then checkpoint
113
+
114
+ Before an expensive fan-out, run the recon wave and synthesize a fit-matrix +
115
+ relevance tiers, then **checkpoint scope with the user in a single structured
116
+ question**. Under an explicit goal / full latitude, proceed without asking.
117
+ Full procedure in `refs/recon-synthesis.md`.
118
+
119
+ ## Disk-artifact layout (waves hand off here)
120
+
121
+ A scratch dir (the worked example this playbook was distilled from used
122
+ `.cross-pollination/`) with a top synthesis/index doc, per-unit
123
+ profile/plan/review/receipt files, and a deferred-items log. Exact tree in
124
+ `refs/recon-synthesis.md` §layout and `refs/receipts-and-evidence.md`.
125
+
126
+ ## Refs
127
+
128
+ - [refs/recon-synthesis.md](refs/recon-synthesis.md) — recon wave, fit-matrix, relevance tiers, the single checkpoint question, scratch-dir layout
129
+ - [refs/fan-out.md](refs/fan-out.md) — parallel implementer wave + the **implementer brief template**, impact analysis, in-scope cleanup
130
+ - [refs/independent-verification.md](refs/independent-verification.md) — the verifier wave + the **verifier brief template**, isolation, over-claim kills, PASS/FAIL/PARTIAL
131
+ - [refs/receipts-and-evidence.md](refs/receipts-and-evidence.md) — verbatim receipts, prove/vault/wicked-testing composition, honest GAP/PARTIAL/ALREADY-COVERED marking
132
+ - [refs/ship-discipline.md](refs/ship-discipline.md) — branch-per-unit, conventional commits, CI-green gate, independent review + resolve, clean merge tree, tag-driven release
@@ -0,0 +1,104 @@
1
+ # Fan-out — the parallel implementer wave
2
+
3
+ Dispatch **N independent subagents in parallel**, one per unit of work
4
+ (repo / module / file / service). One message, multiple `Task` calls — that
5
+ is what makes it a swarm and not a loop.
6
+
7
+ Use `agents/crew/implementer.md` as the agent. It already encodes the rules
8
+ that matter here: parallel-when-independent dispatch, structured evidence in
9
+ every `TaskUpdate`, and the guardrails (never auto-proceed on deploys / deletes /
10
+ schema migrations). This ref adds the **per-unit brief** that scopes each one.
11
+
12
+ ## When a unit is independent
13
+
14
+ A unit is safe to fan out in parallel when it:
15
+ - touches disjoint files from the other units,
16
+ - shares no mutable state with them, and
17
+ - has no producer→consumer ordering against them.
18
+
19
+ If two units edit the same file or one's output feeds another, either serialize
20
+ those two (and record a `serial_reason`) or merge them into one unit. Everything
21
+ else runs concurrently.
22
+
23
+ ## The implementer brief template
24
+
25
+ Each subagent gets a **tight, self-contained** brief. It must not need the
26
+ orchestrator's context to do its job — everything it needs is in the brief or
27
+ discoverable from the unit itself.
28
+
29
+ ```
30
+ You are the swarm implementer for unit: <unit-name> (<path / repo URL>).
31
+ You run in parallel with sibling implementers on other units. You share no
32
+ state with them. Do not touch anything outside this unit.
33
+
34
+ SCRATCH DIR: <scratch>/<unit-name>/ (create it; write all detail here)
35
+
36
+ 1. GROUND IN THE UNIT'S OWN RULES FIRST.
37
+ Read this unit's own conventions before changing anything: its
38
+ AGENTS.md / CLAUDE.md / CONTRIBUTING, lint+test config, and any
39
+ wicked-understanding repo playbook (add-feature / fix-bug / write-tests).
40
+ Follow THIS unit's method, not a generic one.
41
+
42
+ 2. IMPACT ANALYSIS (blast radius) BEFORE you change anything.
43
+ What does this change touch? What depends on it? Use
44
+ /wicked-garden:search:blast-radius (or grep the call sites) and the
45
+ deliberate lens ("map the blast radius: what else shares this root cause").
46
+ Write blast-radius.md to your scratch dir. The blast radius SETS YOUR
47
+ TEST BAR (step 4) — a wide radius demands more verification.
48
+
49
+ 3. IMPLEMENT — in scope only.
50
+ - Make the smallest change that satisfies the goal.
51
+ - In-scope tech-debt cleanup ONLY: fix debt you are already editing.
52
+ NO opportunistic refactor sprawl — drift is the #1 cause of inflated
53
+ cycles (same rule as the build archetype's implement phase).
54
+ - Fix ROOT causes, not symptoms.
55
+
56
+ 4. FUNCTIONALLY TEST, proportional to blast radius.
57
+ | blast radius | test bar |
58
+ |--------------|----------|
59
+ | low (leaf, reversible) | one targeted test that exercises the change |
60
+ | medium | unit tests + 1-2 integration |
61
+ | high (shared code, many callers) | unit + integration + an acceptance check |
62
+ Run the unit's REAL test command. Capture exact command + output + exit code.
63
+
64
+ 5. WRITE DETAILED ARTIFACTS TO DISK (not to your reply):
65
+ <scratch>/<unit-name>/blast-radius.md, plan.md, diff.patch (or commit SHA),
66
+ test-output.txt (verbatim, with exit code), assumptions.md.
67
+
68
+ 6. RETURN A CONCISE SUMMARY (~150 words MAX). Include:
69
+ - what changed (1-2 sentences) and the scope you held to,
70
+ - the blast-radius verdict (low/medium/high),
71
+ - the test command + PASS/FAIL + exit code,
72
+ - the artifact paths,
73
+ - the base commit SHA you started from (the verifier needs it),
74
+ - anything you deferred (so it lands in the deferred log, not silently dropped).
75
+ Do NOT paste diffs or raw logs into the summary — those are on disk.
76
+ ```
77
+
78
+ ## Why the brief is shaped this way
79
+
80
+ - **Self-contained** → the orchestrator's context stays lean; the subagent can
81
+ run in an isolated worktree without back-and-forth.
82
+ - **Rules-first** → a unit's own conventions win over a generic house style;
83
+ this is the difference between a change that merges and one that bounces.
84
+ - **Impact analysis before code** → you cannot pick the right test bar until you
85
+ know the blast radius. This is the hinge that makes verification proportional.
86
+ - **In-scope cleanup only** → bounded debt repair without scope creep.
87
+ - **Detail to disk, ~150 words back** → the receipts are auditable and the
88
+ verify wave reads the artifacts, not the implementer's prose.
89
+
90
+ ## Isolation + commit hygiene
91
+
92
+ When implementers commit (each on its own branch — see `refs/ship-discipline.md`),
93
+ follow `wicked-garden:worktrees`: a subagent's "Commit SHA: abc1234" can be a
94
+ **dangling commit** that `git gc` will collect once its worktree is removed.
95
+ **Trust-but-verify every reported SHA** with the ancestry check before you treat
96
+ the work as landed. This matters double in a swarm because many agents commit
97
+ concurrently.
98
+
99
+ ## Hand-off
100
+
101
+ When the wave returns, you have N concise summaries in context and N detailed
102
+ artifact sets on disk. Do **not** start verifying inline — dispatch the
103
+ **separate** verify wave (`refs/independent-verification.md`), handing each
104
+ verifier the unit's scratch dir + base commit SHA.
@@ -0,0 +1,86 @@
1
+ # Independent verification — the verify wave (the core)
2
+
3
+ This is the mechanism the whole skill exists for. The verifier is a **separate
4
+ agent from the implementer** that **re-derives** each result from a clean state.
5
+ Self-graded "done" is rejected. This is the vault / `prove` ethos applied to a
6
+ swarm: a claim is only true if it can be recomputed from frozen evidence.
7
+
8
+ > **Independence is structural, not polite.** Use a *different* agent type than
9
+ > the one that did the work. `agents/qe/semantic-reviewer.md` is independent by
10
+ > construction and **refuses to attest code it authored**; `wicked-vault attest`
11
+ > fails closed when `evaluator == creator` (G10). If you let the implementer
12
+ > verify itself, you have a self-grade — the one thing this skill forbids.
13
+
14
+ ## Pick the verifier agent
15
+
16
+ | Verdict needed | Agent |
17
+ |----------------|-------|
18
+ | Does the code do what the spec/AC MEANS? | `agents/qe/semantic-reviewer.md` (opus, independent-by-construction) |
19
+ | General correctness when no specialist fits | `agents/crew/reviewer.md` (has reviewer-separation + external-review baked in) |
20
+ | High-stakes verdict needing multiple opinions | `wicked-garden:jam:council` (independent multi-model) inside the wave |
21
+ | The raw "did the suite actually pass" receipt | `/wicked-garden:prove` (run + gate) — see `refs/receipts-and-evidence.md` |
22
+
23
+ Run M verifiers in parallel — one message, multiple `Task` calls — one per unit.
24
+
25
+ ## The verifier brief template
26
+
27
+ ```
28
+ You are the swarm VERIFIER for unit: <unit-name>. You did NOT implement this.
29
+ Your job is to re-derive the result from a clean state and render a verdict.
30
+ Trust nothing the implementer asserted — re-derive it.
31
+
32
+ INPUTS: <scratch>/<unit-name>/ (the implementer's artifacts) and
33
+ BASE COMMIT SHA: <sha> (the state before the change).
34
+
35
+ 1. RE-RUN FROM CLEAN.
36
+ Check out / reset to a clean tree. Run the unit's REAL build + test suite
37
+ yourself. Do not read the implementer's test-output.txt as truth — produce
38
+ your own. Capture exact command + full output + exit code.
39
+
40
+ 2. READ THE ACTUAL DIFF, not the prose.
41
+ git diff <base-sha>..HEAD (or the diff.patch). Verify the change is what the
42
+ summary claimed, scoped where it claimed, with no smuggled-in extra edits.
43
+
44
+ 3. KILL FORCE-FITS AND OVER-CLAIMS.
45
+ - If the implementer said a failure is "pre-existing", CHECK OUT THE BASE
46
+ COMMIT and confirm it actually fails there. A "pre-existing failure" that
47
+ passes on base is a regression the implementer introduced — FAIL.
48
+ - If a test was weakened, skipped, or its assertion gutted to go green — FAIL.
49
+ - If the change does less than claimed — PARTIAL, and say exactly what's missing.
50
+
51
+ 4. RENDER THE VERDICT: PASS / FAIL / PARTIAL.
52
+ - PASS: re-ran clean, diff matches claim, no over-claims, tests genuinely green.
53
+ - PARTIAL: works but incomplete / claim overstated — list the gap.
54
+ - FAIL: does not re-derive — name the exact command + output that disproves it.
55
+
56
+ 5. WRITE THE AUTHORITATIVE RECEIPT to <scratch>/<unit-name>/receipt.md:
57
+ verdict, the exact command(s) you ran, their verbatim output + exit codes,
58
+ the base SHA and head SHA, and a one-line rationale. This receipt — not the
59
+ implementer's summary — is the record of truth for this unit.
60
+
61
+ 6. RETURN ~150 words: verdict + the single most load-bearing piece of evidence
62
+ (the command + exit code that proves it) + receipt path.
63
+ ```
64
+
65
+ ## The wave structure
66
+
67
+ ```
68
+ implementers wave → (disk artifacts) → verifiers wave → (receipts) → prove gate
69
+ ```
70
+
71
+ - The two waves never run as one agent. The hand-off is **disk artifacts**, so
72
+ the verifier starts from the implementer's outputs but re-derives the result
73
+ independently.
74
+ - A unit is only "done" when its `receipt.md` says PASS **and** the claim is
75
+ re-derived through `/wicked-garden:prove` (next ref). A FAIL or PARTIAL goes
76
+ back to a fresh implementer slice — the original implementer does not get to
77
+ argue its way to PASS.
78
+
79
+ ## Why re-derivation beats assertion
80
+
81
+ A traceability/claim heuristic reports an untagged-but-correct change as
82
+ "missing" and a tagged-but-wrong one as "done" — both wrong (this is exactly
83
+ why `semantic_review.py` is only a pre-filter and `agents/qe/semantic-reviewer.md`
84
+ does the real read). The verifier closes that gap: it judges by re-running and
85
+ reading, not by trusting a label or a summary. The verdict that **names the gap**
86
+ is the value; never inflate to PASS to be helpful.
@@ -0,0 +1,69 @@
1
+ # Receipts & evidence — claims must be re-derivable
2
+
3
+ A swarm produces **receipts, not assertions**. Every "done" / "tests pass" /
4
+ "build clean" must be re-derivable from frozen evidence: the **exact command**,
5
+ its **real output**, **exit code**, and the **commit SHA** it ran against. If you
6
+ can't re-derive it, it isn't proven — it's a claim, and claims are rejected.
7
+
8
+ ## Compose the garden's evidence machinery — don't hand-roll it
9
+
10
+ | Mechanism | Use it for |
11
+ |-----------|------------|
12
+ | `/wicked-garden:prove <claim> --by "<cmd>" [--verifier ...]` | The one-line receipt: runs the command, freezes its real exit code as wicked-vault evidence, gates by **re-running** the verifier. Exit 0 only on a re-derived PASS; **fail-closed** (exit 3) when the backend is down — never a vacuous pass. Works on **interim** artifacts too (prove a produce the moment it exists). |
13
+ | `/wicked-garden:prove ... --with-attestations` | Hard gates (review / incident / migrate). Stays REJECT (`UNATTESTED`) until an **independent** evaluator runs `wicked-vault attest <id> --opinion pass`. The doer's own evidence cannot satisfy it — that is the anti-self-grade point. |
14
+ | `wicked-vault attest <id> --opinion pass --evaluator <who>` | The independent sign-off itself. Fails closed on `evaluator == creator` and on weak/ambient identity (record under an explicit `--actor`, default `garden-prove`). |
15
+ | `wicked-testing:*` verdicts (writer → executor → reviewer, isolated) | When the unit needs a full evidence-gated acceptance verdict rather than a single command receipt. The reviewer is isolated from execution — same independence principle as the verify wave. |
16
+
17
+ This is the **Sentinel rule** made concrete: a done-claim needs a *re-derived
18
+ verdict*, not a self-report. `/wicked-garden:prove` is the verb you reach for by
19
+ reflex before telling the user a unit is done.
20
+
21
+ ## What a receipt looks like (verbatim, never paraphrased)
22
+
23
+ Each unit's `receipt.md` (written by the **verifier**, not the implementer) holds:
24
+
25
+ ```
26
+ unit: <unit-name>
27
+ verdict: PASS | FAIL | PARTIAL
28
+ base_sha: <sha the change started from>
29
+ head_sha: <sha after the change>
30
+ command: <the exact command run, copy-pasteable>
31
+ exit_code: <real exit code>
32
+ output: |
33
+ <verbatim stdout/stderr — the real thing, not a summary>
34
+ prove: <the /wicked-garden:prove JSON verdict: satisfied + re_derived>
35
+ attestation: <artifact id + evaluator, for hard gates; else "n/a">
36
+ rationale: <one line>
37
+ ```
38
+
39
+ Never write "tests pass" without the command + output + exit code that proves
40
+ it. A receipt a reviewer can't re-run is not a receipt.
41
+
42
+ ## Honest marking — no padding
43
+
44
+ The swarm's credibility comes from honesty, not volume. Mark every finding:
45
+
46
+ - **GAP** — genuinely missing; should be added.
47
+ - **PARTIAL** — half-there; name exactly what's missing.
48
+ - **ALREADY-COVERED** — the unit is already ahead of this; say so plainly.
49
+
50
+ Rules:
51
+ - **Surface reverse-transfers and "you're already ahead" honestly.** If a unit
52
+ already does the thing better than the proposed change, that's a finding, not
53
+ an omission — and sometimes the change should flow the *other* way.
54
+ - **A short true list beats a long speculative one.** Don't pad the fit-matrix
55
+ with maybes to look thorough.
56
+ - **Record considered-and-rejected items explicitly** in `deferred.md` so they
57
+ read as *weighed, not missed*. "Considered X, rejected because Y" is a
58
+ stronger signal than silence.
59
+ - **The verdict that names the gap is the value.** Never inflate a PARTIAL to
60
+ PASS, or a GAP to ALREADY-COVERED, to be agreeable.
61
+
62
+ ## Tie it back to the gate
63
+
64
+ A unit is shippable only when: its `receipt.md` verdict is PASS **and**
65
+ `/wicked-garden:prove` returns `satisfied: true, re_derived: true` for the
66
+ claim **and** (for hard-gate work) an independent `wicked-vault attest --opinion
67
+ pass` exists from an evaluator that is not the implementer. Anything short of
68
+ that is PARTIAL or FAIL and loops back to a fresh implementer slice — see
69
+ `refs/independent-verification.md`.