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,55 @@
1
+ ---
2
+ description: Find the most-referenced symbols in the codebase — classes, functions, and modules with the highest connectivity
3
+ argument-hint: "[--limit <n>]"
4
+ phase_relevance: ["build", "test", "review"]
5
+ archetype_relevance: ["*"]
6
+ ---
7
+
8
+ # /wicked-garden:search:hotspots
9
+
10
+ Rank symbols by incoming reference count to expose god-objects, coupling hotspots, and high-impact refactor targets.
11
+
12
+ ## Instructions
13
+
14
+ 1. **Freshness** — ensure the graph is current with `/wicked-garden:search:index` (brain's `graph-index` builds the codegraph graph + injected edges and reports a `staleness` stamp). The ranking below reads the graph DB it produces; if it's stale, re-run the index.
15
+ 2. **Primary path — read the graph DB** brain built (`.codegraph/codegraph.db`, when present):
16
+ ```bash
17
+ python3 - <<'PY'
18
+ import sqlite3, pathlib
19
+ db = pathlib.Path(".codegraph/codegraph.db")
20
+ if not db.exists():
21
+ print("no index — run `search:index` first"); raise SystemExit
22
+ c = sqlite3.connect(str(db))
23
+ # incoming edges per target = how heavily referenced a symbol is.
24
+ # Exclude 'contains' (structural nesting, not a real reference) and self-loops.
25
+ rows = c.execute(
26
+ "SELECT target, COUNT(*) AS refs FROM edges "
27
+ "WHERE kind != 'contains' AND source != target "
28
+ "GROUP BY target ORDER BY refs DESC LIMIT 25").fetchall()
29
+ for tgt, n in rows:
30
+ node = c.execute("SELECT name, kind, file_path FROM nodes WHERE id=?", (tgt,)).fetchone()
31
+ label = (node[0] if node else tgt)
32
+ kind = (node[1] if node else "?")
33
+ print(f"{n:4d} {kind:10s} {label}")
34
+ c.close()
35
+ PY
36
+ ```
37
+ Report the ranked list. Call out anything with an unusually high count as a likely god-object or coupling hotspot worth refactoring. Note that injected edges (provenance LIKE `'injected:%'`) are included — a heavily-dispatched agent or capability appears here too.
38
+
39
+ 3. **Fallback — brain** (no `.codegraph` index):
40
+ ```bash
41
+ PORT="$(sh "${CLAUDE_PLUGIN_ROOT}/scripts/_python.sh" "${CLAUDE_PLUGIN_ROOT}/scripts/_brain_port.py" 2>/dev/null || echo 4242)"
42
+ curl -s -X POST "http://localhost:${PORT}/api" \
43
+ -H "Content-Type: application/json" \
44
+ -d '{"action":"search","params":{"query":"class function module export","limit":30}}'
45
+ ```
46
+ Tell the user codegraph gives a sharper, offline answer and suggest `/wicked-garden:search:index` to build it.
47
+
48
+ 4. **If neither is available**: say so and suggest `/wicked-garden:search:index`.
49
+
50
+ ## Example
51
+
52
+ ```
53
+ /wicked-garden:search:hotspots
54
+ /wicked-garden:search:hotspots --limit 10
55
+ ```
@@ -0,0 +1,38 @@
1
+ ---
2
+ description: Build/refresh the code-intelligence index (semantic brain + structural codegraph)
3
+ argument-hint: "<path>"
4
+ phase_relevance: ["*"]
5
+ archetype_relevance: ["*"]
6
+ ---
7
+
8
+ # /wicked-garden:search:index
9
+
10
+ Refresh the two code-intelligence layers the other `search:*` commands query. Both
11
+ live in **wicked-brain** now (ADR 0004):
12
+
13
+ - **semantic** (wicked-brain) — concept/symbol search, `wicked-brain:search`/`query`.
14
+ - **structural** (codegraph graph, owned by brain) — `wicked-brain:graph` (blast-radius/lineage) and the wicked-patch family.
15
+
16
+ ## Arguments
17
+ - `path` (required): directory to index (the brain server's `--source` repo).
18
+
19
+ ## Instructions
20
+
21
+ 1. **Semantic layer** — invoke `/wicked-brain:ingest` with `<path>` (incremental; only changed files re-ingest).
22
+
23
+ 2. **Structural layer** — one call rebuilds the codegraph static graph **and** re-applies every injected-edge extractor (built-in bus/dispatch/capability + any per-repo drop-ins under `.codegraph-extractors/`):
24
+ ```bash
25
+ npx -y wicked-brain-call graph-index
26
+ ```
27
+ This replaces the old `codegraph index` + `inject_all.py` two-step — brain runs the build and the extractors in a single pass, so the injected layer is never left empty after a re-index. The result reports per-extractor counts, `total_injected_edges`, and a `staleness` stamp.
28
+
29
+ 3. **Verify**:
30
+ ```bash
31
+ npx -y wicked-brain-call stats # brain chunk/tag counts (semantic layer)
32
+ ```
33
+ and confirm `graph-index` reported `total_injected_edges > 0` on a repo with wiring.
34
+
35
+ ## Notes
36
+ - Both layers are incremental/idempotent — safe to re-run.
37
+ - Freshness is lazy by design (no file-watcher reindex). `graph-*` results carry `commits_behind`/`indexed_at`; re-run `graph-index` when stale.
38
+ - If codegraph isn't resolvable where brain runs, `graph-*` returns `engine:"unavailable"` — install `@colbymchenry/codegraph` or set `WICKED_CODEGRAPH_BIN`.
@@ -0,0 +1,47 @@
1
+ ---
2
+ description: Trace data lineage / dependency flow (downstream dependencies or upstream dependents)
3
+ argument-hint: "<symbol> [--direction upstream|downstream|both] [--depth N]"
4
+ phase_relevance: ["*"]
5
+ archetype_relevance: ["*"]
6
+ ---
7
+
8
+ # /wicked-garden:search:lineage
9
+
10
+ Trace flow through the code-relationship graph — **delegates to wicked-brain's
11
+ `wicked-brain:graph`** (ADR 0004). Downstream = what the symbol depends on; upstream
12
+ = what depends on it. Includes injected edges (bus/dispatch/capability/archetype)
13
+ that grep and a static call-graph can't see.
14
+
15
+ > **Scope**: `lineage` answers "where does this flow from / to?". For pure
16
+ > "what breaks if I change X?" use `/wicked-garden:search:blast-radius`.
17
+
18
+ ## Arguments
19
+ - `symbol` (required): the symbol/file to trace from (`file:<relpath>` or a resolved node id).
20
+ - `--direction` (optional, default downstream): `downstream` (dependencies), `upstream` (dependents), or `both`.
21
+ - `--depth` (optional): traversal depth (brain default applies if omitted).
22
+
23
+ ## Instructions
24
+
25
+ 1. **Ensure the graph is fresh**: `npx -y wicked-brain-call graph-index` (builds codegraph + runs the injected-edge extractors; reports `staleness`).
26
+
27
+ 2. **Resolve the symbol to a node id** (`file:<relpath>` directly, or via `npx -y wicked-brain-call symbols --query "<symbol>"`).
28
+
29
+ 3. **Trace** via brain:
30
+ - **downstream** (what it depends on): `npx -y wicked-brain-call graph-lineage --node "<id>"` → `dependencies`.
31
+ - **upstream** (what depends on it): `npx -y wicked-brain-call graph-blast-radius --node "<id>"` → `dependents`.
32
+ - **both**: run both and present each direction.
33
+ Each result includes injected edges (e.g. a consumer reached via `injected:bus`, an archetype via `injected:archetype`) and a `staleness` stamp.
34
+
35
+ 4. **Fallbacks**: `engine:"unavailable"` → install codegraph where brain runs. Brain unreachable → `wicked-brain:search` + Grep for literal flow only (flag that injected/string-keyed links will be MISSING).
36
+
37
+ 5. Report each path (source → sink), file locations per step, provenance of injected hops, and gaps.
38
+
39
+ ## Examples
40
+ ```bash
41
+ /wicked-garden:search:lineage file:scripts/_bus.py --direction upstream
42
+ /wicked-garden:search:lineage User.email --direction both
43
+ ```
44
+
45
+ ## Notes
46
+ - The graph + queries live in **wicked-brain** now; this command is a thin wrapper over `wicked-brain:graph`.
47
+ - Use `/wicked-garden:search:blast-radius` for the dedicated "impact of changing X" view.
@@ -0,0 +1,79 @@
1
+ ---
2
+ description: Detect and visualize the service architecture from infrastructure and code patterns
3
+ argument-hint: "[project_root] [--format table|json|mermaid]"
4
+ phase_relevance: ["*"]
5
+ archetype_relevance: ["*"]
6
+ ---
7
+
8
+ # /wicked-garden:search:service-map
9
+
10
+ Detect services and their connections from infrastructure configuration files and the brain knowledge layer. Generates a service dependency map.
11
+
12
+ ## Arguments
13
+
14
+ - `project_root` (optional): Project root directory to scan (default: current directory)
15
+ - `--format` (optional): Output format - table, json, mermaid (default: table)
16
+
17
+ ## Instructions
18
+
19
+ 1. **Detect infrastructure-defined services** by scanning for config files:
20
+ ```
21
+ Glob: **/docker-compose*.yml, **/k8s/**, **/kubernetes/**, **/helm/**
22
+ ```
23
+ Parse found files to extract service names, types, and connections.
24
+
25
+ 2. **Search brain for service patterns** in the codebase:
26
+ ```bash
27
+ PORT="$(sh "${CLAUDE_PLUGIN_ROOT}/scripts/_python.sh" "${CLAUDE_PLUGIN_ROOT}/scripts/_brain_port.py" 2>/dev/null || echo 4242)"
28
+ curl -s -X POST "http://localhost:${PORT}/api" \
29
+ -H "Content-Type: application/json" \
30
+ -d '{"action":"search","params":{"query":"service endpoint controller route","limit":30}}'
31
+ ```
32
+ If brain is unavailable, fall back to Grep:
33
+ ```
34
+ Grep: @(Service|RestController|Controller|Router|app\.(get|post|put|delete))
35
+ ```
36
+ Suggest `wicked-brain:ingest` to index the codebase for richer service discovery.
37
+
38
+ 3. Merge infrastructure and code-level discoveries into a unified service map.
39
+
40
+ 4. Report in requested format:
41
+
42
+ ### Table Format (default)
43
+ ```markdown
44
+ ## Service Map
45
+
46
+ | Service | Type | Technology | Source |
47
+ |---------|------|------------|--------|
48
+ | api | application | nodejs | docker-compose |
49
+ | db | database | postgres | docker-compose |
50
+ | UserService | service_class | java | code_pattern |
51
+
52
+ ### Connections
53
+
54
+ | From | To | Type | Confidence |
55
+ |------|-----|------|------------|
56
+ | api | db | database | high |
57
+ ```
58
+
59
+ ### Mermaid Format
60
+ Generate a `graph TD` diagram with service nodes and connection edges.
61
+
62
+ ## Example
63
+
64
+ ```
65
+ /wicked-garden:search:service-map
66
+ /wicked-garden:search:service-map --format mermaid
67
+ /wicked-garden:search:service-map /path/to/project
68
+ ```
69
+
70
+ ## Detection Sources (Priority Order)
71
+
72
+ 1. **Docker Compose** (highest confidence): `docker-compose.yml`, `depends_on`
73
+ 2. **Kubernetes** (high confidence): Deployment, Service manifests
74
+ 3. **Code Patterns** (medium confidence): `@Service`, `@RestController`, connection strings
75
+
76
+ ## Notes
77
+
78
+ - Infrastructure sources (docker, k8s) don't require indexing
79
+ - Code patterns benefit from brain indexing via `wicked-brain:ingest`
@@ -0,0 +1,363 @@
1
+ ---
2
+ allowed-tools: ["AskUserQuestion", "Bash", "Read", "Write", "Skill", "Agent"]
3
+ description: "Configure wicked-garden connection and onboard the current codebase"
4
+ argument-hint: "[--reconfigure]"
5
+ phase_relevance: ["bootstrap"]
6
+ archetype_relevance: ["*"]
7
+ ---
8
+
9
+ # /wicked-garden:setup
10
+
11
+ The single entry point for getting started. Always interactive — detects current state and asks the user what they want.
12
+
13
+ ## Arguments
14
+
15
+ - `--reconfigure`: Force connection reconfiguration even if already set up
16
+
17
+ ## Question Mode
18
+
19
+ Detect once, branch every interactive call site below:
20
+
21
+ ```bash
22
+ sh "${CLAUDE_PLUGIN_ROOT}/scripts/_python.sh" "${CLAUDE_PLUGIN_ROOT}/scripts/setup/detect_state.py" question-mode
23
+ ```
24
+
25
+ - **INTERACTIVE**: Use AskUserQuestion as documented in each step.
26
+ - **PLAIN_TEXT**: AskUserQuestion is broken (dangerous mode auto-completes with empty answers). Present every question as a **numbered plain text list**, then **STOP and wait** for the user. Do NOT proceed until you receive a reply.
27
+
28
+ ## Answer Verification (CRITICAL)
29
+
30
+ **INTERACTIVE (AskUserQuestion) mode**: after EVERY AskUserQuestion call you MUST (1) verify the selection is clearly present in the response, (2) echo it back — "You selected **[option]**. Proceeding with [action]..." — before any action, (3) if ambiguous or empty, do NOT assume — ask "I couldn't determine your selection. Could you tell me which option you'd like?" and wait.
31
+
32
+ **PLAIN_TEXT mode**: present options as a numbered list, **STOP**, parse the reply, echo back the same way. Never proceed with a default. Wrong actions are worse than asking twice.
33
+
34
+ ## Instructions
35
+
36
+ ### 1. Detect Current State
37
+
38
+ ```bash
39
+ sh "${CLAUDE_PLUGIN_ROOT}/scripts/_python.sh" "${CLAUDE_PLUGIN_ROOT}/scripts/setup/detect_state.py" config
40
+ ```
41
+
42
+ Returns `{"present": false, "path": ...}` if no config, otherwise `{"present": true, "path": ..., "config": {...}}`. This determines which questions to ask in Step 3.
43
+
44
+ ### 2. Install Prerequisites
45
+
46
+ ```bash
47
+ sh "${CLAUDE_PLUGIN_ROOT}/scripts/_python.sh" "${CLAUDE_PLUGIN_ROOT}/scripts/_run.py" scripts/platform/prereq_doctor.py check-all
48
+ ```
49
+
50
+ Parse the JSON. Only `core` tools are required during setup. For each `core` tool: `status: "available"` → checkmark; `status: "missing"` → show "{name} is not installed. Install with: `{install_cmd}`?" then **INTERACTIVE mode**: AskUserQuestion header "{name}", options "Install now" = "Run: {install_cmd}" / "Skip" = "Continue without {name}"; **PLAIN_TEXT mode**: ask in plain text and STOP. If approved, run `install_cmd` (and `post_install` if present), then re-check with `prereq_doctor.py check {tool}`. If declined, warn dependent features will be unavailable and continue. **Skip `optional` tools** — the PostToolUseFailure hook detects them at runtime.
51
+
52
+ After core tools, if `uv` is available, sync Python deps: `{uv_path} sync --quiet`. If sync fails, warn that search indexing will be unavailable but continue.
53
+
54
+ > **One required, three opt-in.** The evidence gate needs **wicked-vault** (§2.6) — it ships via wicked-testing and the internal loom engine is built into wicked-garden itself, so no separate loom install is needed. The other three (**wicked-testing**, **wicked-brain**, **wicked-bus**) are **opt-in toolkit layers** — install them for the acceptance-testing, memory, and audit-trail capabilities; skip any and the rest of the toolkit still works.
55
+
56
+ ### 2.5 Verify wicked-testing (Recommended — acceptance-testing layer)
57
+
58
+ ```bash
59
+ npx wicked-testing --version 2>/dev/null || echo "MISSING"
60
+ ```
61
+
62
+ - `MISSING` → **recommended, not blocking.** Show "wicked-testing isn't installed — the evidence-gated acceptance-testing layer (author ≠ executor ≠ reviewer) will be unavailable. The produces-gate itself still works via vault + loom." **INTERACTIVE mode**: AskUserQuestion header "wicked-testing (optional layer)", options "Install now" = "Run: npx wicked-testing install" / "Skip" = "Continue without the acceptance-testing layer". **PLAIN_TEXT mode**: offer the choice and CONTINUE (do not stop). If install: run `npx wicked-testing install`, re-probe with `npx wicked-testing --version`, confirm the version. If skipped: continue setup — the layer can be added anytime.
63
+ - Version string (e.g. `0.3.0`) → check it satisfies `^0.3.0` (the pin from `plugin.json`). In range: show "wicked-testing {version} — ready." Out of range: warn "wicked-testing {version} is outside the supported range (^0.3.0). Update with: `npx wicked-testing install`" and ask whether to update now (same INTERACTIVE / PLAIN_TEXT pattern). Updating is strongly recommended but not a hard block — the SessionStart hook will warn each session.
64
+
65
+ ### 2.5b Verify wicked-brain (Recommended — memory/context layer)
66
+
67
+ wicked-brain installs as a **Claude Code plugin** (not an npx CLI), so verify by presence rather than a version probe.
68
+
69
+ ```bash
70
+ sh "${CLAUDE_PLUGIN_ROOT}/scripts/_python.sh" - <<'PY' 2>/dev/null || python - <<'PY'
71
+ import json, os
72
+ from pathlib import Path
73
+ installed = False
74
+ candidates = [Path.home()/".claude"/"settings.json", Path(".claude")/"settings.json"]
75
+ cfg = os.environ.get("CLAUDE_CONFIG_DIR")
76
+ if cfg: candidates.append(Path(cfg)/"settings.json")
77
+ for p in candidates:
78
+ try:
79
+ if not p.exists(): continue
80
+ enabled = json.loads(p.read_text(encoding="utf-8")).get("enabledPlugins", {})
81
+ if "wicked-brain" in (enabled if isinstance(enabled, (dict, list)) else {}):
82
+ installed = True; break
83
+ except Exception: continue
84
+ if not installed:
85
+ roots = [Path.home()/".claude"/"skills"]
86
+ if cfg: roots.append(Path(cfg)/"skills")
87
+ for r in roots:
88
+ try:
89
+ if r.exists() and any(e.is_dir() and e.name.startswith("wicked-brain") for e in r.iterdir()):
90
+ installed = True; break
91
+ except OSError: continue
92
+ print("READY" if installed else "MISSING")
93
+ PY
94
+ ```
95
+
96
+ - `MISSING` → **recommended, not blocking.** wicked-brain is the memory/context layer (cross-session recall, cited search, `smaht:briefing`); the rest of the toolkit works without it. Show "wicked-brain isn't installed — you'll lose cross-session memory + brain-backed search until you add it." **INTERACTIVE mode**: AskUserQuestion header "wicked-brain (optional layer)", options "Install now" = "Run: /plugin install wicked-brain" / "Skip" = "Continue without the memory layer". **PLAIN_TEXT mode**: offer the choice and CONTINUE. If install: instruct the user to run `/plugin install wicked-brain` (a Claude Code slash command), then re-run the presence check and confirm `READY`. If skipped: continue setup.
97
+ - `READY` → show "wicked-brain — ready (plugin installed)."
98
+
99
+ ### 2.5c Verify wicked-understanding (Recommended — repo-playbooks layer)
100
+
101
+ wicked-understanding installs as **`skills`-standard skills** (multi-CLI; no server). It analyzes the current repo at HEAD into task playbooks (`fix-bug`/`add-feature`/`verify`/`write-tests`) the agent loads on demand — the "how to work in THIS repo" layer that pairs with wicked-brain's "what". Per-repo, so verify by presence of its generated skills rather than a version probe.
102
+
103
+ ```bash
104
+ sh "${CLAUDE_PLUGIN_ROOT}/scripts/_python.sh" - <<'PY' 2>/dev/null || python - <<'PY'
105
+ import os
106
+ from pathlib import Path
107
+ found = False
108
+ roots = [Path.home()/".claude"/"skills"]
109
+ cfg = os.environ.get("CLAUDE_CONFIG_DIR")
110
+ if cfg: roots.append(Path(cfg)/"skills")
111
+ for r in roots:
112
+ try:
113
+ if r.exists() and any(e.is_dir() and e.name.startswith(("repo-", "fix-bug", "add-feature")) for e in r.iterdir()):
114
+ found = True; break
115
+ except OSError: continue
116
+ print("READY" if found else "ABSENT")
117
+ PY
118
+ ```
119
+
120
+ - `ABSENT` → **recommended, not blocking.** Show "wicked-understanding isn't set up — without it the agent re-derives *how to work in this repo* each task. Add the repo-playbooks layer: `npx skills add mikeparcewski/wicked-understanding --all`, then run its `repo-analyst` to generate this repo's playbooks." **INTERACTIVE mode**: AskUserQuestion header "wicked-understanding (optional layer)", options "Install now" = "Run: npx skills add mikeparcewski/wicked-understanding --all" / "Skip" = "Continue without repo playbooks". **PLAIN_TEXT mode**: offer the choice and CONTINUE. If skipped: continue setup.
121
+ - `READY` → show "wicked-understanding — ready (repo playbooks installed)." Suggest re-running `repo-analyst` after large changes so the playbooks track HEAD.
122
+
123
+ ### 2.6 Verify wicked-vault (Required — the evidence gate)
124
+
125
+ ```bash
126
+ npx wicked-vault --version 2>/dev/null || echo "MISSING"
127
+ ```
128
+
129
+ - `MISSING` → blocking. wicked-vault is the evidence backend every archetype gate re-derives against — without it, "done" can only be self-asserted. Show "wicked-vault is not installed. wicked-garden requires it as a peer (sibling to wicked-bus / wicked-brain / wicked-testing)." **INTERACTIVE mode**: AskUserQuestion header "wicked-vault Required", options "Install now (Required)" = "Run: npx wicked-vault-install" / "Exit setup" = "Cancel — I'll install manually and re-run". **PLAIN_TEXT mode**: present numbered options and STOP. If install: run `npx wicked-vault-install` (installs the cross-CLI skills) and confirm the CLI resolves with `npx wicked-vault --version`. On failure, show stderr and exit with manual instructions (`npm i -g wicked-vault`). If exit: "Run `npx wicked-vault-install` then restart with `/wicked-garden:setup`."
130
+ - Version string (e.g. `0.3.0`) → show "wicked-vault {version} — ready." Then verify the garden can resolve it for gating: `sh "${CLAUDE_PLUGIN_ROOT}/scripts/_python.sh" "${CLAUDE_PLUGIN_ROOT}/scripts/qe/vault_gate.py" resolve` should report `resolvable: true`. If `installed: false` (resolving only via npx), suggest `npm i -g wicked-vault` for faster gate latency — recommended, not a hard block.
131
+
132
+ ### 2.7 Verify wicked-bus (Recommended — audit-trail layer)
133
+
134
+ wicked-bus installs as a **Claude Code plugin** (not an npx CLI), so verify by presence rather than a version probe.
135
+
136
+ ```bash
137
+ sh "${CLAUDE_PLUGIN_ROOT}/scripts/_python.sh" - <<'PY' 2>/dev/null || python - <<'PY'
138
+ import json, os
139
+ from pathlib import Path
140
+ installed = False
141
+ candidates = [Path.home()/".claude"/"settings.json", Path(".claude")/"settings.json"]
142
+ cfg = os.environ.get("CLAUDE_CONFIG_DIR")
143
+ if cfg: candidates.append(Path(cfg)/"settings.json")
144
+ for p in candidates:
145
+ try:
146
+ if not p.exists(): continue
147
+ enabled = json.loads(p.read_text(encoding="utf-8")).get("enabledPlugins", {})
148
+ if "wicked-bus" in (enabled if isinstance(enabled, (dict, list)) else {}):
149
+ installed = True; break
150
+ except Exception: continue
151
+ if not installed:
152
+ roots = [Path.home()/".claude"/"skills"]
153
+ if cfg: roots.append(Path(cfg)/"skills")
154
+ for r in roots:
155
+ try:
156
+ if r.exists() and any(e.is_dir() and e.name.startswith("wicked-bus") for e in r.iterdir()):
157
+ installed = True; break
158
+ except OSError: continue
159
+ print("READY" if installed else "MISSING")
160
+ PY
161
+ ```
162
+
163
+ - `MISSING` → **recommended, not blocking.** wicked-bus is the audit-trail layer; event emission is already fire-and-forget / fail-open, so the toolkit runs fine without it (events just aren't recorded). Show "wicked-bus isn't installed — the cross-session audit trail will be empty until you add it." **INTERACTIVE mode**: AskUserQuestion header "wicked-bus (optional layer)", options "Install now" = "Run: /plugin install wicked-bus" / "Skip" = "Continue without the audit trail". **PLAIN_TEXT mode**: offer the choice and CONTINUE. If install: instruct the user to run `/plugin install wicked-bus` (a Claude Code slash command), then re-run the presence check and confirm `READY`. If skipped: continue setup.
164
+ - `READY` → show "wicked-bus — ready (plugin installed)."
165
+
166
+ ### 2.7b Verify loom peer-resolution engine (internal — no external install needed)
167
+
168
+ After Phase B of the ecosystem rationalization, the loom peer-resolution engine is absorbed
169
+ directly into wicked-garden as `scripts/loom/`. No external `wicked-loom` npm package is
170
+ required. Check that the internal module is importable:
171
+
172
+ ```bash
173
+ sh "${CLAUDE_PLUGIN_ROOT}/scripts/_python.sh" -c "
174
+ import sys, os
175
+ sys.path.insert(0, os.path.join(os.environ.get('CLAUDE_PLUGIN_ROOT', '.'), 'scripts'))
176
+ try:
177
+ from loom import resolve, compose, gate, manifest
178
+ print('READY')
179
+ except ImportError as e:
180
+ print('MISSING: ' + str(e))
181
+ "
182
+ ```
183
+
184
+ - `READY` → show "Loom peer-resolution — ready (internal module available). Peer resolution, vault gating, and peer-health checks are fully operational."
185
+ - `MISSING: ...` → this indicates a wicked-garden installation problem. Show "The loom internal module could not be imported from `scripts/loom/`. This is a garden install error — reinstall wicked-garden via the marketplace." This is blocking; do not proceed until resolved. **Note**: `WICKED_LOOM_BIN` overrides to an external loom binary (debugging escape hatch); `WICKED_LOOM_CUTOVER=off` is an emergency kill-switch that disables the gate entirely and causes it to FAIL CLOSED — there is no fallback/graceful-degradation path when the kill-switch is active. It is not a rollback mode; it is an emergency stop. Do NOT set it except under explicit incident direction.
186
+
187
+ ### 2.8 v6→v11 Project State Migration (optional)
188
+
189
+ If the user has v6-v10 crew projects on disk, advise them to run the v11 migration script:
190
+
191
+ ```bash
192
+ sh "${CLAUDE_PLUGIN_ROOT}/scripts/_python.sh" "${CLAUDE_PLUGIN_ROOT}/scripts/setup/migrate_v6_projects.py"
193
+ ```
194
+
195
+ `CLEAN` → no v6-state found, skip silently. `MIGRATABLE_FOUND` → list affected projects and ask whether to translate them to v11 archetype-mode shape. The legacy qe-evaluator naming sweep that lived here in v6 was removed when the universal pipeline was deleted in v11.0.0.
196
+
197
+ ### 3. Ask the User (batched questions)
198
+
199
+ Method depends on Question Mode.
200
+
201
+ #### 3a. If config exists (setup_complete: true)
202
+
203
+ **Q1 — Onboarding**: "Would you like to run codebase onboarding?" Options: "Full onboarding (Recommended)" | "Quick scout" | "Skip for now". **INTERACTIVE mode**: Use AskUserQuestion with header "Onboarding" (Full = "Index the codebase, explore architecture, trace flows, save discoveries as memories. Takes 1-2 minutes.", Quick scout = "Fast reconnaissance without indexing.", Skip = "Skip onboarding. Run /wicked-garden:setup later."). **PLAIN_TEXT mode**: present numbered text (a/b/c with same descriptions) and STOP. Verify, echo back. Skip to Step 5 with the answer.
204
+
205
+ #### 3b. If NO config
206
+
207
+ **Q1 — Onboarding**: same as 3a. Storage is always local (DomainStore writes local JSON) — no connection setup needed. After answer: Step 4 (write config) → Step 5.
208
+
209
+ ### 4. Write Config (if needed)
210
+
211
+ ```bash
212
+ sh "${CLAUDE_PLUGIN_ROOT}/scripts/_python.sh" "${CLAUDE_PLUGIN_ROOT}/scripts/setup/onboarding.py" write-local-config
213
+ sh "${CLAUDE_PLUGIN_ROOT}/scripts/_python.sh" "${CLAUDE_PLUGIN_ROOT}/scripts/setup/onboarding.py" mark-setup-complete
214
+ ```
215
+
216
+ Show: "Storage configured! Mode: Local (DomainStore — local JSON files). Status: Ready."
217
+
218
+ ### 5. Run Onboarding
219
+
220
+ Execute based on the onboarding answer from Step 3.
221
+
222
+ #### 5.0 Environment Scan (Full and Quick paths only)
223
+
224
+ Skip this step if the user chose "Skip".
225
+
226
+ ```bash
227
+ sh "${CLAUDE_PLUGIN_ROOT}/scripts/_python.sh" "${CLAUDE_PLUGIN_ROOT}/scripts/setup/detect_state.py" project-env
228
+ sh "${CLAUDE_PLUGIN_ROOT}/scripts/_python.sh" "${CLAUDE_PLUGIN_ROOT}/scripts/_run.py" scripts/platform/prereq_doctor.py check-all
229
+ ```
230
+
231
+ Store as `DETECTED_LANGS`, `DETECTED_FWS`. Build `DETECTED_TOOLS` from combined `core` + `optional` where `status` is `"available"`.
232
+
233
+ **Domain preferences** — which issue tracker? **INTERACTIVE mode**: Use AskUserQuestion header "Issue Tracking" with the 4 most common (AskUserQuestion supports max 4): "GitHub Issues" = "Use gh cli" / "Jira" = "Use Jira API" / "Azure DevOps" = "Use Azure DevOps work items" / "Local tasks only" = "Use Claude Code's native tasks only (default)". Let the user select "Other" for Linear or Rally. **PLAIN_TEXT mode**: write default `local` without asking (dangerous-mode sessions should not block on preferences).
234
+
235
+ **Validate the selected tool is reachable** (skip for `local`):
236
+
237
+ ```bash
238
+ sh "${CLAUDE_PLUGIN_ROOT}/scripts/_python.sh" "${CLAUDE_PLUGIN_ROOT}/scripts/_run.py" scripts/platform/prereq_doctor.py check "{selection}"
239
+ ```
240
+
241
+ - `available` + `via: "mcp"` → show "**{name}** connected via MCP server `{mcp_server}`."
242
+ - `available` + `via: "cli"` → show "**{cli}** CLI found at {cli_path}."
243
+ - `missing` → "**{name}** is not installed. Install with: `{install_cmd}`?". **INTERACTIVE mode**: AskUserQuestion header "{name}", options "Install now (Recommended)" = "Run: {install_cmd}" / "Skip" = "Use local native tasks instead". **PLAIN_TEXT mode**: ask in plain text and STOP. If approved, run `install_cmd` (and `post_install` if present), re-check with `prereq_doctor.py check {selection}`. If declined, override to `local`.
244
+
245
+ Persist the selection (one of `github` | `linear` | `jira` | `ado` | `rally` | `local`):
246
+
247
+ ```bash
248
+ sh "${CLAUDE_PLUGIN_ROOT}/scripts/_python.sh" "${CLAUDE_PLUGIN_ROOT}/scripts/setup/onboarding.py" save-domain-pref {selection}
249
+ ```
250
+
251
+ #### 5.1 Full Onboarding
252
+
253
+ Runs the **brain pipeline** — init knowledge layer, index codebase, improve search quality, store onboarding context. Show progress as each step completes. If any step fails, log it and continue — each step is independently valuable.
254
+
255
+ First, ask which directories to onboard. **INTERACTIVE mode**: Use AskUserQuestion with header "Directories", options "Current directory (Recommended)" = "Onboard the project root: {cwd}" / "Specify directories" = "Choose specific directories to index (enter paths via Other)". **PLAIN_TEXT mode**: ask in plain text (a = current directory `{cwd}`, b = specify paths), STOP, wait, verify, echo back.
256
+
257
+ ##### Brain Pipeline (in order)
258
+
259
+ **Step A — Brain init** (if brain doesn't exist). Probe the brain (resolve its port dynamically): `PORT="$(sh "${CLAUDE_PLUGIN_ROOT}/scripts/_python.sh" "${CLAUDE_PLUGIN_ROOT}/scripts/_brain_port.py" 2>/dev/null || echo 4242)"; curl -s -X POST "http://localhost:${PORT}/api" -H "Content-Type: application/json" -d '{"action":"health","params":{}}' 2>/dev/null`. If connection refused or no brain directory at `~/.wicked-brain`, run `Skill(skill="wicked-brain-init")`.
260
+ Then start the server with `Skill(skill="wicked-brain-server")`.
261
+
262
+ **Step B — Ingest codebase**. Show "Indexing codebase into brain..." then `Skill(skill="wicked-brain-ingest", args="{selected_directory}")`.
263
+
264
+ **Step C — Retag** (semantic tag expansion). Show "Improving search tags..." then `Skill(skill="wicked-brain-retag")`.
265
+
266
+ **Step D — Compile** (synthesize wiki articles). Show "Generating knowledge articles..." then `Skill(skill="wicked-brain-compile")`.
267
+
268
+ **Step E — Configure brain instructions** (write source_type guidance + wiki stats into CLAUDE.md). Must run AFTER compile so the wiki count is accurate. Show "Configuring brain instructions..." then `Skill(skill="wicked-brain-configure")`.
269
+
270
+ **Step F — Store onboarding memory** as a brain chunk. `{DETECTED_TOOLS_SUMMARY}` lists only available tools (e.g. "gh, docker"):
271
+ ```
272
+ Skill(skill="wicked-brain:memory", args="\"Onboarding: {project} fully onboarded on {date}. Languages: {DETECTED_LANGS}. Frameworks: {DETECTED_FWS}. Tools available: {DETECTED_TOOLS_SUMMARY}.\" --type procedural --tags onboarding,project-context,{project}")
273
+ ```
274
+
275
+ Show: "Onboarding complete — brain has {N} chunks, {M} wiki articles."
276
+
277
+ #### 5.2 Quick Scout
278
+
279
+ Ask which directories to scout (same question mode pattern as 5.1 — AskUserQuestion or plain text depending on mode). Then run `Skill(skill="wicked-brain:search")` and store an enriched onboarding memory with detected context from Step 5.0:
280
+
281
+ ```
282
+ Skill(skill="wicked-brain:memory", args="\"Onboarding: {project} quick-scouted on {date}. Languages: {DETECTED_LANGS}. Frameworks: {DETECTED_FWS}. Tools: {DETECTED_TOOLS_SUMMARY}. Full onboarding not yet run.\" --type procedural --tags onboarding,project-context,{project}")
283
+ ```
284
+
285
+ #### 5.3 Skip
286
+
287
+ Store a skip memory so the bootstrap directive doesn't fire again:
288
+ ```
289
+ Skill(skill="wicked-brain:memory", args="\"Onboarding: {project} skipped by user on {date}. Run /wicked-garden:setup to onboard later.\" --type procedural --tags onboarding,{project}")
290
+ ```
291
+
292
+ ### 6. Clear Onboarding Gate
293
+
294
+ Set `{mode}` to `full` / `quick` / `skip`. Pass `--complete` for full/quick (omit for skip):
295
+
296
+ ```bash
297
+ sh "${CLAUDE_PLUGIN_ROOT}/scripts/_python.sh" "${CLAUDE_PLUGIN_ROOT}/scripts/setup/onboarding.py" clear-gate --mode {mode} [--complete]
298
+ ```
299
+
300
+ ### 6.5 Inject CLAUDE.md Hints
301
+
302
+ Inject a minimal wicked-garden hint block into `.claude/CLAUDE.md` so Claude discovers the plugin in future sessions. Rules: target `.claude/CLAUDE.md` in the working directory (create the directory if needed); idempotent — if a `## Wicked Garden` section already exists, skip entirely; non-destructive — append to end; ultra-condensed (~80 tokens). If the file is created new, prepend `# Project Instructions\n\n` before the section. **Skip mode still injects** — the user should know the plugin is available even if onboarding was skipped.
303
+
304
+ Append (or prepend with header for a new file):
305
+
306
+ ```markdown
307
+
308
+ ## Wicked Garden
309
+
310
+ This project uses the [wicked-garden](https://github.com/mikeparcewski/wicked-garden) plugin.
311
+
312
+ Before implementing manually, check if wicked-garden has a domain for it:
313
+ - Code review: `/wicked-garden:engineering:review`
314
+ - Brainstorm/decide: `/wicked-garden:jam:quick "your question"`
315
+ - Security/compliance: `/wicked-garden:platform:security`
316
+ - Any task: describe it (the hook routes to a work-shape archetype) or invoke one directly, e.g. `/wicked-garden:archetype:build "description"`
317
+
318
+ Run `/wicked-garden:help` for all commands.
319
+ ```
320
+
321
+ ### 6.6 Enable the work-mode status line (optional)
322
+
323
+ Offer to surface the detected archetype on screen. **INTERACTIVE mode**: AskUserQuestion header "Status line", options "Enable (Recommended)" = "Show the live work mode at the bottom of the screen" / "Skip" = "Don't change my status line". **PLAIN_TEXT mode**: ask in plain text and STOP.
324
+
325
+ If enabled, add (non-destructively — skip if a `statusLine` key already exists) to the user's `settings.json`:
326
+
327
+ ```json
328
+ "statusLine": {
329
+ "type": "command",
330
+ "command": "sh \"$CLAUDE_PLUGIN_ROOT/scripts/_python.sh\" \"$CLAUDE_PLUGIN_ROOT/scripts/statusline.py\""
331
+ }
332
+ ```
333
+
334
+ The bar then shows `🌱 wg │ <archetypes> │ intent · phase · gate verdict`. It reads session state only, is fail-soft, and never blocks a render. If a `statusLine` is already set, show the snippet and let the user merge it manually rather than overwriting.
335
+
336
+ ### 7. Done
337
+
338
+ Show:
339
+
340
+ ```
341
+ wicked-garden is ready!
342
+
343
+ Storage: Local (DomainStore)
344
+ wicked-brain: {"ready (plugin installed)" or "MISSING — install required"}
345
+ wicked-bus: {"ready (plugin installed)" or "MISSING — install required"}
346
+ wicked-testing: {version e.g. "0.1.2 — ready" or "MISSING — install required"}
347
+ wicked-vault: {version e.g. "0.3.0 — ready" or "MISSING — install required"}
348
+ loom engine: {"ready (internal — scripts/loom/)" or "MISSING — garden installation problem"}
349
+ Onboarding: {Full | Quick scout | Skipped}
350
+ Directories: {paths onboarded}
351
+ Project type: {DETECTED_LANGS} / {DETECTED_FWS} (or "Not detected")
352
+ Integrations: {available tools, or "None detected"}
353
+ Preferences: Delivery → {selected issue tracker}
354
+
355
+ Quick start: /wicked-garden:help · /wicked-garden:archetype:build · /wicked-garden:compile · /wicked-garden:engineering:review · wicked-brain:search "query"
356
+ ```
357
+
358
+ ## Graceful Degradation
359
+
360
+ - Connection setup fails → local JSON fallback handles storage automatically.
361
+ - Onboarding indexing fails → fall back to quick scout.
362
+ - Memory store fails → still complete (just won't suppress future directives).
363
+ - Never block the user from working — all failures offer alternatives.