@monoes/monomindcli 2.16.2 → 2.16.3

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 (828) hide show
  1. package/.claude/agents/architecture/system-design/arch-system-design.md +4 -1
  2. package/.claude/agents/consensus/quorum-manager.md +3 -0
  3. package/.claude/agents/consensus/security-manager.md +4 -1
  4. package/.claude/agents/core/coder.md +4 -1
  5. package/.claude/agents/core/coordinator.md +3 -0
  6. package/.claude/agents/core/planner.md +4 -1
  7. package/.claude/agents/core/researcher.md +4 -1
  8. package/.claude/agents/core/reviewer.md +4 -1
  9. package/.claude/agents/core/tester.md +4 -1
  10. package/.claude/agents/design/design-monodesign.md +4 -1
  11. package/.claude/agents/engineering/engineering-ai-data-remediation-engineer.md +4 -1
  12. package/.claude/agents/engineering/engineering-ai-engineer.md +4 -1
  13. package/.claude/agents/engineering/engineering-autonomous-optimization-architect.md +3 -0
  14. package/.claude/agents/engineering/engineering-backend-architect.md +4 -1
  15. package/.claude/agents/engineering/engineering-code-reviewer.md +5 -0
  16. package/.claude/agents/engineering/engineering-data-engineer.md +4 -1
  17. package/.claude/agents/engineering/engineering-database-optimizer.md +4 -1
  18. package/.claude/agents/engineering/engineering-devops-automator.md +3 -0
  19. package/.claude/agents/engineering/engineering-embedded-firmware-engineer.md +3 -0
  20. package/.claude/agents/engineering/engineering-feishu-integration-developer.md +4 -1
  21. package/.claude/agents/engineering/engineering-frontend-developer.md +3 -0
  22. package/.claude/agents/engineering/engineering-git-workflow-master.md +4 -1
  23. package/.claude/agents/engineering/engineering-incident-response-commander.md +4 -1
  24. package/.claude/agents/engineering/engineering-mobile-app-builder.md +3 -0
  25. package/.claude/agents/engineering/engineering-rapid-prototyper.md +3 -0
  26. package/.claude/agents/engineering/engineering-security-engineer.md +4 -1
  27. package/.claude/agents/engineering/engineering-senior-developer.md +3 -0
  28. package/.claude/agents/engineering/engineering-software-architect.md +4 -1
  29. package/.claude/agents/engineering/engineering-solidity-smart-contract-engineer.md +4 -1
  30. package/.claude/agents/engineering/engineering-sre.md +3 -0
  31. package/.claude/agents/engineering/engineering-technical-writer.md +4 -1
  32. package/.claude/agents/engineering/engineering-threat-detection-engineer.md +4 -1
  33. package/.claude/agents/engineering/engineering-wechat-mini-program-developer.md +4 -1
  34. package/.claude/agents/github/github-modes.md +4 -2
  35. package/.claude/agents/github/issue-tracker.md +4 -2
  36. package/.claude/agents/github/monoswarm-code-review.md +4 -2
  37. package/.claude/agents/github/monoswarm-issue.md +5 -0
  38. package/.claude/agents/github/monoswarm-multi-repo.md +4 -1
  39. package/.claude/agents/github/monoswarm-pr.md +5 -0
  40. package/.claude/agents/github/pr-manager.md +4 -2
  41. package/.claude/agents/github/project-board-sync.md +4 -2
  42. package/.claude/agents/github/release-manager.md +4 -2
  43. package/.claude/agents/github/repo-architect.md +4 -2
  44. package/.claude/agents/github/sync-coordinator.md +4 -2
  45. package/.claude/agents/github/workflow-automation.md +4 -2
  46. package/.claude/agents/goal/goal-planner.md +16 -2
  47. package/.claude/agents/marketing/marketing-competitive-content.md +4 -1
  48. package/.claude/agents/marketing/marketing-cro-specialist.md +4 -1
  49. package/.claude/agents/marketing/marketing-email-specialist.md +4 -1
  50. package/.claude/agents/marketing/marketing-launch-strategist.md +4 -1
  51. package/.claude/agents/marketing/marketing-pricing-strategist.md +4 -1
  52. package/.claude/agents/monoswarm/collective-intelligence-coordinator.md +3 -0
  53. package/.claude/agents/monoswarm/mesh-coordinator.md +3 -0
  54. package/.claude/agents/monoswarm/monoswarm-memory-manager.md +4 -2
  55. package/.claude/agents/monoswarm/scout-explorer.md +4 -2
  56. package/.claude/agents/monoswarm/worker-specialist.md +3 -0
  57. package/.claude/agents/optimization/benchmark-suite.md +3 -0
  58. package/.claude/agents/optimization/load-balancer.md +3 -0
  59. package/.claude/agents/optimization/performance-monitor.md +3 -0
  60. package/.claude/agents/optimization/resource-allocator.md +3 -0
  61. package/.claude/agents/optimization/topology-optimizer.md +3 -0
  62. package/.claude/agents/specialists/integration-architect.md +4 -2
  63. package/.claude/agents/specialized/agentic-identity-trust.md +4 -1
  64. package/.claude/agents/specialized/agents-orchestrator.md +3 -0
  65. package/.claude/agents/specialized/automation-governance-architect.md +3 -0
  66. package/.claude/agents/specialized/blockchain-security-auditor.md +4 -1
  67. package/.claude/agents/specialized/compliance-auditor.md +4 -1
  68. package/.claude/agents/specialized/identity-graph-operator.md +4 -1
  69. package/.claude/agents/specialized/lsp-index-engineer.md +3 -0
  70. package/.claude/agents/specialized/mobile/spec-mobile-react-native.md +5 -0
  71. package/.claude/agents/specialized/specialized-cultural-intelligence-strategist.md +3 -0
  72. package/.claude/agents/specialized/specialized-developer-advocate.md +4 -1
  73. package/.claude/agents/specialized/specialized-document-generator.md +4 -1
  74. package/.claude/agents/specialized/specialized-mcp-builder.md +3 -0
  75. package/.claude/agents/specialized/specialized-model-qa.md +4 -1
  76. package/.claude/agents/specialized/specialized-workflow-architect.md +4 -1
  77. package/.claude/agents/specialized/zk-steward.md +4 -1
  78. package/.claude/agents/templates/automation-smart-agent.md +4 -1
  79. package/.claude/agents/templates/coordinator-monoswarm-init.md +4 -1
  80. package/.claude/agents/testing/production-validator.md +3 -0
  81. package/.claude/agents/testing/tdd-london-monoswarm.md +3 -0
  82. package/.claude/agents/testing/testing-accessibility-auditor.md +4 -1
  83. package/.claude/agents/testing/testing-api-tester.md +4 -1
  84. package/.claude/agents/testing/testing-evidence-collector.md +3 -0
  85. package/.claude/agents/testing/testing-performance-benchmarker.md +4 -1
  86. package/.claude/agents/testing/testing-test-results-analyzer.md +4 -1
  87. package/.claude/agents/testing/testing-tool-evaluator.md +4 -1
  88. package/.claude/agents/testing/testing-workflow-optimizer.md +4 -1
  89. package/.claude/commands/agents/agent-types.md +7 -5
  90. package/.claude/commands/mastermind/code-review.md +5 -5
  91. package/.claude/commands/mastermind/content.md +8 -2
  92. package/.claude/commands/mastermind/createtask.md +2 -2
  93. package/.claude/commands/mastermind/do.md +18 -36
  94. package/.claude/commands/mastermind/finance.md +8 -2
  95. package/.claude/commands/mastermind/ideate.md +4 -4
  96. package/.claude/commands/mastermind/improve.md +3 -3
  97. package/.claude/commands/mastermind/marketing.md +8 -2
  98. package/.claude/commands/mastermind/master.md +63 -45
  99. package/.claude/commands/mastermind/monoswarm.md +7 -5
  100. package/.claude/commands/mastermind/ops.md +8 -2
  101. package/.claude/commands/mastermind/sales.md +8 -2
  102. package/.claude/commands/mastermind.md +7 -7
  103. package/.claude/commands/monoswarm/analysis.md +1 -1
  104. package/.claude/commands/monoswarm/development.md +1 -1
  105. package/.claude/commands/monoswarm/maintenance.md +1 -1
  106. package/.claude/commands/monoswarm/optimization.md +2 -1
  107. package/.claude/commands/monoswarm/research.md +1 -1
  108. package/.claude/commands/monoswarm/testing.md +1 -1
  109. package/.claude/commands/pair/examples.md +3 -2
  110. package/.claude/commands/pair/modes.md +3 -3
  111. package/.claude/helpers/build-skill-registry.cjs +186 -26
  112. package/.claude/helpers/handlers/agent-start-handler.cjs +3 -0
  113. package/.claude/helpers/handlers/capture-handler.cjs +22 -14
  114. package/.claude/helpers/handlers/edit-handler.cjs +1 -1
  115. package/.claude/helpers/handlers/pick-core.cjs +445 -0
  116. package/.claude/helpers/handlers/route-handler.cjs +81 -180
  117. package/.claude/helpers/handlers/session-handler.cjs +44 -62
  118. package/.claude/helpers/handlers/session-restore-handler.cjs +5 -1
  119. package/.claude/helpers/handlers/task-handler.cjs +11 -6
  120. package/.claude/helpers/hook-handler.cjs +9 -2
  121. package/.claude/helpers/jev-catalog.cjs +225 -0
  122. package/.claude/helpers/jev-picker.cjs +36 -147
  123. package/.claude/helpers/org-skill-index.cjs +230 -0
  124. package/.claude/helpers/pick-rank.cjs +221 -0
  125. package/.claude/helpers/pick-stats.cjs +413 -0
  126. package/.claude/helpers/router.cjs +7 -379
  127. package/.claude/helpers/utils/monograph-resolve.cjs +12 -4
  128. package/.claude/settings.json +51 -41
  129. package/.claude/skills/hooks-automation/SKILL.md +4 -4
  130. package/.claude/skills/mastermind-access/SKILL.md +4 -3
  131. package/.claude/skills/mastermind-activity/SKILL.md +3 -2
  132. package/.claude/skills/mastermind-adapter-manager/SKILL.md +2 -1
  133. package/.claude/skills/mastermind-adapters/SKILL.md +2 -1
  134. package/.claude/skills/mastermind-agent-detail/SKILL.md +5 -4
  135. package/.claude/skills/mastermind-agent-select/SKILL.md +99 -100
  136. package/.claude/skills/mastermind-agents/SKILL.md +2 -1
  137. package/.claude/skills/mastermind-approval-detail/SKILL.md +2 -1
  138. package/.claude/skills/mastermind-backup/SKILL.md +2 -1
  139. package/.claude/skills/mastermind-bootstrap/SKILL.md +2 -2
  140. package/.claude/skills/mastermind-budgets/SKILL.md +4 -3
  141. package/.claude/skills/mastermind-createorg/SKILL.md +23 -5
  142. package/.claude/skills/mastermind-delegation/SKILL.md +11 -19
  143. package/.claude/skills/mastermind-diagnose/SKILL.md +3 -3
  144. package/.claude/skills/mastermind-env/SKILL.md +2 -1
  145. package/.claude/skills/mastermind-environments/SKILL.md +2 -1
  146. package/.claude/skills/mastermind-execute/SKILL.md +1 -1
  147. package/.claude/skills/mastermind-export/SKILL.md +2 -1
  148. package/.claude/skills/mastermind-goal-detail/SKILL.md +3 -2
  149. package/.claude/skills/mastermind-goals/SKILL.md +3 -2
  150. package/.claude/skills/mastermind-idea/SKILL.md +52 -92
  151. package/.claude/skills/mastermind-import/SKILL.md +2 -1
  152. package/.claude/skills/mastermind-inbox/SKILL.md +3 -2
  153. package/.claude/skills/mastermind-instance/SKILL.md +3 -2
  154. package/.claude/skills/mastermind-invite-landing/SKILL.md +3 -2
  155. package/.claude/skills/mastermind-invites/SKILL.md +3 -2
  156. package/.claude/skills/mastermind-issue-detail/SKILL.md +4 -3
  157. package/.claude/skills/mastermind-issues/SKILL.md +4 -3
  158. package/.claude/skills/mastermind-join-queue/SKILL.md +5 -4
  159. package/.claude/skills/mastermind-liveness/SKILL.md +5 -4
  160. package/.claude/skills/mastermind-monitor/SKILL.md +15 -15
  161. package/.claude/skills/mastermind-my-issues/SKILL.md +2 -1
  162. package/.claude/skills/mastermind-new-agent/SKILL.md +120 -137
  163. package/.claude/skills/mastermind-org-settings/SKILL.md +6 -5
  164. package/.claude/skills/mastermind-orgs/SKILL.md +1 -0
  165. package/.claude/skills/mastermind-orgstatus/SKILL.md +2 -1
  166. package/.claude/skills/mastermind-plan-to-tasks/SKILL.md +1 -1
  167. package/.claude/skills/mastermind-plugin-manager/SKILL.md +4 -3
  168. package/.claude/skills/mastermind-plugin-settings/SKILL.md +5 -4
  169. package/.claude/skills/mastermind-plugins/SKILL.md +3 -2
  170. package/.claude/skills/mastermind-profile/SKILL.md +2 -1
  171. package/.claude/skills/mastermind-protocol/SKILL.md +3 -3
  172. package/.claude/skills/mastermind-release/SKILL.md +13 -8
  173. package/.claude/skills/mastermind-research/SKILL.md +10 -8
  174. package/.claude/skills/mastermind-review/SKILL.md +16 -11
  175. package/.claude/skills/mastermind-routine-detail/SKILL.md +2 -1
  176. package/.claude/skills/mastermind-routines/SKILL.md +3 -2
  177. package/.claude/skills/mastermind-search/SKILL.md +2 -1
  178. package/.claude/skills/mastermind-secrets/SKILL.md +3 -2
  179. package/.claude/skills/mastermind-skills/SKILL.md +2 -1
  180. package/.claude/skills/mastermind-stoporg/SKILL.md +1 -0
  181. package/.claude/skills/mastermind-tasks/SKILL.md +3 -2
  182. package/.claude/skills/mastermind-threads/SKILL.md +4 -3
  183. package/.claude/skills/mastermind-tree-control/SKILL.md +5 -4
  184. package/.claude/skills/mastermind-workspace-detail/SKILL.md +4 -3
  185. package/.claude/skills/mastermind-workspaces/SKILL.md +2 -1
  186. package/.claude/skills/monoswarm/SKILL.md +7 -5
  187. package/.claude/skills/specialagent/SKILL.md +32 -51
  188. package/dist/src/agents/registry-builder.d.ts +23 -2
  189. package/dist/src/agents/registry-builder.d.ts.map +1 -1
  190. package/dist/src/agents/registry-builder.js +64 -11
  191. package/dist/src/agents/registry-builder.js.map +1 -1
  192. package/dist/src/agents/registry-freshness.d.ts +21 -0
  193. package/dist/src/agents/registry-freshness.d.ts.map +1 -0
  194. package/dist/src/agents/registry-freshness.js +94 -0
  195. package/dist/src/agents/registry-freshness.js.map +1 -0
  196. package/dist/src/commands/agent-lifecycle.d.ts +11 -5
  197. package/dist/src/commands/agent-lifecycle.d.ts.map +1 -1
  198. package/dist/src/commands/agent-lifecycle.js +78 -42
  199. package/dist/src/commands/agent-lifecycle.js.map +1 -1
  200. package/dist/src/commands/doctor-env-checks.d.ts +18 -3
  201. package/dist/src/commands/doctor-env-checks.d.ts.map +1 -1
  202. package/dist/src/commands/doctor-env-checks.js +35 -16
  203. package/dist/src/commands/doctor-env-checks.js.map +1 -1
  204. package/dist/src/commands/doctor-fresh-install.d.ts +9 -0
  205. package/dist/src/commands/doctor-fresh-install.d.ts.map +1 -0
  206. package/dist/src/commands/doctor-fresh-install.js +43 -0
  207. package/dist/src/commands/doctor-fresh-install.js.map +1 -0
  208. package/dist/src/commands/doctor-hook-monograph-checks.d.ts +3 -1
  209. package/dist/src/commands/doctor-hook-monograph-checks.d.ts.map +1 -1
  210. package/dist/src/commands/doctor-hook-monograph-checks.js +13 -4
  211. package/dist/src/commands/doctor-hook-monograph-checks.js.map +1 -1
  212. package/dist/src/commands/doctor-hook-settings-checks.d.ts +5 -0
  213. package/dist/src/commands/doctor-hook-settings-checks.d.ts.map +1 -0
  214. package/dist/src/commands/doctor-hook-settings-checks.js +50 -0
  215. package/dist/src/commands/doctor-hook-settings-checks.js.map +1 -0
  216. package/dist/src/commands/doctor-json.d.ts +41 -0
  217. package/dist/src/commands/doctor-json.d.ts.map +1 -0
  218. package/dist/src/commands/doctor-json.js +60 -0
  219. package/dist/src/commands/doctor-json.js.map +1 -0
  220. package/dist/src/commands/doctor-mode.d.ts +28 -0
  221. package/dist/src/commands/doctor-mode.d.ts.map +1 -0
  222. package/dist/src/commands/doctor-mode.js +109 -0
  223. package/dist/src/commands/doctor-mode.js.map +1 -0
  224. package/dist/src/commands/doctor-monoes-checks.d.ts.map +1 -1
  225. package/dist/src/commands/doctor-monoes-checks.js +3 -1
  226. package/dist/src/commands/doctor-monoes-checks.js.map +1 -1
  227. package/dist/src/commands/doctor-pick-checks.d.ts +19 -0
  228. package/dist/src/commands/doctor-pick-checks.d.ts.map +1 -0
  229. package/dist/src/commands/doctor-pick-checks.js +164 -0
  230. package/dist/src/commands/doctor-pick-checks.js.map +1 -0
  231. package/dist/src/commands/doctor-project-checks.d.ts +3 -1
  232. package/dist/src/commands/doctor-project-checks.d.ts.map +1 -1
  233. package/dist/src/commands/doctor-project-checks.js +67 -20
  234. package/dist/src/commands/doctor-project-checks.js.map +1 -1
  235. package/dist/src/commands/doctor.d.ts.map +1 -1
  236. package/dist/src/commands/doctor.js +324 -335
  237. package/dist/src/commands/doctor.js.map +1 -1
  238. package/dist/src/commands/hooks-coverage-routing.js +1 -1
  239. package/dist/src/commands/hooks-coverage-routing.js.map +1 -1
  240. package/dist/src/commands/hooks-coverage-utils.js +1 -1
  241. package/dist/src/commands/hooks-coverage-utils.js.map +1 -1
  242. package/dist/src/commands/hooks-routing-commands.js +1 -1
  243. package/dist/src/commands/init-upgrade.d.ts.map +1 -1
  244. package/dist/src/commands/init-upgrade.js +4 -0
  245. package/dist/src/commands/init-upgrade.js.map +1 -1
  246. package/dist/src/commands/monoswarm.d.ts.map +1 -1
  247. package/dist/src/commands/monoswarm.js +16 -10
  248. package/dist/src/commands/monoswarm.js.map +1 -1
  249. package/dist/src/commands/pick.d.ts.map +1 -1
  250. package/dist/src/commands/pick.js +66 -16
  251. package/dist/src/commands/pick.js.map +1 -1
  252. package/dist/src/commands/route.d.ts +2 -1
  253. package/dist/src/commands/route.d.ts.map +1 -1
  254. package/dist/src/commands/route.js +73 -117
  255. package/dist/src/commands/route.js.map +1 -1
  256. package/dist/src/decision/catalogs.d.ts +24 -3
  257. package/dist/src/decision/catalogs.d.ts.map +1 -1
  258. package/dist/src/decision/catalogs.js +100 -22
  259. package/dist/src/decision/catalogs.js.map +1 -1
  260. package/dist/src/decision/jev.d.ts +26 -6
  261. package/dist/src/decision/jev.d.ts.map +1 -1
  262. package/dist/src/decision/jev.js +15 -4
  263. package/dist/src/decision/jev.js.map +1 -1
  264. package/dist/src/decision/pick-eval.d.ts +67 -0
  265. package/dist/src/decision/pick-eval.d.ts.map +1 -0
  266. package/dist/src/decision/pick-eval.js +113 -0
  267. package/dist/src/decision/pick-eval.js.map +1 -0
  268. package/dist/src/decision/pick-stats.d.ts +49 -0
  269. package/dist/src/decision/pick-stats.d.ts.map +1 -0
  270. package/dist/src/decision/pick-stats.js +68 -0
  271. package/dist/src/decision/pick-stats.js.map +1 -0
  272. package/dist/src/decision/picks.d.ts +37 -6
  273. package/dist/src/decision/picks.d.ts.map +1 -1
  274. package/dist/src/decision/picks.js +67 -32
  275. package/dist/src/decision/picks.js.map +1 -1
  276. package/dist/src/index.d.ts +5 -0
  277. package/dist/src/index.d.ts.map +1 -1
  278. package/dist/src/index.js +43 -22
  279. package/dist/src/index.js.map +1 -1
  280. package/dist/src/init/agent-refresh.d.ts +8 -0
  281. package/dist/src/init/agent-refresh.d.ts.map +1 -0
  282. package/dist/src/init/agent-refresh.js +89 -0
  283. package/dist/src/init/agent-refresh.js.map +1 -0
  284. package/dist/src/init/claudemd-generator.d.ts.map +1 -1
  285. package/dist/src/init/claudemd-generator.js +27 -9
  286. package/dist/src/init/claudemd-generator.js.map +1 -1
  287. package/dist/src/init/helpers-generator.d.ts +4 -1
  288. package/dist/src/init/helpers-generator.d.ts.map +1 -1
  289. package/dist/src/init/helpers-generator.js +84 -55
  290. package/dist/src/init/helpers-generator.js.map +1 -1
  291. package/dist/src/init/hook-settings.d.ts +57 -0
  292. package/dist/src/init/hook-settings.d.ts.map +1 -0
  293. package/dist/src/init/hook-settings.js +133 -0
  294. package/dist/src/init/hook-settings.js.map +1 -0
  295. package/dist/src/init/settings-generator.d.ts.map +1 -1
  296. package/dist/src/init/settings-generator.js +44 -25
  297. package/dist/src/init/settings-generator.js.map +1 -1
  298. package/dist/src/init/shared.d.ts +9 -0
  299. package/dist/src/init/shared.d.ts.map +1 -1
  300. package/dist/src/init/shared.js +22 -0
  301. package/dist/src/init/shared.js.map +1 -1
  302. package/dist/src/init/upgrade.d.ts +4 -0
  303. package/dist/src/init/upgrade.d.ts.map +1 -1
  304. package/dist/src/init/upgrade.js +123 -129
  305. package/dist/src/init/upgrade.js.map +1 -1
  306. package/dist/src/init/write-capabilities.d.ts.map +1 -1
  307. package/dist/src/init/write-capabilities.js +10 -33
  308. package/dist/src/init/write-capabilities.js.map +1 -1
  309. package/dist/src/init/write-claude.d.ts.map +1 -1
  310. package/dist/src/init/write-claude.js +5 -2
  311. package/dist/src/init/write-claude.js.map +1 -1
  312. package/dist/src/mcp-client.d.ts.map +1 -1
  313. package/dist/src/mcp-client.js +4 -0
  314. package/dist/src/mcp-client.js.map +1 -1
  315. package/dist/src/mcp-tools/agent-tools.d.ts.map +1 -1
  316. package/dist/src/mcp-tools/agent-tools.js +3 -0
  317. package/dist/src/mcp-tools/agent-tools.js.map +1 -1
  318. package/dist/src/mcp-tools/guidance-tools.d.ts.map +1 -1
  319. package/dist/src/mcp-tools/guidance-tools.js +19 -10
  320. package/dist/src/mcp-tools/guidance-tools.js.map +1 -1
  321. package/dist/src/mcp-tools/hooks-embedding.d.ts +1 -32
  322. package/dist/src/mcp-tools/hooks-embedding.d.ts.map +1 -1
  323. package/dist/src/mcp-tools/hooks-embedding.js +22 -200
  324. package/dist/src/mcp-tools/hooks-embedding.js.map +1 -1
  325. package/dist/src/mcp-tools/hooks-routing.d.ts.map +1 -1
  326. package/dist/src/mcp-tools/hooks-routing.js +77 -192
  327. package/dist/src/mcp-tools/hooks-routing.js.map +1 -1
  328. package/dist/src/mcp-tools/index.d.ts +1 -0
  329. package/dist/src/mcp-tools/index.d.ts.map +1 -1
  330. package/dist/src/mcp-tools/index.js +1 -0
  331. package/dist/src/mcp-tools/index.js.map +1 -1
  332. package/dist/src/mcp-tools/org-skill-tools.d.ts +4 -0
  333. package/dist/src/mcp-tools/org-skill-tools.d.ts.map +1 -0
  334. package/dist/src/mcp-tools/org-skill-tools.js +42 -0
  335. package/dist/src/mcp-tools/org-skill-tools.js.map +1 -0
  336. package/dist/src/mcp-tools/pick-tools.d.ts +4 -0
  337. package/dist/src/mcp-tools/pick-tools.d.ts.map +1 -0
  338. package/dist/src/mcp-tools/pick-tools.js +53 -0
  339. package/dist/src/mcp-tools/pick-tools.js.map +1 -0
  340. package/dist/src/monovector/coverage-router.d.ts +2 -1
  341. package/dist/src/monovector/coverage-router.d.ts.map +1 -1
  342. package/dist/src/monovector/coverage-router.js +6 -5
  343. package/dist/src/monovector/coverage-router.js.map +1 -1
  344. package/dist/src/monovector/coverage-tools.js +1 -1
  345. package/dist/src/monovector/coverage-tools.js.map +1 -1
  346. package/dist/src/monovector/index.d.ts +1 -1
  347. package/dist/src/monovector/index.d.ts.map +1 -1
  348. package/dist/src/monovector/index.js +11 -35
  349. package/dist/src/monovector/index.js.map +1 -1
  350. package/dist/src/monovector/route-outcomes.d.ts.map +1 -1
  351. package/dist/src/monovector/route-outcomes.js +89 -34
  352. package/dist/src/monovector/route-outcomes.js.map +1 -1
  353. package/dist/src/orgrt/daemon.d.ts +7 -13
  354. package/dist/src/orgrt/daemon.d.ts.map +1 -1
  355. package/dist/src/orgrt/daemon.js +12 -23
  356. package/dist/src/orgrt/daemon.js.map +1 -1
  357. package/dist/src/orgrt/decisions.d.ts +3 -8
  358. package/dist/src/orgrt/decisions.d.ts.map +1 -1
  359. package/dist/src/orgrt/decisions.js +36 -47
  360. package/dist/src/orgrt/decisions.js.map +1 -1
  361. package/dist/src/orgrt/dispatch-hold.d.ts +34 -0
  362. package/dist/src/orgrt/dispatch-hold.d.ts.map +1 -0
  363. package/dist/src/orgrt/dispatch-hold.js +75 -0
  364. package/dist/src/orgrt/dispatch-hold.js.map +1 -0
  365. package/dist/src/orgrt/runner-registry.d.ts +20 -0
  366. package/dist/src/orgrt/runner-registry.d.ts.map +1 -1
  367. package/dist/src/orgrt/runner-registry.js +39 -0
  368. package/dist/src/orgrt/runner-registry.js.map +1 -1
  369. package/dist/src/orgrt/sandbox-deny-write.d.ts +11 -1
  370. package/dist/src/orgrt/sandbox-deny-write.d.ts.map +1 -1
  371. package/dist/src/orgrt/sandbox-deny-write.js +23 -2
  372. package/dist/src/orgrt/sandbox-deny-write.js.map +1 -1
  373. package/dist/src/orgrt/sandbox-fault.d.ts +5 -1
  374. package/dist/src/orgrt/sandbox-fault.d.ts.map +1 -1
  375. package/dist/src/orgrt/sandbox-fault.js +14 -2
  376. package/dist/src/orgrt/sandbox-fault.js.map +1 -1
  377. package/dist/src/orgrt/session.d.ts +16 -7
  378. package/dist/src/orgrt/session.d.ts.map +1 -1
  379. package/dist/src/orgrt/session.js +39 -62
  380. package/dist/src/orgrt/session.js.map +1 -1
  381. package/dist/src/orgrt/skill-library.d.ts +4 -0
  382. package/dist/src/orgrt/skill-library.d.ts.map +1 -1
  383. package/dist/src/orgrt/skill-library.js +12 -0
  384. package/dist/src/orgrt/skill-library.js.map +1 -1
  385. package/dist/src/orgrt/skill-tools.d.ts +11 -0
  386. package/dist/src/orgrt/skill-tools.d.ts.map +1 -0
  387. package/dist/src/orgrt/skill-tools.js +40 -0
  388. package/dist/src/orgrt/skill-tools.js.map +1 -0
  389. package/dist/src/orgrt/task-cancel.d.ts +64 -0
  390. package/dist/src/orgrt/task-cancel.d.ts.map +1 -0
  391. package/dist/src/orgrt/task-cancel.js +134 -0
  392. package/dist/src/orgrt/task-cancel.js.map +1 -0
  393. package/dist/src/orgrt/task-dag.d.ts +10 -1
  394. package/dist/src/orgrt/task-dag.d.ts.map +1 -1
  395. package/dist/src/orgrt/task-dag.js.map +1 -1
  396. package/dist/src/orgrt/task-match.d.ts +121 -0
  397. package/dist/src/orgrt/task-match.d.ts.map +1 -0
  398. package/dist/src/orgrt/task-match.js +241 -0
  399. package/dist/src/orgrt/task-match.js.map +1 -0
  400. package/dist/src/orgrt/task-provenance.d.ts +26 -0
  401. package/dist/src/orgrt/task-provenance.d.ts.map +1 -0
  402. package/dist/src/orgrt/task-provenance.js +93 -0
  403. package/dist/src/orgrt/task-provenance.js.map +1 -0
  404. package/dist/src/orgrt/task-tools.d.ts +24 -0
  405. package/dist/src/orgrt/task-tools.d.ts.map +1 -0
  406. package/dist/src/orgrt/task-tools.js +75 -0
  407. package/dist/src/orgrt/task-tools.js.map +1 -0
  408. package/dist/src/output.d.ts +6 -0
  409. package/dist/src/output.d.ts.map +1 -1
  410. package/dist/src/output.js +13 -2
  411. package/dist/src/output.js.map +1 -1
  412. package/dist/src/protocol-capabilities.d.ts +8 -1
  413. package/dist/src/protocol-capabilities.d.ts.map +1 -1
  414. package/dist/src/protocol-capabilities.js +10 -0
  415. package/dist/src/protocol-capabilities.js.map +1 -1
  416. package/dist/src/routing/agent-pick.d.ts +44 -0
  417. package/dist/src/routing/agent-pick.d.ts.map +1 -0
  418. package/dist/src/routing/agent-pick.js +114 -0
  419. package/dist/src/routing/agent-pick.js.map +1 -0
  420. package/dist/src/routing/pick-step.d.ts +26 -0
  421. package/dist/src/routing/pick-step.d.ts.map +1 -0
  422. package/dist/src/routing/pick-step.js +40 -0
  423. package/dist/src/routing/pick-step.js.map +1 -0
  424. package/dist/src/routing/route-layer-factory.d.ts.map +1 -1
  425. package/dist/src/routing/route-layer-factory.js +19 -17
  426. package/dist/src/routing/route-layer-factory.js.map +1 -1
  427. package/dist/src/utils/resource-governor.d.ts.map +1 -1
  428. package/dist/src/utils/resource-governor.js +28 -8
  429. package/dist/src/utils/resource-governor.js.map +1 -1
  430. package/dist/tsconfig.tsbuildinfo +1 -1
  431. package/org-skills/SOURCES.md +6 -6
  432. package/org-skills/TAGS.md +146 -0
  433. package/org-skills/ab-testing/SKILL.md +2 -2
  434. package/org-skills/accessibility-compliance/SKILL.md +2 -2
  435. package/org-skills/account-strategist/SKILL.md +2 -2
  436. package/org-skills/accounts-payable/SKILL.md +2 -2
  437. package/org-skills/ad-creative/SKILL.md +2 -2
  438. package/org-skills/adaptive-coordinator/SKILL.md +2 -2
  439. package/org-skills/adaptive-coordinator2/SKILL.md +2 -2
  440. package/org-skills/advanced-evaluation/SKILL.md +2 -2
  441. package/org-skills/adversarial-reviewer/SKILL.md +2 -2
  442. package/org-skills/agent-evaluation/SKILL.md +2 -2
  443. package/org-skills/agent-memory-systems/SKILL.md +2 -2
  444. package/org-skills/agent-tool-design/SKILL.md +2 -2
  445. package/org-skills/agile-product-owner/SKILL.md +2 -2
  446. package/org-skills/ai-citation/SKILL.md +2 -2
  447. package/org-skills/ai-engineer/SKILL.md +2 -2
  448. package/org-skills/ai-seo/SKILL.md +2 -2
  449. package/org-skills/analytics-reporter/SKILL.md +2 -2
  450. package/org-skills/analytics-tracking/SKILL.md +2 -2
  451. package/org-skills/android-clean-architecture/SKILL.md +2 -2
  452. package/org-skills/angular-architect/SKILL.md +2 -2
  453. package/org-skills/api-design/SKILL.md +2 -2
  454. package/org-skills/api-designer/SKILL.md +2 -2
  455. package/org-skills/api-tester/SKILL.md +2 -2
  456. package/org-skills/app-store-optimization/SKILL.md +2 -2
  457. package/org-skills/architecture-decision-records/SKILL.md +2 -2
  458. package/org-skills/architecture-designer/SKILL.md +2 -2
  459. package/org-skills/architecture-patterns/SKILL.md +2 -2
  460. package/org-skills/article-writing/SKILL.md +2 -2
  461. package/org-skills/auth-implementation-patterns/SKILL.md +2 -2
  462. package/org-skills/automation-governance/SKILL.md +2 -2
  463. package/org-skills/avoid-ai-writing/SKILL.md +2 -2
  464. package/org-skills/backend-dev/SKILL.md +2 -2
  465. package/org-skills/backend-patterns/SKILL.md +2 -2
  466. package/org-skills/bash-defensive-patterns/SKILL.md +2 -2
  467. package/org-skills/before-you-build/SKILL.md +2 -2
  468. package/org-skills/benchmark-methodology/SKILL.md +2 -2
  469. package/org-skills/benchmarker/SKILL.md +2 -2
  470. package/org-skills/blockchain-auditor/SKILL.md +2 -2
  471. package/org-skills/board-deck-builder/SKILL.md +2 -2
  472. package/org-skills/business-investment-advisor/SKILL.md +2 -2
  473. package/org-skills/byzantine-coord/SKILL.md +2 -2
  474. package/org-skills/canvas-design/SKILL.md +2 -2
  475. package/org-skills/carrier-relationship-management/SKILL.md +2 -2
  476. package/org-skills/case-analyst/SKILL.md +2 -2
  477. package/org-skills/ceo-advisor/SKILL.md +2 -2
  478. package/org-skills/cfo-advisor/SKILL.md +2 -2
  479. package/org-skills/change-management/SKILL.md +2 -2
  480. package/org-skills/changelog-automation/SKILL.md +2 -2
  481. package/org-skills/chro-advisor/SKILL.md +2 -2
  482. package/org-skills/churn-prevention/SKILL.md +2 -2
  483. package/org-skills/cicd-engineer/SKILL.md +2 -2
  484. package/org-skills/ciso-advisor/SKILL.md +2 -2
  485. package/org-skills/click-path-audit/SKILL.md +2 -2
  486. package/org-skills/cloud-architect/SKILL.md +2 -2
  487. package/org-skills/cloud-architecture/SKILL.md +2 -2
  488. package/org-skills/cmo-advisor/SKILL.md +2 -2
  489. package/org-skills/co-marketing/SKILL.md +2 -2
  490. package/org-skills/code-documenter/SKILL.md +2 -2
  491. package/org-skills/code-review-swarm/SKILL.md +2 -2
  492. package/org-skills/code-reviewer/SKILL.md +2 -2
  493. package/org-skills/coder/SKILL.md +2 -2
  494. package/org-skills/coding-standards/SKILL.md +2 -2
  495. package/org-skills/cold-email/SKILL.md +2 -2
  496. package/org-skills/collective-coord/SKILL.md +2 -2
  497. package/org-skills/community-marketing/SKILL.md +2 -2
  498. package/org-skills/competitive-landscape/SKILL.md +2 -2
  499. package/org-skills/competitive-platform-analysis/SKILL.md +2 -2
  500. package/org-skills/competitive-report-structure/SKILL.md +2 -2
  501. package/org-skills/competitive-teardown/SKILL.md +2 -2
  502. package/org-skills/competitor-comparison-pages/SKILL.md +2 -2
  503. package/org-skills/compliance-auditor/SKILL.md +2 -2
  504. package/org-skills/consensus-coordinator/SKILL.md +2 -2
  505. package/org-skills/content-creator/SKILL.md +2 -2
  506. package/org-skills/content-engine/SKILL.md +2 -2
  507. package/org-skills/content-strategy/SKILL.md +2 -2
  508. package/org-skills/context-compression/SKILL.md +2 -2
  509. package/org-skills/context-degradation/SKILL.md +2 -2
  510. package/org-skills/context-fundamentals/SKILL.md +2 -2
  511. package/org-skills/context-optimization/SKILL.md +2 -2
  512. package/org-skills/contract-and-proposal-writer/SKILL.md +1 -1
  513. package/org-skills/contract-first/SKILL.md +2 -2
  514. package/org-skills/coo-advisor/SKILL.md +2 -2
  515. package/org-skills/copy-editing/SKILL.md +2 -2
  516. package/org-skills/copywriting/SKILL.md +2 -2
  517. package/org-skills/cost-aware-llm-pipeline/SKILL.md +2 -2
  518. package/org-skills/cost-optimization/SKILL.md +2 -2
  519. package/org-skills/cpp-coding-standards/SKILL.md +2 -2
  520. package/org-skills/cpp-pro/SKILL.md +2 -2
  521. package/org-skills/cro-advisor/SKILL.md +2 -2
  522. package/org-skills/cro-specialist/SKILL.md +2 -2
  523. package/org-skills/csharp-developer/SKILL.md +2 -2
  524. package/org-skills/cto-advisor/SKILL.md +2 -2
  525. package/org-skills/culture-architect/SKILL.md +2 -2
  526. package/org-skills/customer-research/SKILL.md +2 -2
  527. package/org-skills/customs-trade-compliance/SKILL.md +2 -2
  528. package/org-skills/dart-flutter-patterns/SKILL.md +2 -2
  529. package/org-skills/dashboard-builder/SKILL.md +2 -2
  530. package/org-skills/data-consolidator/SKILL.md +2 -2
  531. package/org-skills/data-engineer/SKILL.md +2 -2
  532. package/org-skills/data-quality-frameworks/SKILL.md +2 -2
  533. package/org-skills/data-storytelling/SKILL.md +2 -2
  534. package/org-skills/database-migrations/SKILL.md +2 -2
  535. package/org-skills/database-optimizer/SKILL.md +2 -2
  536. package/org-skills/dbt-transformation-patterns/SKILL.md +2 -2
  537. package/org-skills/deal-strategist/SKILL.md +2 -2
  538. package/org-skills/debugging-wizard/SKILL.md +2 -2
  539. package/org-skills/deep-research/SKILL.md +2 -2
  540. package/org-skills/defender/SKILL.md +2 -2
  541. package/org-skills/dependency-upgrade/SKILL.md +2 -2
  542. package/org-skills/deployment-patterns/SKILL.md +2 -2
  543. package/org-skills/deployment-pipeline-design/SKILL.md +2 -2
  544. package/org-skills/design-system/SKILL.md +2 -2
  545. package/org-skills/design-system-patterns/SKILL.md +2 -2
  546. package/org-skills/devops-automator/SKILL.md +2 -2
  547. package/org-skills/devops-engineer/SKILL.md +2 -2
  548. package/org-skills/discovery-coach/SKILL.md +2 -2
  549. package/org-skills/django-expert/SKILL.md +2 -2
  550. package/org-skills/django-patterns/SKILL.md +2 -2
  551. package/org-skills/docker-patterns/SKILL.md +2 -2
  552. package/org-skills/dotnet-patterns/SKILL.md +2 -2
  553. package/org-skills/e2e-testing/SKILL.md +2 -2
  554. package/org-skills/email-marketing/SKILL.md +2 -2
  555. package/org-skills/email-sequences/SKILL.md +2 -2
  556. package/org-skills/embedded-firmware/SKILL.md +2 -2
  557. package/org-skills/embedded-systems/SKILL.md +2 -2
  558. package/org-skills/employment-contract-templates/SKILL.md +2 -2
  559. package/org-skills/energy-procurement/SKILL.md +2 -2
  560. package/org-skills/error-handling/SKILL.md +2 -2
  561. package/org-skills/event-marketing/SKILL.md +2 -2
  562. package/org-skills/evidence-collector/SKILL.md +2 -2
  563. package/org-skills/experiment-designer/SKILL.md +2 -2
  564. package/org-skills/experiment-tracker/SKILL.md +2 -2
  565. package/org-skills/experimental-design/SKILL.md +2 -2
  566. package/org-skills/fastapi-expert/SKILL.md +2 -2
  567. package/org-skills/fastapi-patterns/SKILL.md +2 -2
  568. package/org-skills/feedback-synthesizer/SKILL.md +2 -2
  569. package/org-skills/finance-tracker/SKILL.md +2 -2
  570. package/org-skills/finishing-a-development-branch/SKILL.md +2 -2
  571. package/org-skills/flutter-expert/SKILL.md +2 -2
  572. package/org-skills/focused-fix/SKILL.md +2 -2
  573. package/org-skills/free-tool-strategy/SKILL.md +2 -2
  574. package/org-skills/frontend-design/SKILL.md +2 -2
  575. package/org-skills/frontend-design-direction/SKILL.md +2 -2
  576. package/org-skills/frontend-developer/SKILL.md +2 -2
  577. package/org-skills/frontend-patterns/SKILL.md +2 -2
  578. package/org-skills/game-audio-engineer/SKILL.md +2 -2
  579. package/org-skills/game-designer/SKILL.md +2 -2
  580. package/org-skills/gdpr-data-handling/SKILL.md +2 -2
  581. package/org-skills/general-counsel-advisor/SKILL.md +2 -2
  582. package/org-skills/git-advanced-workflows/SKILL.md +2 -2
  583. package/org-skills/git-workflow/SKILL.md +2 -2
  584. package/org-skills/golang-patterns/SKILL.md +2 -2
  585. package/org-skills/golang-pro/SKILL.md +2 -2
  586. package/org-skills/harness-engineering/SKILL.md +2 -2
  587. package/org-skills/healthcare-phi-compliance/SKILL.md +2 -2
  588. package/org-skills/hexagonal-architecture/SKILL.md +2 -2
  589. package/org-skills/hierarchical-coord/SKILL.md +2 -2
  590. package/org-skills/huggingface-transformers/SKILL.md +2 -2
  591. package/org-skills/hypothesis-generation/SKILL.md +2 -2
  592. package/org-skills/incident-command-playbook/SKILL.md +2 -2
  593. package/org-skills/incident-commander/SKILL.md +2 -2
  594. package/org-skills/incident-runbook-templates/SKILL.md +2 -2
  595. package/org-skills/influencer-marketing/SKILL.md +2 -2
  596. package/org-skills/infrastructure/SKILL.md +2 -2
  597. package/org-skills/input-validator/SKILL.md +2 -2
  598. package/org-skills/intent-driven-development/SKILL.md +2 -2
  599. package/org-skills/inventory-demand-planning/SKILL.md +2 -2
  600. package/org-skills/investor-materials/SKILL.md +2 -2
  601. package/org-skills/ios-developer/SKILL.md +2 -2
  602. package/org-skills/isms-audit-expert/SKILL.md +2 -2
  603. package/org-skills/issue-tracker/SKILL.md +2 -2
  604. package/org-skills/java-architect/SKILL.md +2 -2
  605. package/org-skills/java-coding-standards/SKILL.md +2 -2
  606. package/org-skills/judge/SKILL.md +2 -2
  607. package/org-skills/kotlin-patterns/SKILL.md +2 -2
  608. package/org-skills/kotlin-specialist/SKILL.md +2 -2
  609. package/org-skills/kpi-dashboard-design/SKILL.md +2 -2
  610. package/org-skills/kubernetes-patterns/SKILL.md +2 -2
  611. package/org-skills/kubernetes-specialist/SKILL.md +2 -2
  612. package/org-skills/laravel-patterns/SKILL.md +2 -2
  613. package/org-skills/launch-strategist/SKILL.md +2 -2
  614. package/org-skills/launch-strategy/SKILL.md +2 -2
  615. package/org-skills/lead-magnets/SKILL.md +2 -2
  616. package/org-skills/legacy-modernizer/SKILL.md +2 -2
  617. package/org-skills/legal-compliance/SKILL.md +2 -2
  618. package/org-skills/level-designer/SKILL.md +2 -2
  619. package/org-skills/llm-cost-optimizer/SKILL.md +2 -2
  620. package/org-skills/llm-evaluation/SKILL.md +2 -2
  621. package/org-skills/llm-project-development/SKILL.md +2 -2
  622. package/org-skills/load-balancer/SKILL.md +2 -2
  623. package/org-skills/logistics-exception-management/SKILL.md +2 -2
  624. package/org-skills/long-horizon-prompting/SKILL.md +2 -2
  625. package/org-skills/make-interfaces-feel-better/SKILL.md +2 -2
  626. package/org-skills/markdown-mermaid-writing/SKILL.md +2 -2
  627. package/org-skills/market-research/SKILL.md +2 -2
  628. package/org-skills/market-research-reports/SKILL.md +2 -2
  629. package/org-skills/market-sizing-analysis/SKILL.md +2 -2
  630. package/org-skills/marketing-attribution/SKILL.md +2 -2
  631. package/org-skills/marketing-campaign/SKILL.md +2 -2
  632. package/org-skills/marketing-council/SKILL.md +2 -2
  633. package/org-skills/marketing-demand-acquisition/SKILL.md +2 -2
  634. package/org-skills/marketing-loops/SKILL.md +2 -2
  635. package/org-skills/marketing-plan/SKILL.md +2 -2
  636. package/org-skills/marketing-psychology/SKILL.md +2 -2
  637. package/org-skills/marketing-strategy-pmm/SKILL.md +2 -2
  638. package/org-skills/markitdown-document-conversion/SKILL.md +2 -2
  639. package/org-skills/mcp-builder/SKILL.md +2 -2
  640. package/org-skills/mcp-server-builder/SKILL.md +2 -2
  641. package/org-skills/mcp-server-patterns/SKILL.md +2 -2
  642. package/org-skills/memory-coordinator/SKILL.md +2 -2
  643. package/org-skills/mesh-coordinator/SKILL.md +2 -2
  644. package/org-skills/ml-developer/SKILL.md +2 -2
  645. package/org-skills/ml-pipeline/SKILL.md +2 -2
  646. package/org-skills/mle-workflow/SKILL.md +2 -2
  647. package/org-skills/mobile-app-builder/SKILL.md +2 -2
  648. package/org-skills/mobile-dev/SKILL.md +2 -2
  649. package/org-skills/model-qa/SKILL.md +2 -2
  650. package/org-skills/monitoring-expert/SKILL.md +2 -2
  651. package/org-skills/monodesign-ui-quality/SKILL.md +2 -2
  652. package/org-skills/monograph-code-navigation/SKILL.md +2 -2
  653. package/org-skills/monolean-minimal-change/SKILL.md +2 -2
  654. package/org-skills/multi-agent-patterns/SKILL.md +2 -2
  655. package/org-skills/mysql-patterns/SKILL.md +2 -2
  656. package/org-skills/narrative-designer/SKILL.md +2 -2
  657. package/org-skills/nextjs-developer/SKILL.md +2 -2
  658. package/org-skills/offer-design/SKILL.md +2 -2
  659. package/org-skills/onboarding-cro/SKILL.md +2 -2
  660. package/org-skills/outbound-strategist/SKILL.md +2 -2
  661. package/org-skills/page-cro/SKILL.md +2 -2
  662. package/org-skills/paid-ads/SKILL.md +2 -2
  663. package/org-skills/pandas-pro/SKILL.md +2 -2
  664. package/org-skills/path-validator/SKILL.md +2 -2
  665. package/org-skills/payment-agent/SKILL.md +2 -2
  666. package/org-skills/pci-compliance/SKILL.md +2 -2
  667. package/org-skills/perf-analyzer/SKILL.md +2 -2
  668. package/org-skills/php-pro/SKILL.md +2 -2
  669. package/org-skills/pipeline-analyst/SKILL.md +2 -2
  670. package/org-skills/planner/SKILL.md +2 -2
  671. package/org-skills/playwright-expert/SKILL.md +2 -2
  672. package/org-skills/postgres-patterns/SKILL.md +2 -2
  673. package/org-skills/postgresql-table-design/SKILL.md +2 -2
  674. package/org-skills/postmortem-writing/SKILL.md +2 -2
  675. package/org-skills/pr-manager/SKILL.md +2 -2
  676. package/org-skills/pricing-strategist/SKILL.md +2 -2
  677. package/org-skills/pricing-strategy/SKILL.md +2 -2
  678. package/org-skills/prisma-patterns/SKILL.md +2 -2
  679. package/org-skills/product-capability/SKILL.md +2 -2
  680. package/org-skills/product-discovery/SKILL.md +2 -2
  681. package/org-skills/product-lens/SKILL.md +2 -2
  682. package/org-skills/product-manager/SKILL.md +2 -2
  683. package/org-skills/product-marketing-context/SKILL.md +2 -2
  684. package/org-skills/production-audit/SKILL.md +2 -2
  685. package/org-skills/production-scheduling/SKILL.md +2 -2
  686. package/org-skills/production-validator/SKILL.md +2 -2
  687. package/org-skills/programmatic-seo/SKILL.md +2 -2
  688. package/org-skills/project-shepherd/SKILL.md +2 -2
  689. package/org-skills/prompt-engineer/SKILL.md +2 -2
  690. package/org-skills/proposal-strategist/SKILL.md +2 -2
  691. package/org-skills/prosecutor/SKILL.md +2 -2
  692. package/org-skills/public-relations/SKILL.md +2 -2
  693. package/org-skills/pymc-bayesian-modeling/SKILL.md +2 -2
  694. package/org-skills/python-patterns/SKILL.md +2 -2
  695. package/org-skills/python-pro/SKILL.md +2 -2
  696. package/org-skills/python-testing/SKILL.md +2 -2
  697. package/org-skills/quality-nonconformance/SKILL.md +2 -2
  698. package/org-skills/queen-coordinator/SKILL.md +2 -2
  699. package/org-skills/quorum-manager/SKILL.md +2 -2
  700. package/org-skills/raft-manager/SKILL.md +2 -2
  701. package/org-skills/rag-architect/SKILL.md +2 -2
  702. package/org-skills/rails-patterns/SKILL.md +2 -2
  703. package/org-skills/react-expert/SKILL.md +2 -2
  704. package/org-skills/react-native-expert/SKILL.md +2 -2
  705. package/org-skills/react-native-patterns/SKILL.md +2 -2
  706. package/org-skills/react-patterns/SKILL.md +2 -2
  707. package/org-skills/react-performance/SKILL.md +2 -2
  708. package/org-skills/react-testing/SKILL.md +2 -2
  709. package/org-skills/reality-checker/SKILL.md +2 -2
  710. package/org-skills/receiving-code-review/SKILL.md +2 -2
  711. package/org-skills/recruitment/SKILL.md +2 -2
  712. package/org-skills/redis-patterns/SKILL.md +2 -2
  713. package/org-skills/referral-programs/SKILL.md +2 -2
  714. package/org-skills/release-manager/SKILL.md +2 -2
  715. package/org-skills/repo-architect/SKILL.md +2 -2
  716. package/org-skills/researcher/SKILL.md +2 -2
  717. package/org-skills/resource-allocator/SKILL.md +2 -2
  718. package/org-skills/responsive-design/SKILL.md +2 -2
  719. package/org-skills/returns-reverse-logistics/SKILL.md +2 -2
  720. package/org-skills/reviewer/SKILL.md +2 -2
  721. package/org-skills/revops/SKILL.md +2 -2
  722. package/org-skills/roadmap-communicator/SKILL.md +2 -2
  723. package/org-skills/rust-engineer/SKILL.md +2 -2
  724. package/org-skills/rust-patterns/SKILL.md +2 -2
  725. package/org-skills/safe-executor/SKILL.md +2 -2
  726. package/org-skills/sales-coach/SKILL.md +2 -2
  727. package/org-skills/sales-enablement/SKILL.md +2 -2
  728. package/org-skills/sales-engineer/SKILL.md +2 -2
  729. package/org-skills/sales-prospecting/SKILL.md +2 -2
  730. package/org-skills/schema-markup/SKILL.md +2 -2
  731. package/org-skills/scientific-brainstorming/SKILL.md +2 -2
  732. package/org-skills/scientific-critical-thinking/SKILL.md +2 -2
  733. package/org-skills/scientific-thinking-literature-review/SKILL.md +2 -2
  734. package/org-skills/scientific-thinking-scholar-evaluation/SKILL.md +2 -2
  735. package/org-skills/scientific-visualization/SKILL.md +2 -2
  736. package/org-skills/scientific-writing/SKILL.md +2 -2
  737. package/org-skills/scout-explorer/SKILL.md +2 -2
  738. package/org-skills/secrets-vault-manager/SKILL.md +2 -2
  739. package/org-skills/secure-code-guardian/SKILL.md +2 -2
  740. package/org-skills/security-architect/SKILL.md +2 -2
  741. package/org-skills/security-auditor/SKILL.md +2 -2
  742. package/org-skills/security-review/SKILL.md +2 -2
  743. package/org-skills/security-reviewer/SKILL.md +2 -2
  744. package/org-skills/senior-data-scientist/SKILL.md +2 -2
  745. package/org-skills/senior-developer/SKILL.md +2 -2
  746. package/org-skills/senior-pm/SKILL.md +2 -2
  747. package/org-skills/senior-pm-playbook/SKILL.md +2 -2
  748. package/org-skills/seo/SKILL.md +2 -2
  749. package/org-skills/seo-audit/SKILL.md +2 -2
  750. package/org-skills/seo-specialist/SKILL.md +2 -2
  751. package/org-skills/shap-model-explainability/SKILL.md +2 -2
  752. package/org-skills/signup-flow-cro/SKILL.md +2 -2
  753. package/org-skills/site-architecture/SKILL.md +2 -2
  754. package/org-skills/sms-marketing/SKILL.md +2 -2
  755. package/org-skills/soc2-compliance/SKILL.md +2 -2
  756. package/org-skills/social-content/SKILL.md +2 -2
  757. package/org-skills/social-media/SKILL.md +2 -2
  758. package/org-skills/social-media-manager/SKILL.md +2 -2
  759. package/org-skills/solidity-engineer/SKILL.md +2 -2
  760. package/org-skills/spark-engineer/SKILL.md +2 -2
  761. package/org-skills/spec-driven-workflow/SKILL.md +2 -2
  762. package/org-skills/springboot-patterns/SKILL.md +2 -2
  763. package/org-skills/sprint-prioritizer/SKILL.md +2 -2
  764. package/org-skills/sql-pro/SKILL.md +2 -2
  765. package/org-skills/sre/SKILL.md +2 -2
  766. package/org-skills/sre-engineer/SKILL.md +2 -2
  767. package/org-skills/startup-financial-modeling/SKILL.md +2 -2
  768. package/org-skills/startup-metrics-framework/SKILL.md +2 -2
  769. package/org-skills/statistical-analysis/SKILL.md +2 -2
  770. package/org-skills/statistical-power/SKILL.md +2 -2
  771. package/org-skills/stride-analysis-patterns/SKILL.md +2 -2
  772. package/org-skills/stripe-integration/SKILL.md +2 -2
  773. package/org-skills/studio-operations/SKILL.md +2 -2
  774. package/org-skills/studio-producer/SKILL.md +2 -2
  775. package/org-skills/support-responder/SKILL.md +2 -2
  776. package/org-skills/swift-expert/SKILL.md +2 -2
  777. package/org-skills/swiftui-patterns/SKILL.md +2 -2
  778. package/org-skills/system-architect/SKILL.md +2 -2
  779. package/org-skills/systematic-debugging/SKILL.md +2 -2
  780. package/org-skills/task-orchestrator/SKILL.md +2 -2
  781. package/org-skills/team-communications/SKILL.md +2 -2
  782. package/org-skills/team-composition-analysis/SKILL.md +2 -2
  783. package/org-skills/technical-artist/SKILL.md +2 -2
  784. package/org-skills/technical-writer/SKILL.md +2 -2
  785. package/org-skills/terraform-engineer/SKILL.md +2 -2
  786. package/org-skills/test-driven-development/SKILL.md +2 -2
  787. package/org-skills/test-master/SKILL.md +2 -2
  788. package/org-skills/tester/SKILL.md +2 -2
  789. package/org-skills/the-fool/SKILL.md +2 -2
  790. package/org-skills/theme-factory/SKILL.md +2 -2
  791. package/org-skills/threat-detection/SKILL.md +2 -2
  792. package/org-skills/threat-mitigation-mapping/SKILL.md +2 -2
  793. package/org-skills/trend-researcher/SKILL.md +2 -2
  794. package/org-skills/trial-director/SKILL.md +2 -2
  795. package/org-skills/typescript-pro/SKILL.md +2 -2
  796. package/org-skills/unity-architect/SKILL.md +2 -2
  797. package/org-skills/using-git-worktrees/SKILL.md +2 -2
  798. package/org-skills/ux-researcher-designer/SKILL.md +2 -2
  799. package/org-skills/verification-before-completion/SKILL.md +2 -2
  800. package/org-skills/visionos-engineer/SKILL.md +2 -2
  801. package/org-skills/visual-design-foundations/SKILL.md +2 -2
  802. package/org-skills/vue-expert/SKILL.md +2 -2
  803. package/org-skills/vue-patterns/SKILL.md +2 -2
  804. package/org-skills/worker-specialist/SKILL.md +2 -2
  805. package/org-skills/workflow-architect/SKILL.md +2 -2
  806. package/org-skills/workflow-automation/SKILL.md +2 -2
  807. package/org-skills/writing-plans/SKILL.md +2 -2
  808. package/org-skills/zk-steward/SKILL.md +2 -2
  809. package/package.json +5 -5
  810. package/.claude/helpers/skill-registry.json +0 -5997
  811. package/dist/src/routing/jev-step.d.ts +0 -17
  812. package/dist/src/routing/jev-step.d.ts.map +0 -1
  813. package/dist/src/routing/jev-step.js +0 -27
  814. package/dist/src/routing/jev-step.js.map +0 -1
  815. package/org-skills/accessibility/LICENSE.txt +0 -21
  816. package/org-skills/accessibility/SKILL.md +0 -149
  817. package/org-skills/database-migration/LICENSE.txt +0 -21
  818. package/org-skills/database-migration/SKILL.md +0 -337
  819. package/org-skills/database-migration/references/details.md +0 -76
  820. package/org-skills/error-handling-patterns/LICENSE.txt +0 -21
  821. package/org-skills/error-handling-patterns/SKILL.md +0 -126
  822. package/org-skills/error-handling-patterns/references/details.md +0 -516
  823. package/org-skills/internal-comms/LICENSE.txt +0 -202
  824. package/org-skills/internal-comms/SKILL.md +0 -36
  825. package/org-skills/internal-comms/examples/3p-updates.md +0 -47
  826. package/org-skills/internal-comms/examples/company-newsletter.md +0 -65
  827. package/org-skills/internal-comms/examples/faq-answers.md +0 -30
  828. package/org-skills/internal-comms/examples/general-comms.md +0 -16
@@ -1,126 +0,0 @@
1
- ---
2
- name: error-handling-patterns
3
- description: "Master error handling patterns across languages including exceptions, Result types, error propagation, and graceful degradation to build resilient applications. Use when implementing error handling, designing APIs, or improving application reliability."
4
- tags: ["engineering"]
5
- tools: ["monograph_query","monograph_context"]
6
- license: MIT
7
- source: https://github.com/wshobson/agents
8
- source_path: "plugins/developer-essentials/skills/error-handling-patterns"
9
- source_commit: 4236bb91f8395b0435f1d8b8baf9e8e4c69a8620
10
- ---
11
- # Error Handling Patterns
12
-
13
- Build resilient applications with robust error handling strategies that gracefully handle failures and provide excellent debugging experiences.
14
-
15
- ## When to Use This Skill
16
-
17
- - Implementing error handling in new features
18
- - Designing error-resilient APIs
19
- - Debugging production issues
20
- - Improving application reliability
21
- - Creating better error messages for users and developers
22
- - Implementing retry and circuit breaker patterns
23
- - Handling async/concurrent errors
24
- - Building fault-tolerant distributed systems
25
-
26
- ## Core Concepts
27
-
28
- ### 1. Error Handling Philosophies
29
-
30
- **Exceptions vs Result Types:**
31
-
32
- - **Exceptions**: Traditional try-catch, disrupts control flow
33
- - **Result Types**: Explicit success/failure, functional approach
34
- - **Error Codes**: C-style, requires discipline
35
- - **Option/Maybe Types**: For nullable values
36
-
37
- **When to Use Each:**
38
-
39
- - Exceptions: Unexpected errors, exceptional conditions
40
- - Result Types: Expected errors, validation failures
41
- - Panics/Crashes: Unrecoverable errors, programming bugs
42
-
43
- ### 2. Error Categories
44
-
45
- **Recoverable Errors:**
46
-
47
- - Network timeouts
48
- - Missing files
49
- - Invalid user input
50
- - API rate limits
51
-
52
- **Unrecoverable Errors:**
53
-
54
- - Out of memory
55
- - Stack overflow
56
- - Programming bugs (null pointer, etc.)
57
-
58
- ## Detailed patterns and worked examples
59
-
60
- Detailed pattern documentation lives in `references/details.md`. Read that file when the navigation tier above is insufficient.
61
-
62
- ## Best Practices
63
-
64
- 1. **Fail Fast**: Validate input early, fail quickly
65
- 2. **Preserve Context**: Include stack traces, metadata, timestamps
66
- 3. **Meaningful Messages**: Explain what happened and how to fix it
67
- 4. **Log Appropriately**: Error = log, expected failure = don't spam logs
68
- 5. **Handle at Right Level**: Catch where you can meaningfully handle
69
- 6. **Clean Up Resources**: Use try-finally, context managers, defer
70
- 7. **Don't Swallow Errors**: Log or re-throw, don't silently ignore
71
- 8. **Type-Safe Errors**: Use typed errors when possible
72
-
73
- ```python
74
- # Good error handling example
75
- def process_order(order_id: str) -> Order:
76
- """Process order with comprehensive error handling."""
77
- try:
78
- # Validate input
79
- if not order_id:
80
- raise ValidationError("Order ID is required")
81
-
82
- # Fetch order
83
- order = db.get_order(order_id)
84
- if not order:
85
- raise NotFoundError("Order", order_id)
86
-
87
- # Process payment
88
- try:
89
- payment_result = payment_service.charge(order.total)
90
- except PaymentServiceError as e:
91
- # Log and wrap external service error
92
- logger.error(f"Payment failed for order {order_id}: {e}")
93
- raise ExternalServiceError(
94
- f"Payment processing failed",
95
- service="payment_service",
96
- details={"order_id": order_id, "amount": order.total}
97
- ) from e
98
-
99
- # Update order
100
- order.status = "completed"
101
- order.payment_id = payment_result.id
102
- db.save(order)
103
-
104
- return order
105
-
106
- except ApplicationError:
107
- # Re-raise known application errors
108
- raise
109
- except Exception as e:
110
- # Log unexpected errors
111
- logger.exception(f"Unexpected error processing order {order_id}")
112
- raise ApplicationError(
113
- "Order processing failed",
114
- code="INTERNAL_ERROR"
115
- ) from e
116
- ```
117
-
118
- ## Common Pitfalls
119
-
120
- - **Catching Too Broadly**: `except Exception` hides bugs
121
- - **Empty Catch Blocks**: Silently swallowing errors
122
- - **Logging and Re-throwing**: Creates duplicate log entries
123
- - **Not Cleaning Up**: Forgetting to close files, connections
124
- - **Poor Error Messages**: "Error occurred" is not helpful
125
- - **Returning Error Codes**: Use exceptions or Result types
126
- - **Ignoring Async Errors**: Unhandled promise rejections
@@ -1,516 +0,0 @@
1
- # error-handling-patterns — detailed patterns and worked examples
2
-
3
- ## Language-Specific Patterns
4
-
5
- ### Python Error Handling
6
-
7
- **Custom Exception Hierarchy:**
8
-
9
- ```python
10
- class ApplicationError(Exception):
11
- """Base exception for all application errors."""
12
- def __init__(self, message: str, code: str = None, details: dict = None):
13
- super().__init__(message)
14
- self.code = code
15
- self.details = details or {}
16
- self.timestamp = datetime.utcnow()
17
-
18
- class ValidationError(ApplicationError):
19
- """Raised when validation fails."""
20
- pass
21
-
22
- class NotFoundError(ApplicationError):
23
- """Raised when resource not found."""
24
- pass
25
-
26
- class ExternalServiceError(ApplicationError):
27
- """Raised when external service fails."""
28
- def __init__(self, message: str, service: str, **kwargs):
29
- super().__init__(message, **kwargs)
30
- self.service = service
31
-
32
- # Usage
33
- def get_user(user_id: str) -> User:
34
- user = db.query(User).filter_by(id=user_id).first()
35
- if not user:
36
- raise NotFoundError(
37
- f"User not found",
38
- code="USER_NOT_FOUND",
39
- details={"user_id": user_id}
40
- )
41
- return user
42
- ```
43
-
44
- **Context Managers for Cleanup:**
45
-
46
- ```python
47
- from contextlib import contextmanager
48
-
49
- @contextmanager
50
- def database_transaction(session):
51
- """Ensure transaction is committed or rolled back."""
52
- try:
53
- yield session
54
- session.commit()
55
- except Exception as e:
56
- session.rollback()
57
- raise
58
- finally:
59
- session.close()
60
-
61
- # Usage
62
- with database_transaction(db.session) as session:
63
- user = User(name="Alice")
64
- session.add(user)
65
- # Automatic commit or rollback
66
- ```
67
-
68
- **Retry with Exponential Backoff:**
69
-
70
- ```python
71
- import time
72
- from functools import wraps
73
- from typing import TypeVar, Callable
74
-
75
- T = TypeVar('T')
76
-
77
- def retry(
78
- max_attempts: int = 3,
79
- backoff_factor: float = 2.0,
80
- exceptions: tuple = (Exception,)
81
- ):
82
- """Retry decorator with exponential backoff."""
83
- def decorator(func: Callable[..., T]) -> Callable[..., T]:
84
- @wraps(func)
85
- def wrapper(*args, **kwargs) -> T:
86
- last_exception = None
87
- for attempt in range(max_attempts):
88
- try:
89
- return func(*args, **kwargs)
90
- except exceptions as e:
91
- last_exception = e
92
- if attempt < max_attempts - 1:
93
- sleep_time = backoff_factor ** attempt
94
- time.sleep(sleep_time)
95
- continue
96
- raise
97
- raise last_exception
98
- return wrapper
99
- return decorator
100
-
101
- # Usage
102
- @retry(max_attempts=3, exceptions=(NetworkError,))
103
- def fetch_data(url: str) -> dict:
104
- response = requests.get(url, timeout=5)
105
- response.raise_for_status()
106
- return response.json()
107
- ```
108
-
109
- ### TypeScript/JavaScript Error Handling
110
-
111
- **Custom Error Classes:**
112
-
113
- ```typescript
114
- // Custom error classes
115
- class ApplicationError extends Error {
116
- constructor(
117
- message: string,
118
- public code: string,
119
- public statusCode: number = 500,
120
- public details?: Record<string, any>,
121
- ) {
122
- super(message);
123
- this.name = this.constructor.name;
124
- Error.captureStackTrace(this, this.constructor);
125
- }
126
- }
127
-
128
- class ValidationError extends ApplicationError {
129
- constructor(message: string, details?: Record<string, any>) {
130
- super(message, "VALIDATION_ERROR", 400, details);
131
- }
132
- }
133
-
134
- class NotFoundError extends ApplicationError {
135
- constructor(resource: string, id: string) {
136
- super(`${resource} not found`, "NOT_FOUND", 404, { resource, id });
137
- }
138
- }
139
-
140
- // Usage
141
- function getUser(id: string): User {
142
- const user = users.find((u) => u.id === id);
143
- if (!user) {
144
- throw new NotFoundError("User", id);
145
- }
146
- return user;
147
- }
148
- ```
149
-
150
- **Result Type Pattern:**
151
-
152
- ```typescript
153
- // Result type for explicit error handling
154
- type Result<T, E = Error> = { ok: true; value: T } | { ok: false; error: E };
155
-
156
- // Helper functions
157
- function Ok<T>(value: T): Result<T, never> {
158
- return { ok: true, value };
159
- }
160
-
161
- function Err<E>(error: E): Result<never, E> {
162
- return { ok: false, error };
163
- }
164
-
165
- // Usage
166
- function parseJSON<T>(json: string): Result<T, SyntaxError> {
167
- try {
168
- const value = JSON.parse(json) as T;
169
- return Ok(value);
170
- } catch (error) {
171
- return Err(error as SyntaxError);
172
- }
173
- }
174
-
175
- // Consuming Result
176
- const result = parseJSON<User>(userJson);
177
- if (result.ok) {
178
- console.log(result.value.name);
179
- } else {
180
- console.error("Parse failed:", result.error.message);
181
- }
182
-
183
- // Chaining Results
184
- function chain<T, U, E>(
185
- result: Result<T, E>,
186
- fn: (value: T) => Result<U, E>,
187
- ): Result<U, E> {
188
- return result.ok ? fn(result.value) : result;
189
- }
190
- ```
191
-
192
- **Async Error Handling:**
193
-
194
- ```typescript
195
- // Async/await with proper error handling
196
- async function fetchUserOrders(userId: string): Promise<Order[]> {
197
- try {
198
- const user = await getUser(userId);
199
- const orders = await getOrders(user.id);
200
- return orders;
201
- } catch (error) {
202
- if (error instanceof NotFoundError) {
203
- return []; // Return empty array for not found
204
- }
205
- if (error instanceof NetworkError) {
206
- // Retry logic
207
- return retryFetchOrders(userId);
208
- }
209
- // Re-throw unexpected errors
210
- throw error;
211
- }
212
- }
213
-
214
- // Promise error handling
215
- function fetchData(url: string): Promise<Data> {
216
- return fetch(url)
217
- .then((response) => {
218
- if (!response.ok) {
219
- throw new NetworkError(`HTTP ${response.status}`);
220
- }
221
- return response.json();
222
- })
223
- .catch((error) => {
224
- console.error("Fetch failed:", error);
225
- throw error;
226
- });
227
- }
228
- ```
229
-
230
- ### Rust Error Handling
231
-
232
- **Result and Option Types:**
233
-
234
- ```rust
235
- use std::fs::File;
236
- use std::io::{self, Read};
237
-
238
- // Result type for operations that can fail
239
- fn read_file(path: &str) -> Result<String, io::Error> {
240
- let mut file = File::open(path)?; // ? operator propagates errors
241
- let mut contents = String::new();
242
- file.read_to_string(&mut contents)?;
243
- Ok(contents)
244
- }
245
-
246
- // Custom error types
247
- #[derive(Debug)]
248
- enum AppError {
249
- Io(io::Error),
250
- Parse(std::num::ParseIntError),
251
- NotFound(String),
252
- Validation(String),
253
- }
254
-
255
- impl From<io::Error> for AppError {
256
- fn from(error: io::Error) -> Self {
257
- AppError::Io(error)
258
- }
259
- }
260
-
261
- // Using custom error type
262
- fn read_number_from_file(path: &str) -> Result<i32, AppError> {
263
- let contents = read_file(path)?; // Auto-converts io::Error
264
- let number = contents.trim().parse()
265
- .map_err(AppError::Parse)?; // Explicitly convert ParseIntError
266
- Ok(number)
267
- }
268
-
269
- // Option for nullable values
270
- fn find_user(id: &str) -> Option<User> {
271
- users.iter().find(|u| u.id == id).cloned()
272
- }
273
-
274
- // Combining Option and Result
275
- fn get_user_age(id: &str) -> Result<u32, AppError> {
276
- find_user(id)
277
- .ok_or_else(|| AppError::NotFound(id.to_string()))
278
- .map(|user| user.age)
279
- }
280
- ```
281
-
282
- ### Go Error Handling
283
-
284
- **Explicit Error Returns:**
285
-
286
- ```go
287
- // Basic error handling
288
- func getUser(id string) (*User, error) {
289
- user, err := db.QueryUser(id)
290
- if err != nil {
291
- return nil, fmt.Errorf("failed to query user: %w", err)
292
- }
293
- if user == nil {
294
- return nil, errors.New("user not found")
295
- }
296
- return user, nil
297
- }
298
-
299
- // Custom error types
300
- type ValidationError struct {
301
- Field string
302
- Message string
303
- }
304
-
305
- func (e *ValidationError) Error() string {
306
- return fmt.Sprintf("validation failed for %s: %s", e.Field, e.Message)
307
- }
308
-
309
- // Sentinel errors for comparison
310
- var (
311
- ErrNotFound = errors.New("not found")
312
- ErrUnauthorized = errors.New("unauthorized")
313
- ErrInvalidInput = errors.New("invalid input")
314
- )
315
-
316
- // Error checking
317
- user, err := getUser("123")
318
- if err != nil {
319
- if errors.Is(err, ErrNotFound) {
320
- // Handle not found
321
- } else {
322
- // Handle other errors
323
- }
324
- }
325
-
326
- // Error wrapping and unwrapping
327
- func processUser(id string) error {
328
- user, err := getUser(id)
329
- if err != nil {
330
- return fmt.Errorf("process user failed: %w", err)
331
- }
332
- // Process user
333
- return nil
334
- }
335
-
336
- // Unwrap errors
337
- err := processUser("123")
338
- if err != nil {
339
- var valErr *ValidationError
340
- if errors.As(err, &valErr) {
341
- fmt.Printf("Validation error: %s\n", valErr.Field)
342
- }
343
- }
344
- ```
345
-
346
- ## Universal Patterns
347
-
348
- ### Pattern 1: Circuit Breaker
349
-
350
- Prevent cascading failures in distributed systems.
351
-
352
- ```python
353
- from enum import Enum
354
- from datetime import datetime, timedelta
355
- from typing import Callable, TypeVar
356
-
357
- T = TypeVar('T')
358
-
359
- class CircuitState(Enum):
360
- CLOSED = "closed" # Normal operation
361
- OPEN = "open" # Failing, reject requests
362
- HALF_OPEN = "half_open" # Testing if recovered
363
-
364
- class CircuitBreaker:
365
- def __init__(
366
- self,
367
- failure_threshold: int = 5,
368
- timeout: timedelta = timedelta(seconds=60),
369
- success_threshold: int = 2
370
- ):
371
- self.failure_threshold = failure_threshold
372
- self.timeout = timeout
373
- self.success_threshold = success_threshold
374
- self.failure_count = 0
375
- self.success_count = 0
376
- self.state = CircuitState.CLOSED
377
- self.last_failure_time = None
378
-
379
- def call(self, func: Callable[[], T]) -> T:
380
- if self.state == CircuitState.OPEN:
381
- if datetime.now() - self.last_failure_time > self.timeout:
382
- self.state = CircuitState.HALF_OPEN
383
- self.success_count = 0
384
- else:
385
- raise Exception("Circuit breaker is OPEN")
386
-
387
- try:
388
- result = func()
389
- self.on_success()
390
- return result
391
- except Exception as e:
392
- self.on_failure()
393
- raise
394
-
395
- def on_success(self):
396
- self.failure_count = 0
397
- if self.state == CircuitState.HALF_OPEN:
398
- self.success_count += 1
399
- if self.success_count >= self.success_threshold:
400
- self.state = CircuitState.CLOSED
401
- self.success_count = 0
402
-
403
- def on_failure(self):
404
- self.failure_count += 1
405
- self.last_failure_time = datetime.now()
406
- if self.failure_count >= self.failure_threshold:
407
- self.state = CircuitState.OPEN
408
-
409
- # Usage
410
- circuit_breaker = CircuitBreaker()
411
-
412
- def fetch_data():
413
- return circuit_breaker.call(lambda: external_api.get_data())
414
- ```
415
-
416
- ### Pattern 2: Error Aggregation
417
-
418
- Collect multiple errors instead of failing on first error.
419
-
420
- ```typescript
421
- class ErrorCollector {
422
- private errors: Error[] = [];
423
-
424
- add(error: Error): void {
425
- this.errors.push(error);
426
- }
427
-
428
- hasErrors(): boolean {
429
- return this.errors.length > 0;
430
- }
431
-
432
- getErrors(): Error[] {
433
- return [...this.errors];
434
- }
435
-
436
- throw(): never {
437
- if (this.errors.length === 1) {
438
- throw this.errors[0];
439
- }
440
- throw new AggregateError(
441
- this.errors,
442
- `${this.errors.length} errors occurred`,
443
- );
444
- }
445
- }
446
-
447
- // Usage: Validate multiple fields
448
- function validateUser(data: any): User {
449
- const errors = new ErrorCollector();
450
-
451
- if (!data.email) {
452
- errors.add(new ValidationError("Email is required"));
453
- } else if (!isValidEmail(data.email)) {
454
- errors.add(new ValidationError("Email is invalid"));
455
- }
456
-
457
- if (!data.name || data.name.length < 2) {
458
- errors.add(new ValidationError("Name must be at least 2 characters"));
459
- }
460
-
461
- if (!data.age || data.age < 18) {
462
- errors.add(new ValidationError("Age must be 18 or older"));
463
- }
464
-
465
- if (errors.hasErrors()) {
466
- errors.throw();
467
- }
468
-
469
- return data as User;
470
- }
471
- ```
472
-
473
- ### Pattern 3: Graceful Degradation
474
-
475
- Provide fallback functionality when errors occur.
476
-
477
- ```python
478
- from typing import Optional, Callable, TypeVar
479
-
480
- T = TypeVar('T')
481
-
482
- def with_fallback(
483
- primary: Callable[[], T],
484
- fallback: Callable[[], T],
485
- log_error: bool = True
486
- ) -> T:
487
- """Try primary function, fall back to fallback on error."""
488
- try:
489
- return primary()
490
- except Exception as e:
491
- if log_error:
492
- logger.error(f"Primary function failed: {e}")
493
- return fallback()
494
-
495
- # Usage
496
- def get_user_profile(user_id: str) -> UserProfile:
497
- return with_fallback(
498
- primary=lambda: fetch_from_cache(user_id),
499
- fallback=lambda: fetch_from_database(user_id)
500
- )
501
-
502
- # Multiple fallbacks
503
- def get_exchange_rate(currency: str) -> float:
504
- return (
505
- try_function(lambda: api_provider_1.get_rate(currency))
506
- or try_function(lambda: api_provider_2.get_rate(currency))
507
- or try_function(lambda: cache.get_rate(currency))
508
- or DEFAULT_RATE
509
- )
510
-
511
- def try_function(func: Callable[[], Optional[T]]) -> Optional[T]:
512
- try:
513
- return func()
514
- except Exception:
515
- return None
516
- ```