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,200 @@
1
+ ---
2
+ description: |
3
+ Use when starting a new session and you want to know what happened since the last one — recent events,
4
+ active crew projects, and memory updates. NOT for live session state inspection (use smaht:state).
5
+ argument-hint: "[--days N] [--project name]"
6
+ phase_relevance: ["*"]
7
+ archetype_relevance: ["*"]
8
+ ---
9
+
10
+ # /wicked-garden:smaht:briefing
11
+
12
+ Generate a "what happened since last session" briefing. Primary source: unified event log. Fallback: individual domain queries.
13
+
14
+ ## Instructions
15
+
16
+ ### 0. Post-Compaction Recovery
17
+
18
+ If this briefing is requested after a context compaction event, check for WIP state first and present it prominently at the top of the briefing:
19
+
20
+ 1. Check for WIP snapshot file at the session's history condenser directory (`wip_snapshot.json`)
21
+ 2. If no snapshot, query `HistoryCondenser(session_id).get_session_state()` for live working state
22
+ 3. Read native tasks for in-progress items: list task JSON under `${CLAUDE_CONFIG_DIR}/tasks/{session_id}/` and filter by `status == "in_progress"`.
23
+ 4. Present recovered WIP state at the top of the briefing output:
24
+ - **Current task**: what the user was working on
25
+ - **Recent decisions**: choices already made (do NOT re-ask)
26
+ - **Active files**: files in scope for the current work
27
+ - **Open questions**: unresolved items that still need answers
28
+ - **In-progress tasks**: native tasks currently being worked (filter `metadata.event_type=="task"` for human-visible items)
29
+ 5. Add: "Context was compacted. Review this state before proceeding. Do NOT repeat completed work."
30
+
31
+ If no compaction occurred (normal briefing request), skip this step entirely.
32
+
33
+ ### 1. Determine Time Window
34
+
35
+ Default: last 24 hours. Override with `--days N`. If `--project` specified, filter to that project.
36
+
37
+ ### 2. Query the Event Log (primary)
38
+
39
+ Single query replaces 4 separate domain calls:
40
+
41
+ ```bash
42
+ sh "${CLAUDE_PLUGIN_ROOT}/scripts/_python.sh" "${CLAUDE_PLUGIN_ROOT}/scripts/_run.py" scripts/_event_store.py query \
43
+ --since "${days:-1}d" \
44
+ ${project:+--project "$project"} \
45
+ --limit 100 \
46
+ --json
47
+ ```
48
+
49
+ This returns events from ALL domains in one timeline — mem decisions, crew phase transitions, native task changes, jam outcomes.
50
+
51
+ ### 2b. Fallback (if event log is empty or unavailable)
52
+
53
+ If the event log returns no results (new install, events.db not yet populated), fall back to individual queries:
54
+
55
+ **Memory:** `wicked-brain:memory "recent decisions and learnings" --limit 10`
56
+
57
+ **Native tasks:** read task JSON under `${CLAUDE_CONFIG_DIR}/tasks/{session_id}/` and summarize counts by `status` and `metadata.event_type`.
58
+
59
+ **Crew:** in v11, look up archetype-mode projects explicitly via
60
+ `phase_manager <name> status --json`. The v6-era find-active auto-resolver
61
+ was deleted with the universal pipeline.
62
+
63
+ ### 2c. Git Activity (always supplement)
64
+
65
+ Git history is not in the event log — always query directly:
66
+
67
+ ```bash
68
+ git log --oneline --since="${days:-1} days ago" --no-merges 2>/dev/null | head -15
69
+ ```
70
+
71
+ ### 2d. Repo method — wicked-understanding (advisory, fail-open)
72
+
73
+ Surface whether this repo's **how-to-work-here playbooks** exist (the opt-in
74
+ wicked-understanding layer — the *how*, complementing brain's *what*). Prints
75
+ nothing if absent or unavailable:
76
+
77
+ ```bash
78
+ sh "${CLAUDE_PLUGIN_ROOT}/scripts/_python.sh" - <<'PY' 2>/dev/null || true
79
+ import os
80
+ from pathlib import Path
81
+ roots = [Path.home()/".claude"/"skills"]
82
+ cfg = os.environ.get("CLAUDE_CONFIG_DIR")
83
+ if cfg: roots.append(Path(cfg)/"skills")
84
+ names = set()
85
+ for r in roots:
86
+ try:
87
+ if r.exists():
88
+ names |= {e.name for e in r.iterdir()
89
+ if e.is_dir() and e.name.startswith(("repo-", "fix-bug", "add-feature"))}
90
+ except OSError:
91
+ pass
92
+ if names:
93
+ print("Repo playbooks available (wicked-understanding): " + ", ".join(sorted(names)[:8]))
94
+ PY
95
+ ```
96
+
97
+ If present, add a **Repo method:** line to the briefing and tell the agent to load
98
+ the matching playbook for build / fix / migrate work instead of rediscovering the
99
+ method. If absent, you may note that `npx skills add mikeparcewski/wicked-understanding --all`
100
+ would generate them.
101
+
102
+ ### 3. Categorize Events
103
+
104
+ Group events from the timeline by type:
105
+
106
+ | Event action pattern | Briefing section |
107
+ |---------------------|-----------------|
108
+ | `memories.created`, `memories.updated` | Recent Decisions |
109
+ | `projects.created`, `phases.*` | Active Work (crew) |
110
+ | `tasks.created`, `tasks.updated` | Active Work (tasks) |
111
+ | `sessions.created`, `*.migrated` | Brainstorm Outcomes |
112
+ | Everything else | Other Activity |
113
+
114
+ ### 4. Synthesize Briefing
115
+
116
+ Before composing the briefing, name the **detected stack** back to the user
117
+ so it is obvious wicked-garden has read the project shape (#723 — stack
118
+ identity is a projection of the repo, never a hand-edited preset).
119
+
120
+ **Project scope:** if `--project` was supplied, scan `${PWD}` (the project
121
+ source-dir lookup was a v6 helper tied to `crew.py::list_projects`,
122
+ deleted in v11). The fallback when `--project` is absent is also
123
+ `${PWD}`. Briefings now always read from cwd.
124
+
125
+ _Stack signal extraction was removed in v11; the v6 helpers were
126
+ target-kind classifiers tied to the old gate-policy. v11 work-shape
127
+ archetypes are emitted by the prompt-submit hook, not derived from
128
+ filesystem traversal. Skip this section in v11 briefings._
129
+
130
+ If `language` is not `unknown`, include this single line at the top of the
131
+ briefing (omit entirely when language is `unknown`):
132
+
133
+ ```
134
+ Detected stack: {language} ({package_manager}, frameworks: {frameworks}). Archetype: {archetype}.
135
+ ```
136
+
137
+ In JSON-mode briefings, surface the same projection under a top-level
138
+ `detected_stack` field; do not invent a parallel state file.
139
+
140
+ **Affected repos (#722, advisory):** when the active project (or the one
141
+ named via `--project`) carries an optional `affected_repos` list in its
142
+ `process-plan.json`, surface it as a single advisory line directly under
143
+ the `Detected stack:` line. The helper script below is fail-open: it
144
+ prints NOTHING when the field is missing, empty, or malformed, so this
145
+ block stays silent on every legacy project. The full DAG / worktrees /
146
+ cross-repo evidence workflow lives in the `wicked-garden-monorepo`
147
+ sibling plugin (see `docs/v9/sibling-plugin-monorepo.md`).
148
+
149
+ _The `affected_repos` helper was removed in v11. Multi-repo coordination
150
+ was tied to the v6 universal pipeline's process-plan.json schema, which
151
+ the v11 archetype catalog superseded. Future cross-repo orchestration
152
+ work belongs in the `wicked-garden-monorepo` sibling plugin._
153
+
154
+ Format (when non-empty):
155
+
156
+ ```
157
+ Affected repos: foo, bar (advisory — see docs/v9/sibling-plugin-monorepo.md)
158
+ ```
159
+
160
+ ```markdown
161
+ ## Session Briefing ({days}d window)
162
+
163
+ Detected stack: python (uv, frameworks: click). Archetype: code-repo.
164
+
165
+ ### Recent Decisions
166
+ {events from mem domain — decisions stored, patterns learned}
167
+ - "Chose JWT over sessions" (2 days ago)
168
+ - "Rate limiting goes after gateway" (yesterday)
169
+
170
+ ### Active Work
171
+ **Crew**: {project name} — phase: {current}, next: {next step}
172
+ **Tasks**: {N in progress}, {M completed since last session}
173
+
174
+ ### Brainstorm Outcomes
175
+ {jam session decisions made in the window}
176
+
177
+ ### Code Changes
178
+ {git commits grouped by area}
179
+
180
+ ### Suggested Next Steps
181
+ {based on the event timeline:}
182
+ - Continue: {most recent active crew phase}
183
+ - Review: {files changed since last session}
184
+ - Decide: {any open questions from jam sessions}
185
+ ```
186
+
187
+ ### 5. Contextual Discovery
188
+
189
+ Suggest ONE related command based on the briefing content:
190
+
191
+ - If active crew project → suggest `crew:execute` or `crew:status`
192
+ - If recent mem decisions but no crew project → suggest `crew:start`
193
+ - If code changes but no review → suggest `engineering:review`
194
+ - If brainstorm outcomes with no follow-up → suggest `jam:revisit`
195
+
196
+ Keep it to ONE suggestion. Frame as: "You might find X useful because..."
197
+
198
+ ### When context is thin
199
+
200
+ If the briefing doesn't give you enough to orient — no active project, sparse events, or missing decisions — invoke `wicked-garden:ground` to pull richer brain + bus context before proceeding.
@@ -0,0 +1,95 @@
1
+ ---
2
+ description: "Import existing domain JSON records into the unified event log"
3
+ argument-hint: "[--domain D] [--dry-run]"
4
+ phase_relevance: ["*"]
5
+ archetype_relevance: ["*"]
6
+ ---
7
+
8
+ # /wicked-garden:smaht:events-import
9
+
10
+ Import existing DomainStore JSON records into the unified event log as historical events.
11
+
12
+ ## Instructions
13
+
14
+ ### 1. Discover Existing Records
15
+
16
+ Scan the DomainStore local root for all domain directories:
17
+
18
+ ```bash
19
+ sh "${CLAUDE_PLUGIN_ROOT}/scripts/_python.sh" -c "
20
+ from _domain_store import _LOCAL_ROOT
21
+ from pathlib import Path
22
+ import json
23
+
24
+ root = Path(_LOCAL_ROOT) if isinstance(_LOCAL_ROOT, str) else _LOCAL_ROOT
25
+ domains = sorted(d.name for d in root.iterdir() if d.is_dir()) if root.exists() else []
26
+ print(json.dumps(domains))
27
+ "
28
+ ```
29
+
30
+ ### 2. For Each Domain
31
+
32
+ Read all JSON files and synthesize events with `action: "{source}.migrated"`:
33
+
34
+ ```python
35
+ from _event_store import EventStore
36
+ from _domain_store import _LOCAL_ROOT
37
+ from pathlib import Path
38
+ import json
39
+
40
+ EventStore.ensure_schema()
41
+
42
+ domain_dir = Path(_LOCAL_ROOT) / domain_name
43
+ imported = 0
44
+ skipped = 0
45
+
46
+ for source_dir in domain_dir.iterdir():
47
+ if not source_dir.is_dir():
48
+ continue
49
+ source = source_dir.name
50
+ for json_file in source_dir.glob("*.json"):
51
+ record = json.loads(json_file.read_text())
52
+ record_id = record.get("id", json_file.stem)
53
+
54
+ # Idempotent: skip if already imported
55
+ existing = EventStore.query(
56
+ domain=domain_name,
57
+ action=f"{source}.migrated",
58
+ limit=1,
59
+ )
60
+ # Check by record_id to avoid duplicates
61
+ if any(e.get("record_id") == record_id for e in existing):
62
+ skipped += 1
63
+ continue
64
+
65
+ EventStore.append(
66
+ domain=domain_name,
67
+ action=f"{source}.migrated",
68
+ source=source,
69
+ record_id=record_id,
70
+ payload=record,
71
+ tags=["migrated"],
72
+ )
73
+ imported += 1
74
+ ```
75
+
76
+ ### 3. Report Results
77
+
78
+ ```markdown
79
+ ## Import Complete
80
+
81
+ | Domain | Imported | Skipped (already exists) |
82
+ |--------|----------|--------------------------|
83
+ | crew | 45 | 0 |
84
+ | mem | 23 | 0 |
85
+ | jam | 12 | 0 |
86
+ | **Total** | **80** | **0** |
87
+
88
+ Events are tagged with `migrated` for easy filtering.
89
+ Query with: `/wicked-garden:crew:activity --fts migrated`
90
+ ```
91
+
92
+ ### Flags
93
+
94
+ - `--domain D`: Import only one domain (default: all)
95
+ - `--dry-run`: Show what would be imported without writing
@@ -0,0 +1,19 @@
1
+ ---
2
+ description: |
3
+ Use when you need to inspect live SessionState, adapter outputs, or smaht directive settings.
4
+ NOT for what-happened-since-last-session (use smaht:briefing).
5
+ argument-hint: "[--state] [--events N] [--project <name>] [--json]"
6
+ phase_relevance: ["*"]
7
+ archetype_relevance: ["*"]
8
+ ---
9
+
10
+ # /wicked-garden:smaht:state
11
+
12
+ Snapshot and report current session state and recent events.
13
+
14
+ ## Run it inline (no dispatch)
15
+
16
+ 1. `Read("${CLAUDE_PLUGIN_ROOT}/skills/smaht/refs/state.md")` — the rubric:
17
+ SessionState script, display format, wicked-bus events tail, and v11
18
+ project context lookup (when `--project <name>` is given).
19
+ 2. Apply the rubric directly using `$ARGUMENTS`.
@@ -0,0 +1,58 @@
1
+ ---
2
+ allowed-tools: ["Bash"]
3
+ description: "Emit a compact path manifest (plugin, source, project, brain, bus) for the current session"
4
+ argument-hint: "[--fence] [--env]"
5
+ phase_relevance: ["*"]
6
+ archetype_relevance: ["*"]
7
+ ---
8
+
9
+ # /wicked-garden:where-am-i
10
+
11
+ Read-only query that prints a single compact manifest of the five storage
12
+ roots used by wicked-garden dispatches. Subagents should include
13
+ "run /wicked-garden:where-am-i first" as a directive instead of
14
+ hand-enumerating paths — it costs fewer tokens and closes a class of
15
+ path-mismatch bugs.
16
+
17
+ Provenance: Issue #576.
18
+
19
+ ## Arguments
20
+
21
+ - `--json` — Emit JSON manifest (default).
22
+ - `--fence` — Wrap the JSON manifest in a ```json fence for paste.
23
+ - `--env` — Substitute env-var forms (e.g. `$CLAUDE_PLUGIN_ROOT`) where
24
+ the corresponding environment variable is present.
25
+
26
+ ## Output shape
27
+
28
+ ```json
29
+ {
30
+ "plugin_root": "/abs/path",
31
+ "source_cwd": "/abs/path",
32
+ "active_project_id": "string-or-null",
33
+ "project_artifacts": "/abs/path/to/projects-or-specific-project",
34
+ "brain": {"path": "/abs/path", "port": 4243},
35
+ "bus_db": "/abs/path"
36
+ }
37
+ ```
38
+
39
+ Any field that cannot be resolved emits `null` and logs a one-line note
40
+ to stderr. The command never raises and is safe to invoke from any cwd.
41
+
42
+ ## Instructions
43
+
44
+ Invoke the helper script and stream its stdout to the user verbatim.
45
+ This command is a thin wrapper — do not re-interpret the manifest.
46
+
47
+ ```bash
48
+ sh "${CLAUDE_PLUGIN_ROOT}/scripts/_python.sh" "${CLAUDE_PLUGIN_ROOT}/scripts/where_am_i.py" "$@"
49
+ ```
50
+
51
+ ## Graceful Degradation
52
+
53
+ - Missing `CLAUDE_PLUGIN_ROOT`: falls back to the checkout inferred from
54
+ the script location.
55
+ - Missing brain config: emits `"brain": null` and continues.
56
+ - Missing bus DB: emits `"bus_db": null` and continues.
57
+ - No active crew project: emits `"active_project_id": null` and points
58
+ `project_artifacts` at the crew projects domain root.
package/docs/README.md ADDED
@@ -0,0 +1,32 @@
1
+ # Wicked Garden Documentation
2
+
3
+ Detailed guides for getting the most out of wicked-garden.
4
+
5
+ Work in wicked-garden is organized around **9 work-shape archetypes** — not a fixed pipeline. Each prompt classifies into one or more archetypes (triage, explore, specify, decide, ship, review, incident, build, migrate); each owns its own phase shape, produces contract, and HITL discipline.
6
+
7
+ ## Guides
8
+
9
+ | Guide | Description |
10
+ |-------|-------------|
11
+ | [Getting Started](getting-started.md) | Installation, required peers, first session, common workflows |
12
+ | [Archetypes](v11/archetypes.md) | The 9 work-shape archetypes — why the universal pipeline went away |
13
+ | [Domains](domains.md) | The 10 domain skill/agent families archetypes invoke for expertise |
14
+ | [Required Peers](required-peers.md) | The five required peer plugins and the install/runtime stance |
15
+ | [The Compiler](compiler.md) | `/wicked-garden:compile` — emit a self-contained vault-backed gate into any repo |
16
+ | [Brain Chunk Format](brain-chunk-format.md) | How wicked-garden content is chunked for the brain index |
17
+
18
+ ## Quick Links
19
+
20
+ - **New to wicked-garden?** Start with [Getting Started](getting-started.md).
21
+ - **Want to understand how work is shaped?** Read [Archetypes](v11/archetypes.md).
22
+ - **Setting up?** The [Required Peers](required-peers.md) — wicked-testing, wicked-vault, wicked-brain, wicked-bus, wicked-loom — are verified by `/wicked-garden:setup`.
23
+ - **Looking for domain expertise or a specific command?** Browse [Domains](domains.md).
24
+ - **Want a build gate that runs without wicked-garden present?** See [The Compiler](compiler.md).
25
+
26
+ ## Need Help?
27
+
28
+ ```bash
29
+ /wicked-garden:setup # verify required peers + onboard
30
+ /wicked-garden:help # list all commands
31
+ /wicked-garden:where-am-i # show current session state
32
+ ```
@@ -0,0 +1,116 @@
1
+ # ADR 0001 — Code-relationship graph: adopt codegraph as the engine, add injected-edge extractors
2
+
3
+ - **Status:** Superseded by [ADR 0004](0004-code-graph-moves-to-wicked-brain.md) (2026-06-10) — the engine choice (codegraph) + injected-edge concept stand, but the graph's **home moved to wicked-brain** (garden no longer hosts the shim/extractors). Originally: Accepted (prototype validated).
4
+ - **Date:** 2026-06-09
5
+ - **Context owners:** wicked-garden
6
+
7
+ ## Context
8
+
9
+ Three features need a real code-relationship graph, and none works today:
10
+
11
+ - **`search:blast-radius`** — "what breaks if I change X" — currently runs a brain
12
+ search (hardcoded to the wrong port, 4242; the brain is on 4243) + `grep`. It is
13
+ effectively grep-with-extra-steps.
14
+ - **`search:lineage`** — data flow — same shape.
15
+ - **wicked-patch** (`engineering:rename`/`add-field`/`remove`) — deterministic
16
+ multi-file refactor — requires a symbol `--db` that **nothing in the ecosystem
17
+ produces**, so the whole family is dead-on-arrival.
18
+
19
+ The decisive requirement is **injected relationships**: this plugin's load-bearing
20
+ edges are wired by a shared *string* through a registry, never by a literal symbol
21
+ reference, so neither `grep` nor a static call-graph can see them:
22
+
23
+ | Injected edge (grep-/static-invisible) | Wired by (deterministically extractable) |
24
+ |---|---|
25
+ | event producer → consumer | `emit_event("wicked.x")` + `_bus_consumers.json` `event_filter` |
26
+ | command/Task → agent | `subagent_type:` frontmatter |
27
+ | agent → tool | `tool-capabilities` + `_capability_registry` |
28
+ | hook event → script | `hooks.json` |
29
+ | archetype → playbook/gate | `archetypes.json` + `refs/` |
30
+
31
+ ## Decision
32
+
33
+ **Adopt [codegraph](https://github.com/colbymchenry/codegraph) (`@colbymchenry/codegraph`, MIT,
34
+ TypeScript/web-tree-sitter) as the static code-graph engine, consumed as a
35
+ runtime-resolved peer** (the same model as wicked-loom/vault/testing/bus), and
36
+ **add wicked-garden-specific injected-edge extractors on top.** Do not build a
37
+ graph engine from scratch — re-implementing multi-language tree-sitter resolution
38
+ to codegraph's fidelity is months of work it already does.
39
+
40
+ ### Why codegraph (vs roam-code, vs build)
41
+ Both codegraph and [roam-code](https://github.com/Cranot/roam-code) (Apache-2.0,
42
+ Python) are credible "adopt-as-engine" candidates. codegraph wins for us on two
43
+ decisive axes:
44
+
45
+ 1. **Architecture fit** — it ships a CLI + MCP server + a plain SQLite contract and
46
+ is npm/node, exactly how we already consume our peers (a `_codegraph.py` shim
47
+ mirrors `_loom.py`). roam-code is a Python library — a different integration shape.
48
+ 2. **Patch precision** — codegraph is **column-precise** (`file:line:col` on nodes
49
+ *and* reference sites) with real import/alias/workspace/re-export/JVM-FQN
50
+ resolution and confidence/provenance per edge. roam-code is line-granular +
51
+ heuristic name resolution (false-positive risk) — riskier to refactor against.
52
+
53
+ **Borrow, don't adopt, from roam-code:** its Code-Graph Attestation (re-derive
54
+ Merkle/edge digests from the live DB, fail-closed) is a genuine twin of our vault
55
+ gate, operating on a layer the vault doesn't cover; and its `oracle_*` deterministic
56
+ fact tools are clean gate inputs. We keep it at arm's length because it is a
57
+ *competing change-governance framework* (constitution/permits/leases) that overlaps
58
+ wicked-garden's entire premise — we want a code-graph *component*, not to outsource
59
+ our governance.
60
+
61
+ ## Validation (prototype, this ADR)
62
+
63
+ Run on this repo, Node 26:
64
+
65
+ - `codegraph index` → **4,179 nodes / 7,733 edges** across 196 Python files in ~1s;
66
+ plain SQLite at `.codegraph/codegraph.db` (auto-gitignored). `codegraph impact <symbol>`
67
+ (blast-radius) and `query`/`callers` work out of the box.
68
+ - `scripts/codegraph/inject_edges.py` (the first injected-edge extractor) reads
69
+ `_bus_consumers.json` + emit sites and materializes producer→consumer edges:
70
+ `file:scripts/_bus.py --[wicked.persona.contributed]--> file:scripts/jam/_bus_consumers.py`.
71
+ codegraph's static graph had **0** such edges; `grep` finds **no** link between
72
+ producer and consumer (they share only the event string). Blast-radius now
73
+ traverses them.
74
+ - Bonus finding: a consumer in `_bus_consumers.json` (`crew:auto-advance`) points at
75
+ `scripts/crew/_bus_consumers.py`, which **does not exist** — a stale registry entry
76
+ the graph build surfaced.
77
+
78
+ ## Architecture
79
+
80
+ ```
81
+ codegraph (static: symbols + imports/calls/refs, column-precise, SQLite)
82
+ + injected-edge extractors (deterministic, per wiring mechanism)
83
+ bus emit↔_bus_consumers.json [prototype: scripts/codegraph/inject_edges.py]
84
+ command→agent (subagent_type) [next]
85
+ agent→tool (capabilities) [next]
86
+ + data-flow lineage layer [build: neither engine provides general lineage]
87
+ = the relationship graph
88
+ → consumers: blast-radius, lineage, wicked-patch (--db)
89
+ ```
90
+
91
+ - **Peer shim** `scripts/_codegraph.py` — resolves + runs the codegraph CLI/MCP
92
+ exactly like `_loom.py` does for loom (env `WICKED_CODEGRAPH_BIN` → config → PATH →
93
+ npx). Pin Node ≥ 22.5 (codegraph uses `node:sqlite`); we run 26.
94
+ - **Injected edges** carry their semantics in the edge `metadata` (codegraph's
95
+ node/edge `kind` are closed unions; `references` + `provenance='injected:<mechanism>'`
96
+ is the no-fork convention). Coverage caveat: if a wired file isn't a codegraph
97
+ node, the extractor skips it (and that itself flags stale wiring, as above).
98
+
99
+ ## Consequences
100
+
101
+ - blast-radius/lineage flip from **redundant** (grep+broken) → **genuinely
102
+ differentiated** (they answer injected-relationship questions grep cannot).
103
+ - wicked-patch flips from **broken** (no `--db`) → **working** (consumes the
104
+ codegraph SQLite as its symbol DB).
105
+ - **Risk:** codegraph bus-factor = 1. Mitigated by MIT license + the SQLite schema
106
+ being a stable, self-describing contract we can read even if upstream stalls.
107
+ - **Lock-in:** low — we depend on a documented SQLite shape, not an opaque service.
108
+
109
+ ## Roadmap
110
+
111
+ 1. ✅ Prototype: peer shim + bus injected-edge extractor + blast-radius proof (this ADR).
112
+ 2. command→agent and agent→tool extractors (same pattern as the bus extractor).
113
+ 3. Rewire `search:blast-radius`/`lineage` to query the graph (and fix the 4242→4243 port).
114
+ 4. Wire wicked-patch to consume the codegraph SQLite as its `--db` (revives the patch family).
115
+ 5. Build the data-flow lineage layer on top.
116
+ 6. Evaluate borrowing roam-code's Code-Graph Attestation as a complement to the vault gate.
@@ -0,0 +1,91 @@
1
+ # ADR 0002 — Major cleanup: collapse rubric-wrappers to skills; keep only what the agent actually uses
2
+
3
+ - **Status:** Accepted — **fully executed**. All domains collapsed (product #910; engineering #911; platform #912; data+delivery #913; agentic+jam+persona+smaht #914), orphan agents purged via `scripts/ci/find_orphan_agents.py`, and `components.json` re-derived via `scripts/ci/sync_components.py`. End state: 90 commands, 40 agents (from 56), 71 skills.
4
+ - **Date:** 2026-06-09
5
+
6
+ ## The test
7
+
8
+ The customer is the AI coding agent (and, downstream, the human reading its output and *other-repo* agents that load these skills). A feature **earns its current shape only if it does at least one of:**
9
+ 1. **makes the agent's life easier** (a capability/ergonomic the agent lacks natively), or
10
+ 2. **greatly reduces tokens** (vs. the agent's native Read/Grep/Bash/subagent path), or
11
+ 3. **improves the quality of the final output** (catches errors, enforces evidence, adds a perspective the agent can't produce alone).
12
+
13
+ Most "commands" in the garden are a checklist the agent already applies, wrapped in a `Task(subagent)` hop that costs *more* tokens and latency for the *same* output. The hop fails all three — but **the rubric inside it usually doesn't.** The knowledge is the asset; the dispatch is the tax.
14
+
15
+ So the default disposition is **COLLAPSE-TO-SKILL, not DELETE.** The rubric/knowledge moves to an on-demand `skills/*/refs/<name>.md` file (progressive disclosure → near-zero idle context cost — it loads only when the command runs), and the command becomes a **slim body that loads the ref and does the work INLINE** (a `Read` of the ref, then apply directly — no `Task`/subagent dispatch).
16
+
17
+ This is grounded in a full hands-on pass: every domain was invoked and judged against native tools.
18
+
19
+ ## Dispositions
20
+
21
+ - **COLLAPSE (default)** — rubric → `skills/*/refs/`; command → slim inline body, no dispatch. The functionality survives; only the hop is removed.
22
+ - **KEEP DISPATCH** — only where dispatch genuinely earns it: **real parallelism** (3-4 lenses running at once), **context isolation** for a huge payload, a **real external tool**, or an **independent gate** (an evaluator that must not be the agent that did the work).
23
+ - **DELETE** — only the truly-dead: already-removed `crew:archive` / `delivery:process-health`, plus `smaht:propose-skills`, the dead half of `smaht:state`, and `persona:submit`. These have no rubric worth rescuing.
24
+
25
+ ## KEEP (earns its place)
26
+
27
+ | Feature | Why (criterion) |
28
+ |---|---|
29
+ | `prove` + the produces-gate (vault/loom, outputs + attestation + semantic) | **output** — stops false "done"; no native equivalent |
30
+ | `/compile` | **easier** — emits a self-contained gate into any repo |
31
+ | code-graph (codegraph + injected-edge extractors) → `search:blast-radius`, `search:lineage` | **output + tokens** — finds injected relationships grep can't; impact in one query vs. reading many files |
32
+ | wicked-patch (`rename`/`add-field`/`remove`/`apply`) — once wired to the graph DB | **easier + output** — deterministic multi-file refactor |
33
+ | `jam:council` / multi-model | **output** — real external-model perspective the agent can't produce alone |
34
+ | `jam:brainstorm` / `revisit` (the wicked-brain decision-memory loop) | **output** — longitudinal decision/outcome memory |
35
+ | `smaht:briefing` | **tokens** — one event-store query replaces stitching git+memory+tasks |
36
+ | `data:ontology` | **output** — real RDF-vocabulary engine (beats free-recall) |
37
+ | `persona:as` (built-in personas) + `persona:list` | **output** — hand-authored constraints/memories measurably steer; cheap discovery |
38
+ | `platform:security` (now drives real `gitleaks`/`semgrep`) | **output** — real SAST/secrets, not grep-guessing |
39
+ | `platform:toolchain` | **tokens/easier** — fast deterministic CLI inventory |
40
+ | wicked-testing integration (`acceptance`/`run`/`plan`/`review`) | **output** — evidence-gated testing backbone |
41
+ | archetype **gate** + actionable steering (emits the `prove` one-liner) | **output** — turns the principle into a reflex |
42
+ | Core plumbing: `setup`, `where-am-i`, `help`, `intent`, `reset`, `classify`, hooks | load-bearing |
43
+
44
+ ## COLLAPSE (default — fails the hop test, but the rubric is worth keeping)
45
+
46
+ These are `Task(subagent)` rubric-wrappers: a checklist the agent already applies, behind a hop that costs more tokens for the same result. **The hop goes; the rubric becomes an on-demand `skills/*/refs/<name>.md`; the command runs it inline.** Roughly ~42 commands, plus the agents that exist *only* as their dispatch targets (those go; agents still referenced by a surviving command/skill stay).
47
+
48
+ | Domain | Collapse | Note |
49
+ |---|---|---|
50
+ | product | ✅ **EXECUTED — all 12** (`a11y`,`ux`,`ux-review`,`elicit`,`strategy`,`mockup`,`screenshot`,`analyze`,`synthesize`,`listen`,`align`,`acceptance`) | The pattern. Each rubric is now `skills/product/refs/<name>.md`, loaded inline. **Kept dispatch** only for the genuine multi-lens cases: `ux-review --focus all` (4 lenses) and `strategy --focus all` (2 lenses). Removed the dispatch-only agents `ux-analyst`, `user-voice`, `mockup-generator`; kept the rest (still referenced). `acceptance --scenarios` wicked-testing tie-in preserved in the ref. |
51
+ | engineering | `debug`, `plan`, `arch`, `review`, `docs` | `debug` duplicates `superpowers:systematic-debugging` (collapse to a pointer); rest collapse with R1–R6 preserved as a ref. |
52
+ | platform | `compliance`, `audit`, `incident`, `health`, `traces`, `actions`, `gh`, `infra` | keep `security` + `toolchain`. Collapse the SOC2/HIPAA audit checklist into a ref. |
53
+ | data | `analyze`, `data`, `pipeline`, `ml` | keep `ontology`. |
54
+ | delivery | `experiment`, `report`, `rollout`, `setup` | document templates → refs; `process-health` already deleted. Domain effectively retired. |
55
+ | agentic | `review`, `audit`, `design`, `frameworks` | scripts emit false signals (drop those); collapse the T&S 8-layer rubric into a ref. |
56
+ | jam | `quick`, `perspectives` (single-model role-play); `thinking`/`transcript`/`persona` (retrieval utils) | keep `council`/`brainstorm`/`revisit`. |
57
+ | persona | `define` | thin (define can't set the rich fields) — collapse. Keep `as`/`list`. |
58
+ | smaht | `state` (half-dead — collapse the live half) | keep `briefing`; `events-import` is a one-time util (keep or archive). |
59
+
60
+ ## DELETE (truly-dead — no rubric to rescue)
61
+
62
+ `crew:archive` + `delivery:process-health` (already removed), `smaht:propose-skills` (weak signal), the dead half of `smaht:state`, `persona:submit` (no-op stub). Nothing of value is lost.
63
+
64
+ ## What we lose
65
+
66
+ **With collapse, functionality lost ≈ 0.** The rubric, checklist, and capability survive verbatim as a `refs/` file — still discoverable (it's in the skill tree), still loadable on demand, still valid on **other repos and other toolchains** (a ref is portable knowledge; a dispatch hop is not). What's removed is *only the token-burning dispatch hop* — the parent no longer pays subagent spin-up + round-trip for a checklist it can apply itself.
67
+
68
+ The win is **dual-customer**:
69
+ - **the AI agent** — fewer tokens, lower latency, the rubric inlined exactly when it's needed (progressive disclosure keeps idle context near zero);
70
+ - **the human** — a smaller, legible surface; the rubric reads as documentation;
71
+ - **other-repo agents** — `skills/*/refs/` ships as portable knowledge they can load without the garden's dispatch machinery.
72
+
73
+ Only the genuinely-dead DELETE rows lose anything, and those had no rubric worth keeping.
74
+
75
+ ## Estimated impact
76
+
77
+ - Commands: stay numerically similar (collapsed, not deleted) but each is **slim** — the parent-context cost per command drops to a few lines; the rubric body moves to on-demand `refs/`.
78
+ - Agents: **down sharply** (~56 → ~20) — the dispatch-only targets go; the rubric-bearing ones survive as refs.
79
+ - Net: idle parent-context shrinks (slim bodies); per-invocation tokens drop (no hop); **zero capability lost**. The surface finally matches the "thin, high-value toolkit" the agent actually reaches for.
80
+
81
+ ## Phased execution (each phase = one worktree PR, parallelizable, suite-gated)
82
+
83
+ 0. ✅ Remove dead commands (`crew:archive`, `delivery:process-health`).
84
+ 1. ✅ **product** domain collapse (#910) — the executed pattern the rest followed.
85
+ 2. ✅ **engineering** collapse (#911) — arch/debug/docs/plan/review; patch family kept.
86
+ 3. ✅ **platform** collapse (#912) — 8 wrappers; security/toolchain/assert/plugin-health kept.
87
+ 4. ✅ **data + delivery** collapse (#913) — keep ontology + setup.
88
+ 5. ✅ **agentic + jam + persona + smaht** collapse (#914) — keep council/brainstorm/revisit/briefing; delete persona:submit + smaht:propose-skills.
89
+ 6. ✅ **Agent-orphan purge + registry sync** — `find_orphan_agents.py` did a reachability analysis (roots = commands/skills/scenarios/registries, **not** the generated `components.json`); removed 3 truly-orphaned delivery agents (cloud-cost-intelligence, delivery-manager, progress-tracker) while correctly keeping the 4 that live scenarios still dispatch to. `sync_components.py` re-derived the manifest; `docs/domains.md` updated.
90
+
91
+ Each phase was reversible (git), suite-gated, and PR'd. Two reusable anti-drift tools fell out of phase 6: `find_orphan_agents.py` (dead-agent detection) and `sync_components.py` (manifest never silently drifts again).
@@ -0,0 +1,41 @@
1
+ # ADR 0003 — Two required peers (the gate), three opt-in layers
2
+
3
+ - **Status:** Accepted — executed.
4
+ - **Date:** 2026-06-09
5
+ - **Supersedes:** the v12 stance in `docs/required-peers.md` ("five peers are required infrastructure").
6
+
7
+ ## Context
8
+
9
+ v12 made all five peers (`wicked-testing`, `wicked-vault`, `wicked-brain`, `wicked-bus`, `wicked-loom`) **required** — `/wicked-garden:setup` blocked without any one, and the SessionStart bootstrap nagged "REQUIRED but not installed" for each.
10
+
11
+ A third-party review pass (a skeptic persona + a `jam:council` panel of external models — codex/gpt-5.5 and opencode/claude-haiku) converged, independently, on one verdict: **the all-or-nothing five-peer requirement contradicts the "gap-filler that gets out of the way" pitch and is the single biggest adoption blocker.** "A gap-filler should feel additive; this sounds like infrastructure." "A single required peer would unlock solo adoption; bundle the other four as opt-in layers and you'd see 10× more install attempts."
12
+
13
+ The author's counter-point matters too: **garden's goal is a curated toolkit**, and stripping to one tool deletes the concept. So the resolution is not "cut to one tool" — it's "keep the breadth, fix the coupling."
14
+
15
+ ## Decision
16
+
17
+ Split the peers by what actually needs them:
18
+
19
+ - **Required — the evidence gate:** `wicked-vault` + `wicked-loom`. The toolkit's central promise is *re-derived, fail-closed "done."* A gate that can't re-derive evidence is the one thing we refuse to fake, so setup **blocks** without these two. Trading adoption for honesty here is deliberate.
20
+ - **Opt-in layers:** `wicked-testing` (acceptance-testing tool), `wicked-brain` (memory + search — the *what*), `wicked-understanding` (repo playbooks — the *how*; `skills`-standard, added in v12.16), `wicked-bus` (audit trail). Each unlocks one capability; none is a prerequisite for the others or for the gate. Setup **recommends** them and continues; bootstrap surfaces them informationally.
21
+
22
+ This is the toolkit stance: **breadth you adopt incrementally**, not a five-thing prerequisite wall.
23
+
24
+ ## Why this is safe
25
+
26
+ - The produces-gate already routes only through vault+loom; it never needed testing/brain/bus.
27
+ - `wicked-bus` emission was already fire-and-forget / fail-open.
28
+ - `wicked-brain` absence already degrades (structural search falls back to codegraph; memory features simply go dark).
29
+ - Runtime resilience + the kill-switches (`WICKED_VAULT_BIN=""`, `WICKED_LOOM_CUTOVER=off`) are unchanged — they still fail closed, never vacuous-pass.
30
+
31
+ ## Changes
32
+
33
+ - `commands/setup.md` — testing/brain/bus sections → "Recommended (opt-in layer)", non-blocking (Skip & continue); vault/loom → "Required — the evidence gate", still blocking. Added a "two required, three opt-in" framing note.
34
+ - `hooks/scripts/bootstrap.py` — brain/bus notes reworded "REQUIRED but not installed" → "optional layer not installed"; removed the brain "[Action Required] … cannot function … do NOT proceed" escalation. vault/loom notes unchanged.
35
+ - `docs/required-peers.md` rewritten to the 2-required/3-opt-in model; README/ETHOS/plugin.json/marketplace.json/repo description reframed; positioning shifted from "minimal gap-filler" to **"curated toolkit"** (breadth is the point; the coupling was the problem).
36
+
37
+ ## Consequences
38
+
39
+ - Solo developers can install garden + the gate (two `npx`/`npm` steps) and get value immediately, adding layers as needed.
40
+ - The honesty guarantee is preserved exactly where it's load-bearing (the gate).
41
+ - Honest cost: a user who skips brain/bus/testing gets a smaller toolkit — which is the point of opt-in. Docs say so plainly rather than pretending everything is mandatory.