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,236 @@
1
+ #!/usr/bin/env python3
2
+ """
3
+ where_am_i.py — Emit a compact path manifest for the current session.
4
+
5
+ Resolves the five storage roots used by wicked-garden subagent dispatches
6
+ so callers don't have to re-enumerate them in every prompt:
7
+
8
+ 1. plugin_root — the wicked-garden plugin checkout
9
+ 2. source_cwd — the working directory at invocation
10
+ 3. project_artifacts — ~/.something-wicked/wicked-garden/projects/{slug}/...
11
+ 4. brain — ~/.wicked-brain/projects/{basename}/_meta/config.json
12
+ 5. bus_db — ~/.something-wicked/wicked-bus/bus.db
13
+
14
+ Usage:
15
+ where_am_i.py # JSON manifest (default)
16
+ where_am_i.py --fence # wrap in ```json fence
17
+ where_am_i.py --env # substitute env-var forms (e.g. $CLAUDE_PLUGIN_ROOT)
18
+
19
+ Fail-open contract: any resolution failure emits `null` for that field and
20
+ a one-line note on stderr; the script never raises to the caller.
21
+
22
+ Provenance: Issue #576 — reduce per-dispatch prompt bloat.
23
+ """
24
+
25
+ import argparse
26
+ import json
27
+ import os
28
+ import sys
29
+ from pathlib import Path
30
+
31
+ # Named constants — avoid magic strings.
32
+ _ENV_PLUGIN_ROOT = "CLAUDE_PLUGIN_ROOT"
33
+ _CREW_DOMAIN = "wicked-crew"
34
+ _CREW_PROJECTS_SUB = "projects"
35
+ _BRAIN_ROOT = Path.home() / ".wicked-brain"
36
+ _BRAIN_PROJECTS = _BRAIN_ROOT / "projects"
37
+ _BRAIN_META_CONFIG = Path("_meta") / "config.json"
38
+ _ROOT_BRAIN_CONFIG = _BRAIN_ROOT / "_meta" / "config.json"
39
+ _BUS_DB_PATH = Path.home() / ".something-wicked" / "wicked-bus" / "bus.db"
40
+
41
+ _FENCE_OPEN = "```json"
42
+ _FENCE_CLOSE = "```"
43
+
44
+ # Ensure scripts/ is importable when invoked directly.
45
+ _THIS_DIR = Path(__file__).resolve().parent
46
+ if str(_THIS_DIR) not in sys.path:
47
+ sys.path.insert(0, str(_THIS_DIR))
48
+
49
+
50
+ def _note(msg: str) -> None:
51
+ """Emit a single-line stderr note; never raises."""
52
+ try:
53
+ sys.stderr.write(f"[where-am-i] {msg}\n")
54
+ except OSError:
55
+ pass # fail open — stderr unavailable is non-fatal
56
+
57
+
58
+ def _resolve_plugin_root() -> str | None:
59
+ """Return the plugin checkout path, preferring CLAUDE_PLUGIN_ROOT."""
60
+ env_val = os.environ.get(_ENV_PLUGIN_ROOT)
61
+ if env_val:
62
+ return env_val
63
+ try:
64
+ # Fail-safe: the helper lives at <plugin_root>/scripts/where_am_i.py
65
+ return str(Path(__file__).resolve().parents[1])
66
+ except (OSError, IndexError) as exc:
67
+ _note(f"plugin_root fallback failed: {exc}")
68
+ return None
69
+
70
+
71
+ def _resolve_source_cwd() -> str | None:
72
+ """Return the caller's working directory."""
73
+ try:
74
+ return os.getcwd()
75
+ except OSError as exc:
76
+ _note(f"source_cwd unresolved: {exc}")
77
+ return None
78
+
79
+
80
+ def _resolve_project_artifacts() -> tuple[str | None, str | None]:
81
+ """Resolve (project_artifacts_path, active_project_id).
82
+
83
+ When SessionState.active_project_id is set, returns the project-specific
84
+ artifacts directory; otherwise returns the crew projects domain root.
85
+ """
86
+ try:
87
+ from _paths import get_local_path
88
+ except Exception as exc:
89
+ _note(f"_paths import failed: {exc}")
90
+ return None, None
91
+
92
+ try:
93
+ from _session import SessionState
94
+ state = SessionState.load()
95
+ active_id = state.active_project_id
96
+ except Exception as exc:
97
+ _note(f"SessionState load failed: {exc}")
98
+ active_id = None
99
+
100
+ try:
101
+ base = get_local_path(_CREW_DOMAIN, _CREW_PROJECTS_SUB)
102
+ except Exception as exc:
103
+ _note(f"get_local_path failed: {exc}")
104
+ return None, active_id
105
+
106
+ if active_id:
107
+ return str(base / active_id), active_id
108
+ return str(base), active_id
109
+
110
+
111
+ def _resolve_brain() -> dict | None:
112
+ """Resolve brain config path + port for the current cwd.
113
+
114
+ Prefers the project brain at ~/.wicked-brain/projects/{cwd_basename}/.
115
+ Falls back to the root brain config. Returns None when neither exists.
116
+ """
117
+ try:
118
+ cwd_name = Path(os.getcwd()).name
119
+ except OSError as exc:
120
+ _note(f"brain cwd basename failed: {exc}")
121
+ cwd_name = ""
122
+
123
+ candidates: list[Path] = []
124
+ if cwd_name:
125
+ candidates.append(_BRAIN_PROJECTS / cwd_name / _BRAIN_META_CONFIG)
126
+ candidates.append(_ROOT_BRAIN_CONFIG)
127
+
128
+ for cfg_path in candidates:
129
+ if not cfg_path.is_file():
130
+ continue
131
+ try:
132
+ with open(cfg_path, encoding="utf-8") as fh:
133
+ cfg = json.load(fh)
134
+ except (OSError, ValueError) as exc:
135
+ _note(f"brain config read failed at {cfg_path}: {exc}")
136
+ continue
137
+ port_val = cfg.get("server_port")
138
+ try:
139
+ port = int(port_val) if port_val is not None else None
140
+ except (TypeError, ValueError):
141
+ port = None
142
+ # cfg_path is .../<project>/_meta/config.json — emit the project dir.
143
+ brain_path = cfg.get("brain_path") or str(cfg_path.parent.parent)
144
+ return {"path": brain_path, "port": port}
145
+
146
+ _note("brain config not found")
147
+ return None
148
+
149
+
150
+ def _resolve_bus_db() -> str | None:
151
+ """Return the bus DB path if present, else None."""
152
+ try:
153
+ if _BUS_DB_PATH.is_file():
154
+ return str(_BUS_DB_PATH)
155
+ except OSError as exc:
156
+ _note(f"bus_db stat failed: {exc}")
157
+ return None
158
+ _note("bus_db not present")
159
+ return None
160
+
161
+
162
+ def build_manifest() -> dict:
163
+ """Compose the manifest dict. Never raises."""
164
+ plugin_root = _resolve_plugin_root()
165
+ source_cwd = _resolve_source_cwd()
166
+ project_artifacts, active_project_id = _resolve_project_artifacts()
167
+ brain = _resolve_brain()
168
+ bus_db = _resolve_bus_db()
169
+
170
+ return {
171
+ "plugin_root": plugin_root,
172
+ "source_cwd": source_cwd,
173
+ "active_project_id": active_project_id,
174
+ "project_artifacts": project_artifacts,
175
+ "brain": brain,
176
+ "bus_db": bus_db,
177
+ }
178
+
179
+
180
+ def apply_env_substitutions(manifest: dict) -> dict:
181
+ """Replace concrete paths with env-var forms when the env is present.
182
+
183
+ Currently maps plugin_root -> $CLAUDE_PLUGIN_ROOT. Other fields stay
184
+ as-is so consumers still get usable absolute paths.
185
+ """
186
+ out = dict(manifest)
187
+ env_plugin = os.environ.get(_ENV_PLUGIN_ROOT)
188
+ if env_plugin and out.get("plugin_root") == env_plugin:
189
+ out["plugin_root"] = f"${_ENV_PLUGIN_ROOT}"
190
+ return out
191
+
192
+
193
+ def render(manifest: dict, *, fence: bool) -> str:
194
+ """Serialize the manifest to JSON, optionally fenced for paste."""
195
+ body = json.dumps(manifest, indent=2, sort_keys=True)
196
+ if fence:
197
+ return f"{_FENCE_OPEN}\n{body}\n{_FENCE_CLOSE}"
198
+ return body
199
+
200
+
201
+ def _parse_args(argv: list[str]) -> argparse.Namespace:
202
+ parser = argparse.ArgumentParser(
203
+ prog="where_am_i",
204
+ description="Emit a compact path manifest for the current session.",
205
+ )
206
+ parser.add_argument(
207
+ "--json",
208
+ dest="as_json",
209
+ action="store_true",
210
+ help="Emit JSON manifest (default).",
211
+ )
212
+ parser.add_argument(
213
+ "--fence",
214
+ action="store_true",
215
+ help="Wrap the JSON manifest in a ```json fence.",
216
+ )
217
+ parser.add_argument(
218
+ "--env",
219
+ action="store_true",
220
+ help="Substitute env-var forms (e.g. $CLAUDE_PLUGIN_ROOT).",
221
+ )
222
+ return parser.parse_args(argv)
223
+
224
+
225
+ def main(argv: list[str] | None = None) -> int:
226
+ args = _parse_args(argv if argv is not None else sys.argv[1:])
227
+ manifest = build_manifest()
228
+ if args.env:
229
+ manifest = apply_env_substitutions(manifest)
230
+ output = render(manifest, fence=args.fence)
231
+ sys.stdout.write(output + "\n")
232
+ return 0
233
+
234
+
235
+ if __name__ == "__main__":
236
+ sys.exit(main())
@@ -0,0 +1,91 @@
1
+ ---
2
+ name: agentic-patterns
3
+ description: |
4
+ Use when designing or analyzing multi-agent architectures — covers core patterns (sequential, hierarchical,
5
+ parallel, event-driven), anti-patterns, and the five-layer model (Cognition → Context → Interaction →
6
+ Runtime → Governance) for separating concerns in production-grade agentic systems.
7
+ NOT for reviewing existing agentic code (use review-methodology) or framework selection (use the frameworks skill).
8
+ portability: portable
9
+ phase_relevance: ["design", "review"]
10
+ archetype_relevance: ["*"]
11
+ ---
12
+
13
+ # Agentic Patterns
14
+
15
+ Reference guide for proven agentic architecture patterns and common anti-patterns to avoid.
16
+
17
+ ## Core Patterns
18
+
19
+ | Pattern | Use when | Example | Tradeoffs |
20
+ |---------|----------|---------|-----------|
21
+ | **Sequential** | Linear workflow, clear dependencies, predictable stages | Research → Analyze → Draft → Review | Simple coordination; bottlenecks if any agent is slow |
22
+ | **Hierarchical** | Complex task decomposable into subtasks; central coordination | PM agent delegates to designer / dev / QA | Clear accountability, scales; single point of failure at parent |
23
+ | **Collaborative** | Diverse perspectives matter; no clear lead | Multiple reviewers collaborating on code review | Rich outputs; needs conflict resolution + consensus |
24
+ | **Autonomous** | Tasks are fully independent; parallel execution | Multiple monitoring agents checking different services | Max parallelism; no shared learning or coordination |
25
+ | **Human-in-the-Loop** | High-stakes decisions, regulatory gates, human feedback | Agent drafts report; human approves before sending | Adds latency; ensures safety and quality |
26
+ | **ReAct** | Dynamic environments; need adaptive behavior on feedback | Debug agent: try fix → observe tests → adapt | Flexible; high token/latency cost for reasoning |
27
+ | **Plan-Execute** | Predictable environment; planning overhead justified | Multi-step pipeline with known transformations | Efficient; brittle if environment changes |
28
+ | **Reflection** | Quality > speed; self-improvement valuable | Writer drafts → critiques → refines | Higher quality; more tokens and latency |
29
+
30
+ See `refs/pattern-catalog.md` for full descriptions and implementation notes per pattern.
31
+
32
+ ## Anti-Patterns Quick Reference
33
+
34
+ 1. **God Agent:** Single agent doing everything. Split responsibilities.
35
+ 2. **Tight Coupling:** Agents depend on internal implementation details. Use interfaces.
36
+ 3. **Missing Guardrails:** No constraints on agent actions. Add validation and limits.
37
+ 4. **Deep Nesting:** Agents calling agents calling agents. Flatten hierarchy.
38
+ 5. **No Observability:** Can't see what agents are doing. Add logging and tracing.
39
+ 6. **Sequential Bottleneck:** Everything waits for slowest agent. Add parallelism.
40
+ 7. **Context Bloat:** Passing entire history to every agent. Compress and filter.
41
+ 8. **Redundant Agents:** Multiple agents doing same thing. Consolidate.
42
+ 9. **Hardcoded Prompts:** Prompts baked into code. Externalize and version.
43
+ 10. **Missing Timeouts:** Agents can run forever. Add time and resource limits.
44
+
45
+ ## Pattern Selection Decision Tree
46
+
47
+ ```
48
+ Is task decomposable into subtasks?
49
+ ├─ YES: Is there a clear lead/coordinator role?
50
+ │ ├─ YES: Use Hierarchical
51
+ │ └─ NO: Use Collaborative
52
+ └─ NO: Does task require adaptation based on results?
53
+ ├─ YES: Can you plan all steps upfront?
54
+ │ ├─ YES: Use Plan-Execute
55
+ │ └─ NO: Use ReAct
56
+ └─ NO: Do you have multiple independent tasks?
57
+ ├─ YES: Use Autonomous
58
+ └─ NO: Use Sequential
59
+ ```
60
+
61
+ Add Human-in-the-Loop gates for any high-stakes decisions.
62
+ Add Reflection layer when quality is critical.
63
+
64
+ ## Combining Patterns
65
+
66
+ Patterns are composable:
67
+ - **Hierarchical + ReAct:** Parent plans, children adapt execution
68
+ - **Sequential + Reflection:** Each stage includes self-review
69
+ - **Collaborative + Human-in-Loop:** Peer review with human arbitration
70
+ - **Autonomous + Hierarchical:** Independent teams with team leads
71
+
72
+ ## Pattern Anti-Affinities
73
+
74
+ Avoid these combinations:
75
+ - **Plan-Execute + ReAct:** Contradictory - either plan upfront or adapt dynamically
76
+ - **Autonomous + Tight Coordination:** Defeats the purpose of autonomy
77
+ - **Deep Hierarchies + Reflection:** Exponential token cost
78
+
79
+ ## Quick Start
80
+
81
+ 1. Identify if task is decomposable (subtasks?) or atomic
82
+ 2. Identify if execution is predictable (plan?) or dynamic (adapt?)
83
+ 3. Identify if agents should coordinate (hierarchy/collaboration) or work independently
84
+ 4. Check anti-patterns list against current design
85
+ 5. See refs/pattern-catalog.md for detailed examples
86
+
87
+ ## References
88
+
89
+ - `refs/pattern-catalog.md` - Detailed pattern descriptions with implementation examples
90
+ - `refs/anti-patterns-design.md` - Design anti-patterns (God Agent, Tight Coupling, Missing Guardrails, Deep Nesting, No Observability)
91
+ - `refs/anti-patterns-operational.md` - Operational anti-patterns (Sequential Bottleneck, Context Bloat, Redundant Agents, Hardcoded Prompts, Missing Timeouts)
@@ -0,0 +1,283 @@
1
+ ---
2
+ phase_relevance: ["design", "review"]
3
+ archetype_relevance: ["*"]
4
+ ---
5
+ # Anti-Patterns in Agentic Systems: Design
6
+
7
+ Common design mistakes in agentic systems and how to fix them. Covers God Agent, Tight Coupling, Missing Guardrails, Deep Nesting, and No Observability.
8
+
9
+ ## 1. God Agent
10
+
11
+ ### Description
12
+ Single agent attempting to handle all responsibilities. Agent has too many tools, too much context, and too many decision points. Becomes a monolithic, unmaintainable system.
13
+
14
+ ### Symptoms
15
+ - Agent has access to 20+ tools
16
+ - Single system prompt is 5000+ tokens
17
+ - Agent handles unrelated tasks (e.g., both code review and deployment)
18
+ - Difficult to debug when things go wrong
19
+ - High token costs due to large context
20
+
21
+ ### Why It Happens
22
+ - Starting simple and accumulating features
23
+ - Lack of clear separation of concerns
24
+ - Fear of coordination complexity
25
+
26
+ ### How to Fix
27
+
28
+ **Before:**
29
+ ```python
30
+ god_agent = Agent(
31
+ tools=[
32
+ code_analysis, security_scan, performance_test,
33
+ deploy, rollback, monitoring, alerting,
34
+ documentation, ticket_creation, email_notification
35
+ ],
36
+ instructions="You are a DevOps agent that does everything..."
37
+ )
38
+ ```
39
+
40
+ **After:**
41
+ ```python
42
+ # Specialized agents with clear responsibilities
43
+ code_quality_agent = Agent(
44
+ tools=[code_analysis, security_scan, performance_test],
45
+ instructions="You review code quality, security, and performance."
46
+ )
47
+
48
+ deployment_agent = Agent(
49
+ tools=[deploy, rollback, monitoring],
50
+ instructions="You handle deployments and monitor health."
51
+ )
52
+
53
+ communication_agent = Agent(
54
+ tools=[documentation, ticket_creation, email_notification],
55
+ instructions="You handle documentation and notifications."
56
+ )
57
+
58
+ # Coordinator orchestrates specialists
59
+ coordinator = HierarchicalAgent(
60
+ specialists={
61
+ "review": code_quality_agent,
62
+ "deploy": deployment_agent,
63
+ "communicate": communication_agent
64
+ }
65
+ )
66
+ ```
67
+
68
+ ### Prevention
69
+ - Each agent should have single, clear responsibility
70
+ - Limit agents to 5-10 tools maximum
71
+ - When adding a feature, ask: "Does this fit agent's core purpose?"
72
+
73
+ ## 2. Tight Coupling
74
+
75
+ ### Description
76
+ Agents depend on internal implementation details of other agents. Changes to one agent break others. Hard to evolve or replace agents independently.
77
+
78
+ ### Symptoms
79
+ - Agent A parses the exact output format of Agent B
80
+ - Agents share global state without interfaces
81
+ - Can't swap out an agent without updating all callers
82
+ - Fragile to prompt engineering changes
83
+
84
+ ### Why It Happens
85
+ - Quick prototyping without interfaces
86
+ - Lack of abstraction layer
87
+ - Direct access to other agents' internals
88
+
89
+ ### How to Fix
90
+
91
+ **Before:**
92
+ ```python
93
+ # Agent B tightly coupled to Agent A's output format
94
+ class AgentB:
95
+ async def process(self, agent_a_output):
96
+ # Fragile: depends on exact string format
97
+ if "APPROVED:" in agent_a_output:
98
+ decision = agent_a_output.split("APPROVED:")[1].strip()
99
+ return self.proceed(decision)
100
+ ```
101
+
102
+ **After:**
103
+ ```python
104
+ # Define interface/contract
105
+ class ReviewDecision:
106
+ approved: bool
107
+ reasoning: str
108
+ confidence: float
109
+
110
+ # Agent A returns structured data
111
+ class AgentA:
112
+ async def review(self, code) -> ReviewDecision:
113
+ result = await self.llm.generate(...)
114
+ return ReviewDecision(
115
+ approved=result["approved"],
116
+ reasoning=result["reasoning"],
117
+ confidence=result["confidence"]
118
+ )
119
+
120
+ # Agent B depends on interface, not implementation
121
+ class AgentB:
122
+ async def process(self, decision: ReviewDecision):
123
+ if decision.approved and decision.confidence > 0.8:
124
+ return self.proceed(decision.reasoning)
125
+ ```
126
+
127
+ ### Prevention
128
+ - Define contracts/interfaces between agents
129
+ - Use structured output formats (JSON, Pydantic models)
130
+ - Version your interfaces
131
+ - Validate inputs and outputs at boundaries
132
+
133
+ ## 3. Missing Guardrails
134
+
135
+ ### Description
136
+ Agents can take any action without constraints. No validation, limits, or safety checks. High risk of unintended consequences.
137
+
138
+ ### Symptoms
139
+ - Agents can delete production data
140
+ - No human approval for high-stakes actions
141
+ - Agents can run indefinitely
142
+ - No rate limiting or resource constraints
143
+ - Sensitive operations have no extra checks
144
+
145
+ ### Why It Happens
146
+ - Focus on functionality over safety
147
+ - Assuming LLM will "do the right thing"
148
+ - Lack of production experience with agents
149
+
150
+ ### How to Fix
151
+
152
+ **Before:**
153
+ ```python
154
+ class DeploymentAgent:
155
+ async def execute(self, command):
156
+ # No guardrails!
157
+ return await self.shell.run(command)
158
+ ```
159
+
160
+ **After:**
161
+ ```python
162
+ class DeploymentAgent:
163
+ def __init__(self, max_runtime=300, require_approval=True):
164
+ self.max_runtime = max_runtime
165
+ self.require_approval = require_approval
166
+ self.allowed_commands = ["deploy", "status", "logs"]
167
+ self.forbidden_patterns = ["rm -rf", "DROP TABLE", "delete"]
168
+
169
+ async def execute(self, command):
170
+ # Validate command
171
+ if not self._is_safe_command(command):
172
+ raise SecurityError(f"Unsafe command: {command}")
173
+
174
+ # Require approval for production
175
+ if self.require_approval and self.is_production():
176
+ approval = await self.request_human_approval(command)
177
+ if not approval:
178
+ raise AbortedError("Human rejected command")
179
+
180
+ # Execute with timeout
181
+ try:
182
+ return await asyncio.wait_for(
183
+ self.shell.run(command),
184
+ timeout=self.max_runtime
185
+ )
186
+ except asyncio.TimeoutError:
187
+ raise TimeoutError(f"Command exceeded {self.max_runtime}s")
188
+
189
+ def _is_safe_command(self, command):
190
+ # Whitelist approach
191
+ if not any(cmd in command for cmd in self.allowed_commands):
192
+ return False
193
+ # Blacklist dangerous patterns
194
+ if any(pattern in command for pattern in self.forbidden_patterns):
195
+ return False
196
+ return True
197
+ ```
198
+
199
+ ### Prevention
200
+ - Start with least privilege (minimal permissions)
201
+ - Add human-in-the-loop for high-stakes actions
202
+ - Implement timeouts and resource limits
203
+ - Whitelist allowed actions
204
+ - Validate all inputs and outputs
205
+ - Add audit logging
206
+
207
+ ## 4. Deep Nesting
208
+
209
+ ### Description
210
+ Agents calling agents calling agents, creating deep hierarchies. Hard to debug, trace, and reason about. High latency and token costs.
211
+
212
+ ### Symptoms
213
+ - 4+ levels of agent nesting
214
+ - Difficult to trace execution flow
215
+ - High latency due to serial delegation
216
+ - Token costs grow exponentially with depth
217
+ - Hard to determine which agent made which decision
218
+
219
+ ### Why It Happens
220
+ - Recursive decomposition without limits
221
+ - Each agent delegates instead of doing work
222
+ - Lack of architectural planning
223
+
224
+ ### How to Fix
225
+
226
+ **Before:**
227
+ ```
228
+ CEO Agent
229
+ → VP Agent
230
+ → Manager Agent
231
+ → Team Lead Agent
232
+ → Worker Agent (finally does work!)
233
+ ```
234
+
235
+ **After:**
236
+ ```
237
+ Coordinator Agent
238
+ → Specialist A (does work)
239
+ → Specialist B (does work)
240
+ → Specialist C (does work)
241
+ ```
242
+
243
+ ### Prevention
244
+ - Limit hierarchy to 2-3 levels maximum
245
+ - Favor flat, wide hierarchies over deep, narrow ones
246
+ - Ensure agents at each level do meaningful work, not just delegate
247
+ - Use sequential or collaborative patterns when hierarchy isn't needed
248
+
249
+ ## 5. No Observability
250
+
251
+ ### Description
252
+ Can't see what agents are doing, why they made decisions, or where failures occur. Debugging is impossible. No metrics or monitoring.
253
+
254
+ ### Symptoms
255
+ - "It didn't work" is the only error message
256
+ - Can't replay failed executions
257
+ - No visibility into agent reasoning
258
+ - Can't measure performance or costs
259
+ - Silent failures
260
+
261
+ ### Why It Happens
262
+ - Focus on happy path
263
+ - Treating agents as black boxes
264
+ - Lack of production monitoring practices
265
+
266
+ ### How to Fix
267
+
268
+ Wrap every agent in an `ObservableAgent` decorator that: opens a trace span, logs the task and agent ID before execution, records success/failure + duration + tokens_used after execution, and re-raises exceptions with full context.
269
+
270
+ ### What to Observe
271
+ - Agent decisions and reasoning
272
+ - Token usage per agent
273
+ - Latency per agent and per operation
274
+ - Success/failure rates
275
+ - Input/output at each stage
276
+ - Cost attribution
277
+
278
+ ### Prevention
279
+ - Structured logging from day one
280
+ - Distributed tracing across agents
281
+ - Metrics and dashboards
282
+ - Ability to replay executions
283
+ - Save agent reasoning/thoughts