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,117 @@
1
+ # decide — pick between options with an ADR
2
+
3
+ When 2+ paths are viable AND the choice is load-bearing (changing it later
4
+ is expensive). Produces an ADR-shaped artifact that records the chosen
5
+ path and the reasons.
6
+
7
+ ## Phase shape
8
+
9
+ | Phase | Goal |
10
+ |---------|------------------------------------------------------------|
11
+ | brief | One-paragraph framing: the problem, the stakes, the constraints. |
12
+ | options | 2–4 named alternatives, each with a one-paragraph description. |
13
+ | score | Qualitative scoring on the dimensions that matter for this decision. |
14
+ | record | Write the ADR. Pick a path. Note the trade-offs you accepted. |
15
+
16
+ ## Produces
17
+
18
+ - An **ADR** (Architecture Decision Record) at `docs/decisions/{N}-{slug}.md`
19
+ or `docs/adr/{N}-{slug}.md`, following whatever ADR convention the repo
20
+ uses. New repos: use the standard ADR template.
21
+ - A **decision artifact**: which option was picked, and the explicit
22
+ trade-offs accepted by picking it.
23
+
24
+ The select gate **re-derives** these via `wicked-loom` (`scripts/qe/vault_gate.py` shells `wicked-loom gate`, which shells `wicked-vault cross-check`): the ADR's bytes are re-hashed and its
25
+ structure verifier re-run, never trusting a cached "ADR written". The
26
+ check is **deterministic document-structure** — it proves the ADR
27
+ contains the required sections, not that the call was wise. wicked-loom (the gate engine) and wicked-vault (the evidence backend) are **required** peers (installed by `/wicked-garden:setup`); if loom is unresolvable — or the vault behind it absent — the gate **fails closed** (`gate: "unavailable"`,
28
+ `satisfied: false`) rather than self-asserting a PASS. `--no-require`
29
+ opts a throwaway/low-rigor decision back to the doctrine-light
30
+ claim-only path. (A judgment tier — `wicked-vault analyze-evidence` —
31
+ exists for "was this the right call" sign-off; it's optional here and
32
+ not part of this discrete gate.)
33
+
34
+ ## HITL
35
+
36
+ `discrete:select-gate` — the user (or a council) picks. Don't auto-select.
37
+
38
+ ## How to run
39
+
40
+ ### brief
41
+
42
+ 1. Restate the problem in one paragraph. What changes if we pick wrong?
43
+ 2. Name the constraints: budget, time, team capability, blast radius,
44
+ reversibility.
45
+ 3. If reversibility is HIGH and blast radius is LOW, **stop and ask**
46
+ whether this even needs an ADR. Cheap-to-reverse decisions don't
47
+ benefit from this archetype's overhead.
48
+ 4. If a vault is resolvable
49
+ (`scripts/qe/vault_gate.py resolve` → `available: true`), declare the
50
+ re-derivable contract so the select gate has a bar to check against:
51
+ `wicked-vault init` (once per repo) then
52
+ `wicked-vault declare-contract --scope <scope> --phase decide --spec contract.json`.
53
+ `required_evidence` pins `adr` (kind `adr-doc`) to a `regex_match`
54
+ verifier proving the ADR carries every required section — Status,
55
+ Context, Decision, Consequences — and pins `decision-artifact` to a
56
+ presence/structure check (`regex_match`, or `commit_exists` once the
57
+ ADR is committed). Skip silently if no vault.
58
+
59
+ ### options
60
+
61
+ 1. Generate 2–4 distinct options. Don't pad — false alternatives weaken
62
+ the decision.
63
+ 2. For each option:
64
+ - One-paragraph description.
65
+ - Cost: time + complexity + ongoing maintenance.
66
+ - Reversibility: how hard is undoing this in 6 months?
67
+ - Failure mode: what's the worst plausible outcome?
68
+
69
+ ### score
70
+
71
+ 1. Pick 3–5 dimensions that actually matter for this decision (not a
72
+ generic checklist). Examples: latency, operational complexity,
73
+ contract stability, team familiarity, vendor lock-in.
74
+ 2. Score each option qualitatively (LOW/MEDIUM/HIGH) on each dimension.
75
+ 3. The score is a *thinking aid*, not a winner-picker. The user picks.
76
+
77
+ ### record
78
+
79
+ 1. Use `wicked-garden:jam:council` for a multi-model second opinion when
80
+ the stakes warrant it.
81
+ 2. Write the ADR. Sections: context, options considered, decision,
82
+ consequences, trade-offs accepted.
83
+ 3. Commit the ADR with the implementing change, not separately. The ADR
84
+ is the explanation for the diff.
85
+ 4. Record the ADR as re-derivable evidence (vault present):
86
+ `wicked-vault record --scope <scope> --phase decide --claim adr
87
+ --kind adr-doc --source "<path to the ADR>"
88
+ --criteria "ADR has Status / Context / Decision / Consequences"
89
+ --verifier 'regex_match:(?ims)^#+\s*(status|context|decision|consequences)\b'
90
+ --run`, then record `decision-artifact` against the committed ADR
91
+ (`--verifier commit_exists:<sha>` once committed, else a `regex_match`
92
+ on the decision line). The `--run` hashes the file's bytes now and the
93
+ gate re-derives the structure later — a claim you can't re-derive is
94
+ not evidence. No vault → fall back to `evidence_tracker.py claim`.
95
+
96
+ ## When to stop
97
+
98
+ Decide is done when the produces-gate is satisfied AND the chosen option
99
+ is named. Check the gate — don't self-assert it:
100
+ `scripts/qe/prove.py <claim> --by "<command>" --scope <scope> --phase decide` (frictionless, single claim — re-derive, don't assert) — or the full multi-claim contract via `scripts/qe/vault_gate.py gate <project_dir> --scope <scope> --phase decide`
101
+ (exit 0 = satisfied). This is a re-derived PASS over the declared
102
+ contract — the ADR was re-hashed and its structure verifier re-run. A
103
+ REJECT means the recorded ADR doesn't clear its contract (a missing
104
+ section, an uncommitted artifact) — fix the document, not the claim. An
105
+ `unavailable` verdict means the required vault isn't installed — run
106
+ `/wicked-garden:setup`. Then hand off to `build` (implement the chosen
107
+ path), `migrate` (when the choice is a shape change), or `ship` (when the
108
+ choice is a rollout strategy).
109
+
110
+ ## Anti-patterns
111
+
112
+ - **Don't run decide for cheap-reversible choices.** A feature flag that
113
+ defaults to off does not need an ADR. The overhead exceeds the benefit.
114
+ - **Don't pad to 4 options.** Three honest options beats four with one
115
+ filler.
116
+ - **Don't quantify when you don't have data.** Qualitative scoring is
117
+ fine; spurious numbers are worse than honest LOW/MEDIUM/HIGH.
@@ -0,0 +1,66 @@
1
+ # explore — diverge then converge on open problems
2
+
3
+ When the problem space is genuinely open and a single answer would be
4
+ premature. Produces an option set or hypothesis, **not a decision** — that's
5
+ the `decide` archetype's job.
6
+
7
+ ## Phase shape
8
+
9
+ | Phase | Goal |
10
+ |----------|----------------------------------------------------------|
11
+ | frame | Name the problem in one sentence. Surface assumptions. |
12
+ | diverge | Generate 4–8 distinct options. Aim for variety, not quality. |
13
+ | converge | Cluster, score qualitatively, and pick a top-3 to take forward. |
14
+
15
+ ## Produces
16
+
17
+ - **Option set**: 3–8 named alternatives with one-line rationales.
18
+ - **Hypothesis** (when the prompt is research-shaped): testable statement
19
+ with a falsification condition.
20
+
21
+ ## HITL
22
+
23
+ `continuous` — the user is a participant. Don't run explore as a closed
24
+ loop; check in after frame, after diverge, before convergence.
25
+
26
+ ## How to run
27
+
28
+ ### frame
29
+
30
+ 1. Restate the problem in one sentence in your own words. Confirm with the user.
31
+ 2. List 2–4 assumptions you're making. Get the user to mark them
32
+ "true / unknown / false".
33
+ 3. If a critical assumption is "unknown", branch to `specify` to elicit
34
+ facts before continuing.
35
+
36
+ ### diverge
37
+
38
+ 1. Generate 4–8 options. **Variety beats quality.** Include at least one
39
+ "lazy" option (do nothing) and one "expensive" option (the over-built
40
+ answer).
41
+ 2. Use `wicked-garden:jam:quick` or `wicked-garden:jam:brainstorm` for
42
+ structured ideation when the surface is unfamiliar.
43
+ 3. Don't score yet. Just name them.
44
+
45
+ ### converge
46
+
47
+ 1. Cluster the options into 2–3 thematic groups.
48
+ 2. Pick the top-3 to take forward. Each one needs:
49
+ - A one-line description.
50
+ - A risk note.
51
+ - A reversibility note.
52
+ 3. Hand off to `decide` if the user wants a verdict, or to `specify` /
53
+ `build` if the path forward is now clear.
54
+
55
+ ## When to stop
56
+
57
+ Explore is done when the user has a top-3 option set OR a falsifiable
58
+ hypothesis they can take forward. Don't keep diverging.
59
+
60
+ ## Anti-patterns
61
+
62
+ - **Don't pick a winner inside explore.** That's the decide archetype.
63
+ - **Don't skip frame.** A bad problem statement makes diverge produce
64
+ noise.
65
+ - **Don't rank prematurely.** Convergence is qualitative clustering,
66
+ not quantitative scoring.
@@ -0,0 +1,149 @@
1
+ # incident — live-fire response to production failure
2
+
3
+ Mitigate first, RCA second, follow-up third. The cost band is variable —
4
+ a quick rollback may take 5 minutes; a complex multi-service incident
5
+ may consume a day. The phase order is **non-negotiable**: do not
6
+ investigate before mitigating unless investigation IS the mitigation.
7
+
8
+ ## Phase shape
9
+
10
+ | Phase | Goal |
11
+ |--------------|-----------------------------------------------------|
12
+ | triage | Classify severity + scope. Page who needs paging. |
13
+ | investigate | Find proximate cause. Just enough to mitigate. |
14
+ | mitigate | Stop the bleeding. Rollback / feature flag / scaling / circuit break. |
15
+ | resolve | Permanent fix. May be the same as mitigate, may not. |
16
+ | followup | RCA writeup, action items, tests/alerting that would have caught this. |
17
+
18
+ ## Produces
19
+
20
+ - **Mitigation**: the action that stopped the impact (rollback hash,
21
+ feature flag toggle, scaling change, etc.).
22
+ - **RCA**: root cause analysis writeup at `docs/postmortems/INC-{N}.md`.
23
+ - **Followup list**: action items with owners. Each gets a github issue
24
+ or tracked task.
25
+
26
+ The mitigate gate **re-derives** these via `wicked-loom` (`scripts/qe/vault_gate.py` shells `wicked-loom gate`, which shells `wicked-vault cross-check`): the evidence is re-hashed and its verifier
27
+ re-run, never trusting a cached "mitigated". The honesty move here is the
28
+ mitigation pin — a claimed mitigation that doesn't actually make the
29
+ symptom check pass must REJECT. wicked-loom (the gate engine) and wicked-vault (the evidence backend) are **required** peers (installed by `/wicked-garden:setup`); if loom is unresolvable — or the vault behind it absent — the gate **fails closed** (`gate: "unavailable"`, `satisfied: false`) rather than
30
+ self-asserting a PASS. `--no-require` opts a throwaway/low-rigor run back
31
+ to the doctrine-light claim-only path.
32
+
33
+ ## HITL
34
+
35
+ `hard:mitigate` — mitigate is a hard gate. Don't move past it without
36
+ confirming the bleeding stopped. Don't skip to followup before resolve.
37
+
38
+ ## How to run
39
+
40
+ ### triage
41
+
42
+ 1. Classify severity: SEV-1 (revenue/data impact), SEV-2 (degraded
43
+ primary path), SEV-3 (degraded secondary path).
44
+ 2. Page the right people. SEV-1 is a phone call, not a slack message.
45
+ 3. Open an incident channel + tracking ticket. The ticket is the
46
+ single source of truth for the timeline.
47
+ 4. If a vault is resolvable
48
+ (`scripts/qe/vault_gate.py resolve` → `available: true`), declare the
49
+ re-derivable contract so the mitigate gate has a bar to check against:
50
+ `wicked-vault init` (once per repo) then
51
+ `wicked-vault declare-contract --scope <scope> --phase incident --spec contract.json`.
52
+ `required_evidence` pins `mitigation` to a deterministic re-run of the
53
+ symptom check (`exit_code_eq:0`), and `rca` / `followup-list` to
54
+ presence/structure `regex_match` (required RCA sections present;
55
+ followup list non-empty). Skip silently if no vault.
56
+
57
+ ### investigate
58
+
59
+ 1. Look at dashboards FIRST — `wicked-garden:platform:health` /
60
+ `:traces` / `:incident`. Hypothesize from data, not memory.
61
+ 2. Run `wicked-garden:platform:incident` for triage workflows.
62
+ 3. **Time-box investigation to 15 minutes during SEV-1.** If you don't
63
+ have a mitigation hypothesis in 15 min, escalate; don't keep
64
+ investigating.
65
+ 4. Capture the **symptom check** — the command that reproduces the break
66
+ (it fails now). This becomes the deterministic verifier the mitigate
67
+ gate re-runs: a real mitigation makes this same command pass.
68
+
69
+ ### mitigate
70
+
71
+ 1. Pick the cheapest reversible action that stops the impact:
72
+ - Rollback to last-known-good (cheapest).
73
+ - Feature flag off (cheap if instrumented).
74
+ - Scale up (when capacity is the issue).
75
+ - Circuit break a downstream (when a dependency is the issue).
76
+ 2. **Confirm the bleeding stopped.** Watch the same dashboards that
77
+ surfaced the incident. Don't declare mitigated based on logs alone.
78
+ 3. Record the mitigation as re-derivable evidence (vault present;
79
+ **wicked-vault ≥ 0.4.0**):
80
+ `wicked-vault record --scope <scope> --phase incident --claim mitigation
81
+ --kind mitigation-check --source "<the symptom-check command>"
82
+ --criteria "symptom check passes post-mitigation"
83
+ --verifier exit_code_eq:0 --actor "${WICKED_VAULT_ACTOR:-garden-prove}"
84
+ --run`. The **`--actor`** is mandatory because `mitigate` is a hard
85
+ gate: vault ≥ 0.4.0 refuses an `attest` over evidence recorded under a
86
+ weak/ambient identity, so without an explicit actor the independent
87
+ attestation fails closed and the gate can never PASS. The `--run`
88
+ captures the symptom check's real exit code now and the gate re-runs it
89
+ later — a mitigation you can't re-derive is not evidence. No vault →
90
+ fall back to `evidence_tracker.py claim`.
91
+ 4. Update the incident channel: "MITIGATED via {action} at {time}".
92
+
93
+ ### resolve
94
+
95
+ 1. The permanent fix may be the same as the mitigation (rollback that
96
+ stays rolled back) or different (rollback unblocks impact, then
97
+ forward-fix the bug).
98
+ 2. Test the fix in staging when possible. Cowboying a fix into prod
99
+ during an incident is how you get a second incident.
100
+ 3. Land the fix; close the incident channel.
101
+
102
+ ### followup
103
+
104
+ 1. Write the RCA within 48h. Use the standard postmortem template.
105
+ 2. Use `wicked-garden:incident-to-scenario-synthesizer` to convert the
106
+ incident into a regression scenario that would catch the same break.
107
+ 3. Track action items in github. Don't bury them in a Slack thread.
108
+ 4. Record the docs evidence (vault present; **wicked-vault ≥ 0.4.0**):
109
+ `wicked-vault record --scope <scope> --phase incident --claim rca
110
+ --kind doc --artifact docs/postmortems/INC-{N}.md
111
+ --criteria "required RCA sections present"
112
+ --verifier "regex_match:## Root Cause"
113
+ --actor "${WICKED_VAULT_ACTOR:-garden-prove}"` and
114
+ `wicked-vault record --scope <scope> --phase incident
115
+ --claim followup-list --kind doc --artifact <followup-list>
116
+ --criteria "followup list non-empty"
117
+ --verifier "regex_match:- \[" --actor "${WICKED_VAULT_ACTOR:-garden-prove}"`.
118
+ The **`--actor`** keeps this incident's evidence attestable by an
119
+ independent reviewer under vault ≥ 0.4.0. No vault →
120
+ `evidence_tracker.py claim`.
121
+
122
+ ## When to stop
123
+
124
+ `mitigate` is a **hard gate** — confirm the bleeding stopped before
125
+ moving past it, and don't self-grade the mitigation. Check the gate WITH
126
+ judgment:
127
+ `scripts/qe/prove.py <claim> --by "<command>" --scope <scope> --phase incident --with-attestations` (frictionless, single claim — re-derive, don't assert) — or the full multi-claim contract via `scripts/qe/vault_gate.py gate <project_dir> --scope <scope> --phase incident --with-attestations` **`--with-attestations`** keeps this gate `UNATTESTED`/`REJECT` until an INDEPENDENT evaluator (not the doer) runs `wicked-vault attest <artifact-id> --opinion pass` — find it via `wicked-vault list --scope <scope> --phase incident`. The doer's own evidence cannot satisfy a hard gate.
128
+ (exit 0 = satisfied). This re-runs the symptom check (the mitigation pin)
129
+ and requires an **independent attestation** — an evaluator who is *not*
130
+ the responder confirms the mitigation holds and the RCA is adequate,
131
+ recorded via `wicked-vault:analyze-evidence`. It fails closed on a
132
+ self-grade. A REJECT means the symptom check still fails or the
133
+ attestation is missing/negative — fix the work, not the claim. An
134
+ `unavailable` verdict means the required vault isn't installed — run
135
+ `/wicked-garden:setup`.
136
+
137
+ Incident is done when the gate is satisfied and the followup list is
138
+ owned and tracked. Hand off to `build` (forward-fix work), `migrate`
139
+ (when the fix is a shape change), or `review` (when the followup includes
140
+ auditing prevention).
141
+
142
+ ## Anti-patterns
143
+
144
+ - **Don't investigate before you mitigate.** SEV-1 with users impacted
145
+ is not the time for root-cause analysis.
146
+ - **Don't skip the RCA.** "We know what happened" is what every team
147
+ says before the same incident recurs.
148
+ - **Don't blame.** Blameless postmortems aren't soft — they produce
149
+ better followups.
@@ -0,0 +1,170 @@
1
+ # migrate — expand / backfill / cutover / contract
2
+
3
+ For shape changes that require both forward and rollback proof. Schema
4
+ migrations, data backfills, breaking API rollouts. Uses the standard
5
+ **expand-contract** pattern: add the new shape, make both work, switch
6
+ readers, switch writers, remove the old shape.
7
+
8
+ ## Phase shape
9
+
10
+ | Phase | Goal |
11
+ |----------|-------------------------------------------------------|
12
+ | plan | Document the shape change. Define rollback contract. |
13
+ | expand | Add the new shape. **Do not remove the old shape.** |
14
+ | backfill | Populate the new shape from the old. Idempotent. |
15
+ | cutover | Switch readers/writers. **Hard gate** — staged. |
16
+ | contract | Remove the old shape. Only after cutover has soaked. |
17
+
18
+ ## Produces
19
+
20
+ - **Shape change**: the new schema / API / data layout.
21
+ - **Rollback proof**: an executable rollback path. Tested in staging
22
+ before cutover.
23
+
24
+ The cutover gate **re-derives** these via `wicked-loom` (`scripts/qe/vault_gate.py` shells `wicked-loom gate`, which shells `wicked-vault cross-check`): the rollback drill is re-run and the
25
+ shape-change post-condition re-checked, never trusting a self-asserted
26
+ "rolled back fine". This is the original evidence-vault use case — for a
27
+ migration the load-bearing honesty move is **no cutover without a
28
+ re-derivable rollback proof**. wicked-loom (the gate engine) and wicked-vault (the evidence backend) are **required** peers (installed by `/wicked-garden:setup`); if loom is unresolvable — or the vault behind it absent — the gate **fails closed** (`gate: "unavailable"`, `satisfied: false`) rather than
29
+ self-asserting a PASS. Because `cutover` is a HARD gate, the gate also
30
+ demands an **independent attestation**: an evaluator who is **not** the
31
+ migrator confirms the rollback proof and shape change are adequate
32
+ (recorded via `wicked-vault:analyze-evidence`), and the gate fails closed
33
+ on a self-grade.
34
+
35
+ ## HITL
36
+
37
+ `hard:cutover-gate` — cutover is a hard gate. Don't cutover without
38
+ explicit user approval AND a green pre-cutover checklist (rollback
39
+ tested, backfill complete, dual-read working).
40
+
41
+ ## Ground in the repo's method first
42
+
43
+ Before you plan, check for **wicked-understanding** repo playbooks (the opt-in
44
+ "how to work in THIS repo" layer). A migration lives or dies on repo-specific
45
+ wiring — where readers/writers are switched, how schema/config is loaded, the
46
+ deploy/rollback command. If its skills are present — `add-domain` / `add-feature`
47
+ / `scaffold`, or the routing block in `AGENTS.md` / `CLAUDE.md` — **load the
48
+ matching playbook** and let it name those exact points instead of rediscovering
49
+ them mid-cutover. Absent? Discover it the usual way — and consider
50
+ `npx skills add mikeparcewski/wicked-understanding --all` so next time it's known.
51
+
52
+ ## How to run
53
+
54
+ ### plan
55
+
56
+ 1. Document the shape change at `docs/migrations/{N}-{slug}.md`. The
57
+ doc names:
58
+ - The OLD shape, the NEW shape.
59
+ - The rollback contract: how to undo, who pulls the trigger, how
60
+ long the rollback window is.
61
+ - The expand-contract phase boundaries: when each step happens.
62
+ 2. Use `wicked-garden:engineering:migration-engineer` for the canonical
63
+ playbook.
64
+ 3. Declare the re-derivable contract early so the cutover gate has a bar
65
+ to check against. If a vault is resolvable
66
+ (`scripts/qe/vault_gate.py resolve` → `available: true`):
67
+ `wicked-vault init` (once per repo) then
68
+ `wicked-vault declare-contract --scope <scope> --phase migrate --spec contract.json`.
69
+ `required_evidence` must pin both claim_ids:
70
+ - `rollback-proof` → `exit_code_eq:0` on the rollback-drill command —
71
+ the rollback was actually exercised and succeeded, not asserted.
72
+ - `shape-change` → a deterministic post-condition: `exit_code_eq:0`
73
+ on a migration-applied verification, or `jq_pred` over a captured
74
+ schema-state JSON.
75
+ Skip silently if no vault.
76
+ 4. **If the shape change is reversible HIGH (e.g. a column add), this
77
+ archetype is overkill.** Drop back to `build`.
78
+
79
+ ### expand
80
+
81
+ 1. Add the new shape alongside the old. **Both must work.**
82
+ 2. New writes go to BOTH shapes (dual-write). New reads still come from
83
+ the old shape.
84
+ 3. Land + deploy expand. Don't combine with backfill.
85
+ 4. Record the **shape-change** as re-derivable evidence (vault present;
86
+ **wicked-vault ≥ 0.4.0**):
87
+ `wicked-vault record --scope <scope> --phase migrate --claim shape-change
88
+ --kind schema-state --source "<migration-applied verification>"
89
+ --criteria "<the post-condition>" --verifier exit_code_eq:0
90
+ --actor "${WICKED_VAULT_ACTOR:-garden-prove}" --run`. The **`--actor`**
91
+ is mandatory because `cutover` is a hard gate: vault ≥ 0.4.0 refuses an
92
+ `attest` over weak/ambient-identity evidence, so without an explicit
93
+ actor the independent attestation fails closed and cutover can never be
94
+ gated PASS. The `--run` captures the real exit code now and the gate
95
+ re-runs it later — a claim you can't re-derive is not evidence.
96
+
97
+ ### backfill
98
+
99
+ 1. Populate the new shape from the old. The backfill must be
100
+ **idempotent** — a half-completed backfill that gets restarted
101
+ should converge to the same end state as a clean run.
102
+ 2. Run in batches; rate-limit against the production DB.
103
+ 3. Verify completeness: the row count + checksum + spot-check sample
104
+ match the old shape.
105
+ 4. **Exercise the rollback drill and record it as re-derivable evidence —
106
+ this must exist and re-derive BEFORE cutover** (vault present):
107
+ `wicked-vault record --scope <scope> --phase migrate --claim rollback-proof
108
+ --kind rollback-drill --source "<the rollback-drill command>"
109
+ --criteria "rollback exercised and succeeded" --verifier exit_code_eq:0
110
+ --actor "${WICKED_VAULT_ACTOR:-garden-prove}" --run`.
111
+ The **`--actor`** keeps the rollback proof attestable by an independent
112
+ reviewer under vault ≥ 0.4.0 (the hard cutover gate needs it). The
113
+ `--run` captures the drill's real exit code now; the gate re-runs
114
+ it at cutover. A rollback path you can't re-derive is not a rollback
115
+ path. No vault → fall back to `evidence_tracker.py claim`.
116
+
117
+ ### cutover
118
+
119
+ 1. **Pre-cutover checklist**:
120
+ - Rollback path executed in staging. (`✓` or block.)
121
+ - Backfill complete + verified.
122
+ - Dual-write running cleanly for at least 24h.
123
+ - Monitoring + alerts updated to surface new shape's anomalies.
124
+ 2. **Gate before any switch** — don't self-assert the checklist. Run the
125
+ produces-gate WITH judgment:
126
+ `scripts/qe/prove.py <claim> --by "<command>" --scope <scope> --phase migrate --with-attestations` (frictionless, single claim — re-derive, don't assert) — or the full multi-claim contract via `scripts/qe/vault_gate.py gate <project_dir> --scope <scope> --phase migrate --with-attestations` **`--with-attestations`** keeps this gate `UNATTESTED`/`REJECT` until an INDEPENDENT evaluator (not the doer) runs `wicked-vault attest <artifact-id> --opinion pass` — find it via `wicked-vault list --scope <scope> --phase migrate`. The doer's own evidence cannot satisfy a hard gate.
127
+ (exit 0 = satisfied). This re-derives the rollback drill and the
128
+ shape-change post-condition over the declared contract, and requires
129
+ the independent attestation (evaluator ≠ migrator, via
130
+ `wicked-vault:analyze-evidence`). A REJECT means the rollback proof or
131
+ shape change doesn't clear its contract — fix the work, not the claim.
132
+ An `unavailable` verdict means the required vault isn't installed — run
133
+ `/wicked-garden:setup`. **No cutover on a fail-closed verdict.**
134
+ 3. **Cutover staged**: switch readers first, watch for 1h, then switch
135
+ writers. Don't switch both at once.
136
+ 4. The cutover gate is HARD — explicit user "go" before each switch.
137
+ 5. If anything looks off post-cutover: **rollback first, debug second.**
138
+
139
+ ### contract
140
+
141
+ 1. Wait for cutover to soak (24–72h, longer for data shape).
142
+ 2. Stop the dual-write. Only the new shape is being written.
143
+ 3. After another soak, drop the old shape.
144
+ 4. Land the contract change with a docs update — the migration is now
145
+ complete.
146
+
147
+ ## When to stop
148
+
149
+ Cutover may only proceed when the produces-gate is satisfied — check it,
150
+ don't self-assert it:
151
+ `scripts/qe/prove.py <claim> --by "<command>" --scope <scope> --phase migrate --with-attestations` (frictionless, single claim — re-derive, don't assert) — or the full multi-claim contract via `scripts/qe/vault_gate.py gate <project_dir> --scope <scope> --phase migrate --with-attestations` **`--with-attestations`** keeps this gate `UNATTESTED`/`REJECT` until an INDEPENDENT evaluator (not the doer) runs `wicked-vault attest <artifact-id> --opinion pass` — find it via `wicked-vault list --scope <scope> --phase migrate`. The doer's own evidence cannot satisfy a hard gate.
152
+ (exit 0 = satisfied). This is a re-derived PASS over the declared contract
153
+ plus the independent attestation; a missing vault is `gate: "unavailable"`
154
+ / `satisfied: false`, never a claim-only pass.
155
+
156
+ Migrate is done when the old shape is removed AND the contract phase
157
+ has soaked. Hand off to `review` for a post-migration audit when the
158
+ change touched compliance or revenue surface.
159
+
160
+ ## Anti-patterns
161
+
162
+ - **Don't combine expand with backfill.** Each phase is a separate
163
+ ship. Combining them removes the ability to roll back to a clean
164
+ intermediate state.
165
+ - **Don't switch readers and writers simultaneously.** Stage them.
166
+ - **Don't contract before soaking.** "We've cutover; let's clean up
167
+ the old shape" is how you discover at 3am that one consumer never
168
+ switched.
169
+ - **Don't skip rollback testing.** A rollback path you haven't
170
+ exercised is not a rollback path.