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,118 @@
1
+ ---
2
+ allowed-tools: ["AskUserQuestion", "Bash"]
3
+ description: "Install wicked-* peer tools — version-checks garden first, then picks layers and solo beds via multi-select"
4
+ argument-hint: ""
5
+ phase_relevance: ["bootstrap"]
6
+ archetype_relevance: ["*"]
7
+ ---
8
+
9
+ # /wicked-garden:install
10
+
11
+ First-run installer for the wicked-* ecosystem. Ensures wicked-garden is current, installs the required evidence floor (wicked-vault automatically — no question asked), then prompts for optional layers and solo beds via a multi-select picker. The loom peer-resolution engine is absorbed into wicked-garden itself (scripts/loom/) — no separate wicked-loom install is needed.
12
+
13
+ ## Instructions
14
+
15
+ ### 1. Check wicked-garden is current
16
+
17
+ Get the installed version from its package.json (typically `~/.claude/plugins/wicked-garden/package.json` or the path Claude Code reports for `CLAUDE_PLUGIN_ROOT`):
18
+
19
+ ```bash
20
+ node -e "try{const p=require('path'),os=require('os');const v=require(p.join(os.homedir(),'.claude','plugins','wicked-garden','package.json')).version;console.log(v)}catch(e){console.log('UNKNOWN')}" 2>/dev/null || echo "UNKNOWN"
21
+ ```
22
+
23
+ Get the npm latest:
24
+
25
+ ```bash
26
+ npm view wicked-garden version 2>/dev/null || echo "UNKNOWN"
27
+ ```
28
+
29
+ If installed < latest: show "wicked-garden {installed} is installed — latest is {latest}. Consider updating via the marketplace (`claude plugins marketplace update wicked-garden`)." Then continue — don't block on this.
30
+
31
+ If UNKNOWN: note it and continue.
32
+
33
+ ### 2. Install the required evidence floor
34
+
35
+ No prompt — wicked-vault is the mandatory evidence backend for every gate. The loom
36
+ peer-resolution engine is built into wicked-garden (scripts/loom/) — nothing to install
37
+ for loom. Run vault install and show a progress line:
38
+
39
+ ```bash
40
+ npx wicked-vault-install
41
+ ```
42
+
43
+ On failure: display the raw error and note "you can install wicked-vault manually via `npx wicked-testing install` and re-run `/wicked-garden:install` to retry." Continue to step 3 regardless — step 5 will surface what's still missing.
44
+
45
+ ### 3. Pick optional layers and solo beds
46
+
47
+ Detect question mode:
48
+
49
+ ```bash
50
+ sh "${CLAUDE_PLUGIN_ROOT}/scripts/_python.sh" "${CLAUDE_PLUGIN_ROOT}/scripts/setup/detect_state.py" question-mode 2>/dev/null || echo "INTERACTIVE"
51
+ ```
52
+
53
+ ---
54
+
55
+ **INTERACTIVE mode (AskUserQuestion)**
56
+
57
+ Q1 — multi-select, header "Layers":
58
+
59
+ "Which optional layers do you want to add?"
60
+
61
+ Options (multiSelect: true):
62
+ - label: "wicked-testing", description: "QE pipeline — verdicts your agent can't fake · author ≠ executor ≠ reviewer"
63
+ - label: "wicked-brain", description: "Persistent memory — cross-session recall, cited search, code graph"
64
+ - label: "wicked-understanding", description: "Repo playbooks from HEAD — the repo's 'how,' always current"
65
+ - label: "wicked-bus", description: "Local event bus — one SQLite file, no broker, no daemon, no ports"
66
+
67
+ Q2 — single-select, header "Solo bed":
68
+
69
+ "Add wicked-interactive — the live HTML presentation builder?"
70
+
71
+ Options:
72
+ - label: "Yes — add it", description: "Great for decks, landing pages, and demos at 11pm. Standalone — no garden required."
73
+ - label: "Skip for now", description: "Add it later by re-running /wicked-garden:install"
74
+
75
+ Echo back the full selection list before installing: "Installing: [comma-joined list]. Proceeding..."
76
+
77
+ ---
78
+
79
+ **PLAIN_TEXT mode (dangerous — AskUserQuestion broken)**
80
+
81
+ Present both questions as numbered plain-text lists. STOP and wait for the user's reply before proceeding. Parse the reply, echo it back, then continue.
82
+
83
+ ### 4. Install selected tools
84
+
85
+ Run in the order listed. Show a ✓ or ✗ line per tool as each completes.
86
+
87
+ | Tool | Method |
88
+ |---|---|
89
+ | wicked-testing | `npx wicked-testing install` |
90
+ | wicked-brain | Claude Code slash command — display `/plugin install wicked-brain`, ask user to run it, then verify by checking if the plugin dir exists under `~/.claude/plugins/wicked-brain` |
91
+ | wicked-understanding | `npx skills add mikeparcewski/wicked-understanding --all` |
92
+ | wicked-bus | Claude Code slash command — display `/plugin install wicked-bus`, ask user to run it, then verify under `~/.claude/plugins/wicked-bus` |
93
+ | wicked-interactive | `claude plugins marketplace add mikeparcewski/wicked-interactive && claude plugins install wicked-interactive` |
94
+
95
+ For any tool where the user must run a slash command, clearly display the command, pause, and wait for confirmation before marking it done.
96
+
97
+ ### 5. Verify peer health
98
+
99
+ Run the internal loom doctor (no external wicked-loom needed):
100
+
101
+ ```bash
102
+ sh "${CLAUDE_PLUGIN_ROOT}/scripts/_python.sh" -c "
103
+ import sys, os, json
104
+ sys.path.insert(0, os.path.join(os.environ.get('CLAUDE_PLUGIN_ROOT', '.'), 'scripts'))
105
+ from loom import compose
106
+ rows = compose.check_all()
107
+ print(json.dumps(rows, indent=2))
108
+ "
109
+ ```
110
+
111
+ Parse JSON output. Show a summary table — peer name, version/status (`ok`/`drift`/`present`/`missing`/`error`), and a next-step hint for anything `missing` or `drift`. A `present` row (peer responds but version unreadable) is a warning, not blocking.
112
+
113
+ ### 6. Done
114
+
115
+ Display:
116
+ - A clean installed-tools summary with versions
117
+ - Quick start hint: `/wicked-garden:setup` — full onboarding (indexes your codebase into wicked-brain, writes project memory, configures the status line)
118
+ - Or just start: describe a task and wicked-garden routes it to the right work-shape archetype automatically
@@ -0,0 +1,54 @@
1
+ ---
2
+ allowed-tools: ["Bash"]
3
+ description: "Show or set the session intent variable (simple-edit | feature | rigor | research). Sticky for the session; auto-detect resets next session."
4
+ argument-hint: "[simple-edit|feature|rigor|research]"
5
+ phase_relevance: ["*"]
6
+ archetype_relevance: ["*"]
7
+ ---
8
+
9
+ # /wicked-garden:intent
10
+
11
+ Show or override the session intent variable — the v10 Phase 1 keystone (#813). Auto-detected on turn 1; sticky for the session; this command overrides explicitly.
12
+
13
+ **Vocabulary (locked)**: `simple-edit | feature | rigor | research`. To change, run a brainstorm — don't add ad-hoc.
14
+
15
+ **Usage**:
16
+ - `/wicked-garden:intent` — show the effective current value and how it was set
17
+ - `/wicked-garden:intent <value>` — explicit override; sticky until session end
18
+
19
+ ```bash
20
+ ARG="${1:-}"
21
+ sh "${CLAUDE_PLUGIN_ROOT}/scripts/_python.sh" - "$ARG" <<'PY'
22
+ import os
23
+ import sys
24
+
25
+ plugin_root = os.environ.get("CLAUDE_PLUGIN_ROOT")
26
+ if not plugin_root:
27
+ print("error: CLAUDE_PLUGIN_ROOT not set", file=sys.stderr)
28
+ sys.exit(1)
29
+ sys.path.insert(0, os.path.join(plugin_root, "scripts"))
30
+
31
+ from _session import SessionState
32
+
33
+ VALID = ("simple-edit", "feature", "rigor", "research")
34
+ arg = (sys.argv[1] if len(sys.argv) > 1 else "").strip()
35
+ state = SessionState.load()
36
+
37
+ if not arg:
38
+ eff = state.intent or "(not set; auto-detect runs on next turn)"
39
+ src = "explicit" if state.intent_explicit else "auto-detected" if state.intent else "n/a"
40
+ print(f"intent: {eff} ({src})")
41
+ sys.exit(0)
42
+
43
+ if arg not in VALID:
44
+ print(f"error: '{arg}' not in {VALID}", file=sys.stderr)
45
+ sys.exit(1)
46
+
47
+ state.update(intent=arg, intent_explicit=True)
48
+ print(f"intent set: {arg} (explicit override; sticky until session end)")
49
+ PY
50
+ ```
51
+
52
+ After explicit override, the next system-reminder echoes a bare `<wg intent="X" t=N />` label so the model can see the user steered the framework. Auto-detected intent stays invisible (prevents confirmation bias).
53
+
54
+ References: brain memory `v10-intent-variable-design-decision`, brainstorm `v10-session-01-intent-and-hook-gating`, PR #814 (the original Phase 1 ship), PRs #818/#819 (skill-discovery patches that proved skills under `skills/{domain}/{name}/SKILL.md` don't surface as slash commands — hence this command file).
@@ -0,0 +1,37 @@
1
+ ---
2
+ description: Start a new brainstorm session with dynamic focus groups
3
+ argument-hint: "<topic> [--personas list] [--rounds n] [--converge fast]"
4
+ phase_relevance: ["clarify", "design"]
5
+ archetype_relevance: ["*"]
6
+ ---
7
+
8
+ # /wicked-garden:jam:brainstorm
9
+
10
+ Start a full brainstorm with evidence-backed perspectives.
11
+
12
+ > **Progression**: `quick` (60s gut-check) → `brainstorm` (full session, this command) → `council` (structured verdict).
13
+ > See also: `/wicked-garden:jam:quick`, `/wicked-garden:jam:council` The facilitator gathers evidence from the ecosystem (past decisions, code context, brainstorm outcomes) before assembling personas, so they argue from data — not just opinions. After synthesis, a structured decision record is automatically stored via wicked-brain:memory for organizational memory.
14
+
15
+ ## Convergence Modes
16
+
17
+ - **normal** (default): Run all requested rounds (2-3), then synthesize.
18
+ - **fast** (`--converge fast`): After each round, assess whether there is enough signal to synthesize. If personas are converging on a clear direction with at least 2 actionable insights and no major unresolved tensions, skip remaining rounds and synthesize immediately. Maximum: 1 round before early synthesis is allowed.
19
+
20
+ Delegate to the facilitator agent:
21
+
22
+ ```
23
+ Task(subagent_type="wicked-garden:jam:brainstorm-facilitator",
24
+ prompt="Run a full brainstorm session on: {topic}. Options: {personas}, {rounds}, convergence_mode={converge|'normal'}.
25
+
26
+ Convergence mode instructions:
27
+ - If convergence_mode is 'fast': After EACH round, perform a convergence check before proceeding. Ask: (1) Are there at least 2 clear, actionable insights? (2) Is there broad directional agreement among personas? (3) Are remaining tensions minor or well-characterized? If all three are YES, skip remaining rounds and proceed directly to synthesis. This is the EXPECTED path in fast mode — do not run extra rounds just because they were planned.
28
+ - If convergence_mode is 'normal': Run all planned rounds, but still note in synthesis if convergence happened early.
29
+
30
+ Follow the full session structure including evidence gathering, persona assembly, discussion rounds, multi-AI perspective (if available), synthesis, and decision record storage.
31
+
32
+ Native-task tracking (fail open on any tool errors):
33
+ 1. Session start: TaskCreate(subject='Jam: {topic}', metadata={'event_type':'task','chain_id':'jam-{topic-slug}.root','source_agent':'jam-facilitator','initiative':'{topic-slug}'})
34
+ 2. After each persona contributes, after synthesis, and on decision: TaskUpdate(taskId, description='append: {persona_name}: {key_insight}' / 'Synthesis: {summary}' / 'Decision: {decision_record}')
35
+
36
+ Continue storing outcomes in wicked-brain:memory (native task = process, brain memory = outcome).")
37
+ ```
@@ -0,0 +1,49 @@
1
+ ---
2
+ description: Structured multi-model evaluation using external LLM CLIs for independent perspectives
3
+ argument-hint: "<topic>" --options "A, B, C" [--criteria "perf, cost, risk"]
4
+ phase_relevance: ["clarify", "design"]
5
+ archetype_relevance: ["*"]
6
+ ---
7
+
8
+ # /wicked-garden:jam:council
9
+
10
+ Structured evaluation tool that uses real external LLM CLIs — registry-driven (20+ CLIs: Codex, Gemini, Copilot, OpenCode, Pi, Aider, Goose, Amp, Droid, …; see `scripts/jam/agentic_cli_registry.py`) — to get genuinely independent model perspectives. Installed CLIs are detected AND usability-probed via `scripts/jam/detect_clis.py --probe` (auth-revoked / unconfigured / daemon-down CLIs are excluded). When fewer than 2 usable external CLIs are present, council seats are filled with `Task()` subagents so deliberation always happens. Unlike brainstorm (free-form creative exploration), council is a **rigid evaluation tool** for when you have defined options and need a verdict.
11
+
12
+ **Key distinction**: `quick` = 60s ideation, `brainstorm` = full session (generation/explore), `council` = structured evaluation (decide).
13
+
14
+ > **Progression**: `quick` → `brainstorm` → `council` (this command, final step).
15
+ > See also: `/wicked-garden:jam:quick`, `/wicked-garden:jam:brainstorm`
16
+
17
+ Natural workflow: `brainstorm → identify candidates → council → decide`
18
+
19
+ Delegate to the council agent:
20
+
21
+ ```
22
+ Task(subagent_type="wicked-garden:jam:council",
23
+ prompt="Run a council evaluation on: {topic}. Options: {options}. Criteria: {criteria}.")
24
+ ```
25
+
26
+ ## Acting on the council verdict
27
+
28
+ The council returns a synthesised verdict plus per-model raw votes. v11
29
+ archetypes decide what to do with the result; the council itself does
30
+ not gate. Heuristics for the caller:
31
+
32
+ - **Unanimous APPROVE / REJECT with all confidences ≥ 0.7** — proceed with
33
+ the verdict.
34
+ - **Split verdict (3-1 or closer) OR any confidence < 0.6** — surface the
35
+ raw votes to the user and pause for human adjudication. The disagreement
36
+ carries information that the synthesised verdict erases.
37
+ - **High-stakes archetypes (`migrate`, `incident`, anything with
38
+ `hard:cutover` / `hard:mitigate`)** — always show the raw votes
39
+ alongside the verdict; never auto-proceed on a synth-only summary.
40
+
41
+ A v6-era helper (deleted in v11.0.0) encoded these rules in code as part
42
+ of the universal-pipeline machinery. v11 deleted the gate it fed into;
43
+ the heuristics above are the same shape, applied inline by the agent.
44
+
45
+ ## Raw per-model votes (Issue #584)
46
+
47
+ Default output now carries both the synthesised verdict AND a `raw_votes` list so callers can see per-model nuance even on unanimous verdicts. Assemble the envelope via `scripts/jam/consensus.py::build_council_output(votes, synthesized)` — it returns `{"synthesized": {...}, "raw_votes": [{"model", "verdict", "confidence", "rationale"}, ...]}` where each `rationale` is the model's own one-liner (or the first 240 chars of its response) and missing confidences stay `null`, not `0.0`.
48
+
49
+ Operator override: `WG_COUNCIL_OUTPUT=both|synth|raw` (default `both`). Use `synth` for the legacy single-key shape; use `raw` when tooling only wants the unvarnished per-model layer.
@@ -0,0 +1,21 @@
1
+ ---
2
+ description: Quick exploration with fewer personas and one round
3
+ argument-hint: "<idea or question>"
4
+ phase_relevance: ["clarify", "design"]
5
+ archetype_relevance: ["*"]
6
+ ---
7
+
8
+ # /wicked-garden:jam:quick
9
+
10
+ Quick 60-second exploration with 4 personas and 1 round.
11
+
12
+ > **Progression**: `quick` (60s gut-check, ephemeral) → `brainstorm` (full session
13
+ > with evidence + decision storage) → `council` (structured verdict with external LLMs).
14
+ > See also: `/wicked-garden:jam:brainstorm`, `/wicked-garden:jam:council`
15
+
16
+ ## Run it inline (no dispatch)
17
+
18
+ 1. `Read("${CLAUDE_PLUGIN_ROOT}/skills/jam/refs/quick.md")` — the single-pass
19
+ rubric: 4 personas, 1 forced round, synthesis format (Key Insights / Action
20
+ Items / Open Questions), hard constraints (no storage, no multi-AI, ≤200 words).
21
+ 2. Apply the rubric directly to the topic. Do NOT run additional rounds. Do NOT store.
@@ -0,0 +1,79 @@
1
+ ---
2
+ description: Revisit a past brainstorm decision and record its outcome
3
+ argument-hint: "<topic or decision keyword>"
4
+ phase_relevance: ["clarify", "design"]
5
+ archetype_relevance: ["*"]
6
+ ---
7
+
8
+ # /wicked-garden:jam:revisit
9
+
10
+ Revisit a past brainstorm decision to record whether it was validated, invalidated, or modified.
11
+
12
+ ## Instructions
13
+
14
+ ### 1. Recall Past Decision
15
+
16
+ Search for the decision via wicked-brain
17
+
18
+ ```
19
+ Skill(
20
+ skill="wicked-brain:memory",
21
+ args="recall \"decisions tagged 'jam,decision' related to: {topic}\" --filter_type decision"
22
+ )
23
+ ```
24
+
25
+ If no matching decision found, inform the user and suggest running `/wicked-garden:jam:brainstorm` first.
26
+
27
+ ### 2. Display Decision Summary
28
+
29
+ Show the user what was decided:
30
+
31
+ ```markdown
32
+ ## Past Decision: {topic}
33
+
34
+ **Decided**: {chosen option}
35
+ **When**: {date}
36
+ **Confidence**: {HIGH/MEDIUM/LOW}
37
+ **Rationale**: {key reasoning}
38
+ **Alternatives considered**: {other options}
39
+ **Personas involved**: {list}
40
+ ```
41
+
42
+ ### 3. Ask for Outcome
43
+
44
+ Ask the user:
45
+
46
+ ```markdown
47
+ How did this decision work out?
48
+
49
+ 1. **Validated** — The decision was correct and worked well
50
+ 2. **Invalidated** — The decision was wrong, we had to change course
51
+ 3. **Modified** — The decision was partially right but needed adjustment
52
+ ```
53
+
54
+ ### 4. Record Outcome
55
+
56
+ Store the outcome in wicked-brain:memory
57
+
58
+ ```
59
+ wicked-brain:memory "Outcome: {topic}\nOriginal decision: {chosen}\nResult: {validated/invalidated/modified}\nReason: {user's explanation}\nLessons: {what we learned}"
60
+ --type decision
61
+ --tags jam,outcome,{topic-keywords}
62
+ --importance high
63
+ ```
64
+
65
+ ### 5. Report
66
+
67
+ ```markdown
68
+ ## Outcome Recorded
69
+
70
+ **Decision**: {topic}
71
+ **Result**: {validated/invalidated/modified}
72
+ **Lesson**: {what was learned}
73
+
74
+ This outcome will be surfaced in future brainstorms on similar topics.
75
+ ```
76
+
77
+ ## Graceful Degradation
78
+
79
+ Without wicked-brain: display a message that decision revisit requires wicked-brain for decision storage. Suggest the user install the wicked-brain plugin for full decision lifecycle tracking.
@@ -0,0 +1,136 @@
1
+ ---
2
+ description: Invoke a named persona to perform a task with a specific perspective
3
+ argument-hint: "<persona-name> <task description>"
4
+ phase_relevance: ["*"]
5
+ archetype_relevance: ["*"]
6
+ ---
7
+
8
+ # /wicked-garden:persona:as
9
+
10
+ Invoke a named persona to apply their perspective to any task.
11
+
12
+ ## Arguments
13
+
14
+ Parse from: $ARGUMENTS
15
+
16
+ - `persona_name` (required): First word — the persona to invoke
17
+ - `task` (required): Everything after the persona name — the task to perform
18
+
19
+ If $ARGUMENTS is empty or contains only one word (no task), show usage and STOP:
20
+
21
+ > "Usage: /wicked-garden:persona:as <persona-name> <task description>"
22
+ > "Example: /wicked-garden:persona:as engineering 'review my auth flow'"
23
+
24
+ ## Execution
25
+
26
+ ### Step 1: Parse arguments
27
+
28
+ Split $ARGUMENTS on the first space:
29
+ - `persona_name` = first token
30
+ - `task` = remaining text
31
+
32
+ ### Step 2: Look up the persona
33
+
34
+ Run the registry script to resolve the persona definition:
35
+
36
+ ```bash
37
+ PERSONA_JSON=$(sh "${CLAUDE_PLUGIN_ROOT}/scripts/_python.sh" \
38
+ "${CLAUDE_PLUGIN_ROOT}/scripts/_run.py" \
39
+ scripts/persona/registry.py --get "${persona_name}" --json 2>/dev/null)
40
+ REGISTRY_EXIT=$?
41
+ ```
42
+
43
+ ### Step 3: Handle lookup failure
44
+
45
+ If the script exits non-zero or PERSONA_JSON is empty or contains `"error"`:
46
+
47
+ 1. Run the list command to get available personas:
48
+
49
+ ```bash
50
+ AVAILABLE=$(sh "${CLAUDE_PLUGIN_ROOT}/scripts/_python.sh" \
51
+ "${CLAUDE_PLUGIN_ROOT}/scripts/_run.py" \
52
+ scripts/persona/registry.py --list --json 2>/dev/null)
53
+ ```
54
+
55
+ 2. Show the user:
56
+
57
+ > "No persona found named '{persona_name}'. Available personas:"
58
+
59
+ 3. List each available persona name with its description (name — description).
60
+
61
+ 4. **STOP** — do not dispatch a Task.
62
+
63
+ ### Step 4: Extract persona fields
64
+
65
+ From PERSONA_JSON, extract:
66
+ - `name`
67
+ - `description`
68
+ - `focus`
69
+ - `traits` (list — format as bullet list, e.g. `- direct\n- pragmatic`)
70
+ - `personality` (object with style, temperament, humor)
71
+ - `constraints` (list — format as numbered list)
72
+ - `not_focus` (list — scope guard; concerns this persona does NOT own. Format as bullet list)
73
+ - `memories` (list — format as bullet list)
74
+ - `preferences` (object with communication, code_style, review_focus, decision_making)
75
+
76
+ If traits is empty, use: "No specific traits defined — apply the focus broadly."
77
+ If personality is empty, use: "Apply the focus in a direct and professional style."
78
+ If constraints is empty, use: "No hard constraints — use your judgment."
79
+ If not_focus is empty, omit the "NOT Your Focus" section entirely (do not invent boundaries).
80
+ If memories is empty, use: "No specific experiences — draw on your focus."
81
+ If preferences is empty, use: "No specific preferences — communicate clearly and directly."
82
+
83
+ ### Step 5: Dispatch to persona-agent
84
+
85
+ ```python
86
+ Task(
87
+ subagent_type="wicked-garden:persona:persona-agent",
88
+ prompt="""You are **{name}**.
89
+
90
+ ## Your Identity
91
+
92
+ {description}
93
+
94
+ ## Your Focus
95
+
96
+ {focus}
97
+
98
+ ## Your Traits
99
+
100
+ {traits_as_bullets}
101
+
102
+ ## Your Personality
103
+
104
+ - **Style**: {personality.style}
105
+ - **Temperament**: {personality.temperament}
106
+ - **Voice**: {personality.humor}
107
+
108
+ ## Your Constraints (MUST follow)
109
+
110
+ {constraints_as_numbered_list}
111
+
112
+ ## NOT Your Focus (hand off, do not deep-dive)
113
+
114
+ {not_focus_as_bullet_list}
115
+
116
+ ## Your Experience
117
+
118
+ {memories_as_bullet_list}
119
+
120
+ ## Your Preferences
121
+
122
+ - **Communication**: {preferences.communication}
123
+ - **Code style**: {preferences.code_style}
124
+ - **Review focus**: {preferences.review_focus}
125
+ - **Decision making**: {preferences.decision_making}
126
+
127
+ ## Task
128
+
129
+ {task}
130
+
131
+ Respond fully in character as {name}. Open your response with `## {name}` and
132
+ a one-line focus statement. Then deliver the task output from this persona's
133
+ perspective, honoring all constraints and preferences above.
134
+ """
135
+ )
136
+ ```
@@ -0,0 +1,24 @@
1
+ ---
2
+ description: Create or update a custom persona for on-demand invocation
3
+ argument-hint: "<name> --focus \"<focus>\" [--traits \"t1,t2\"] [--constraints \"FAILURE MODE — x: ...; ...\"] [--not-focus \"a; b\"] [--role <role>] [--save]"
4
+ phase_relevance: ["*"]
5
+ archetype_relevance: ["*"]
6
+ ---
7
+
8
+ # /wicked-garden:persona:define
9
+
10
+ Create or update a custom persona definition — the mechanism that lets an
11
+ enterprise inject ITS house personas. Stored in project-scoped DomainStore by
12
+ default. Use `--save` to also promote to the plugin-level cache for cross-project reuse.
13
+
14
+ A persona only earns its keep if it encodes something the base model does NOT
15
+ already supply: a **named failure-mode defense**, a **hard constraint**, or a
16
+ **scope guard**. A persona that only restates a role ("act like a senior X") adds
17
+ little durable value. The rubric below shows the GOOD pattern.
18
+
19
+ ## Run it inline (no dispatch)
20
+
21
+ 1. `Read("${CLAUDE_PLUGIN_ROOT}/skills/persona/refs/define.md")` — the rubric:
22
+ argument parsing + validation, DomainStore script call, optional cache-save,
23
+ and confirm output.
24
+ 2. Apply the rubric directly using `$ARGUMENTS`.
@@ -0,0 +1,118 @@
1
+ ---
2
+ description: List all available personas with their focus and invocation syntax
3
+ argument-hint: "[--role <role>]"
4
+ phase_relevance: ["*"]
5
+ archetype_relevance: ["*"]
6
+ ---
7
+
8
+ # /wicked-garden:persona:list
9
+
10
+ Discover all available personas — built-in specialists, custom personas, and cached personas.
11
+
12
+ ## Arguments
13
+
14
+ Parse from: $ARGUMENTS
15
+
16
+ - `--role` (optional): Filter by role category (e.g., engineering, devsecops, product, quality-engineering)
17
+
18
+ ## Execution
19
+
20
+ ### Step 1: Fetch persona list
21
+
22
+ Build the command with optional role filter:
23
+
24
+ ```bash
25
+ sh "${CLAUDE_PLUGIN_ROOT}/scripts/_python.sh" \
26
+ "${CLAUDE_PLUGIN_ROOT}/scripts/_run.py" \
27
+ scripts/persona/registry.py --list [--role "${role}"] --json
28
+ ```
29
+
30
+ If `--role` is present in $ARGUMENTS, include `--role <value>` in the command.
31
+
32
+ ### Step 2: Format output
33
+
34
+ Present the front door first, then personas grouped by **value tier**, not just by
35
+ source. Each row MUST include the exact invocation command so no separate
36
+ documentation lookup is needed.
37
+
38
+ **Front door (always show first):**
39
+
40
+ ```markdown
41
+ ## Personas
42
+
43
+ The high-leverage move is your OWN house persona that encodes a failure-mode
44
+ defense. Start here:
45
+
46
+ - Define one: `/wicked-garden:persona:define <name> --focus "<focus>" --constraints "FAILURE MODE — …"`
47
+ - Then invoke: `/wicked-garden:persona:as <name> <task>`
48
+ ```
49
+
50
+ **Value tiers.** A persona is **Methodology** if its registry record carries a
51
+ non-empty `constraints` list (it defends a named failure mode / hard constraint).
52
+ Otherwise it is **Generic** (a role restatement the base model largely already
53
+ supplies). Compute this from the `constraints` field returned by the registry;
54
+ do not hardcode the split.
55
+
56
+ The curated built-in surface is intentionally **small**: only the three
57
+ methodology exemplars below carry rich profiles. A blinded lift eval
58
+ (`tests/persona/EVAL_RESULTS.md`, 2026-06-12) found the built-in personas
59
+ produce **lift=0** vs the base model, so the generic role personas were demoted
60
+ to **thin role records** — still invokable, but with no curated constraints (the
61
+ base model already plays those roles). The real product is `persona:define`.
62
+
63
+ ```markdown
64
+ ### Methodology personas (carry a failure-mode defense — prefer these)
65
+ | Name | Focus | Invoke |
66
+ |------|-------|--------|
67
+ | platform | Security, blast radius, secret handling... | `/wicked-garden:persona:as platform <task>` |
68
+ | qe | Test value, recovery paths, anti-happy-path... | `/wicked-garden:persona:as qe <task>` |
69
+ | agentic | Agent safety, termination, idempotency... | `/wicked-garden:persona:as agentic <task>` |
70
+
71
+ ### Generic personas (thin role lens — base model already plays these)
72
+ <details><summary>Show generic role names (no curated constraints — define your own for lift)</summary>
73
+
74
+ These names still resolve (engineering, product, data, jam) but carry no curated
75
+ profile — they apply the role as a plain lens. For durable value, define a HOUSE
76
+ persona instead. Any unlisted role name falls back gracefully (`persona:as`
77
+ lists what's available rather than crashing).
78
+
79
+ | Name | Focus | Invoke |
80
+ |------|-------|--------|
81
+ | engineering | Code quality, architecture... | `/wicked-garden:persona:as engineering <task>` |
82
+ | product | Requirements, UX, business value... | `/wicked-garden:persona:as product <task>` |
83
+ | data | Pipelines, ML guidance, analytics... | `/wicked-garden:persona:as data <task>` |
84
+ | jam | Ideation, multi-perspective... | `/wicked-garden:persona:as jam <task>` |
85
+ </details>
86
+
87
+ ### Custom Personas
88
+ | Name | Focus | Invoke |
89
+ |------|-------|--------|
90
+ | pragmatic-tech-lead | Delivery over perfection | `/wicked-garden:persona:as pragmatic-tech-lead <task>` |
91
+
92
+ ### Cached Personas (cross-project)
93
+ | Name | Focus | Invoke |
94
+ |------|-------|--------|
95
+ | my-persona | Shared focus | `/wicked-garden:persona:as my-persona <task>` |
96
+ ```
97
+
98
+ Rules:
99
+ - **Tier split is data-driven**: a persona with a non-empty `constraints` list is
100
+ Methodology; one with an empty `constraints` list is Generic. Custom personas
101
+ follow the same rule.
102
+ - Generic, custom, and cached sections render inside a `<details>` block (collapsed)
103
+ so the methodology tier and the define front door are what the user sees first.
104
+ - Truncate the focus/description column at 60 characters if needed (add "...")
105
+ - Only show sections that have personas (omit Custom and Cached sections if empty)
106
+ - If `--role` was specified and returns zero results, show: "No personas found with role '{role}'."
107
+ - Fallback personas (architect, skeptic, advocate) are shown in a "### Fallback Personas" section when specialist.json is unavailable. `skeptic` is Methodology (it carries constraints); `architect` and `advocate` are Generic.
108
+
109
+ ### Step 3: Show tip
110
+
111
+ After the table(s), add:
112
+
113
+ ```
114
+ **Tip:** The highest-leverage persona is your own — one that encodes a house
115
+ failure-mode defense the base model won't volunteer:
116
+ `/wicked-garden:persona:define <name> --focus "<focus>" --constraints "FAILURE MODE — …" --not-focus "…"`.
117
+ Use `/wicked-garden:engineering:review --persona <name>` to route a code review through any persona's lens.
118
+ ```
@@ -0,0 +1,20 @@
1
+ ---
2
+ description: GitHub Actions workflow generation and optimization
3
+ argument-hint: "<generate|optimize|troubleshoot> [workflow file]"
4
+ phase_relevance: ["build", "review", "operate"]
5
+ archetype_relevance: ["*"]
6
+ ---
7
+
8
+ # /wicked-garden:platform:actions
9
+
10
+ Generate, optimize, and troubleshoot GitHub Actions workflows.
11
+
12
+ ## Run it inline (no dispatch)
13
+
14
+ 1. Parse `<mode>` from `$ARGUMENTS`: `generate`, `optimize`, or `troubleshoot`.
15
+ 2. `Read("${CLAUDE_PLUGIN_ROOT}/skills/platform/actions/refs/actions.md")` — workflow rubric,
16
+ security/performance checklists, stack detection, and output format.
17
+ 3. Apply the rubric directly:
18
+ - **generate**: detect project stack (`ls package.json pyproject.toml ...`), produce complete workflow YAML.
19
+ - **optimize**: read the target workflow file, apply the optimization checklist, return annotated diff.
20
+ - **troubleshoot**: run `gh run list --status failure --limit 1`, fetch logs, diagnose root cause inline.