adaptive-memory-multi-model-router 2.14.46 → 2.14.47

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 (598) hide show
  1. package/{docs/llms.txt → llms.txt.bak} +6 -6
  2. package/package.json +13 -84
  3. package/src/routing/advancedRouter.ts.bak +650 -0
  4. package/test.js.bak +376 -0
  5. package/.dockerignore +0 -82
  6. package/.env.example +0 -303
  7. package/.github/DISCUSSIONS_WELCOME.md +0 -27
  8. package/.github/DISCUSSION_TEMPLATE.yml +0 -5
  9. package/.github/FUNDING.yml +0 -2
  10. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -94
  11. package/.github/ISSUE_TEMPLATE/config.yml +0 -17
  12. package/.github/ISSUE_TEMPLATE/feature_request.md +0 -71
  13. package/.github/PULL_REQUEST_TEMPLATE.md +0 -71
  14. package/.github/dependabot.yml +0 -9
  15. package/.github/workflows/auto-publish.yml +0 -51
  16. package/.github/workflows/ci.yml +0 -263
  17. package/.github/workflows/codeql.yml +0 -38
  18. package/.github/workflows/npm-publish.yml +0 -20
  19. package/.github/workflows/pages.yml +0 -37
  20. package/.github/workflows/stale.yml +0 -54
  21. package/.publish-tick +0 -1
  22. package/.well-known/ai-plugin.json +0 -16
  23. package/AGENT_COUNCIL_FINDINGS.md +0 -142
  24. package/ARCHITECTURE.md +0 -346
  25. package/AUDIT_REPORT.md +0 -28
  26. package/CODE_OF_CONDUCT.md +0 -128
  27. package/CONTRIBUTING.md +0 -50
  28. package/CONTRIBUTORS.md +0 -20
  29. package/Dockerfile +0 -53
  30. package/Dockerfile.proxy +0 -33
  31. package/HEALTH_REPORT.md +0 -118
  32. package/IMPROVEMENT_PLAN.md +0 -107
  33. package/LANDING.md +0 -43
  34. package/LAUNCH-PAIN-DRIVEN.md +0 -339
  35. package/LAUNCH.md +0 -337
  36. package/LAUNCH_CHECKLIST.md +0 -141
  37. package/LAUNCH_SNAPSHOT.md +0 -260
  38. package/MANIFESTO.md +0 -41
  39. package/POPULARITY_BOOSTERS.md +0 -285
  40. package/PR_STATUS_REPORT.md +0 -148
  41. package/REDESIGN.md +0 -95
  42. package/RUNKIT.md +0 -83
  43. package/SECURITY.md +0 -29
  44. package/SUBMISSIONS.md +0 -43
  45. package/_schema.html +0 -53
  46. package/ai-plugin.json +0 -16
  47. package/articles/AI_AGENT_LLM_ROUTING.md +0 -150
  48. package/articles/CHINESE_DIRECTORIES.md +0 -100
  49. package/articles/CHINESE_SUBMISSIONS_READY.md +0 -322
  50. package/articles/COMPETITOR_ALERTS.md +0 -31
  51. package/articles/COMPLETE_POSTING_DIRECTORY.md +0 -147
  52. package/articles/CONTENT_STRUCTURE.md +0 -292
  53. package/articles/DEVTO_COST_GUIDE.md +0 -473
  54. package/articles/DEVTO_FINAL.md +0 -416
  55. package/articles/DEVTO_MULTI_PROVIDER.md +0 -542
  56. package/articles/DEVTO_READY.md +0 -255
  57. package/articles/DEVTO_V2_ANNOUNCEMENT.md +0 -160
  58. package/articles/DEVTO_VIRAL_GROWTH.md +0 -280
  59. package/articles/FRESH_devto.md +0 -460
  60. package/articles/FRESH_devto_2026_05.md +0 -73
  61. package/articles/FRESH_hackernews.md +0 -14
  62. package/articles/FRESH_reddit_ml.md +0 -90
  63. package/articles/FRESH_reddit_node.md +0 -198
  64. package/articles/FRESH_reddit_sideproject.md +0 -72
  65. package/articles/FRESH_reddit_webdev.md +0 -130
  66. package/articles/FROM_ZERO_TO_10K.md +0 -107
  67. package/articles/HN_10X_BETTER.md +0 -430
  68. package/articles/HN_ACCOUNT_GUIDE.md +0 -21
  69. package/articles/HN_CHINESE_STYLE.md +0 -308
  70. package/articles/HN_FINAL.md +0 -148
  71. package/articles/HN_POSTED_VERSION.md +0 -56
  72. package/articles/HN_POST_READY.md +0 -137
  73. package/articles/HN_RESEARCH.md +0 -364
  74. package/articles/HN_SHOW_routerarena.md +0 -17
  75. package/articles/HN_TIMING_GUIDE.md +0 -52
  76. package/articles/INDIEHACKERS_POST.md +0 -52
  77. package/articles/INDIEHACKERS_READY.md +0 -120
  78. package/articles/LLM_BENCHMARK_DEEP_DIVE.md +0 -153
  79. package/articles/MASTER_POSTING_DIRECTORY.md +0 -189
  80. package/articles/NEWSLETTER_SEND_NOW.md +0 -259
  81. package/articles/NEWSLETTER_SUBMISSIONS.md +0 -112
  82. package/articles/PAIN-DRIVEN-devto-v2.md +0 -308
  83. package/articles/PAIN-DRIVEN-devto-v3.md +0 -268
  84. package/articles/PAIN-DRIVEN-devto.md +0 -242
  85. package/articles/PAIN-DRIVEN-hackernews-v2.md +0 -138
  86. package/articles/PAIN-DRIVEN-hackernews-v3.md +0 -151
  87. package/articles/PAIN-DRIVEN-hackernews.md +0 -131
  88. package/articles/PAIN-DRIVEN-reddit-v2.md +0 -301
  89. package/articles/PAIN-DRIVEN-reddit-v3.md +0 -236
  90. package/articles/PAIN-DRIVEN-reddit.md +0 -218
  91. package/articles/PAIN-DRIVEN-twitter-v2.md +0 -110
  92. package/articles/PAIN-DRIVEN-twitter-v3.md +0 -121
  93. package/articles/PAIN-DRIVEN-twitter.md +0 -120
  94. package/articles/PORTKEY_VS_A3M.md +0 -147
  95. package/articles/POSTING_KIT_2026_05.md +0 -67
  96. package/articles/PRESS_KIT_routerarena.md +0 -77
  97. package/articles/PRODUCTHUNT_LISTING.md +0 -48
  98. package/articles/PRODUCTHUNT_READY.md +0 -106
  99. package/articles/PR_PLAN_vault.md +0 -125
  100. package/articles/REDDIT_FINAL.md +0 -232
  101. package/articles/REDDIT_POST.md +0 -67
  102. package/articles/REDDIT_SUBMISSION_READY.md +0 -348
  103. package/articles/ROUTERARENA_LEADER.md +0 -45
  104. package/articles/SHOW_HN_FINAL.md +0 -29
  105. package/articles/TWEETS_10K_DOWNLOADS.md +0 -47
  106. package/articles/TWEETS_BENCHMARK_FIRST.md +0 -46
  107. package/articles/TWEETS_MCP_PLAY.md +0 -51
  108. package/articles/TWEETS_SEQUENTIAL_BROKEN.md +0 -49
  109. package/articles/TWEETS_WHY_BUILD.md +0 -54
  110. package/articles/TWEETS_routerarena_leader.md +0 -53
  111. package/articles/TWEET_STORM_READY.md +0 -165
  112. package/articles/TWITTER_FINAL.md +0 -167
  113. package/articles/WHY_10X_BETTER.md +0 -261
  114. package/articles/WHY_CHINESE_STYLE_BETTER.md +0 -323
  115. package/articles/ai-discoverability-llm-routing.md +0 -210
  116. package/articles/devto-llm-routing.md +0 -138
  117. package/articles/hackernews-show-hn.md +0 -54
  118. package/articles/hashnode-llm-cost-optimization.md +0 -125
  119. package/articles/hn_show_2026_05.md +0 -11
  120. package/articles/medium-building-llm-router.md +0 -205
  121. package/articles/reddit-ml.md +0 -76
  122. package/articles/twitter-thread-cost-savings.md +0 -50
  123. package/articles/youtube-tutorial-script.md +0 -262
  124. package/assets/a3m_3blue1brown.mp4 +0 -0
  125. package/assets/banner.svg +0 -109
  126. package/assets/chart-cost-v2.svg +0 -91
  127. package/assets/chart-cost-v3.svg +0 -143
  128. package/assets/chart-features-v2.svg +0 -132
  129. package/assets/chart-features-v3.svg +0 -211
  130. package/assets/chart-growth-v2.svg +0 -122
  131. package/assets/chart-growth-v3.svg +0 -189
  132. package/assets/cost-comparison.svg +0 -134
  133. package/assets/cost-simple.svg +0 -64
  134. package/assets/demo-hn.gif +0 -0
  135. package/assets/feature-matrix.svg +0 -136
  136. package/assets/growth-chart-animated.svg +0 -76
  137. package/assets/growth-chart.svg +0 -82
  138. package/assets/growth-simple.svg +0 -69
  139. package/assets/hero-diagram.svg +0 -81
  140. package/assets/logo-new.svg +0 -21
  141. package/assets/logo.svg +0 -68
  142. package/assets/provider-comparison.svg +0 -121
  143. package/assets/social-preview-new.svg +0 -100
  144. package/assets/social-preview.svg +0 -194
  145. package/assets/social-v2.svg +0 -130
  146. package/assets/social-v3.svg +0 -212
  147. package/benchmark-provider-results.json +0 -245
  148. package/benchmark-results.json +0 -54
  149. package/council-votes/architecture-vote.md +0 -121
  150. package/council-votes/coverage-vote.md +0 -93
  151. package/data/adaptive-benchmark.json +0 -92
  152. package/data/benchmark-results.json +0 -47
  153. package/data/labeled-benchmark.json +0 -88
  154. package/demo/3blue1brown_video.py +0 -285
  155. package/demo/3blue1brown_video_v2.py +0 -310
  156. package/demo/IMPROVED_PROMPTS.md +0 -229
  157. package/demo/VEO3_PROMPTS.md +0 -269
  158. package/demo/VIDEO_PRODUCTION_GUIDE.md +0 -333
  159. package/demo/a3m_3blue1brown.mp4 +0 -0
  160. package/demo/asciinema-demo.sh +0 -195
  161. package/demo/demo-hn.tape +0 -74
  162. package/demo/demo-script.md +0 -53
  163. package/demo/demo-script.sh +0 -62
  164. package/demo/demo.svg +0 -75
  165. package/demo/frame1_ai_data_center.png +0 -0
  166. package/demo/frame1_sunset_video.mp4 +0 -0
  167. package/demo/frame2_cost_comparison.png +0 -0
  168. package/demo/frame2_cost_comparison_fallback.png +0 -0
  169. package/demo/frame3_parallel_execution.png +0 -0
  170. package/demo/frame3_parallel_execution_fallback.png +0 -0
  171. package/demo/frame4_providers.png +0 -0
  172. package/demo/frame4_providers_fallback.png +0 -0
  173. package/demo/frame5_endcard.png +0 -0
  174. package/demo/frame5_endcard_fallback.png +0 -0
  175. package/demo/new_frame1_hook.png +0 -0
  176. package/demo/new_frame2_proof.png +0 -0
  177. package/demo/new_frame3_wow.png +0 -0
  178. package/demo/new_frame4_social.png +0 -0
  179. package/demo/new_frame5_cta.png +0 -0
  180. package/demo/package.json +0 -13
  181. package/demo/product-video-final.mp4 +0 -0
  182. package/demo/product-video-hype-v1.mp4 +0 -0
  183. package/demo/product-video-v1.mp4 +0 -0
  184. package/demo/public/index.html +0 -762
  185. package/demo/recording.cast +0 -55
  186. package/demo/server.js +0 -405
  187. package/demo-new.tape +0 -71
  188. package/demo-real.sh +0 -198
  189. package/demo-simple.tape +0 -205
  190. package/demo.html +0 -520
  191. package/demo.sh +0 -85
  192. package/demo.tape +0 -259
  193. package/dist/analytics/costAnalytics.d.ts.map +0 -1
  194. package/dist/analytics/costAnalytics.js.map +0 -1
  195. package/dist/benchmark/comprehensive.js.map +0 -1
  196. package/dist/benchmark/reproducible.d.ts.map +0 -1
  197. package/dist/benchmark/reproducible.js.map +0 -1
  198. package/dist/cache/prefixCache.d.ts.map +0 -1
  199. package/dist/cache/prefixCache.js.map +0 -1
  200. package/dist/cache/responseCache.d.ts.map +0 -1
  201. package/dist/cache/responseCache.js.map +0 -1
  202. package/dist/cache/semanticCache.d.ts.map +0 -1
  203. package/dist/cache/semanticCache.js.map +0 -1
  204. package/dist/cli/setupWizard.d.ts.map +0 -1
  205. package/dist/cli/setupWizard.js.map +0 -1
  206. package/dist/cost/budgetEnforcer.d.ts.map +0 -1
  207. package/dist/cost/budgetEnforcer.js.map +0 -1
  208. package/dist/cost/costTracker.d.ts.map +0 -1
  209. package/dist/cost/costTracker.js.map +0 -1
  210. package/dist/ensemble/multiRoundDialog.js.map +0 -1
  211. package/dist/ensemble/shapleyValue.js.map +0 -1
  212. package/dist/integrations/langchainAdapter.d.ts.map +0 -1
  213. package/dist/integrations/langchainAdapter.js.map +0 -1
  214. package/dist/integrations/oauth.d.ts.map +0 -1
  215. package/dist/integrations/oauth.js.map +0 -1
  216. package/dist/integrations/scienceAdapter.js.map +0 -1
  217. package/dist/memory/autoFetch.d.ts.map +0 -1
  218. package/dist/memory/autoFetch.js.map +0 -1
  219. package/dist/memory/episodicMemory.d.ts.map +0 -1
  220. package/dist/memory/episodicMemory.js.map +0 -1
  221. package/dist/memory/hybridMemory.js.map +0 -1
  222. package/dist/memory/memoryTree.d.ts.map +0 -1
  223. package/dist/memory/memoryTree.js.map +0 -1
  224. package/dist/memory/obsidianVault.d.ts.map +0 -1
  225. package/dist/memory/obsidianVault.js.map +0 -1
  226. package/dist/memory/reasoningBank.js.map +0 -1
  227. package/dist/observability/changeWatch.d.ts.map +0 -1
  228. package/dist/observability/changeWatch.js.map +0 -1
  229. package/dist/observability/fatigueDetector.d.ts.map +0 -1
  230. package/dist/observability/fatigueDetector.js.map +0 -1
  231. package/dist/observability/index.d.ts.map +0 -1
  232. package/dist/observability/index.js.map +0 -1
  233. package/dist/observability/metrics.d.ts.map +0 -1
  234. package/dist/observability/metrics.js.map +0 -1
  235. package/dist/observability/middleware.d.ts.map +0 -1
  236. package/dist/observability/middleware.js.map +0 -1
  237. package/dist/observability/tracer.d.ts.map +0 -1
  238. package/dist/observability/tracer.js.map +0 -1
  239. package/dist/observability/types.d.ts.map +0 -1
  240. package/dist/observability/types.js.map +0 -1
  241. package/dist/orchestration/haloOrchestrator.d.ts.map +0 -1
  242. package/dist/orchestration/haloOrchestrator.js.map +0 -1
  243. package/dist/orchestration/mctsWorkflow.d.ts.map +0 -1
  244. package/dist/orchestration/mctsWorkflow.js.map +0 -1
  245. package/dist/providers/localProvider.d.ts.map +0 -1
  246. package/dist/providers/localProvider.js.map +0 -1
  247. package/dist/providers/providerConfig.d.ts.map +0 -1
  248. package/dist/providers/providerConfig.js.map +0 -1
  249. package/dist/providers/registry.d.ts.map +0 -1
  250. package/dist/providers/registry.js.map +0 -1
  251. package/dist/routing/advancedRouter.d.ts.map +0 -1
  252. package/dist/routing/advancedRouter.js.map +0 -1
  253. package/dist/routing/crossModelValidation.d.ts.map +0 -1
  254. package/dist/routing/crossModelValidation.js.map +0 -1
  255. package/dist/routing/providerHealth.d.ts.map +0 -1
  256. package/dist/routing/providerHealth.js.map +0 -1
  257. package/dist/routing/providerRetry.d.ts.map +0 -1
  258. package/dist/routing/providerRetry.js.map +0 -1
  259. package/dist/scripts/banner.js +0 -29
  260. package/dist/security/guardrails.d.ts.map +0 -1
  261. package/dist/security/guardrails.js.map +0 -1
  262. package/dist/server/dashboard.d.ts.map +0 -1
  263. package/dist/server/dashboard.js.map +0 -1
  264. package/dist/server/modelMapper.d.ts.map +0 -1
  265. package/dist/server/modelMapper.js.map +0 -1
  266. package/dist/server/proxyServer.d.ts.map +0 -1
  267. package/dist/server/proxyServer.js.map +0 -1
  268. package/dist/skills/__tests__/skill_manager.test.d.ts +0 -2
  269. package/dist/skills/__tests__/skill_manager.test.d.ts.map +0 -1
  270. package/dist/skills/__tests__/skill_manager.test.js +0 -268
  271. package/dist/skills/__tests__/skill_manager.test.js.map +0 -1
  272. package/dist/tools/tmlpdTools.d.ts.map +0 -1
  273. package/dist/tools/tmlpdTools.js.map +0 -1
  274. package/dist/tui/dashboard.d.ts.map +0 -1
  275. package/dist/tui/dashboard.js.map +0 -1
  276. package/dist/tui/index.d.ts.map +0 -1
  277. package/dist/tui/index.js.map +0 -1
  278. package/dist/utils/batchProcessor.d.ts.map +0 -1
  279. package/dist/utils/batchProcessor.js.map +0 -1
  280. package/dist/utils/compression.d.ts.map +0 -1
  281. package/dist/utils/compression.js.map +0 -1
  282. package/dist/utils/costUtils.d.ts.map +0 -1
  283. package/dist/utils/costUtils.js.map +0 -1
  284. package/dist/utils/reliability.d.ts.map +0 -1
  285. package/dist/utils/reliability.js.map +0 -1
  286. package/dist/utils/sorting.d.ts.map +0 -1
  287. package/dist/utils/sorting.js.map +0 -1
  288. package/dist/utils/speculativeDecoding.d.ts.map +0 -1
  289. package/dist/utils/speculativeDecoding.js.map +0 -1
  290. package/dist/utils/tokenUtils.d.ts.map +0 -1
  291. package/dist/utils/tokenUtils.js.map +0 -1
  292. package/docs/.nojekyll +0 -0
  293. package/docs/ANALYSIS_PRINCIPLES.md +0 -162
  294. package/docs/API.md +0 -855
  295. package/docs/ARCHITECTURAL-IMPROVEMENTS-2025.md +0 -1391
  296. package/docs/ARCHITECTURAL-IMPROVEMENTS-REVISED-2025.md +0 -1051
  297. package/docs/BENCHMARK.md +0 -170
  298. package/docs/CHINESE_PROVIDER_RELIABILITY.md +0 -37
  299. package/docs/CITATIONS.md +0 -74
  300. package/docs/CLAIMS_AND_EVIDENCE.md +0 -58
  301. package/docs/CONFIGURATION.md +0 -476
  302. package/docs/COUNCIL_DECISION.json +0 -816
  303. package/docs/COUNCIL_SUMMARY.md +0 -319
  304. package/docs/COUNCIL_V2.2_DECISION.md +0 -416
  305. package/docs/ENGINEERING_SPEC.md +0 -55
  306. package/docs/FACTORY_RESET.md +0 -34
  307. package/docs/GEO.md +0 -66
  308. package/docs/GEO_OPTIMIZATION.md +0 -30
  309. package/docs/GEO_ROOT_CAUSE.md +0 -136
  310. package/docs/GEO_STATUS.md +0 -85
  311. package/docs/GEO_TEST_RESULTS.md +0 -176
  312. package/docs/HN_CHECKLIST.md +0 -38
  313. package/docs/HN_FOUNDER_COMMENT.md +0 -17
  314. package/docs/HN_SUBMISSION_FINAL.md +0 -180
  315. package/docs/HN_SUBMISSION_V3.md +0 -56
  316. package/docs/IMPROVEMENT_ROADMAP.md +0 -515
  317. package/docs/INTEGRATIONS.md +0 -420
  318. package/docs/LANGCHAIN_INTEGRATION.md +0 -147
  319. package/docs/LLM_COUNCIL_DECISION.md +0 -508
  320. package/docs/MIDDLEWARE_CHAIN.md +0 -35
  321. package/docs/PROMO_CHECKLIST.md +0 -200
  322. package/docs/QUICKSTART.md +0 -271
  323. package/docs/QUICK_START.md +0 -43
  324. package/docs/QUICK_START_VISIBILITY.md +0 -782
  325. package/docs/REDDIT_GAP_ANALYSIS.md +0 -299
  326. package/docs/RELEASE_CHECKLIST.md +0 -32
  327. package/docs/REPRODUCIBILITY.md +0 -63
  328. package/docs/RESEARCH_BACKED_IMPROVEMENTS.md +0 -1180
  329. package/docs/ROUTING_RUBRIC.md +0 -197
  330. package/docs/SEO_AUDIT.md +0 -186
  331. package/docs/SOCIAL_LISTENING.md +0 -219
  332. package/docs/TMLPD_QNA.md +0 -751
  333. package/docs/TMLPD_V2.1_COMPLETE.md +0 -763
  334. package/docs/TMLPD_V2.2_RESEARCH_ROADMAP.md +0 -754
  335. package/docs/UPDATE_TOPICS.md +0 -15
  336. package/docs/USE_CASES.md +0 -59
  337. package/docs/V2.2_IMPLEMENTATION_COMPLETE.md +0 -446
  338. package/docs/V2_IMPLEMENTATION_GUIDE.md +0 -388
  339. package/docs/VERCEL_AI_SDK.md +0 -209
  340. package/docs/VISIBILITY_ADOPTION_PLAN.md +0 -1005
  341. package/docs/_config.yml +0 -49
  342. package/docs/ai-plugin.json +0 -16
  343. package/docs/api.html +0 -513
  344. package/docs/architecture-diagram.md +0 -40
  345. package/docs/benchmark-chart.png +0 -0
  346. package/docs/benchmark.html +0 -387
  347. package/docs/blog/routerarena-number-one.html +0 -73
  348. package/docs/cli-cheatsheet.md +0 -339
  349. package/docs/compare.md +0 -109
  350. package/docs/comparison-litellm.md +0 -88
  351. package/docs/comparison.md +0 -108
  352. package/docs/cost-chart-ascii.md +0 -42
  353. package/docs/cost-comparison-chart.svg +0 -88
  354. package/docs/curl-examples.md +0 -247
  355. package/docs/demo-auto.html +0 -264
  356. package/docs/demo.html +0 -416
  357. package/docs/geo/GENERATIVE_ENGINE_OPTIMIZATION.md +0 -232
  358. package/docs/index.html +0 -507
  359. package/docs/launch-content/LAUNCH_EXECUTION_CHECKLIST.md +0 -421
  360. package/docs/launch-content/README.md +0 -457
  361. package/docs/launch-content/assets/cost_comparison_100_tasks.png +0 -0
  362. package/docs/launch-content/assets/cumulative_savings.png +0 -0
  363. package/docs/launch-content/assets/parallel_speedup.png +0 -0
  364. package/docs/launch-content/assets/provider_pricing_comparison.png +0 -0
  365. package/docs/launch-content/assets/task_breakdown_comparison.png +0 -0
  366. package/docs/launch-content/generate_charts.py +0 -313
  367. package/docs/launch-content/hn_show_post.md +0 -139
  368. package/docs/launch-content/partner_outreach_templates.md +0 -745
  369. package/docs/launch-content/reddit_posts.md +0 -467
  370. package/docs/launch-content/twitter_thread.txt +0 -460
  371. package/docs/npm-downloads-chart.svg +0 -43
  372. package/docs/openapi.json +0 -139
  373. package/docs/openapi.yaml +0 -1318
  374. package/docs/quick-start.html +0 -366
  375. package/docs/robots.txt +0 -52
  376. package/docs/sitemap.xml +0 -57
  377. package/docs/styles.css +0 -682
  378. package/docs/well-known/ai-plugin.json +0 -16
  379. package/docs/wellknown/ai-plugin.json +0 -16
  380. package/docs-site/assets/og-banner.svg +0 -194
  381. package/docs-site/index.html +0 -632
  382. package/eval/README.md +0 -46
  383. package/eval/baselines/main.json +0 -12
  384. package/eval/benchmark_dataset.jsonl +0 -16
  385. package/eval/check_golden_routes.js +0 -64
  386. package/eval/datasets/catalog.json +0 -33
  387. package/eval/datasets/slices/cn_provider_reliability_v1.jsonl +0 -3
  388. package/eval/datasets/slices/cost_pressure_v1.jsonl +0 -3
  389. package/eval/datasets/slices/safety_guardrails_v1.jsonl +0 -3
  390. package/eval/evals.json +0 -199
  391. package/eval/fault_injection_thresholds.json +0 -3
  392. package/eval/generate_report.js +0 -128
  393. package/eval/golden_routes.json +0 -114
  394. package/eval/lib/experiment_registry.js +0 -24
  395. package/eval/run_eval.js +0 -197
  396. package/eval/run_fault_injection.js +0 -201
  397. package/eval/run_shadow_eval.js +0 -85
  398. package/eval/thresholds.json +0 -9
  399. package/examples/QUICKSTART.md +0 -183
  400. package/examples/README.md +0 -61
  401. package/examples/a3m-sdk.js +0 -124
  402. package/examples/basic-route.js +0 -54
  403. package/examples/chat-loop.js +0 -202
  404. package/examples/classify-then-route.js +0 -102
  405. package/examples/cost-compare.js +0 -120
  406. package/examples/ensemble.js +0 -160
  407. package/examples/whatsapp-telegram-bridge-demo.js +0 -302
  408. package/examples/whatsapp-telegram-bridge.js +0 -269
  409. package/hf-space/README.md +0 -23
  410. package/hf-space/app.py +0 -240
  411. package/hf-space/requirements.txt +0 -1
  412. package/huggingface_space/README.md +0 -35
  413. package/huggingface_space/app.py +0 -126
  414. package/huggingface_space/create_space.py +0 -208
  415. package/huggingface_space/requirements.txt +0 -1
  416. package/mcp-server/README.md +0 -188
  417. package/mcp-server/package.json +0 -29
  418. package/mcp-server/src/index.ts +0 -744
  419. package/mcp-server/tsconfig.json +0 -19
  420. package/openclaw-alexa-bridge/ALL_REMAINING_FIXES_PLAN.md +0 -313
  421. package/openclaw-alexa-bridge/REMAINING_FIXES_SUMMARY.md +0 -277
  422. package/openclaw-alexa-bridge/src/alexa_handler_no_tmlpd.js +0 -1234
  423. package/openclaw-alexa-bridge/test_fixes.js +0 -77
  424. package/playground/README.md +0 -51
  425. package/playground/codesandbox.json +0 -12
  426. package/playground/index.js +0 -39
  427. package/proxy/README.md +0 -227
  428. package/proxy/package-lock.json +0 -831
  429. package/proxy/package.json +0 -17
  430. package/proxy/rate-limit.js +0 -145
  431. package/proxy/rate-limit.test.js +0 -311
  432. package/proxy/server.js +0 -970
  433. package/python/README.md +0 -102
  434. package/python/a3m/__init__.py +0 -6
  435. package/python/a3m/client.py +0 -190
  436. package/python/a3m/models.py +0 -40
  437. package/python/a3m/sync_client.py +0 -61
  438. package/python/examples.py +0 -53
  439. package/python/integrations.py +0 -330
  440. package/python/pyproject.toml +0 -23
  441. package/python/setup.py +0 -28
  442. package/python/tmlpd.py +0 -369
  443. package/qna/REDDIT_GAP_ANALYSIS.md +0 -299
  444. package/qna/TMLPD_QNA.md +0 -751
  445. package/research/FINDING_001_safety.md +0 -28
  446. package/research/FINDING_002_error_diversity.md +0 -32
  447. package/research/FINDING_003_confidence_weighted_voting.md +0 -32
  448. package/research/FINDING_004_cross_model_semantic_detection.md +0 -37
  449. package/research/FINDING_005_knowledge_gap_orthogonality.md +0 -34
  450. package/research/HALLUCINATION_RESEARCH.md +0 -27
  451. package/research/ensemble-voting.md +0 -324
  452. package/research/loss-functions.md +0 -545
  453. package/research-log.md +0 -49
  454. package/scripts/banner.js +0 -29
  455. package/scripts/benchmark-local-routerarena.ts +0 -176
  456. package/scripts/benchmark.js +0 -145
  457. package/scripts/benchmark.sh +0 -61
  458. package/scripts/compare-providers.sh +0 -230
  459. package/scripts/content-planner.js +0 -25
  460. package/scripts/create-labeled-benchmark.ts +0 -105
  461. package/scripts/cross_post.py +0 -443
  462. package/scripts/local-router-benchmark.ts +0 -154
  463. package/scripts/post-all.sh +0 -41
  464. package/scripts/publish_fcc.py +0 -106
  465. package/scripts/push-to-gitee.sh +0 -25
  466. package/scripts/routerarena_ensemble.js +0 -144
  467. package/scripts/routing-benchmark-v2.js +0 -373
  468. package/scripts/routing-benchmark-v3.js +0 -118
  469. package/scripts/routing-benchmark.js +0 -462
  470. package/scripts/run-labeled-benchmark.mjs +0 -104
  471. package/scripts/run-mmlu-benchmark.js +0 -176
  472. package/scripts/run-provider-benchmark.js +0 -244
  473. package/scripts/update-npm-badges.js +0 -158
  474. package/skill/SKILL.md +0 -238
  475. package/src/__tests__/integration/tmpld_integration.test.py +0 -540
  476. package/src/skills/__tests__/skill_manager.test.ts +0 -328
  477. package/submissions/benchmarks/ALL_PLATFORMS_SUBMISSION.md +0 -94
  478. package/submissions/benchmarks/LLMROUTERBENCH_SUBMISSION.md +0 -121
  479. package/submissions/benchmarks/MMRBENCH_SUBMISSION.md +0 -94
  480. package/submissions/benchmarks/ROUTERARENA_UPDATE.md +0 -83
  481. package/submissions/benchmarks/ROUTERBENCH_SUBMISSION.md +0 -225
  482. package/test-council/1-structure-tests.test.js +0 -353
  483. package/test-council/1-structure-tests.test.ts +0 -353
  484. package/test-council/2-edge-case-tests.test.ts +0 -361
  485. package/test-council/3-performance-tests.test.ts +0 -669
  486. package/test-council/4-integration-tests.test.ts +0 -391
  487. package/test-council/5-agent-council-eval.test.ts +0 -413
  488. package/test-council/AGENT_COUNCIL_ARCHITECTURE.md +0 -349
  489. package/test-council/TEST_COUNCIL_REPORT.md +0 -201
  490. package/test-council/agents/edge-case-agent.ts +0 -363
  491. package/test-council/agents/performance-agent.ts +0 -426
  492. package/test-council/agents/structure-agent.ts +0 -227
  493. package/test-council/council.md +0 -183
  494. package/tests/__mocks__/tokenUtils.ts +0 -8
  495. package/tests/memory/episodicMemory.test.ts +0 -227
  496. package/tests/package-lock.json +0 -1628
  497. package/tests/package.json +0 -18
  498. package/tests/routing/ensembleVoting.test.ts +0 -236
  499. package/tests/routing/providerRetry.test.ts +0 -360
  500. package/tests/routing/queryTypePresets.test.ts +0 -208
  501. package/tests/security/guardrailEngine.test.ts +0 -700
  502. package/tests/tsconfig.json +0 -21
  503. package/tests/vitest.config.ts +0 -18
  504. package/tmlpd-pi-extension/README.md +0 -66
  505. package/tmlpd-pi-extension/dist/cache/prefixCache.d.ts +0 -114
  506. package/tmlpd-pi-extension/dist/cache/prefixCache.d.ts.map +0 -1
  507. package/tmlpd-pi-extension/dist/cache/prefixCache.js +0 -285
  508. package/tmlpd-pi-extension/dist/cache/prefixCache.js.map +0 -1
  509. package/tmlpd-pi-extension/dist/cache/responseCache.d.ts +0 -58
  510. package/tmlpd-pi-extension/dist/cache/responseCache.d.ts.map +0 -1
  511. package/tmlpd-pi-extension/dist/cache/responseCache.js +0 -153
  512. package/tmlpd-pi-extension/dist/cache/responseCache.js.map +0 -1
  513. package/tmlpd-pi-extension/dist/cli.js +0 -59
  514. package/tmlpd-pi-extension/dist/cost/costTracker.d.ts +0 -95
  515. package/tmlpd-pi-extension/dist/cost/costTracker.d.ts.map +0 -1
  516. package/tmlpd-pi-extension/dist/cost/costTracker.js +0 -240
  517. package/tmlpd-pi-extension/dist/cost/costTracker.js.map +0 -1
  518. package/tmlpd-pi-extension/dist/index.d.ts +0 -723
  519. package/tmlpd-pi-extension/dist/index.d.ts.map +0 -1
  520. package/tmlpd-pi-extension/dist/index.js +0 -239
  521. package/tmlpd-pi-extension/dist/index.js.map +0 -1
  522. package/tmlpd-pi-extension/dist/memory/episodicMemory.d.ts +0 -82
  523. package/tmlpd-pi-extension/dist/memory/episodicMemory.d.ts.map +0 -1
  524. package/tmlpd-pi-extension/dist/memory/episodicMemory.js +0 -145
  525. package/tmlpd-pi-extension/dist/memory/episodicMemory.js.map +0 -1
  526. package/tmlpd-pi-extension/dist/orchestration/haloOrchestrator.d.ts +0 -102
  527. package/tmlpd-pi-extension/dist/orchestration/haloOrchestrator.d.ts.map +0 -1
  528. package/tmlpd-pi-extension/dist/orchestration/haloOrchestrator.js +0 -207
  529. package/tmlpd-pi-extension/dist/orchestration/haloOrchestrator.js.map +0 -1
  530. package/tmlpd-pi-extension/dist/orchestration/mctsWorkflow.d.ts +0 -85
  531. package/tmlpd-pi-extension/dist/orchestration/mctsWorkflow.d.ts.map +0 -1
  532. package/tmlpd-pi-extension/dist/orchestration/mctsWorkflow.js +0 -210
  533. package/tmlpd-pi-extension/dist/orchestration/mctsWorkflow.js.map +0 -1
  534. package/tmlpd-pi-extension/dist/providers/localProvider.d.ts +0 -102
  535. package/tmlpd-pi-extension/dist/providers/localProvider.d.ts.map +0 -1
  536. package/tmlpd-pi-extension/dist/providers/localProvider.js +0 -338
  537. package/tmlpd-pi-extension/dist/providers/localProvider.js.map +0 -1
  538. package/tmlpd-pi-extension/dist/providers/registry.d.ts +0 -55
  539. package/tmlpd-pi-extension/dist/providers/registry.d.ts.map +0 -1
  540. package/tmlpd-pi-extension/dist/providers/registry.js +0 -138
  541. package/tmlpd-pi-extension/dist/providers/registry.js.map +0 -1
  542. package/tmlpd-pi-extension/dist/routing/advancedRouter.d.ts +0 -68
  543. package/tmlpd-pi-extension/dist/routing/advancedRouter.d.ts.map +0 -1
  544. package/tmlpd-pi-extension/dist/routing/advancedRouter.js +0 -332
  545. package/tmlpd-pi-extension/dist/routing/advancedRouter.js.map +0 -1
  546. package/tmlpd-pi-extension/dist/tools/tmlpdTools.d.ts +0 -101
  547. package/tmlpd-pi-extension/dist/tools/tmlpdTools.d.ts.map +0 -1
  548. package/tmlpd-pi-extension/dist/tools/tmlpdTools.js +0 -368
  549. package/tmlpd-pi-extension/dist/tools/tmlpdTools.js.map +0 -1
  550. package/tmlpd-pi-extension/dist/utils/batchProcessor.d.ts +0 -96
  551. package/tmlpd-pi-extension/dist/utils/batchProcessor.d.ts.map +0 -1
  552. package/tmlpd-pi-extension/dist/utils/batchProcessor.js +0 -170
  553. package/tmlpd-pi-extension/dist/utils/batchProcessor.js.map +0 -1
  554. package/tmlpd-pi-extension/dist/utils/compression.d.ts +0 -61
  555. package/tmlpd-pi-extension/dist/utils/compression.d.ts.map +0 -1
  556. package/tmlpd-pi-extension/dist/utils/compression.js +0 -281
  557. package/tmlpd-pi-extension/dist/utils/compression.js.map +0 -1
  558. package/tmlpd-pi-extension/dist/utils/reliability.d.ts +0 -74
  559. package/tmlpd-pi-extension/dist/utils/reliability.d.ts.map +0 -1
  560. package/tmlpd-pi-extension/dist/utils/reliability.js +0 -177
  561. package/tmlpd-pi-extension/dist/utils/reliability.js.map +0 -1
  562. package/tmlpd-pi-extension/dist/utils/speculativeDecoding.d.ts +0 -117
  563. package/tmlpd-pi-extension/dist/utils/speculativeDecoding.d.ts.map +0 -1
  564. package/tmlpd-pi-extension/dist/utils/speculativeDecoding.js +0 -246
  565. package/tmlpd-pi-extension/dist/utils/speculativeDecoding.js.map +0 -1
  566. package/tmlpd-pi-extension/dist/utils/tokenUtils.d.ts +0 -50
  567. package/tmlpd-pi-extension/dist/utils/tokenUtils.d.ts.map +0 -1
  568. package/tmlpd-pi-extension/dist/utils/tokenUtils.js +0 -124
  569. package/tmlpd-pi-extension/dist/utils/tokenUtils.js.map +0 -1
  570. package/tmlpd-pi-extension/examples/QUICKSTART.md +0 -183
  571. package/tmlpd-pi-extension/package-lock.json +0 -79
  572. package/tmlpd-pi-extension/package.json +0 -172
  573. package/tmlpd-pi-extension/python/examples.py +0 -53
  574. package/tmlpd-pi-extension/python/integrations.py +0 -330
  575. package/tmlpd-pi-extension/python/setup.py +0 -28
  576. package/tmlpd-pi-extension/python/tmlpd.py +0 -369
  577. package/tmlpd-pi-extension/qna/REDDIT_GAP_ANALYSIS.md +0 -299
  578. package/tmlpd-pi-extension/qna/TMLPD_QNA.md +0 -751
  579. package/tmlpd-pi-extension/skill/SKILL.md +0 -238
  580. package/tmlpd-pi-extension/src/cache/responseCache.ts +0 -147
  581. package/tmlpd-pi-extension/src/cost/costTracker.ts +0 -302
  582. package/tmlpd-pi-extension/src/index.ts +0 -232
  583. package/tmlpd-pi-extension/src/memory/episodicMemory.ts +0 -257
  584. package/tmlpd-pi-extension/src/orchestration/haloOrchestrator.ts +0 -266
  585. package/tmlpd-pi-extension/src/orchestration/mctsWorkflow.ts +0 -262
  586. package/tmlpd-pi-extension/src/providers/localProvider.ts +0 -406
  587. package/tmlpd-pi-extension/src/providers/registry.ts +0 -164
  588. package/tmlpd-pi-extension/src/routing/ensembleVoting.ts +0 -159
  589. package/tmlpd-pi-extension/src/routing/queryTypePresets.ts +0 -136
  590. package/tmlpd-pi-extension/src/tools/tmlpdTools.ts +0 -433
  591. package/tmlpd-pi-extension/src/utils/batchProcessor.ts +0 -232
  592. package/tmlpd-pi-extension/src/utils/compression.ts +0 -325
  593. package/tmlpd-pi-extension/src/utils/reliability.ts +0 -221
  594. package/tmlpd-pi-extension/src/utils/tokenUtils.ts +0 -145
  595. package/tmlpd-pi-extension/tsconfig.json +0 -18
  596. package/tsconfig.build.json +0 -29
  597. package/tsconfig.json +0 -18
  598. /package/{docs/llms-full.txt → llms-full.txt.bak} +0 -0
@@ -1,1051 +0,0 @@
1
- # TMLPD v2.0: Revised Architecture Based on Anthropic's Latest Research
2
- ## Aligned with AI Engineer Summit 2025 Insights
3
-
4
- **Document Version:** 2.0 (Revised)
5
- **Last Updated:** January 2025
6
- **Based On:** Anthropic's "Building Effective Agents" & "Agent Skills" (Dec 2024)
7
-
8
- ---
9
-
10
- ## ⚠️ MAJOR PARADIGM SHIFT
11
-
12
- After reviewing Anthropic's latest research from the AI Engineer Summit 2025, **the original architectural plan needs significant revision**.
13
-
14
- ### Key Insight from Barry Zhang (Anthropic):
15
-
16
- > **"Don't Build Agents, Build Skills Instead"**
17
- >
18
- > Stop building "omnipotent agents" for every niche. Focus on building **modular, composable Skills** that can be mixed and matched.
19
-
20
- **Sources:**
21
- - [Building Effective Agents - Anthropic](https://www.anthropic.com/research/building-effective-agents) (Dec 19, 2024)
22
- - [Agent Skills - Anthropic Engineering](https://www.anthropic.com/engineering/equipping-agents-for-the-real-world-with-agent-skills) (Dec 18, 2024)
23
- - [How We Build Effective Agents: Barry Zhang](https://www.youtube.com/watch?v=D7_ipDqhtwk) (AI Engineer Summit 2025)
24
- - [LinkedIn Discussion: Skills vs Agents](https://www.linkedin.com/posts/barry-z_building-effective-agents-activity-7275576927984267264-Tpms)
25
-
26
- ---
27
-
28
- ## Part 1: What Anthropic Actually Says
29
-
30
- ### The Core Message: **Simplicity Over Complexity**
31
-
32
- ```
33
- ┌─────────────────────────────────────────────────────────────┐
34
- │ │
35
- │ OLD THINKING (Complex) NEW THINKING (Simple) │
36
- │ │
37
- │ ❌ Build complex agent networks ✅ Start with simple │
38
- │ ❌ Multi-agent orchestration ✅ Single LLM call │
39
- │ ❌ Elaborate memory systems ✅ Workflows for │
40
- │ ❌ Cross-agent communication ✅ predictable tasks │
41
- │ ❌ Framework-heavy ✅ Agents only when │
42
- │ ✅ necessary │
43
- │ │
44
- └─────────────────────────────────────────────────────────────┘
45
- ```
46
-
47
- ### Anthropic's Decision Tree
48
-
49
- ```
50
- Should I build an agentic system?
51
-
52
-
53
- Can a single optimized LLM call solve it?
54
-
55
- ├── YES → Use single LLM call ✅ (80% of cases)
56
-
57
- └── NO → Is the task predictable?
58
-
59
- ├── YES → Use WORKFLOW ✅ (15% of cases)
60
- │ • Chaining
61
- │ • Routing
62
- │ • Parallelization
63
- │ • Orchestrator-Workers
64
- │ • Evaluator-Optimizer
65
-
66
- └── NO → Use AGENT ⚠️ (5% of cases)
67
- • Only when unpredictable
68
- • When LLM needs autonomy
69
- • Open-ended problems
70
- ```
71
-
72
- ### Statistics from Anthropic's Research
73
-
74
- **Most successful implementations:**
75
- - 80%: Single LLM call with retrieval
76
- - 15%: Simple workflows (chaining, routing)
77
- - 4%: Orchestrator-workers
78
- - 1%: True autonomous agents
79
-
80
- **Key Finding:** Complex multi-agent systems were rarely the best solution.
81
-
82
- ---
83
-
84
- ## Part 2: Revised TMLPD Architecture
85
-
86
- ### Original Plan (Over-engineered)
87
-
88
- ❌ **What I originally proposed:**
89
- 1. Complex memory hierarchy (3 tiers)
90
- 2. Agentic RAG with multi-step retrieval
91
- 3. Cross-agent communication protocols
92
- 4. Elaborate state management
93
- 5. Multi-agent coordination frameworks
94
-
95
- **Problem:** This violates Anthropic's core principle of simplicity.
96
-
97
- ### Revised Plan (Aligned with Anthropic)
98
-
99
- ✅ **What TMLPD v2.0 should actually be:**
100
-
101
- **Instead of "Multi-Agent Orchestration" → Focus on "Workflow Optimization"**
102
-
103
- ```
104
- TMLPD v2.0 = Skills + Workflows (NOT complex agents)
105
- ```
106
-
107
- ---
108
-
109
- ## Part 3: Agent Skills Integration (Highest Priority)
110
-
111
- ### What Are Agent Skills?
112
-
113
- From Anthropic's definition:
114
- > "Agent Skills are organized folders of instructions, scripts, and resources that agents can discover and load dynamically to perform better at specific tasks."
115
-
116
- **Key Concept:** Progressive Disclosure
117
- ```
118
- Level 1: Metadata (name, description)
119
-
120
- Level 2: SKILL.md (main instructions)
121
-
122
- Level 3: Additional files (details as needed)
123
- ```
124
-
125
- ### Example Skill Structure
126
-
127
- ```
128
- tmlpd-skills/
129
- ├── frontend/
130
- │ ├── SKILL.md
131
- │ ├── react-best-practices.md
132
- │ ├── component-templates.md
133
- │ └── scripts/
134
- │ └── generate-component.py
135
- ├── backend/
136
- │ ├── SKILL.md
137
- │ ├── api-patterns.md
138
- │ └── testing-guidelines.md
139
- └── testing/
140
- ├── SKILL.md
141
- ├── jest-patterns.md
142
- └── test-templates.md
143
- ```
144
-
145
- ### SKILL.md Format
146
-
147
- ```yaml
148
- ---
149
- name: "React Frontend Development"
150
- description: "Best practices for building React components with TypeScript, testing, and state management"
151
- ---
152
-
153
- # React Frontend Skill
154
-
155
- ## Core Principles
156
-
157
- 1. **Type Safety**: Always use TypeScript with strict mode
158
- 2. **Component Design**: Favor composition over inheritance
159
- 3. **State Management**: Use Zustand for local state, Redux for global
160
-
161
- ## Common Patterns
162
-
163
- ### Component Structure
164
-
165
- See `react-best-practices.md` for detailed component architecture.
166
-
167
- ### Testing
168
-
169
- Always write tests before implementation (TDD approach).
170
-
171
- ## Scripts
172
-
173
- Use `scripts/generate-component.py` to scaffold new components with:
174
- - TypeScript types
175
- - Jest test file
176
- - Storybook story
177
- - CSS modules
178
-
179
- ## When to Use This Skill
180
-
181
- Trigger this skill when:
182
- - Building React components
183
- - Implementing UI features
184
- - Creating frontend layouts
185
- - Writing frontend tests
186
- ```
187
-
188
- ### Implementation
189
-
190
- ```python
191
- # File: src/skills/skill_manager.py
192
-
193
- from pathlib import Path
194
- import yaml
195
- from typing import Dict, List, Optional
196
- from dataclasses import dataclass
197
-
198
- @dataclass
199
- class Skill:
200
- """Represents an Agent Skill"""
201
- name: str
202
- description: str
203
- directory: Path
204
- metadata: Dict[str, str]
205
- content: Optional[str] = None
206
-
207
- class SkillManager:
208
- """
209
- Manages Agent Skills following Anthropic's specification.
210
- Implements progressive disclosure.
211
- """
212
-
213
- def __init__(self, skills_dir: str = "tmlpd-skills"):
214
- self.skills_dir = Path(skills_dir)
215
- self.skills: Dict[str, Skill] = {}
216
- self._load_skills_metadata()
217
-
218
- def _load_skills_metadata(self):
219
- """
220
- Load Level 1: Metadata only (name, description)
221
- This is loaded into system prompt at startup
222
- """
223
-
224
- if not self.skills_dir.exists():
225
- return
226
-
227
- for skill_dir in self.skills_dir.iterdir():
228
- if not skill_dir.is_dir():
229
- continue
230
-
231
- skill_md = skill_dir / "SKILL.md"
232
-
233
- if not skill_md.exists():
234
- continue
235
-
236
- # Parse YAML frontmatter
237
- with open(skill_md, "r") as f:
238
- content = f.read()
239
-
240
- # Extract YAML frontmatter
241
- if content.startswith("---"):
242
- _, frontmatter, _ = content.split("---", 2)
243
- metadata = yaml.safe_load(frontmatter)
244
- else:
245
- continue
246
-
247
- self.skills[metadata["name"]] = Skill(
248
- name=metadata["name"],
249
- description=metadata["description"],
250
- directory=skill_dir,
251
- metadata=metadata
252
- )
253
-
254
- def list_skills(self) -> List[str]:
255
- """List all available skills (Level 1 metadata)"""
256
- return list(self.skills.keys())
257
-
258
- def get_relevant_skills(self, task: str, top_k: int = 3) -> List[str]:
259
- """
260
- Find relevant skills based on task description.
261
- Uses simple keyword matching (can upgrade to semantic search later).
262
- """
263
-
264
- task_lower = task.lower()
265
- relevant = []
266
-
267
- for skill_name, skill in self.skills.items():
268
- # Check if task keywords match skill description
269
- skill_desc_lower = skill.description.lower()
270
-
271
- # Simple keyword matching
272
- common_words = set(task_lower.split()) & set(skill_desc_lower.split())
273
-
274
- if common_words:
275
- relevance = len(common_words)
276
- relevant.append((skill_name, relevance))
277
-
278
- # Sort by relevance and return top_k
279
- relevant.sort(key=lambda x: x[1], reverse=True)
280
- return [skill_name for skill_name, _ in relevant[:top_k]]
281
-
282
- def load_skill(self, skill_name: str) -> Skill:
283
- """
284
- Load Level 2: Full SKILL.md content
285
- Called only when skill is relevant to current task
286
- """
287
-
288
- if skill_name not in self.skills:
289
- raise ValueError(f"Skill {skill_name} not found")
290
-
291
- skill = self.skills[skill_name]
292
- skill_md = skill.directory / "SKILL.md"
293
-
294
- with open(skill_md, "r") as f:
295
- # Skip YAML frontmatter, get content
296
- content = f.read()
297
- if "---" in content:
298
- _, _, content = content.split("---", 2)
299
-
300
- skill.content = content.strip()
301
- return skill
302
-
303
- def load_additional_file(self, skill_name: str, filename: str) -> str:
304
- """
305
- Load Level 3: Additional files from skill
306
- Progressive disclosure - load only when needed
307
- """
308
-
309
- if skill_name not in self.skills:
310
- raise ValueError(f"Skill {skill_name} not found")
311
-
312
- skill = self.skills[skill_name]
313
- additional_file = skill.directory / filename
314
-
315
- if not additional_file.exists():
316
- raise FileNotFoundError(f"File {filename} not found in skill {skill_name}")
317
-
318
- with open(additional_file, "r") as f:
319
- return f.read()
320
-
321
- # Usage Example
322
- class TMLEnhancedAgent:
323
- """Agent with Skill capabilities"""
324
-
325
- def __init__(self):
326
- self.skill_manager = SkillManager()
327
-
328
- def execute_task(self, task: str) -> str:
329
- """Execute task using relevant skills"""
330
-
331
- # Step 1: Find relevant skills
332
- relevant_skills = self.skill_manager.get_relevant_skills(task)
333
-
334
- # Step 2: Build context from skills
335
- context_parts = []
336
-
337
- for skill_name in relevant_skills:
338
- skill = self.skill_manager.load_skill(skill_name)
339
- context_parts.append(f"## {skill.name}\n{skill.content}")
340
-
341
- # Step 3: Combine with task
342
- full_context = "\n\n".join(context_parts)
343
- prompt = f"""
344
- Task: {task}
345
-
346
- Relevant Skills:
347
- {full_context}
348
-
349
- Please complete the task following the guidance from the relevant skills.
350
- """
351
-
352
- # Step 4: Execute LLM call
353
- return self._llm_call(prompt)
354
- ```
355
-
356
- ---
357
-
358
- ## Part 4: Workflow Patterns (Instead of Complex Agents)
359
-
360
- ### Pattern 1: Parallelization (What TMLPD Already Does!)
361
-
362
- ```python
363
- # This IS the right approach! ✅
364
-
365
- class ParallelWorkflow:
366
- """
367
- Anthropic's "Parallelization: Sectioning" pattern
368
- This is exactly what TMLPD v1.0 does!
369
- """
370
-
371
- def execute(self, tasks: List[Dict]) -> Dict[str, Any]:
372
- """
373
- Break task into independent subtasks, run in parallel.
374
- This is a WORKFLOW, not a complex agent system.
375
- """
376
-
377
- # This is simple, predictable, and effective
378
- with ThreadPoolExecutor() as executor:
379
- futures = {
380
- executor.submit(self._execute_single_task, task): task
381
- for task in tasks
382
- }
383
-
384
- results = {}
385
- for future in as_completed(futures):
386
- task = futures[future]
387
- try:
388
- results[task["id"]] = future.result()
389
- except Exception as e:
390
- results[task["id"]] = {"error": str(e)}
391
-
392
- return results
393
- ```
394
-
395
- **This is GOOD!** TMLPD v1.0 already follows Anthropic's recommendation.
396
-
397
- ### Pattern 2: Routing (Add to TMLPD v2.0)
398
-
399
- ```python
400
- # File: src/workflows/router.py
401
-
402
- class TaskRouter:
403
- """
404
- Anthropic's "Routing" workflow.
405
- Classify tasks and route to specialized handlers.
406
- """
407
-
408
- def __init__(self):
409
- self.routes = {
410
- "frontend": FrontendSkill(),
411
- "backend": BackendSkill(),
412
- "testing": TestingSkill(),
413
- "documentation": DocumentationSkill()
414
- }
415
-
416
- def route_and_execute(self, task: str) -> str:
417
- """
418
- Step 1: Classify task type
419
- Step 2: Route to appropriate skill
420
- Step 3: Execute with specialized context
421
- """
422
-
423
- # Simple classification (can use LLM)
424
- task_type = self._classify_task(task)
425
-
426
- # Get relevant skill
427
- skill = self.routes[task_type]
428
-
429
- # Load skill context
430
- skill_context = skill.load_full_context()
431
-
432
- # Execute with skill
433
- return skill.execute_with_context(task, skill_context)
434
-
435
- def _classify_task(self, task: str) -> str:
436
- """Classify task into frontend/backend/testing/docs"""
437
-
438
- task_lower = task.lower()
439
-
440
- if any(word in task_lower for word in ["ui", "component", "frontend", "react", "vue"]):
441
- return "frontend"
442
- elif any(word in task_lower for word in ["api", "endpoint", "backend", "server", "database"]):
443
- return "backend"
444
- elif any(word in task_lower for word in ["test", "spec", "coverage", "jest"]):
445
- return "testing"
446
- elif any(word in task_lower for word in ["doc", "readme", "guide", "tutorial"]):
447
- return "documentation"
448
- else:
449
- return "frontend" # default
450
- ```
451
-
452
- ### Pattern 3: Orchestrator-Workers (For Complex Tasks)
453
-
454
- ```python
455
- # File: src/workflows/orchestrator.py
456
-
457
- class OrchestratorWorkflow:
458
- """
459
- Anthropic's "Orchestrator-Workers" pattern.
460
- For complex tasks where subtasks aren't predictable.
461
-
462
- NOTE: Only use this for truly complex, unpredictable tasks!
463
- """
464
-
465
- def __init__(self, skill_manager: SkillManager):
466
- self.skill_manager = skill_manager
467
-
468
- def execute(self, complex_task: str) -> str:
469
- """
470
- Step 1: Orchestrator breaks down task into subtasks
471
- Step 2: Delegate to workers with relevant skills
472
- Step 3: Synthesize results
473
- """
474
-
475
- # Step 1: Break down task (LLM-driven)
476
- subtasks = self._breakdown_task(complex_task)
477
-
478
- # Step 2: Assign skills and execute
479
- results = []
480
- for subtask in subtasks:
481
- # Find relevant skill
482
- relevant_skill = self.skill_manager.get_relevant_skills(
483
- subtask["description"],
484
- top_k=1
485
- )[0]
486
-
487
- # Load skill
488
- skill = self.skill_manager.load_skill(relevant_skill)
489
-
490
- # Execute with skill context
491
- result = self._execute_with_skill(subtask, skill)
492
- results.append(result)
493
-
494
- # Step 3: Synthesize
495
- return self._synthesize_results(complex_task, results)
496
-
497
- def _breakdown_task(self, task: str) -> List[Dict]:
498
- """Use LLM to break task into subtasks"""
499
-
500
- prompt = f"""
501
- Break down the following task into subtasks:
502
- {task}
503
-
504
- Return as JSON list:
505
- [
506
- {{"description": "...", "type": "frontend/backend/testing/docs"}},
507
- ...
508
- ]
509
- """
510
-
511
- response = self._llm_call(prompt)
512
- return json.loads(response)
513
-
514
- def _execute_with_skill(self, subtask: Dict, skill: Skill) -> str:
515
- """Execute subtask with skill context"""
516
-
517
- prompt = f"""
518
- Subtask: {subtask['description']}
519
-
520
- Skill Context:
521
- {skill.content}
522
-
523
- Complete the subtask following the skill's guidance.
524
- """
525
-
526
- return self._llm_call(prompt)
527
-
528
- def _synthesize_results(self, original_task: str, results: List[str]) -> str:
529
- """Synthesize worker results into final output"""
530
-
531
- prompt = f"""
532
- Original Task: {original_task}
533
-
534
- Worker Results:
535
- {json.dumps(results, indent=2)}
536
-
537
- Synthesize these results into a coherent response.
538
- """
539
-
540
- return self._llm_call(prompt)
541
- ```
542
-
543
- ---
544
-
545
- ## Part 5: Simplified Memory (If Needed)
546
-
547
- ### Do You Really Need Persistent Memory?
548
-
549
- **Anthropic's guidance:** Probably not for most use cases.
550
-
551
- **When you DO need memory:**
552
- - Long-running projects
553
- - Multi-session work
554
- - Learning from patterns
555
-
556
- ### Simple Memory Approach (Not Complex Hierarchy)
557
-
558
- ```python
559
- # File: src/memory/simple_memory.py
560
-
561
- class SimpleProjectMemory:
562
- """
563
- Simplified memory system aligned with Anthropic's principles.
564
- No complex hierarchies - just project-level context.
565
- """
566
-
567
- def __init__(self, project_dir: str):
568
- self.project_dir = Path(project_dir)
569
- self.memory_file = self.project_dir / ".tmlpd-memory.json"
570
-
571
- self.memory = self._load_memory()
572
-
573
- def _load_memory(self) -> Dict:
574
- """Load project memory"""
575
-
576
- if not self.memory_file.exists():
577
- return {
578
- "project_context": "",
579
- "successful_patterns": [],
580
- "common_issues": [],
581
- "decisions": []
582
- }
583
-
584
- with open(self.memory_file, "r") as f:
585
- return json.load(f)
586
-
587
- def save_memory(self):
588
- """Save project memory"""
589
-
590
- with open(self.memory_file, "w") as f:
591
- json.dump(self.memory, f, indent=2)
592
-
593
- def remember_success(self, pattern: str, context: str):
594
- """Remember a successful pattern"""
595
-
596
- self.memory["successful_patterns"].append({
597
- "pattern": pattern,
598
- "context": context,
599
- "timestamp": datetime.now().isoformat()
600
- })
601
-
602
- self.save_memory()
603
-
604
- def recall_similar(self, current_task: str) -> List[Dict]:
605
- """Recall similar successful patterns"""
606
-
607
- # Simple keyword matching (can upgrade to semantic search)
608
- current_lower = current_task.lower()
609
- similar = []
610
-
611
- for pattern in self.memory["successful_patterns"]:
612
- pattern_lower = pattern["pattern"].lower()
613
-
614
- # Check for keyword overlap
615
- if any(word in pattern_lower for word in current_lower.split()):
616
- similar.append(pattern)
617
-
618
- return similar[:5] # Return top 5
619
-
620
- def get_context_string(self) -> str:
621
- """Get context for LLM prompt"""
622
-
623
- parts = []
624
-
625
- if self.memory["project_context"]:
626
- parts.append(f"## Project Context\n{self.memory['project_context']}")
627
-
628
- if self.memory["successful_patterns"]:
629
- parts.append("## Successful Patterns")
630
- for pattern in self.memory["successful_patterns"][-5:]:
631
- parts.append(f"- {pattern['pattern']}")
632
-
633
- return "\n\n".join(parts)
634
- ```
635
-
636
- **This is SIMPLE** - just a JSON file with project learning. No vector databases, no complex hierarchies.
637
-
638
- ---
639
-
640
- ## Part 6: Enhanced Checkpointing (Simplified)
641
-
642
- ### From LangGraph-Inspired to Simpler Approach
643
-
644
- ```python
645
- # File: src/state/simple_checkpoint.py
646
-
647
- class SimpleCheckpoint:
648
- """
649
- Simplified checkpointing following Anthropic's principles.
650
- No complex versioning - just save state for recovery.
651
- """
652
-
653
- def __init__(self, project_dir: str):
654
- self.checkpoint_dir = Path(project_dir) / ".tmlpd-checkpoints"
655
- self.checkpoint_dir.mkdir(exist_ok=True)
656
-
657
- def save_checkpoint(self, task_id: str, state: Dict):
658
- """Save task state"""
659
-
660
- checkpoint_file = self.checkpoint_dir / f"{task_id}.json"
661
-
662
- with open(checkpoint_file, "w") as f:
663
- json.dump({
664
- "task_id": task_id,
665
- "state": state,
666
- "timestamp": datetime.now().isoformat()
667
- }, f, indent=2)
668
-
669
- def load_checkpoint(self, task_id: str) -> Optional[Dict]:
670
- """Load task state"""
671
-
672
- checkpoint_file = self.checkpoint_dir / f"{task_id}.json"
673
-
674
- if not checkpoint_file.exists():
675
- return None
676
-
677
- with open(checkpoint_file, "r") as f:
678
- data = json.load(f)
679
- return data["state"]
680
-
681
- def list_checkpoints(self) -> List[str]:
682
- """List all available checkpoints"""
683
-
684
- return [
685
- f.stem for f in self.checkpoint_dir.glob("*.json")
686
- ]
687
- ```
688
-
689
- ---
690
-
691
- ## Part 7: Revised YAML Config
692
-
693
- ### TMLPD v2.0 Config (Skills-Based)
694
-
695
- ```yaml
696
- # tmlpd-v2.yml
697
-
698
- deployment:
699
- name: "Full-Stack Development with Skills"
700
-
701
- # v1.0: Still works
702
- agents:
703
- - id: "frontend"
704
- provider: "anthropic"
705
- model: "claude-sonnet-4"
706
- focus: "UI components"
707
-
708
- - id: "backend"
709
- provider: "openai"
710
- model: "gpt-4-turbo"
711
- focus: "API endpoints"
712
-
713
- # v2.0 NEW: Skills integration
714
- skills:
715
- enabled: true
716
- directory: "tmlpd-skills"
717
-
718
- # Auto-discover and load relevant skills
719
- auto_load: true
720
-
721
- # Progressive disclosure
722
- load_on_demand: true # Load SKILL.md only when relevant
723
-
724
- # Skills to use per agent
725
- agent_skills:
726
- frontend:
727
- - "React Frontend Development"
728
- - "TypeScript Best Practices"
729
- - "CSS-Styled Components"
730
-
731
- backend:
732
- - "Node.js API Development"
733
- - "Database Modeling"
734
- - "API Testing"
735
-
736
- testing:
737
- - "Jest Testing Framework"
738
- - "Test-Driven Development"
739
-
740
- # v2.0 NEW: Workflows (instead of complex orchestration)
741
- workflows:
742
- enabled: true
743
-
744
- # Routing workflow
745
- routing:
746
- enabled: true
747
- # Route tasks to appropriate agents based on type
748
-
749
- # Parallelization workflow (already in v1.0)
750
- parallelization:
751
- enabled: true
752
- max_parallel_tasks: 4
753
-
754
- # Orchestrator-workers (for complex tasks only)
755
- orchestrator:
756
- enabled: false # Only enable for truly complex tasks
757
- max_subtasks: 10
758
-
759
- # v2.0 NEW: Simple project memory (no complex hierarchy)
760
- memory:
761
- enabled: true
762
- type: "simple" # Options: "simple" | "none"
763
-
764
- storage:
765
- type: "file" # Options: "file" | "redis"
766
-
767
- retention:
768
- successful_patterns: 50 # Remember last 50 successful patterns
769
- decisions: 20 # Remember last 20 decisions
770
-
771
- # v2.0 NEW: Checkpointing (simplified)
772
- checkpointing:
773
- enabled: true
774
- interval_minutes: 10
775
- max_checkpoints: 5 # Keep last 5 checkpoints
776
- ```
777
-
778
- ---
779
-
780
- ## Part 8: Revised Implementation Roadmap
781
-
782
- ### Phase 1: Agent Skills (Weeks 1-4) ⭐ HIGHEST PRIORITY
783
-
784
- **Why:** This is Anthropic's #1 recommendation for 2025.
785
-
786
- - [ ] Implement `SkillManager` class
787
- - [ ] Create SKILL.md format specification
788
- - [ ] Build progressive disclosure system
789
- - [ ] Create sample skills (frontend, backend, testing)
790
- - [ ] Integrate with existing agents
791
- - [ ] Add skill discovery system
792
-
793
- **Deliverables:**
794
- - Working Skills framework
795
- - 5-10 example skills
796
- - Documentation on creating skills
797
- - Integration with YAML config
798
-
799
- ### Phase 2: Routing Workflow (Weeks 5-6)
800
-
801
- **Why:** Simple workflow for predictable task classification.
802
-
803
- - [ ] Implement `TaskRouter` class
804
- - [ ] Add task classification (LLM-based or keyword)
805
- - [ ] Route to relevant skills
806
- - [ ] Add fallback to default skill
807
- - [ ] Testing and validation
808
-
809
- **Deliverables:**
810
- - Working routing system
811
- - Improved task-accuracy routing
812
- - Performance benchmarks
813
-
814
- ### Phase 3: Simple Memory (Weeks 7-8)
815
-
816
- **Why:** Project-level learning without complexity.
817
-
818
- - [ ] Implement `SimpleProjectMemory` class
819
- - [ ] Add JSON-based storage
820
- - [ ] Remember successful patterns
821
- - [ ] Recall similar patterns
822
- - [ ] Integration with agents
823
-
824
- **Deliverables:**
825
- - Working memory system
826
- - Pattern learning from past executions
827
- - Documentation
828
-
829
- ### Phase 4: Enhanced Checkpointing (Weeks 9-10)
830
-
831
- **Why:** Better state management for reliability.
832
-
833
- - [ ] Implement `SimpleCheckpoint` class
834
- - [ ] Add JSON-based checkpoints
835
- - [ ] Automatic checkpoint saving
836
- - [ ] Recovery from checkpoints
837
- - [ ] Integration with existing system
838
-
839
- **Deliverables:**
840
- - Robust checkpointing
841
- - Recovery functionality
842
- - Testing
843
-
844
- ### Phase 5: Orchestrator-Workers (Weeks 11-12) - OPTIONAL
845
-
846
- **Why:** Only for truly complex, unpredictable tasks.
847
-
848
- - [ ] Implement `OrchestratorWorkflow` class
849
- - [ ] LLM-based task breakdown
850
- - [ ] Skill delegation
851
- - [ ] Result synthesis
852
- - [ ] Testing and validation
853
-
854
- **Deliverables:**
855
- - Working orchestrator system
856
- - Documentation on when to use
857
- - Performance benchmarks
858
-
859
- **Decision Criteria:**
860
- Only use orchestrator-workers if:
861
- - Tasks are highly unpredictable
862
- - Can't use parallelization (subtasks unknown)
863
- - Need dynamic task breakdown
864
- - Have budget for LLM costs
865
-
866
- ---
867
-
868
- ## Part 9: What NOT to Build (Important!)
869
-
870
- Based on Anthropic's research, **avoid building:**
871
-
872
- ❌ **Complex Memory Hierarchies**
873
- - Don't build 3-tier memory systems
874
- - Don't use vector databases for simple projects
875
- - Don't implement episodic memory unless necessary
876
- - **Reason:** Most projects don't need this complexity
877
-
878
- ❌ **Cross-Agent Communication Protocols**
879
- - Don't build message buses
880
- - Don't implement agent-to-agent messaging
881
- - Don't create shared memory spaces
882
- - **Reason:** Workflows + Skills are simpler and more effective
883
-
884
- ❌ **Agentic RAG (Multi-Step)**
885
- - Don't build multi-step retrieval loops
886
- - Don't implement query reformulation
887
- - Don't add sufficiency assessment
888
- - **Reason:** Single-shot RAG is sufficient for most cases
889
-
890
- ❌ **Complex State Management**
891
- - Don't build versioned state systems
892
- - Don't implement rollback capabilities
893
- - Don't create state diffing
894
- - **Reason:** Simple JSON checkpoints are enough
895
-
896
- ❌ **Multi-Agent Orchestration Frameworks**
897
- - Don't build frameworks for agent coordination
898
- - Don't implement agent discovery protocols
899
- - Don't create agent registries
900
- - **Reason:** Workflows are predictable, simpler, and more effective
901
-
902
- ---
903
-
904
- ## Part 10: Decision Framework
905
-
906
- ### When to Use What
907
-
908
- ```
909
- Task arrives
910
-
911
-
912
- Can single LLM call solve it?
913
-
914
- ├── YES → Use single LLM + Skills ✅
915
-
916
- └── NO → Are subtasks predictable?
917
-
918
- ├── YES → Use WORKFLOW ✅
919
- │ • Routing: Classify and route
920
- │ • Parallelization: Independent tasks
921
- │ • Chaining: Sequential steps
922
- │ • Orchestrator-Workers: Dynamic breakdown
923
-
924
- └── NO → Use simple AGENT ⚠️
925
- (Only 5% of cases)
926
- ```
927
-
928
- ### Examples
929
-
930
- **Single LLM + Skills:**
931
- - "Build a React login form" → Use React skill
932
- - "Write API tests" → Use Testing skill
933
- - "Create documentation" → Use Docs skill
934
-
935
- **Routing Workflow:**
936
- - "Fix bug in authentication" → Route to backend skill
937
- - "Add new UI feature" → Route to frontend skill
938
-
939
- **Parallelization Workflow:**
940
- - "Build CRUD app" → Frontend + Backend in parallel
941
- - "Test all components" → Test files in parallel
942
-
943
- **Orchestrator-Workers (Rare):**
944
- - "Refactor entire codebase" → Break down, delegate, synthesize
945
- - "Implement complex feature across 20 files" → Dynamic breakdown
946
-
947
- ---
948
-
949
- ## Part 11: Key Takeaways
950
-
951
- ### From Anthropic's Research:
952
-
953
- 1. **Simplicity > Complexity**
954
- - Start with single LLM call
955
- - Add workflows only when needed
956
- - Use agents as last resort
957
-
958
- 2. **Skills > Agents**
959
- - Build modular, composable skills
960
- - Use progressive disclosure
961
- - Share skills across projects
962
-
963
- 3. **Workflows > Orchestration**
964
- - Use predefined patterns
965
- - Keep it predictable
966
- - Test and iterate
967
-
968
- 4. **Transparency > Magic**
969
- - Show planning steps
970
- - Make decisions explicit
971
- - Debuggable system
972
-
973
- ### For TMLPD v2.0:
974
-
975
- **DO:**
976
- - ✅ Implement Agent Skills framework
977
- - ✅ Add routing workflow
978
- - ✅ Enhance parallelization workflow
979
- - ✅ Simple project memory
980
- - ✅ Better checkpointing
981
-
982
- **DON'T:**
983
- - ❌ Complex memory hierarchies
984
- - ❌ Cross-agent communication
985
- - ❌ Agentic RAG (multi-step)
986
- - ❌ Complex state management
987
- - ❌ Multi-agent orchestration
988
-
989
- ---
990
-
991
- ## Part 12: Research Sources
992
-
993
- ### Primary Sources (Anthropic):
994
-
995
- 1. **[Building Effective Agents](https://www.anthropic.com/research/building-effective-agents)** (Dec 19, 2024)
996
- - Erik Schluntz, Barry Zhang
997
- - Core principles: Simplicity, Transparency, ACI
998
-
999
- 2. **[Agent Skills](https://www.anthropic.com/engineering/equipping-agents-for-the-real-world-with-agent-skills)** (Dec 18, 2024)
1000
- - Barry Zhang, Keith Lazuka, Mahesh Murag
1001
- - Progressive disclosure, skill format
1002
-
1003
- 3. **[How We Build Effective Agents: Barry Zhang](https://www.youtube.com/watch?v=D7_ipDqhtwk)** (AI Engineer Summit 2025)
1004
- - "Don't build agents, build skills instead"
1005
-
1006
- 4. **[LinkedIn: Building Effective Agents](https://www.linkedin.com/posts/barry-z_building-effective-agents-activity-7275576927984267264-Tpms)**
1007
- - Discussion and insights
1008
-
1009
- ### Supporting Sources:
1010
-
1011
- 5. **[Architecting Multi-Agent Systems - Andrew Ng](https://www.youtube.com/watch?v=yi7doi-QGJI)** (Hypergrowth 2025)
1012
- - Multi-agent patterns
1013
-
1014
- 6. **[AI Engineer World's Fair 2025](https://www.youtube.com/playlist?list=PLcfpQ4tk2k0WzqWDdWkN2DnZOhtYI9jyI)**
1015
- - Latest agent engineering practices
1016
-
1017
- 7. **[LLM Agents in Production: Why Go](https://www.youtube.com/watch?v=3mvD_Ud7HLY)**
1018
- - Production considerations
1019
-
1020
- ---
1021
-
1022
- ## Conclusion
1023
-
1024
- The revised TMLPD v2.0 architecture:
1025
-
1026
- 1. **Focuses on Skills** (not complex agents)
1027
- 2. **Uses Workflows** (not orchestration frameworks)
1028
- 3. **Keeps it Simple** (following Anthropic's principles)
1029
- 4. **Adds Progressive Capability** (not premature complexity)
1030
-
1031
- **Expected Impact:**
1032
- - ✅ Faster implementation (simpler code)
1033
- - ✅ Easier debugging (predictable patterns)
1034
- - ✅ Better adoption (follows industry best practices)
1035
- - ✅ Lower costs (fewer LLM calls)
1036
- - ✅ More maintainable (less complexity)
1037
-
1038
- **Key Insight:**
1039
- > "Success isn't about building the most sophisticated system. It's about building the RIGHT system for your needs."
1040
- > — Anthropic, Dec 2024
1041
-
1042
- The "RIGHT" system for TMLPD is **Skills + Workflows**, not complex multi-agent orchestration.
1043
-
1044
- ---
1045
-
1046
- **Next Steps:**
1047
- 1. Review and validate this approach
1048
- 2. Begin Phase 1: Agent Skills implementation
1049
- 3. Create sample skills for common tasks
1050
- 4. Test with real projects
1051
- 5. Gather feedback and iterate