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,251 @@
1
+ ---
2
+ phase_relevance: ["design", "review"]
3
+ archetype_relevance: ["*"]
4
+ ---
5
+ # Caching, Batching & Cost Optimization
6
+
7
+ Advanced strategies for reducing API costs through caching, batching, and intelligent model selection.
8
+
9
+ ## Caching Strategies
10
+
11
+ ### 10. Prompt Prefix Caching
12
+
13
+ Cache common prompt prefixes.
14
+
15
+ ```python
16
+ class PrefixCache:
17
+ """
18
+ Some LLM providers (like Anthropic) cache prompt prefixes automatically.
19
+ Structure prompts to maximize cache hits.
20
+ """
21
+
22
+ def build_cacheable_prompt(self, static_instructions, dynamic_task):
23
+ # Put static content first (will be cached)
24
+ prompt = [
25
+ {
26
+ "role": "system",
27
+ "content": static_instructions, # This gets cached
28
+ "cache_control": {"type": "ephemeral"}
29
+ },
30
+ {
31
+ "role": "user",
32
+ "content": dynamic_task # This changes each time
33
+ }
34
+ ]
35
+ return prompt
36
+
37
+ # Usage: Reuse same system prompt across requests
38
+ cache = PrefixCache()
39
+ for task in tasks:
40
+ prompt = cache.build_cacheable_prompt(
41
+ static_instructions="You are a helpful assistant...", # Cached
42
+ dynamic_task=task # Not cached
43
+ )
44
+ ```
45
+
46
+ ### 11. Semantic Caching
47
+
48
+ Cache responses for semantically similar queries.
49
+
50
+ ```python
51
+ class SemanticCache:
52
+ def __init__(self, similarity_threshold=0.95):
53
+ self.cache = [] # [(query_embedding, response)]
54
+ self.threshold = similarity_threshold
55
+
56
+ async def get(self, query):
57
+ query_embedding = await self.embed(query)
58
+
59
+ # Check for similar cached query
60
+ for cached_embedding, cached_response in self.cache:
61
+ similarity = cosine_similarity([query_embedding], [cached_embedding])[0][0]
62
+ if similarity >= self.threshold:
63
+ return cached_response
64
+
65
+ return None
66
+
67
+ async def set(self, query, response):
68
+ query_embedding = await self.embed(query)
69
+ self.cache.append((query_embedding, response))
70
+
71
+ # Usage
72
+ cache = SemanticCache()
73
+
74
+ # Try cache first
75
+ cached = await cache.get(user_query)
76
+ if cached:
77
+ return cached
78
+
79
+ # If not cached, generate and cache
80
+ response = await llm.generate(user_query)
81
+ await cache.set(user_query, response)
82
+ ```
83
+
84
+ ## Batching and Parallelization
85
+
86
+ ### 12. Batch Processing
87
+
88
+ Process multiple items in single LLM call.
89
+
90
+ ```python
91
+ class BatchProcessor:
92
+ async def process_batch(self, items, max_batch_size=10):
93
+ results = []
94
+
95
+ for i in range(0, len(items), max_batch_size):
96
+ batch = items[i:i+max_batch_size]
97
+
98
+ # Process entire batch in one call
99
+ batch_prompt = "Process each item:\n\n"
100
+ for idx, item in enumerate(batch):
101
+ batch_prompt += f"Item {idx+1}: {item}\n"
102
+
103
+ batch_results = await self.llm.generate(batch_prompt)
104
+ results.extend(self.parse_batch_results(batch_results))
105
+
106
+ return results
107
+ ```
108
+
109
+ ### 13. Parallel Context Loading
110
+
111
+ Load multiple context sources in parallel.
112
+
113
+ ```python
114
+ class ParallelContextLoader:
115
+ async def load_context(self, query):
116
+ # Load multiple sources in parallel
117
+ results = await asyncio.gather(
118
+ self.load_vector_search(query),
119
+ self.load_user_preferences(query.user_id),
120
+ self.load_recent_history(query.session_id),
121
+ self.load_domain_knowledge(query.domain)
122
+ )
123
+
124
+ vector_results, preferences, history, knowledge = results
125
+
126
+ # Combine and trim to budget
127
+ combined = self.combine_context(
128
+ vector_results,
129
+ preferences,
130
+ history,
131
+ knowledge,
132
+ token_budget=8000
133
+ )
134
+
135
+ return combined
136
+ ```
137
+
138
+ ## Cost-Aware Optimization
139
+
140
+ ### 14. Model Selection by Budget
141
+
142
+ Choose model based on available budget.
143
+
144
+ ```python
145
+ class BudgetAwareModelSelector:
146
+ def select_model(self, task_complexity, token_budget, cost_budget):
147
+ # For complex tasks with high budget, use best model
148
+ if task_complexity == 'high' and cost_budget > 1.0:
149
+ return 'claude-opus-4'
150
+
151
+ # For medium complexity, use balanced model
152
+ elif task_complexity == 'medium':
153
+ return 'claude-sonnet-4'
154
+
155
+ # For simple tasks or tight budget, use efficient model
156
+ else:
157
+ return 'claude-haiku-4'
158
+
159
+ # Usage
160
+ selector = BudgetAwareModelSelector()
161
+ model = selector.select_model(
162
+ task_complexity='medium',
163
+ token_budget=10000,
164
+ cost_budget=0.5
165
+ )
166
+ ```
167
+
168
+ ### 15. Progressive Detail Loading
169
+
170
+ Start with minimal context, add detail if needed.
171
+
172
+ ```python
173
+ class ProgressiveLoader:
174
+ async def solve(self, task):
175
+ # Start with minimal context
176
+ context = await self.load_minimal_context(task)
177
+ response = await self.llm.generate(task, context=context)
178
+
179
+ # If agent says it needs more info...
180
+ if "need more information" in response.lower():
181
+ # Load medium context
182
+ context = await self.load_medium_context(task)
183
+ response = await self.llm.generate(task, context=context)
184
+
185
+ # If still needs more...
186
+ if "need more information" in response.lower():
187
+ # Load full context
188
+ context = await self.load_full_context(task)
189
+ response = await self.llm.generate(task, context=context)
190
+
191
+ return response
192
+ ```
193
+
194
+ ## Monitoring and Analytics
195
+
196
+ ### 16. Token Usage Analytics
197
+
198
+ Track where tokens are being spent.
199
+
200
+ ```python
201
+ class TokenAnalytics:
202
+ def __init__(self):
203
+ self.usage = defaultdict(lambda: {'input': 0, 'output': 0})
204
+
205
+ def record(self, component, input_tokens, output_tokens):
206
+ self.usage[component]['input'] += input_tokens
207
+ self.usage[component]['output'] += output_tokens
208
+
209
+ def get_report(self):
210
+ total_input = sum(u['input'] for u in self.usage.values())
211
+ total_output = sum(u['output'] for u in self.usage.values())
212
+
213
+ report = {
214
+ 'total_tokens': total_input + total_output,
215
+ 'total_input': total_input,
216
+ 'total_output': total_output,
217
+ 'by_component': {}
218
+ }
219
+
220
+ for component, usage in self.usage.items():
221
+ total = usage['input'] + usage['output']
222
+ report['by_component'][component] = {
223
+ 'tokens': total,
224
+ 'percentage': (total / report['total_tokens']) * 100
225
+ }
226
+
227
+ return report
228
+
229
+ # Find optimization opportunities
230
+ analytics = TokenAnalytics()
231
+ report = analytics.get_report()
232
+ top_spenders = sorted(
233
+ report['by_component'].items(),
234
+ key=lambda x: x[1]['tokens'],
235
+ reverse=True
236
+ )[:5]
237
+ print(f"Top 5 token consumers: {top_spenders}")
238
+ ```
239
+
240
+ ## Best Practices Summary
241
+
242
+ 1. **Compress old context**: Summarize conversations > 20 messages
243
+ 2. **Load selectively**: Retrieve only relevant context for current task
244
+ 3. **Use structured formats**: JSON/YAML more efficient than prose
245
+ 4. **Cache intelligently**: Cache common prompts and similar queries
246
+ 5. **Batch when possible**: Process multiple items per LLM call
247
+ 6. **Monitor usage**: Track token usage by component
248
+ 7. **Progressive loading**: Start minimal, add detail if needed
249
+ 8. **Deduplicate**: Remove semantically similar context
250
+ 9. **Time decay**: Weight recent information more heavily
251
+ 10. **Budget enforcement**: Hard limits on tokens per agent/session
@@ -0,0 +1,171 @@
1
+ ---
2
+ phase_relevance: ["design", "review"]
3
+ archetype_relevance: ["*"]
4
+ ---
5
+ # Context Optimization Techniques
6
+
7
+ Advanced strategies for minimizing token usage while maximizing context quality.
8
+
9
+ ## Compression Techniques
10
+
11
+ ### 1. Conversation Summarization
12
+
13
+ Progressive summarization of conversation history.
14
+
15
+ ```python
16
+ class ConversationCompressor:
17
+ def __init__(self, llm, max_full_messages=10, summary_length=500):
18
+ self.llm = llm
19
+ self.max_full_messages = max_full_messages
20
+ self.summary_length = summary_length
21
+
22
+ async def compress(self, messages):
23
+ if len(messages) <= self.max_full_messages:
24
+ return messages
25
+
26
+ # Split into old (to summarize) and recent (keep full)
27
+ old_messages = messages[:-self.max_full_messages]
28
+ recent_messages = messages[-self.max_full_messages:]
29
+
30
+ # Create summary of old messages
31
+ summary_prompt = f"""Summarize this conversation in {self.summary_length} words or less.
32
+ Focus on:
33
+ - Key decisions made
34
+ - Important facts established
35
+ - Current task state
36
+
37
+ Conversation:
38
+ {self.format_messages(old_messages)}
39
+ """
40
+
41
+ summary = await self.llm.generate(summary_prompt, max_tokens=self.summary_length * 2)
42
+
43
+ # Return summary + recent messages
44
+ return [
45
+ {"role": "system", "content": f"Previous conversation summary:\n{summary}"}
46
+ ] + recent_messages
47
+
48
+ def format_messages(self, messages):
49
+ return "\n".join(f"{m['role']}: {m['content']}" for m in messages)
50
+ ```
51
+
52
+ ### 2. Semantic Deduplication
53
+
54
+ Remove redundant information.
55
+
56
+ ```python
57
+ from sentence_transformers import SentenceTransformer
58
+ from sklearn.metrics.pairwise import cosine_similarity
59
+
60
+ class SemanticDeduplicator:
61
+ def __init__(self, similarity_threshold=0.9):
62
+ self.encoder = SentenceTransformer('all-MiniLM-L6-v2')
63
+ self.threshold = similarity_threshold
64
+
65
+ def deduplicate(self, texts):
66
+ if not texts:
67
+ return texts
68
+
69
+ # Encode all texts
70
+ embeddings = self.encoder.encode(texts)
71
+
72
+ # Keep track of which to keep
73
+ keep_indices = [0] # Always keep first
74
+
75
+ for i in range(1, len(texts)):
76
+ # Compare to all kept texts
77
+ similarities = cosine_similarity(
78
+ [embeddings[i]],
79
+ embeddings[keep_indices]
80
+ )[0]
81
+
82
+ # Only keep if not too similar to existing
83
+ if max(similarities) < self.threshold:
84
+ keep_indices.append(i)
85
+
86
+ return [texts[i] for i in keep_indices]
87
+
88
+ # Usage
89
+ deduper = SemanticDeduplicator()
90
+ unique_contexts = deduper.deduplicate([
91
+ "The user prefers Python",
92
+ "User likes Python programming", # Very similar - would be removed
93
+ "The user works at Acme Corp" # Different - would be kept
94
+ ])
95
+ ```
96
+
97
+ ### 3. Hierarchical Summarization
98
+
99
+ Summarize at multiple levels of detail.
100
+
101
+ ```python
102
+ class HierarchicalSummarizer:
103
+ async def summarize(self, text, levels=3):
104
+ summaries = {}
105
+
106
+ # Level 0: Full text
107
+ summaries['full'] = text
108
+
109
+ # Level 1: Detailed summary (50% reduction)
110
+ summaries['detailed'] = await self.llm.generate(
111
+ f"Summarize in half the length:\n{text}"
112
+ )
113
+
114
+ # Level 2: Brief summary (80% reduction)
115
+ summaries['brief'] = await self.llm.generate(
116
+ f"Summarize in 1-2 paragraphs:\n{summaries['detailed']}"
117
+ )
118
+
119
+ # Level 3: Ultra-brief (95% reduction)
120
+ summaries['headline'] = await self.llm.generate(
121
+ f"Summarize in one sentence:\n{summaries['brief']}"
122
+ )
123
+
124
+ return summaries
125
+
126
+ # Usage: Choose appropriate level based on available tokens
127
+ summaries = await summarizer.summarize(long_document)
128
+ if tokens_available > 5000:
129
+ context = summaries['detailed']
130
+ elif tokens_available > 1000:
131
+ context = summaries['brief']
132
+ else:
133
+ context = summaries['headline']
134
+ ```
135
+
136
+ ### 4. Entity-Based Compression
137
+
138
+ Extract and store only key entities and relationships.
139
+
140
+ ```python
141
+ class EntityCompressor:
142
+ async def compress(self, text):
143
+ # Extract entities
144
+ entities_prompt = f"""Extract key entities and relationships from this text.
145
+ Format as JSON: {{"entities": [...], "relationships": [...]}}
146
+
147
+ Text: {text}
148
+ """
149
+
150
+ entities = await self.llm.generate(entities_prompt)
151
+
152
+ # Store compressed representation
153
+ return {
154
+ 'entities': entities['entities'],
155
+ 'relationships': entities['relationships'],
156
+ 'original_length': len(text),
157
+ 'compressed_length': len(str(entities))
158
+ }
159
+
160
+ def reconstruct_context(self, compressed):
161
+ # Build minimal context from entities
162
+ context = "Key facts:\n"
163
+ for entity in compressed['entities']:
164
+ context += f"- {entity}\n"
165
+
166
+ context += "\nRelationships:\n"
167
+ for rel in compressed['relationships']:
168
+ context += f"- {rel}\n"
169
+
170
+ return context
171
+ ```
@@ -0,0 +1,250 @@
1
+ ---
2
+ phase_relevance: ["design", "review"]
3
+ archetype_relevance: ["*"]
4
+ ---
5
+ # Token Cost Models and Budgeting
6
+
7
+ Comprehensive guide to calculating, tracking, and optimizing token costs in agentic systems.
8
+
9
+ ## Pricing Overview (2026 Estimates)
10
+
11
+ ```python
12
+ PRICING = {
13
+ # Anthropic Claude
14
+ 'claude-opus-4-6': {
15
+ 'input': 0.015, # $ per 1K tokens
16
+ 'output': 0.075,
17
+ 'context_window': 200000,
18
+ 'output_limit': 16000
19
+ },
20
+ 'claude-sonnet-4-5': {
21
+ 'input': 0.003,
22
+ 'output': 0.015,
23
+ 'context_window': 200000,
24
+ 'output_limit': 16000
25
+ },
26
+ 'claude-haiku-4': {
27
+ 'input': 0.0008,
28
+ 'output': 0.004,
29
+ 'context_window': 200000,
30
+ 'output_limit': 8000
31
+ },
32
+
33
+ # OpenAI GPT
34
+ 'gpt-4-turbo': {
35
+ 'input': 0.01,
36
+ 'output': 0.03,
37
+ 'context_window': 128000,
38
+ 'output_limit': 4096
39
+ },
40
+ 'gpt-4': {
41
+ 'input': 0.03,
42
+ 'output': 0.06,
43
+ 'context_window': 8192,
44
+ 'output_limit': 4096
45
+ },
46
+ 'gpt-3.5-turbo': {
47
+ 'input': 0.001,
48
+ 'output': 0.002,
49
+ 'context_window': 16384,
50
+ 'output_limit': 4096
51
+ },
52
+ }
53
+ ```
54
+
55
+ Note: These are approximate rates. Always check current pricing from providers.
56
+
57
+ ## Cost Calculation
58
+
59
+ ### Basic Cost Calculator
60
+
61
+ ```python
62
+ class CostCalculator:
63
+ def __init__(self, pricing=PRICING):
64
+ self.pricing = pricing
65
+
66
+ def calculate(self, model, input_tokens, output_tokens):
67
+ """Calculate cost for a single LLM call."""
68
+ if model not in self.pricing:
69
+ raise ValueError(f"Unknown model: {model}")
70
+
71
+ rates = self.pricing[model]
72
+
73
+ input_cost = (input_tokens / 1000) * rates['input']
74
+ output_cost = (output_tokens / 1000) * rates['output']
75
+
76
+ return {
77
+ 'input_cost': input_cost,
78
+ 'output_cost': output_cost,
79
+ 'total_cost': input_cost + output_cost,
80
+ 'input_tokens': input_tokens,
81
+ 'output_tokens': output_tokens
82
+ }
83
+
84
+ # Example
85
+ calc = CostCalculator()
86
+ cost = calc.calculate('claude-opus-4-6', input_tokens=10000, output_tokens=2000)
87
+ print(f"Total cost: ${cost['total_cost']:.4f}") # $0.30
88
+ ```
89
+
90
+ ### Multi-Agent Cost Tracking
91
+
92
+ ```python
93
+ class MultiAgentCostTracker:
94
+ def __init__(self):
95
+ self.calls = [] # All LLM calls
96
+ self.costs_by_agent = defaultdict(float)
97
+ self.costs_by_model = defaultdict(float)
98
+
99
+ def record_call(self, agent_id, model, input_tokens, output_tokens):
100
+ """Record a single LLM call."""
101
+ calc = CostCalculator()
102
+ cost_info = calc.calculate(model, input_tokens, output_tokens)
103
+
104
+ # Store call details
105
+ self.calls.append({
106
+ 'timestamp': datetime.now(),
107
+ 'agent_id': agent_id,
108
+ 'model': model,
109
+ **cost_info
110
+ })
111
+
112
+ # Update aggregates
113
+ self.costs_by_agent[agent_id] += cost_info['total_cost']
114
+ self.costs_by_model[model] += cost_info['total_cost']
115
+
116
+ def get_total_cost(self):
117
+ """Get total cost across all calls."""
118
+ return sum(call['total_cost'] for call in self.calls)
119
+
120
+ def get_agent_costs(self):
121
+ """Get cost breakdown by agent."""
122
+ return dict(sorted(
123
+ self.costs_by_agent.items(),
124
+ key=lambda x: x[1],
125
+ reverse=True
126
+ ))
127
+
128
+ def get_model_costs(self):
129
+ """Get cost breakdown by model."""
130
+ return dict(sorted(
131
+ self.costs_by_model.items(),
132
+ key=lambda x: x[1],
133
+ reverse=True
134
+ ))
135
+
136
+ def get_stats(self):
137
+ """Get comprehensive statistics."""
138
+ total_tokens = sum(
139
+ call['input_tokens'] + call['output_tokens']
140
+ for call in self.calls
141
+ )
142
+
143
+ return {
144
+ 'total_cost': self.get_total_cost(),
145
+ 'total_calls': len(self.calls),
146
+ 'total_tokens': total_tokens,
147
+ 'avg_cost_per_call': self.get_total_cost() / len(self.calls) if self.calls else 0,
148
+ 'avg_tokens_per_call': total_tokens / len(self.calls) if self.calls else 0,
149
+ 'by_agent': self.get_agent_costs(),
150
+ 'by_model': self.get_model_costs()
151
+ }
152
+ ```
153
+
154
+ ## Budget Management
155
+
156
+ ### Session Budget
157
+
158
+ ```python
159
+ class SessionBudget:
160
+ def __init__(self, max_cost=5.0):
161
+ self.max_cost = max_cost
162
+ self.spent = 0.0
163
+ self.calls = []
164
+
165
+ def check_and_reserve(self, estimated_cost):
166
+ """Check if we can afford this call."""
167
+ if self.spent + estimated_cost > self.max_cost:
168
+ raise BudgetExceededError(
169
+ f"Would exceed budget: ${self.spent + estimated_cost:.4f} > ${self.max_cost:.4f}"
170
+ )
171
+
172
+ def record_actual(self, actual_cost):
173
+ """Record actual cost after call."""
174
+ self.spent += actual_cost
175
+ self.calls.append({
176
+ 'timestamp': datetime.now(),
177
+ 'cost': actual_cost
178
+ })
179
+
180
+ def get_remaining(self):
181
+ """Get remaining budget."""
182
+ return self.max_cost - self.spent
183
+
184
+ def get_utilization(self):
185
+ """Get budget utilization percentage."""
186
+ return (self.spent / self.max_cost) * 100
187
+
188
+ # Usage
189
+ budget = SessionBudget(max_cost=1.0)
190
+
191
+ # Before each call
192
+ estimated_cost = estimate_cost(model, estimated_input, estimated_output)
193
+ budget.check_and_reserve(estimated_cost)
194
+
195
+ # After call
196
+ actual_cost = calculate_actual_cost(model, actual_input, actual_output)
197
+ budget.record_actual(actual_cost)
198
+ ```
199
+
200
+ ### Tiered Budget System
201
+
202
+ ```python
203
+ class TieredBudget:
204
+ """Different budget limits for different user tiers."""
205
+
206
+ TIERS = {
207
+ 'free': {'daily': 0.10, 'monthly': 2.0},
208
+ 'pro': {'daily': 1.0, 'monthly': 25.0},
209
+ 'enterprise': {'daily': 10.0, 'monthly': 500.0}
210
+ }
211
+
212
+ def __init__(self, user_tier):
213
+ self.tier = user_tier
214
+ self.limits = self.TIERS[user_tier]
215
+ self.daily_spent = 0.0
216
+ self.monthly_spent = 0.0
217
+ self.last_reset = datetime.now()
218
+
219
+ def check_budget(self, estimated_cost):
220
+ """Check both daily and monthly budgets."""
221
+ self._reset_if_needed()
222
+
223
+ if self.daily_spent + estimated_cost > self.limits['daily']:
224
+ raise DailyBudgetExceeded(
225
+ f"Daily limit: ${self.limits['daily']}"
226
+ )
227
+
228
+ if self.monthly_spent + estimated_cost > self.limits['monthly']:
229
+ raise MonthlyBudgetExceeded(
230
+ f"Monthly limit: ${self.limits['monthly']}"
231
+ )
232
+
233
+ def record_usage(self, cost):
234
+ self._reset_if_needed()
235
+ self.daily_spent += cost
236
+ self.monthly_spent += cost
237
+
238
+ def _reset_if_needed(self):
239
+ now = datetime.now()
240
+
241
+ # Reset daily budget
242
+ if now.date() > self.last_reset.date():
243
+ self.daily_spent = 0.0
244
+
245
+ # Reset monthly budget
246
+ if now.month != self.last_reset.month:
247
+ self.monthly_spent = 0.0
248
+
249
+ self.last_reset = now
250
+ ```