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,300 @@
1
+ ---
2
+ phase_relevance: ["design", "review"]
3
+ archetype_relevance: ["*"]
4
+ ---
5
+ # Cost Optimization & Reporting
6
+
7
+ Strategies for estimating, optimizing, and reporting on token costs in agentic systems.
8
+
9
+ ## Cost Estimation
10
+
11
+ ### Estimating Token Count
12
+
13
+ ```python
14
+ class TokenEstimator:
15
+ """Estimate tokens before making API call."""
16
+
17
+ @staticmethod
18
+ def estimate_tokens(text):
19
+ """Rough estimate: ~4 characters per token for English."""
20
+ return len(text) // 4
21
+
22
+ @staticmethod
23
+ def estimate_cost(model, prompt, estimated_output_tokens=500):
24
+ """Estimate cost before API call."""
25
+ input_tokens = TokenEstimator.estimate_tokens(prompt)
26
+ output_tokens = estimated_output_tokens
27
+
28
+ calc = CostCalculator()
29
+ return calc.calculate(model, input_tokens, output_tokens)
30
+
31
+ # More accurate estimation using tiktoken (for OpenAI models)
32
+ import tiktoken
33
+
34
+ class AccurateTokenEstimator:
35
+ def __init__(self, model):
36
+ self.encoding = tiktoken.encoding_for_model(model)
37
+
38
+ def count_tokens(self, text):
39
+ return len(self.encoding.encode(text))
40
+
41
+ def estimate_cost(self, model, prompt, estimated_output_tokens=500):
42
+ input_tokens = self.count_tokens(prompt)
43
+ calc = CostCalculator()
44
+ return calc.calculate(model, input_tokens, estimated_output_tokens)
45
+ ```
46
+
47
+ ### Predictive Cost Modeling
48
+
49
+ ```python
50
+ class CostPredictor:
51
+ """Predict costs based on historical data."""
52
+
53
+ def __init__(self):
54
+ self.history = []
55
+
56
+ def record_actual(self, task_type, model, actual_tokens, actual_cost):
57
+ self.history.append({
58
+ 'task_type': task_type,
59
+ 'model': model,
60
+ 'tokens': actual_tokens,
61
+ 'cost': actual_cost
62
+ })
63
+
64
+ def predict_cost(self, task_type, model):
65
+ """Predict cost for task based on historical similar tasks."""
66
+ similar_tasks = [
67
+ h for h in self.history
68
+ if h['task_type'] == task_type and h['model'] == model
69
+ ]
70
+
71
+ if not similar_tasks:
72
+ # No history - use conservative estimate
73
+ return {
74
+ 'estimated_tokens': 5000,
75
+ 'estimated_cost': CostCalculator().calculate(model, 5000, 1000)['total_cost']
76
+ }
77
+
78
+ # Use average of similar tasks
79
+ avg_tokens = np.mean([t['tokens'] for t in similar_tasks])
80
+ avg_cost = np.mean([t['cost'] for t in similar_tasks])
81
+
82
+ # Add 20% buffer for safety
83
+ return {
84
+ 'estimated_tokens': int(avg_tokens * 1.2),
85
+ 'estimated_cost': avg_cost * 1.2
86
+ }
87
+ ```
88
+
89
+ ## Cost Optimization Strategies
90
+
91
+ ### Model Selection for Cost
92
+
93
+ ```python
94
+ class CostOptimizer:
95
+ def select_model_for_task(self, task, quality_threshold=0.8, max_cost=0.10):
96
+ """Select cheapest model that meets quality threshold."""
97
+
98
+ # Models ordered by cost (cheapest first)
99
+ models_by_cost = [
100
+ 'claude-haiku-4',
101
+ 'gpt-3.5-turbo',
102
+ 'claude-sonnet-4-5',
103
+ 'gpt-4-turbo',
104
+ 'claude-opus-4-6',
105
+ 'gpt-4'
106
+ ]
107
+
108
+ for model in models_by_cost:
109
+ # Estimate cost for this model
110
+ est_cost = self.estimate_task_cost(task, model)
111
+
112
+ if est_cost > max_cost:
113
+ continue
114
+
115
+ # Check if quality is sufficient (would need ML model for real impl)
116
+ expected_quality = self.predict_quality(task, model)
117
+
118
+ if expected_quality >= quality_threshold:
119
+ return {
120
+ 'model': model,
121
+ 'estimated_cost': est_cost,
122
+ 'expected_quality': expected_quality
123
+ }
124
+
125
+ raise NoSuitableModelError("No model meets quality/cost requirements")
126
+ ```
127
+
128
+ ### Batch Processing for Cost Savings
129
+
130
+ ```python
131
+ class BatchCostOptimizer:
132
+ """Process multiple items in batches to save on API overhead."""
133
+
134
+ async def process_items(self, items, model):
135
+ # Processing individually
136
+ individual_cost = 0
137
+ for item in items:
138
+ cost = await self.process_one(item, model)
139
+ individual_cost += cost
140
+
141
+ # Processing as batch
142
+ batch_cost = await self.process_batch(items, model)
143
+
144
+ savings = individual_cost - batch_cost
145
+ savings_pct = (savings / individual_cost) * 100
146
+
147
+ print(f"Batch processing saved ${savings:.4f} ({savings_pct:.1f}%)")
148
+
149
+ return batch_cost
150
+
151
+ async def process_batch(self, items, model):
152
+ """Process all items in one API call."""
153
+ batch_prompt = "Process each item:\n\n"
154
+ for i, item in enumerate(items):
155
+ batch_prompt += f"Item {i+1}: {item}\n"
156
+
157
+ input_tokens = self.count_tokens(batch_prompt)
158
+ # Single output with all results
159
+ output_tokens = len(items) * 100 # Estimate
160
+
161
+ calc = CostCalculator()
162
+ return calc.calculate(model, input_tokens, output_tokens)['total_cost']
163
+ ```
164
+
165
+ ### Caching for Cost Reduction
166
+
167
+ ```python
168
+ class CostAwareCache:
169
+ """Cache expensive LLM calls."""
170
+
171
+ def __init__(self):
172
+ self.cache = {}
173
+ self.hits = 0
174
+ self.misses = 0
175
+ self.savings = 0.0
176
+
177
+ async def get_or_generate(self, prompt, model, cost_calculator):
178
+ cache_key = hashlib.md5(f"{prompt}{model}".encode()).hexdigest()
179
+
180
+ if cache_key in self.cache:
181
+ # Cache hit
182
+ self.hits += 1
183
+
184
+ # Calculate cost saved
185
+ estimated_cost = cost_calculator.estimate(prompt, model)
186
+ self.savings += estimated_cost
187
+
188
+ return self.cache[cache_key]['response']
189
+
190
+ # Cache miss
191
+ self.misses += 1
192
+ response, actual_cost = await self.generate_with_cost(prompt, model)
193
+
194
+ # Store in cache
195
+ self.cache[cache_key] = {
196
+ 'response': response,
197
+ 'cost': actual_cost,
198
+ 'timestamp': datetime.now()
199
+ }
200
+
201
+ return response
202
+
203
+ def get_cache_stats(self):
204
+ total = self.hits + self.misses
205
+ hit_rate = (self.hits / total * 100) if total > 0 else 0
206
+
207
+ return {
208
+ 'hits': self.hits,
209
+ 'misses': self.misses,
210
+ 'hit_rate': hit_rate,
211
+ 'savings': self.savings
212
+ }
213
+ ```
214
+
215
+ ## Cost Reporting
216
+
217
+ ### Comprehensive Cost Report
218
+
219
+ ```python
220
+ class CostReporter:
221
+ def __init__(self, tracker):
222
+ self.tracker = tracker
223
+
224
+ def generate_report(self, period='daily'):
225
+ stats = self.tracker.get_stats()
226
+
227
+ report = f"""
228
+ Cost Report - {period}
229
+ {'='*50}
230
+
231
+ Summary:
232
+ - Total Cost: ${stats['total_cost']:.4f}
233
+ - Total Calls: {stats['total_calls']}
234
+ - Total Tokens: {stats['total_tokens']:,}
235
+ - Avg Cost/Call: ${stats['avg_cost_per_call']:.4f}
236
+ - Avg Tokens/Call: {stats['avg_tokens_per_call']:.0f}
237
+
238
+ By Agent:
239
+ """
240
+ for agent_id, cost in stats['by_agent'].items():
241
+ pct = (cost / stats['total_cost']) * 100
242
+ report += f" {agent_id}: ${cost:.4f} ({pct:.1f}%)\n"
243
+
244
+ report += "\nBy Model:\n"
245
+ for model, cost in stats['by_model'].items():
246
+ pct = (cost / stats['total_cost']) * 100
247
+ report += f" {model}: ${cost:.4f} ({pct:.1f}%)\n"
248
+
249
+ return report
250
+
251
+ def identify_optimization_opportunities(self):
252
+ """Find cost optimization opportunities."""
253
+ stats = self.tracker.get_stats()
254
+ opportunities = []
255
+
256
+ # Check for expensive agents
257
+ for agent_id, cost in stats['by_agent'].items():
258
+ if cost > stats['total_cost'] * 0.3: # Agent using >30% of budget
259
+ opportunities.append({
260
+ 'type': 'expensive_agent',
261
+ 'agent': agent_id,
262
+ 'cost': cost,
263
+ 'recommendation': f"Optimize {agent_id} - using {(cost/stats['total_cost']*100):.1f}% of budget"
264
+ })
265
+
266
+ # Check for expensive models
267
+ for model, cost in stats['by_model'].items():
268
+ if model in ['claude-opus-4-6', 'gpt-4']:
269
+ # Check if cheaper model could work
270
+ opportunities.append({
271
+ 'type': 'expensive_model',
272
+ 'model': model,
273
+ 'cost': cost,
274
+ 'recommendation': f"Consider using cheaper model instead of {model}"
275
+ })
276
+
277
+ return opportunities
278
+ ```
279
+
280
+ ## Real-World Cost Examples
281
+
282
+ **Code Review System** (100 files/day, ~10K tokens/file):
283
+ - Claude Opus: ~$18.75/day → ~$562/month
284
+ - Claude Sonnet: ~$3.75/day → ~$112/month — **~$450/month savings**
285
+
286
+ **Customer Support Bot** (1000 conversations/day × 10 messages × 100 tokens):
287
+ - Claude Haiku: ~$1.60/day → ~$48/month → ~$584/year
288
+
289
+ ## Best Practices
290
+
291
+ 1. **Track Everything**: Record all LLM calls with model, tokens, cost
292
+ 2. **Set Budgets**: Per session, daily, monthly limits
293
+ 3. **Estimate First**: Predict cost before expensive calls
294
+ 4. **Cache Aggressively**: Avoid redundant API calls
295
+ 5. **Batch When Possible**: Combine multiple items per call
296
+ 6. **Right-Size Models**: Use cheapest model that meets quality bar
297
+ 7. **Monitor Trends**: Watch for cost increases over time
298
+ 8. **Optimize Hot Paths**: Focus on highest-cost agents/operations
299
+ 9. **User Limits**: Prevent abuse with per-user budgets
300
+ 10. **Alert on Spikes**: Get notified of unusual cost patterns
@@ -0,0 +1,179 @@
1
+ ---
2
+ phase_relevance: ["design", "review"]
3
+ archetype_relevance: ["*"]
4
+ ---
5
+ # Selective Loading & Token-Aware Prompting
6
+
7
+ Strategies for loading only relevant context and adapting prompts to available token budgets.
8
+
9
+ ## Selective Loading Strategies
10
+
11
+ ### 5. Relevance-Based Filtering
12
+
13
+ Load only context relevant to current task.
14
+
15
+ ```python
16
+ class RelevanceFilter:
17
+ def __init__(self, vector_db):
18
+ self.vector_db = vector_db
19
+
20
+ async def filter_context(self, all_context, current_task, top_k=5):
21
+ # Embed current task
22
+ task_embedding = await self.embed(current_task)
23
+
24
+ # Score all context items by relevance
25
+ scored_items = []
26
+ for item in all_context:
27
+ item_embedding = await self.embed(item)
28
+ similarity = cosine_similarity([task_embedding], [item_embedding])[0][0]
29
+ scored_items.append((item, similarity))
30
+
31
+ # Sort by relevance and take top K
32
+ scored_items.sort(key=lambda x: x[1], reverse=True)
33
+ relevant_items = [item for item, score in scored_items[:top_k]]
34
+
35
+ return relevant_items
36
+
37
+ # Usage
38
+ filter = RelevanceFilter(vector_db)
39
+ relevant = await filter.filter_context(
40
+ all_context=user.full_history,
41
+ current_task="Write a Python function",
42
+ top_k=3
43
+ )
44
+ ```
45
+
46
+ ### 6. Time-Based Decay
47
+
48
+ Weight recent context more heavily.
49
+
50
+ ```python
51
+ from datetime import datetime, timedelta
52
+
53
+ class TimeDecayFilter:
54
+ def score_by_recency(self, items, decay_factor=0.5):
55
+ """Score items with exponential time decay."""
56
+ now = datetime.now()
57
+ scored_items = []
58
+
59
+ for item in items:
60
+ age = (now - item.timestamp).total_seconds() / 3600 # hours
61
+ decay = decay_factor ** (age / 24) # Half-life of 24 hours
62
+ scored_items.append((item, decay))
63
+
64
+ return sorted(scored_items, key=lambda x: x[1], reverse=True)
65
+
66
+ # Combine with relevance
67
+ class HybridFilter:
68
+ def score(self, item, task_embedding):
69
+ # Relevance score
70
+ relevance = cosine_similarity(
71
+ [task_embedding],
72
+ [item.embedding]
73
+ )[0][0]
74
+
75
+ # Recency score
76
+ age_hours = (datetime.now() - item.timestamp).total_seconds() / 3600
77
+ recency = 0.5 ** (age_hours / 24)
78
+
79
+ # Weighted combination
80
+ return 0.7 * relevance + 0.3 * recency
81
+ ```
82
+
83
+ ### 7. Query-Specific Pruning
84
+
85
+ Remove context not needed for specific query type.
86
+
87
+ ```python
88
+ class QuerySpecificPruner:
89
+ def prune(self, context, query_type):
90
+ if query_type == 'factual':
91
+ # Keep facts, remove opinions/summaries
92
+ return [c for c in context if c.type == 'fact']
93
+
94
+ elif query_type == 'code_generation':
95
+ # Keep code examples, remove general discussion
96
+ return [c for c in context if c.type in ['code', 'api_doc']]
97
+
98
+ elif query_type == 'decision':
99
+ # Keep past decisions and outcomes
100
+ return [c for c in context if c.type in ['decision', 'outcome']]
101
+
102
+ else:
103
+ # Default: keep all
104
+ return context
105
+ ```
106
+
107
+ ## Token-Aware Prompting
108
+
109
+ ### 8. Dynamic Prompt Sizing
110
+
111
+ Adjust prompt detail based on available tokens.
112
+
113
+ ```python
114
+ class DynamicPrompt:
115
+ def __init__(self, max_tokens):
116
+ self.max_tokens = max_tokens
117
+
118
+ def build_prompt(self, task, available_tokens):
119
+ # Base prompt (always include)
120
+ base = f"Task: {task}\n\n"
121
+ base_tokens = self.count_tokens(base)
122
+
123
+ remaining = available_tokens - base_tokens - 1000 # Reserve for output
124
+
125
+ if remaining > 5000:
126
+ # Verbose mode
127
+ return base + self.get_detailed_instructions()
128
+
129
+ elif remaining > 2000:
130
+ # Standard mode
131
+ return base + self.get_standard_instructions()
132
+
133
+ else:
134
+ # Minimal mode
135
+ return base + self.get_minimal_instructions()
136
+
137
+ def get_detailed_instructions(self):
138
+ return """Detailed instructions with examples:
139
+ 1. First step with example...
140
+ 2. Second step with example...
141
+ ...
142
+ """
143
+
144
+ def get_standard_instructions(self):
145
+ return """Standard instructions:
146
+ 1. First step
147
+ 2. Second step
148
+ ...
149
+ """
150
+
151
+ def get_minimal_instructions(self):
152
+ return "Follow standard procedure."
153
+ ```
154
+
155
+ ### 9. Token-Budgeted Retrieval
156
+
157
+ Retrieve as much as token budget allows.
158
+
159
+ ```python
160
+ class BudgetedRetriever:
161
+ async def retrieve(self, query, token_budget):
162
+ # Get candidates
163
+ candidates = await self.vector_db.search(query, limit=100)
164
+
165
+ # Add candidates until budget exhausted
166
+ selected = []
167
+ tokens_used = 0
168
+
169
+ for candidate in candidates:
170
+ candidate_tokens = self.count_tokens(candidate.content)
171
+
172
+ if tokens_used + candidate_tokens <= token_budget:
173
+ selected.append(candidate)
174
+ tokens_used += candidate_tokens
175
+ else:
176
+ break
177
+
178
+ return selected, tokens_used
179
+ ```
@@ -0,0 +1,191 @@
1
+ ---
2
+ name: frameworks
3
+ description: |
4
+ Use when selecting or comparing agentic frameworks (LangChain, LangGraph, CrewAI, AutoGen, etc.) —
5
+ curated comparison by use case, language, and maturity. Gets latest context via Context7 when available.
6
+ NOT for reviewing existing agentic code (use review-methodology) or architecture patterns (use agentic-patterns).
7
+ portability: portable
8
+ phase_relevance: ["design", "review"]
9
+ archetype_relevance: ["*"]
10
+ ---
11
+
12
+ # Agentic Frameworks
13
+
14
+ Comprehensive guide to agentic frameworks, their strengths, and how to choose the right one.
15
+
16
+ ## Quick Comparison Table
17
+
18
+ | Framework | Language | Best For | Maturity | Learning Curve |
19
+ |-----------|----------|----------|----------|----------------|
20
+ | Anthropic ADK | TypeScript | Claude-specific, production | High | Low |
21
+ | LangGraph | Python | Complex workflows, state | High | Medium |
22
+ | CrewAI | Python | Role-based teams | Medium | Low |
23
+ | AutoGen | Python | Multi-agent conversations | Medium | Medium |
24
+ | Pydantic AI | Python | Type-safe agents | Medium | Low |
25
+ | OpenAI Agents SDK | Python | OpenAI-specific | Low | Low |
26
+ | LlamaIndex Agents | Python | RAG-heavy applications | High | Medium |
27
+ | Haystack | Python | Production pipelines | High | Medium |
28
+ | Semantic Kernel | C#/Python | Microsoft ecosystem | Medium | Medium |
29
+ | LangChain | Python | Rapid prototyping | High | Medium-High |
30
+ | Agency Swarm | Python | OpenAI Assistants API | Low | Low |
31
+ | Dify | Low-code | No-code workflows | Medium | Very Low |
32
+
33
+ ## Selection Criteria
34
+
35
+ ### 1. Orchestration Capabilities
36
+
37
+ **Simple Sequential:**
38
+ - LangChain (chains)
39
+ - Haystack (pipelines)
40
+ - Pydantic AI
41
+
42
+ **Complex Workflows:**
43
+ - LangGraph (state machines)
44
+ - ADK (delegated workflows)
45
+ - AutoGen (conversation patterns)
46
+
47
+ **Team-Based:**
48
+ - CrewAI (role-based)
49
+ - Agency Swarm (org structure)
50
+
51
+ ### 2. State Management
52
+
53
+ **No Built-in State:** LangChain, Pydantic AI
54
+
55
+ **Checkpointed State:** LangGraph (built-in), ADK (context preservation)
56
+
57
+ **Distributed State:** Custom implementation needed for all
58
+
59
+ ### 3. Tool Integration
60
+
61
+ **Extensive Tool Libraries:** LangChain (largest ecosystem), LlamaIndex (RAG-focused), Haystack (production tools)
62
+
63
+ **Easy Tool Definition:** Pydantic AI (type-safe), ADK (TypeScript decorators), OpenAI Agents SDK (function calling)
64
+
65
+ **Custom Tools:** All frameworks support custom tools
66
+
67
+ ### 4. Error Handling
68
+
69
+ **Built-in Retry/Fallback:** ADK (comprehensive), LangGraph (error handling nodes), Haystack (pipeline error handling)
70
+
71
+ **Manual Error Handling:** CrewAI, AutoGen, Pydantic AI
72
+
73
+ ### 5. Observability
74
+
75
+ **Native Tracing:** LangSmith (for LangChain/LangGraph), Braintrust (for ADK)
76
+
77
+ **Third-Party Integration:** All support OpenTelemetry, most support LangFuse, Arize
78
+
79
+ ## Framework Profiles
80
+
81
+ See `refs/framework-profiles-1.md` (ADK, LangGraph, CrewAI) and `refs/framework-profiles-2.md` (AutoGen, Pydantic AI, LlamaIndex) for detailed profiles.
82
+
83
+ ### Anthropic Agent Developer Kit (ADK)
84
+ **Best for:** Production Claude applications
85
+ **Strengths:** TypeScript with type safety, built-in context management, comprehensive error handling, delegated workflows
86
+ **Weaknesses:** Claude-only, TypeScript/Node only, smaller community
87
+ **When to choose:** Building on Claude exclusively, TypeScript/Node stack, need production-ready patterns
88
+
89
+ ### LangGraph
90
+ **Best for:** Complex stateful workflows
91
+ **Strengths:** State machine abstraction, built-in checkpointing, human-in-the-loop support, time-travel debugging
92
+ **Weaknesses:** Steeper learning curve, can be overkill, more boilerplate
93
+ **When to choose:** Complex workflows with branches/loops, need state persistence, want human approval gates
94
+
95
+ ### CrewAI
96
+ **Best for:** Role-based agent teams
97
+ **Strengths:** Intuitive role/task abstraction, simple API, good for hierarchical teams
98
+ **Weaknesses:** Less mature, limited state management, fewer production features
99
+ **When to choose:** Team-based workflows, quick prototyping, straightforward delegation
100
+
101
+ ### AutoGen
102
+ **Best for:** Multi-agent conversations
103
+ **Strengths:** Flexible conversation patterns, group chat capabilities, human-in-the-loop
104
+ **Weaknesses:** Can be verbose, conversation management complexity
105
+ **When to choose:** Agents need to debate/collaborate, conversational workflows
106
+
107
+ ### Pydantic AI
108
+ **Best for:** Type-safe Python agents
109
+ **Strengths:** Type safety via Pydantic, simple clean API, dependency injection, multi-provider
110
+ **Weaknesses:** New/less mature, smaller ecosystem, limited orchestration patterns
111
+ **When to choose:** Want type safety, simple agent use cases, already using Pydantic
112
+
113
+ ### LlamaIndex Agents
114
+ **Best for:** RAG-heavy applications
115
+ **Strengths:** Excellent retrieval capabilities, query planning, tool use with data
116
+ **Weaknesses:** Best for RAG use cases, heavier framework
117
+ **When to choose:** Heavy RAG requirements, complex data retrieval, query planning needs
118
+
119
+ ## Decision Tree
120
+
121
+ ```
122
+ Start: What's your primary use case?
123
+
124
+ ├─ Complex stateful workflow with branches/loops
125
+ │ └─ Use: LangGraph
126
+
127
+ ├─ Role-based team of agents
128
+ │ └─ Use: CrewAI or ADK
129
+
130
+ ├─ RAG-heavy application
131
+ │ └─ Use: LlamaIndex Agents
132
+
133
+ ├─ Multi-agent conversations/debates
134
+ │ └─ Use: AutoGen
135
+
136
+ ├─ Simple sequential workflow
137
+ │ ├─ TypeScript?
138
+ │ │ └─ Use: ADK
139
+ │ └─ Python?
140
+ │ └─ Use: Pydantic AI or LangChain
141
+
142
+ ├─ Production pipeline
143
+ │ └─ Use: Haystack or ADK
144
+
145
+ └─ Maximum flexibility
146
+ └─ Build from scratch or use LangGraph
147
+ ```
148
+
149
+ ## Language Considerations
150
+
151
+ **Python Frameworks:** LangChain, LangGraph, CrewAI, AutoGen, Pydantic AI, LlamaIndex
152
+ - Largest ecosystem, most tutorials/examples, best for data science/ML integration
153
+
154
+ **TypeScript Frameworks:** Anthropic ADK
155
+ - Better type safety, Node.js ecosystem, good for web applications
156
+
157
+ **C# Frameworks:** Semantic Kernel
158
+ - Microsoft ecosystem, .NET integration
159
+
160
+ ## Multi-Provider vs Single-Provider
161
+
162
+ **Multi-Provider (LLM-agnostic):** LangChain, LangGraph, CrewAI, AutoGen, Pydantic AI
163
+ - Can switch between OpenAI, Anthropic, etc.
164
+ - More flexibility but may not leverage provider-specific features
165
+
166
+ **Single-Provider (Optimized):** ADK (Claude), OpenAI Agents SDK (OpenAI)
167
+ - Better integration with specific provider
168
+ - Access to provider-specific features but less flexibility
169
+
170
+ ## Production Readiness
171
+
172
+ **Most Production-Ready:** Anthropic ADK, LangGraph, Haystack, LlamaIndex
173
+
174
+ **Good for Production:** CrewAI, LangChain, AutoGen
175
+
176
+ **Early/Experimental:** Pydantic AI, OpenAI Agents SDK, Agency Swarm
177
+
178
+ ## When NOT to Use a Framework
179
+
180
+ Build from scratch if: very simple use case, specific requirements unmet, want maximum control, or learning exercise. Framework overhead not worth it for single LLM calls, static prompts, or no agent behavior.
181
+
182
+ ## Quick Recommendations
183
+
184
+ **Just getting started:** CrewAI or Pydantic AI | **State management:** LangGraph | **TypeScript:** ADK | **RAG:** LlamaIndex | **Team-based:** CrewAI or ADK | **Max flexibility:** LangGraph | **Production Claude:** ADK
185
+
186
+ ## References
187
+
188
+ - `refs/framework-profiles-1.md` - ADK, LangGraph, CrewAI detailed profiles
189
+ - `refs/framework-profiles-2.md` - AutoGen, Pydantic AI, LlamaIndex profiles + comparison matrix
190
+ - `refs/migration-patterns-paths.md` - Common migration paths between frameworks
191
+ - `refs/migration-patterns-testing.md` - Migration testing, rollback, and effort estimates