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,261 @@
1
+ ---
2
+ phase_relevance: ["design", "build"]
3
+ archetype_relevance: ["*"]
4
+ ---
5
+ # Dependency Management Guide: Dependency Tracking
6
+
7
+ ## Dependency Tracking
8
+
9
+ ### Dependency Matrix
10
+
11
+ Track dependencies between components.
12
+
13
+ | Component | Depends On |
14
+ |-----------|------------|
15
+ | UserController | UserService, AuthMiddleware |
16
+ | UserService | UserRepository, EmailService |
17
+ | OrderService | OrderRepository, UserService, PaymentService |
18
+ | PaymentService | PaymentGateway, OrderRepository |
19
+
20
+ ### Dependency Metrics
21
+
22
+ ```typescript
23
+ // Calculate coupling metrics
24
+ function calculateAfferentCoupling(component: string): number {
25
+ // Number of components that depend on this component
26
+ return dependencies.filter(d => d.dependsOn === component).length;
27
+ }
28
+
29
+ function calculateEfferentCoupling(component: string): number {
30
+ // Number of components this component depends on
31
+ return dependencies.filter(d => d.component === component).length;
32
+ }
33
+
34
+ function calculateInstability(component: string): number {
35
+ const ce = calculateEfferentCoupling(component);
36
+ const ca = calculateAfferentCoupling(component);
37
+ // Instability = Ce / (Ce + Ca)
38
+ // 0 = maximally stable, 1 = maximally unstable
39
+ return ce / (ce + ca);
40
+ }
41
+ ```
42
+
43
+ ## Anti-Patterns
44
+
45
+ ### 1. Circular Dependencies
46
+
47
+ ```typescript
48
+ // Bad: Circular dependency
49
+ class UserService {
50
+ constructor(private orderService: OrderService) {}
51
+ }
52
+
53
+ class OrderService {
54
+ constructor(private userService: UserService) {}
55
+ }
56
+
57
+ // Fix: Extract common logic or use events
58
+ class UserService {
59
+ constructor(private eventBus: EventBus) {}
60
+
61
+ async createUser(data: UserData) {
62
+ const user = await this.saveUser(data);
63
+ this.eventBus.publish('user.created', { userId: user.id });
64
+ return user;
65
+ }
66
+ }
67
+
68
+ class OrderService {
69
+ constructor(private eventBus: EventBus) {
70
+ this.eventBus.subscribe('user.created', this.handleUserCreated);
71
+ }
72
+
73
+ private handleUserCreated = async (event: UserCreatedEvent) => {
74
+ // Initialize order data for new user
75
+ };
76
+ }
77
+ ```
78
+
79
+ ### 2. God Object
80
+
81
+ ```typescript
82
+ // Bad: God object with many dependencies
83
+ class ApplicationService {
84
+ constructor(
85
+ private userRepo: UserRepository,
86
+ private orderRepo: OrderRepository,
87
+ private productRepo: ProductRepository,
88
+ private paymentService: PaymentService,
89
+ private emailService: EmailService,
90
+ private smsService: SMSService,
91
+ private notificationService: NotificationService,
92
+ private analyticsService: AnalyticsService,
93
+ private auditService: AuditService
94
+ ) {}
95
+ }
96
+
97
+ // Fix: Split into focused services
98
+ class UserService {
99
+ constructor(
100
+ private userRepo: UserRepository,
101
+ private emailService: EmailService
102
+ ) {}
103
+ }
104
+
105
+ class OrderService {
106
+ constructor(
107
+ private orderRepo: OrderRepository,
108
+ private paymentService: PaymentService,
109
+ private notificationService: NotificationService
110
+ ) {}
111
+ }
112
+ ```
113
+
114
+ ### 3. Hidden Dependencies
115
+
116
+ ```typescript
117
+ // Bad: Hidden global dependency
118
+ class UserService {
119
+ async getUser(id: string) {
120
+ return await globalDatabase.query('SELECT * FROM users WHERE id = $1', [id]);
121
+ }
122
+ }
123
+
124
+ // Fix: Explicit dependency
125
+ class UserService {
126
+ constructor(private database: Database) {}
127
+
128
+ async getUser(id: string) {
129
+ return await this.database.query('SELECT * FROM users WHERE id = $1', [id]);
130
+ }
131
+ }
132
+ ```
133
+
134
+ ### 4. Dependency on Unstable Components
135
+
136
+ ```typescript
137
+ // Bad: Stable component depends on unstable component
138
+ class DomainEntity {
139
+ constructor(private uiHelper: UIHelper) {} // UI is unstable
140
+ }
141
+
142
+ // Fix: Invert dependency with abstraction
143
+ interface Formatter {
144
+ format(value: any): string;
145
+ }
146
+
147
+ class DomainEntity {
148
+ constructor(private formatter: Formatter) {}
149
+ }
150
+
151
+ // UI implements the interface
152
+ class UIFormatter implements Formatter {
153
+ format(value: any): string {
154
+ // UI-specific formatting
155
+ }
156
+ }
157
+ ```
158
+
159
+ ### 5. Feature Envy
160
+
161
+ ```typescript
162
+ // Bad: Component uses another's data extensively
163
+ class OrderService {
164
+ async calculateTotal(order: Order): Promise<number> {
165
+ let total = 0;
166
+ for (const item of order.items) {
167
+ const product = await this.productRepo.findById(item.productId);
168
+ total += product.price * item.quantity;
169
+ }
170
+ return total;
171
+ }
172
+ }
173
+
174
+ // Fix: Move logic to data owner
175
+ class Order {
176
+ calculateTotal(productPrices: Map<string, number>): number {
177
+ return this.items.reduce((total, item) => {
178
+ const price = productPrices.get(item.productId) || 0;
179
+ return total + (price * item.quantity);
180
+ }, 0);
181
+ }
182
+ }
183
+ ```
184
+
185
+ ## Dependency Resolution Strategies
186
+
187
+ ### 1. Constructor Injection
188
+
189
+ ```typescript
190
+ class UserService {
191
+ constructor(
192
+ private userRepo: UserRepository,
193
+ private emailService: EmailService
194
+ ) {}
195
+ }
196
+
197
+ // Wiring
198
+ const userService = new UserService(userRepo, emailService);
199
+ ```
200
+
201
+ **Pros**: Dependencies explicit, immutable
202
+ **Cons**: Can lead to large constructors
203
+
204
+ ### 2. Property Injection
205
+
206
+ ```typescript
207
+ class UserService {
208
+ userRepo: UserRepository;
209
+ emailService: EmailService;
210
+ }
211
+
212
+ // Wiring
213
+ const userService = new UserService();
214
+ userService.userRepo = userRepo;
215
+ userService.emailService = emailService;
216
+ ```
217
+
218
+ **Pros**: Optional dependencies
219
+ **Cons**: Mutable, less explicit
220
+
221
+ ### 3. Method Injection
222
+
223
+ ```typescript
224
+ class UserService {
225
+ async createUser(data: UserData, emailService: EmailService) {
226
+ const user = await this.saveUser(data);
227
+ await emailService.sendWelcome(user);
228
+ return user;
229
+ }
230
+ }
231
+ ```
232
+
233
+ **Pros**: Flexible, explicit per-call
234
+ **Cons**: Verbose, repetitive
235
+
236
+ ### 4. Service Locator
237
+
238
+ ```typescript
239
+ class ServiceLocator {
240
+ private services = new Map();
241
+
242
+ register<T>(name: string, instance: T): void {
243
+ this.services.set(name, instance);
244
+ }
245
+
246
+ resolve<T>(name: string): T {
247
+ return this.services.get(name);
248
+ }
249
+ }
250
+
251
+ class UserService {
252
+ async createUser(data: UserData) {
253
+ const emailService = ServiceLocator.resolve<EmailService>('EmailService');
254
+ await emailService.sendWelcome(data.email);
255
+ }
256
+ }
257
+ ```
258
+
259
+ **Pros**: Decoupled
260
+ **Cons**: Hidden dependencies, testing harder
261
+
@@ -0,0 +1,211 @@
1
+ ---
2
+ phase_relevance: ["design", "build"]
3
+ archetype_relevance: ["*"]
4
+ ---
5
+ # Interface Documentation Template - Operations
6
+
7
+ Testing, examples, client libraries, monitoring, migration guides, and changelog.
8
+
9
+ ## Testing
10
+
11
+ ### Contract Tests
12
+
13
+ ```typescript
14
+ describe('Interface Contract', () => {
15
+ it('should return correct response format', async () => {
16
+ const response = await api.operation1({
17
+ field1: "test",
18
+ field2: 42
19
+ });
20
+
21
+ expect(response).toHaveProperty('result');
22
+ expect(response).toHaveProperty('metadata');
23
+ expect(response.metadata).toHaveProperty('timestamp');
24
+ });
25
+
26
+ it('should handle not found error', async () => {
27
+ await expect(
28
+ api.operation1({ field1: "nonexistent", field2: 999 })
29
+ ).rejects.toMatchObject({
30
+ code: 'RESOURCE_NOT_FOUND',
31
+ status: 404
32
+ });
33
+ });
34
+ });
35
+ ```
36
+
37
+ ### Performance Tests
38
+
39
+ ```typescript
40
+ describe('Performance', () => {
41
+ it('should respond within 200ms', async () => {
42
+ const start = Date.now();
43
+ await api.operation1({ field1: "test", field2: 42 });
44
+ const duration = Date.now() - start;
45
+
46
+ expect(duration).toBeLessThan(200);
47
+ });
48
+ });
49
+ ```
50
+
51
+ ## Examples
52
+
53
+ ### Basic Usage
54
+
55
+ ```typescript
56
+ import { APIClient } from '@example/api-client';
57
+
58
+ const client = new APIClient({
59
+ apiKey: process.env.API_KEY,
60
+ baseURL: 'https://api.example.com'
61
+ });
62
+
63
+ // Create resource
64
+ const resource = await client.createResource({
65
+ name: "My Resource",
66
+ status: "active"
67
+ });
68
+
69
+ console.log(resource.id); // "550e8400-e29b-41d4-a716-446655440000"
70
+ ```
71
+
72
+ ### Error Handling
73
+
74
+ ```typescript
75
+ try {
76
+ const resource = await client.getResource(id);
77
+ } catch (error) {
78
+ if (error.code === 'RESOURCE_NOT_FOUND') {
79
+ console.log('Resource not found');
80
+ } else if (error.code === 'RATE_LIMIT_EXCEEDED') {
81
+ const retryAfter = error.retryAfter;
82
+ await sleep(retryAfter * 1000);
83
+ // Retry...
84
+ } else {
85
+ throw error;
86
+ }
87
+ }
88
+ ```
89
+
90
+ ### Pagination
91
+
92
+ ```typescript
93
+ let hasMore = true;
94
+ let offset = 0;
95
+
96
+ while (hasMore) {
97
+ const response = await client.listResources({
98
+ limit: 100,
99
+ offset
100
+ });
101
+
102
+ process(response.data);
103
+
104
+ hasMore = response.pagination.hasMore;
105
+ offset += 100;
106
+ }
107
+ ```
108
+
109
+ ## Client Libraries
110
+
111
+ **Official Clients**:
112
+ - JavaScript/TypeScript: `@example/api-client`
113
+ - Python: `example-api-client`
114
+ - Go: `github.com/example/api-client-go`
115
+
116
+ **Community Clients**:
117
+ - Ruby: `example-api` (not officially supported)
118
+ - Java: `com.example.api-client` (not officially supported)
119
+
120
+ ## Monitoring
121
+
122
+ ### Metrics
123
+
124
+ Provider should expose:
125
+ ```
126
+ interface_requests_total{operation, status}
127
+ interface_request_duration_seconds{operation}
128
+ interface_errors_total{operation, error_code}
129
+ ```
130
+
131
+ Consumer should track:
132
+ ```
133
+ interface_client_requests_total{operation, status}
134
+ interface_client_errors_total{operation, error_code}
135
+ interface_circuit_breaker_state{state}
136
+ ```
137
+
138
+ ### Health Check
139
+
140
+ ```http
141
+ GET /health
142
+
143
+ Response: 200 OK
144
+ {
145
+ "status": "healthy",
146
+ "version": "2.1.0",
147
+ "uptime": 3600
148
+ }
149
+ ```
150
+
151
+ ## Migration Guide
152
+
153
+ ### Migrating from v1 to v2
154
+
155
+ **Breaking Changes**:
156
+
157
+ 1. **ID Format Change**
158
+ ```typescript
159
+ // v1
160
+ const id: number = 123;
161
+
162
+ // v2
163
+ const id: string = "550e8400-e29b-41d4-a716-446655440000";
164
+ ```
165
+
166
+ 2. **Field Rename**
167
+ ```typescript
168
+ // v1
169
+ const name = resource.user_name;
170
+
171
+ // v2
172
+ const name = resource.username;
173
+ ```
174
+
175
+ **Step-by-Step**:
176
+
177
+ 1. Update client library to v2-compatible version
178
+ 2. Update ID handling in your code
179
+ 3. Update field names
180
+ 4. Test thoroughly
181
+ 5. Deploy
182
+ 6. Monitor for errors
183
+
184
+ ## Changelog
185
+
186
+ ### v2.1.0 (2025-01-20)
187
+
188
+ **Added**:
189
+ - Bulk operations
190
+ - Filtering by status
191
+
192
+ **Fixed**:
193
+ - Race condition in concurrent updates
194
+
195
+ ### v2.0.0 (2024-12-01)
196
+
197
+ **Breaking Changes**:
198
+ - Changed ID format to UUID
199
+ - Removed `description` field
200
+
201
+ **Added**:
202
+ - Pagination support
203
+ - Rate limiting
204
+
205
+ ## Support
206
+
207
+ **Documentation**: https://docs.example.com/api
208
+ **Status Page**: https://status.example.com
209
+ **Support Email**: api-support@example.com
210
+ **Slack**: #api-support
211
+ ```
@@ -0,0 +1,212 @@
1
+ ---
2
+ phase_relevance: ["design", "build"]
3
+ archetype_relevance: ["*"]
4
+ ---
5
+ # Interface Documentation Template - Examples and Tips
6
+
7
+ Complete User Service interface example and tips for documenting interfaces.
8
+
9
+ ## Example: User Service Interface
10
+
11
+ ```markdown
12
+ # User Service Interface
13
+
14
+ ## Overview
15
+
16
+ Provides user management operations for all platform services.
17
+
18
+ **Type**: REST API
19
+ **Provider**: user-service
20
+ **Consumers**: auth-service, order-service, notification-service
21
+ **Stability**: Stable
22
+
23
+ ## Contract
24
+
25
+ ### Purpose
26
+
27
+ Centralized user data management and profile operations.
28
+
29
+ ### Guarantees
30
+
31
+ - User IDs are unique and immutable
32
+ - Email addresses are unique across the system
33
+ - Responses include all non-sensitive user fields
34
+ - Operations are idempotent where applicable
35
+
36
+ ### Assumptions
37
+
38
+ - Caller is authenticated and authorized
39
+ - Email addresses are validated before submission
40
+ - Rate limits are respected
41
+
42
+ ## Operations
43
+
44
+ ### GetUser
45
+
46
+ **Description**: Retrieve user by ID
47
+
48
+ **Input**:
49
+ ```typescript
50
+ interface GetUserRequest {
51
+ userId: string; // UUID format
52
+ }
53
+ ```
54
+
55
+ **Output**:
56
+ ```typescript
57
+ interface User {
58
+ id: string;
59
+ email: string;
60
+ name: string;
61
+ role: 'admin' | 'user' | 'guest';
62
+ status: 'active' | 'suspended' | 'deleted';
63
+ createdAt: string; // ISO 8601
64
+ updatedAt: string; // ISO 8601
65
+ }
66
+ ```
67
+
68
+ **Errors**:
69
+ - `USER_NOT_FOUND` (404): User with given ID doesn't exist
70
+ - `UNAUTHORIZED` (401): Invalid or missing auth token
71
+ - `FORBIDDEN` (403): Insufficient permissions
72
+
73
+ **Example**:
74
+ ```http
75
+ GET /api/users/550e8400-e29b-41d4-a716-446655440000
76
+ Authorization: Bearer <token>
77
+
78
+ Response: 200 OK
79
+ {
80
+ "id": "550e8400-e29b-41d4-a716-446655440000",
81
+ "email": "alice@example.com",
82
+ "name": "Alice Smith",
83
+ "role": "user",
84
+ "status": "active",
85
+ "createdAt": "2025-01-24T10:00:00Z",
86
+ "updatedAt": "2025-01-24T10:00:00Z"
87
+ }
88
+ ```
89
+
90
+ **Performance**: P95 < 50ms
91
+ **Idempotency**: Yes
92
+ **Side Effects**: None
93
+
94
+ ### CreateUser
95
+
96
+ **Description**: Create a new user account
97
+
98
+ **Input**:
99
+ ```typescript
100
+ interface CreateUserRequest {
101
+ email: string; // Valid email, unique
102
+ name: string; // 1-100 characters
103
+ password: string; // Min 8 characters
104
+ role?: 'admin' | 'user' | 'guest'; // Default: 'user'
105
+ }
106
+ ```
107
+
108
+ **Output**:
109
+ ```typescript
110
+ interface CreateUserResponse {
111
+ user: User;
112
+ }
113
+ ```
114
+
115
+ **Errors**:
116
+ - `DUPLICATE_EMAIL` (409): Email already exists
117
+ - `VALIDATION_ERROR` (400): Invalid input
118
+ - `WEAK_PASSWORD` (400): Password doesn't meet requirements
119
+
120
+ **Example**:
121
+ ```http
122
+ POST /api/users
123
+ Authorization: Bearer <token>
124
+ Content-Type: application/json
125
+
126
+ {
127
+ "email": "bob@example.com",
128
+ "name": "Bob Jones",
129
+ "password": "SecurePass123!"
130
+ }
131
+
132
+ Response: 201 Created
133
+ Location: /api/users/660e8400-e29b-41d4-a716-446655440000
134
+ {
135
+ "user": {
136
+ "id": "660e8400-e29b-41d4-a716-446655440000",
137
+ "email": "bob@example.com",
138
+ "name": "Bob Jones",
139
+ "role": "user",
140
+ "status": "active",
141
+ "createdAt": "2025-01-24T10:05:00Z",
142
+ "updatedAt": "2025-01-24T10:05:00Z"
143
+ }
144
+ }
145
+ ```
146
+
147
+ **Performance**: P95 < 200ms
148
+ **Idempotency**: No (generates new ID each time)
149
+ **Side Effects**:
150
+ - Publishes `user.created` event
151
+ - Sends welcome email
152
+
153
+ ## Authentication & Authorization
154
+
155
+ ### Authentication
156
+
157
+ Bearer token required for all endpoints:
158
+ ```http
159
+ Authorization: Bearer eyJhbGciOiJIUzI1NiIs...
160
+ ```
161
+
162
+ ### Authorization
163
+
164
+ | Operation | Required Permission |
165
+ |-----------|-------------------|
166
+ | GetUser | `user:read` (own) or `user:read:all` (any) |
167
+ | CreateUser | `user:create` |
168
+ | UpdateUser | `user:write` (own) or `user:write:all` (any) |
169
+ | DeleteUser | `user:delete` |
170
+
171
+ ## Service Level Agreement (SLA)
172
+
173
+ **Availability**: 99.9%
174
+
175
+ **Performance**:
176
+ - GET operations: P95 < 50ms
177
+ - POST/PUT operations: P95 < 200ms
178
+
179
+ **Support**:
180
+ - Response time: 2 hours
181
+ - Resolution time: 8 hours
182
+
183
+ ## Client Library Example
184
+
185
+ ```typescript
186
+ import { UserServiceClient } from '@example/user-service-client';
187
+
188
+ const client = new UserServiceClient({
189
+ baseURL: 'https://api.example.com',
190
+ apiKey: process.env.API_KEY
191
+ });
192
+
193
+ // Get user
194
+ const user = await client.getUser('550e8400-...');
195
+
196
+ // Create user
197
+ const newUser = await client.createUser({
198
+ email: 'new@example.com',
199
+ name: 'New User',
200
+ password: 'SecurePass123!'
201
+ });
202
+ ```
203
+ ```
204
+
205
+ ## Tips for Documenting Interfaces
206
+
207
+ 1. **Be Explicit**: Don't assume consumers understand context
208
+ 2. **Show Examples**: Real request/response examples
209
+ 3. **Document Errors**: All possible error conditions
210
+ 4. **Version Everything**: Track changes over time
211
+ 5. **Performance Targets**: Set clear expectations
212
+ 6. **Keep Updated**: Interface docs should match implementation