loudmouth-ai 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (593) hide show
  1. package/README.md +148 -77
  2. package/dist/build-info.json +3 -3
  3. package/extensions/package.json +6 -0
  4. package/package.json +1 -1
  5. package/skills/autopilot/SKILL.md +179 -0
  6. package/skills/goals/SKILL.md +189 -0
  7. package/skills/wordpress/SKILL.md +232 -0
  8. package/extensions/bluebubbles/clawdbot.plugin.json +0 -11
  9. package/extensions/bluebubbles/index.ts +0 -20
  10. package/extensions/bluebubbles/package.json +0 -33
  11. package/extensions/bluebubbles/src/accounts.ts +0 -80
  12. package/extensions/bluebubbles/src/actions.test.ts +0 -651
  13. package/extensions/bluebubbles/src/actions.ts +0 -403
  14. package/extensions/bluebubbles/src/attachments.test.ts +0 -346
  15. package/extensions/bluebubbles/src/attachments.ts +0 -282
  16. package/extensions/bluebubbles/src/channel.ts +0 -399
  17. package/extensions/bluebubbles/src/chat.test.ts +0 -462
  18. package/extensions/bluebubbles/src/chat.ts +0 -354
  19. package/extensions/bluebubbles/src/config-schema.ts +0 -51
  20. package/extensions/bluebubbles/src/media-send.ts +0 -168
  21. package/extensions/bluebubbles/src/monitor.test.ts +0 -2140
  22. package/extensions/bluebubbles/src/monitor.ts +0 -2101
  23. package/extensions/bluebubbles/src/onboarding.ts +0 -340
  24. package/extensions/bluebubbles/src/probe.ts +0 -127
  25. package/extensions/bluebubbles/src/reactions.test.ts +0 -393
  26. package/extensions/bluebubbles/src/reactions.ts +0 -183
  27. package/extensions/bluebubbles/src/runtime.ts +0 -14
  28. package/extensions/bluebubbles/src/send.test.ts +0 -809
  29. package/extensions/bluebubbles/src/send.ts +0 -418
  30. package/extensions/bluebubbles/src/targets.test.ts +0 -184
  31. package/extensions/bluebubbles/src/targets.ts +0 -323
  32. package/extensions/bluebubbles/src/types.ts +0 -127
  33. package/extensions/copilot-proxy/README.md +0 -24
  34. package/extensions/copilot-proxy/clawdbot.plugin.json +0 -11
  35. package/extensions/copilot-proxy/index.ts +0 -142
  36. package/extensions/copilot-proxy/package.json +0 -11
  37. package/extensions/google-antigravity-auth/README.md +0 -24
  38. package/extensions/google-antigravity-auth/clawdbot.plugin.json +0 -11
  39. package/extensions/google-antigravity-auth/index.ts +0 -437
  40. package/extensions/google-antigravity-auth/package.json +0 -11
  41. package/extensions/google-gemini-cli-auth/README.md +0 -35
  42. package/extensions/google-gemini-cli-auth/clawdbot.plugin.json +0 -11
  43. package/extensions/google-gemini-cli-auth/index.ts +0 -91
  44. package/extensions/google-gemini-cli-auth/oauth.test.ts +0 -228
  45. package/extensions/google-gemini-cli-auth/oauth.ts +0 -580
  46. package/extensions/google-gemini-cli-auth/package.json +0 -11
  47. package/extensions/googlechat/clawdbot.plugin.json +0 -11
  48. package/extensions/googlechat/index.ts +0 -20
  49. package/extensions/googlechat/package.json +0 -39
  50. package/extensions/googlechat/src/accounts.ts +0 -133
  51. package/extensions/googlechat/src/actions.ts +0 -162
  52. package/extensions/googlechat/src/api.test.ts +0 -62
  53. package/extensions/googlechat/src/api.ts +0 -259
  54. package/extensions/googlechat/src/auth.ts +0 -113
  55. package/extensions/googlechat/src/channel.ts +0 -580
  56. package/extensions/googlechat/src/monitor.test.ts +0 -27
  57. package/extensions/googlechat/src/monitor.ts +0 -900
  58. package/extensions/googlechat/src/onboarding.ts +0 -278
  59. package/extensions/googlechat/src/runtime.ts +0 -14
  60. package/extensions/googlechat/src/targets.test.ts +0 -35
  61. package/extensions/googlechat/src/targets.ts +0 -55
  62. package/extensions/googlechat/src/types.config.ts +0 -3
  63. package/extensions/googlechat/src/types.ts +0 -73
  64. package/extensions/imessage/clawdbot.plugin.json +0 -11
  65. package/extensions/imessage/index.ts +0 -18
  66. package/extensions/imessage/package.json +0 -11
  67. package/extensions/imessage/src/channel.ts +0 -294
  68. package/extensions/imessage/src/runtime.ts +0 -14
  69. package/extensions/line/clawdbot.plugin.json +0 -11
  70. package/extensions/line/index.ts +0 -20
  71. package/extensions/line/package.json +0 -29
  72. package/extensions/line/src/card-command.ts +0 -338
  73. package/extensions/line/src/channel.logout.test.ts +0 -96
  74. package/extensions/line/src/channel.sendPayload.test.ts +0 -308
  75. package/extensions/line/src/channel.ts +0 -773
  76. package/extensions/line/src/runtime.ts +0 -14
  77. package/extensions/matrix/CHANGELOG.md +0 -54
  78. package/extensions/matrix/clawdbot.plugin.json +0 -11
  79. package/extensions/matrix/index.ts +0 -18
  80. package/extensions/matrix/package.json +0 -36
  81. package/extensions/matrix/src/actions.ts +0 -185
  82. package/extensions/matrix/src/channel.directory.test.ts +0 -56
  83. package/extensions/matrix/src/channel.ts +0 -417
  84. package/extensions/matrix/src/config-schema.ts +0 -62
  85. package/extensions/matrix/src/directory-live.ts +0 -175
  86. package/extensions/matrix/src/group-mentions.ts +0 -61
  87. package/extensions/matrix/src/matrix/accounts.test.ts +0 -83
  88. package/extensions/matrix/src/matrix/accounts.ts +0 -63
  89. package/extensions/matrix/src/matrix/actions/client.ts +0 -53
  90. package/extensions/matrix/src/matrix/actions/messages.ts +0 -120
  91. package/extensions/matrix/src/matrix/actions/pins.ts +0 -70
  92. package/extensions/matrix/src/matrix/actions/reactions.ts +0 -84
  93. package/extensions/matrix/src/matrix/actions/room.ts +0 -88
  94. package/extensions/matrix/src/matrix/actions/summary.ts +0 -77
  95. package/extensions/matrix/src/matrix/actions/types.ts +0 -84
  96. package/extensions/matrix/src/matrix/actions.ts +0 -15
  97. package/extensions/matrix/src/matrix/active-client.ts +0 -11
  98. package/extensions/matrix/src/matrix/client/config.ts +0 -165
  99. package/extensions/matrix/src/matrix/client/create-client.ts +0 -127
  100. package/extensions/matrix/src/matrix/client/logging.ts +0 -35
  101. package/extensions/matrix/src/matrix/client/runtime.ts +0 -4
  102. package/extensions/matrix/src/matrix/client/shared.ts +0 -169
  103. package/extensions/matrix/src/matrix/client/storage.ts +0 -131
  104. package/extensions/matrix/src/matrix/client/types.ts +0 -34
  105. package/extensions/matrix/src/matrix/client.test.ts +0 -57
  106. package/extensions/matrix/src/matrix/client.ts +0 -9
  107. package/extensions/matrix/src/matrix/credentials.ts +0 -103
  108. package/extensions/matrix/src/matrix/deps.ts +0 -57
  109. package/extensions/matrix/src/matrix/format.test.ts +0 -34
  110. package/extensions/matrix/src/matrix/format.ts +0 -22
  111. package/extensions/matrix/src/matrix/index.ts +0 -11
  112. package/extensions/matrix/src/matrix/monitor/allowlist.ts +0 -58
  113. package/extensions/matrix/src/matrix/monitor/auto-join.ts +0 -68
  114. package/extensions/matrix/src/matrix/monitor/direct.ts +0 -105
  115. package/extensions/matrix/src/matrix/monitor/events.ts +0 -103
  116. package/extensions/matrix/src/matrix/monitor/handler.ts +0 -645
  117. package/extensions/matrix/src/matrix/monitor/index.ts +0 -279
  118. package/extensions/matrix/src/matrix/monitor/location.ts +0 -83
  119. package/extensions/matrix/src/matrix/monitor/media.test.ts +0 -103
  120. package/extensions/matrix/src/matrix/monitor/media.ts +0 -113
  121. package/extensions/matrix/src/matrix/monitor/mentions.ts +0 -31
  122. package/extensions/matrix/src/matrix/monitor/replies.ts +0 -96
  123. package/extensions/matrix/src/matrix/monitor/room-info.ts +0 -58
  124. package/extensions/matrix/src/matrix/monitor/rooms.ts +0 -43
  125. package/extensions/matrix/src/matrix/monitor/threads.ts +0 -64
  126. package/extensions/matrix/src/matrix/monitor/types.ts +0 -39
  127. package/extensions/matrix/src/matrix/poll-types.test.ts +0 -22
  128. package/extensions/matrix/src/matrix/poll-types.ts +0 -157
  129. package/extensions/matrix/src/matrix/probe.ts +0 -70
  130. package/extensions/matrix/src/matrix/send/client.ts +0 -63
  131. package/extensions/matrix/src/matrix/send/formatting.ts +0 -92
  132. package/extensions/matrix/src/matrix/send/media.ts +0 -220
  133. package/extensions/matrix/src/matrix/send/targets.test.ts +0 -102
  134. package/extensions/matrix/src/matrix/send/targets.ts +0 -144
  135. package/extensions/matrix/src/matrix/send/types.ts +0 -109
  136. package/extensions/matrix/src/matrix/send.test.ts +0 -172
  137. package/extensions/matrix/src/matrix/send.ts +0 -255
  138. package/extensions/matrix/src/onboarding.ts +0 -432
  139. package/extensions/matrix/src/outbound.ts +0 -53
  140. package/extensions/matrix/src/resolve-targets.ts +0 -89
  141. package/extensions/matrix/src/runtime.ts +0 -14
  142. package/extensions/matrix/src/tool-actions.ts +0 -160
  143. package/extensions/matrix/src/types.ts +0 -95
  144. package/extensions/mattermost/clawdbot.plugin.json +0 -11
  145. package/extensions/mattermost/index.ts +0 -18
  146. package/extensions/mattermost/package.json +0 -25
  147. package/extensions/mattermost/src/channel.test.ts +0 -43
  148. package/extensions/mattermost/src/channel.ts +0 -339
  149. package/extensions/mattermost/src/config-schema.ts +0 -56
  150. package/extensions/mattermost/src/group-mentions.ts +0 -14
  151. package/extensions/mattermost/src/mattermost/accounts.ts +0 -115
  152. package/extensions/mattermost/src/mattermost/client.ts +0 -208
  153. package/extensions/mattermost/src/mattermost/index.ts +0 -9
  154. package/extensions/mattermost/src/mattermost/monitor-helpers.ts +0 -150
  155. package/extensions/mattermost/src/mattermost/monitor.ts +0 -921
  156. package/extensions/mattermost/src/mattermost/probe.ts +0 -70
  157. package/extensions/mattermost/src/mattermost/send.ts +0 -217
  158. package/extensions/mattermost/src/normalize.ts +0 -38
  159. package/extensions/mattermost/src/onboarding-helpers.ts +0 -42
  160. package/extensions/mattermost/src/onboarding.ts +0 -187
  161. package/extensions/mattermost/src/runtime.ts +0 -14
  162. package/extensions/mattermost/src/types.ts +0 -50
  163. package/extensions/msteams/CHANGELOG.md +0 -51
  164. package/extensions/msteams/clawdbot.plugin.json +0 -11
  165. package/extensions/msteams/index.ts +0 -18
  166. package/extensions/msteams/package.json +0 -36
  167. package/extensions/msteams/src/attachments/download.ts +0 -206
  168. package/extensions/msteams/src/attachments/graph.ts +0 -319
  169. package/extensions/msteams/src/attachments/html.ts +0 -76
  170. package/extensions/msteams/src/attachments/payload.ts +0 -22
  171. package/extensions/msteams/src/attachments/shared.ts +0 -235
  172. package/extensions/msteams/src/attachments/types.ts +0 -37
  173. package/extensions/msteams/src/attachments.test.ts +0 -424
  174. package/extensions/msteams/src/attachments.ts +0 -18
  175. package/extensions/msteams/src/channel.directory.test.ts +0 -46
  176. package/extensions/msteams/src/channel.ts +0 -436
  177. package/extensions/msteams/src/conversation-store-fs.test.ts +0 -88
  178. package/extensions/msteams/src/conversation-store-fs.ts +0 -155
  179. package/extensions/msteams/src/conversation-store-memory.ts +0 -45
  180. package/extensions/msteams/src/conversation-store.ts +0 -41
  181. package/extensions/msteams/src/directory-live.ts +0 -179
  182. package/extensions/msteams/src/errors.test.ts +0 -46
  183. package/extensions/msteams/src/errors.ts +0 -158
  184. package/extensions/msteams/src/file-consent-helpers.test.ts +0 -234
  185. package/extensions/msteams/src/file-consent-helpers.ts +0 -73
  186. package/extensions/msteams/src/file-consent.ts +0 -122
  187. package/extensions/msteams/src/graph-chat.ts +0 -52
  188. package/extensions/msteams/src/graph-upload.ts +0 -445
  189. package/extensions/msteams/src/inbound.test.ts +0 -67
  190. package/extensions/msteams/src/inbound.ts +0 -38
  191. package/extensions/msteams/src/index.ts +0 -4
  192. package/extensions/msteams/src/media-helpers.test.ts +0 -186
  193. package/extensions/msteams/src/media-helpers.ts +0 -77
  194. package/extensions/msteams/src/messenger.test.ts +0 -245
  195. package/extensions/msteams/src/messenger.ts +0 -460
  196. package/extensions/msteams/src/monitor-handler/inbound-media.ts +0 -123
  197. package/extensions/msteams/src/monitor-handler/message-handler.ts +0 -629
  198. package/extensions/msteams/src/monitor-handler.ts +0 -166
  199. package/extensions/msteams/src/monitor-types.ts +0 -5
  200. package/extensions/msteams/src/monitor.ts +0 -290
  201. package/extensions/msteams/src/onboarding.ts +0 -432
  202. package/extensions/msteams/src/outbound.ts +0 -47
  203. package/extensions/msteams/src/pending-uploads.ts +0 -87
  204. package/extensions/msteams/src/policy.test.ts +0 -210
  205. package/extensions/msteams/src/policy.ts +0 -202
  206. package/extensions/msteams/src/polls-store-memory.ts +0 -30
  207. package/extensions/msteams/src/polls-store.test.ts +0 -40
  208. package/extensions/msteams/src/polls.test.ts +0 -72
  209. package/extensions/msteams/src/polls.ts +0 -299
  210. package/extensions/msteams/src/probe.test.ts +0 -57
  211. package/extensions/msteams/src/probe.ts +0 -99
  212. package/extensions/msteams/src/reply-dispatcher.ts +0 -128
  213. package/extensions/msteams/src/resolve-allowlist.ts +0 -277
  214. package/extensions/msteams/src/runtime.ts +0 -14
  215. package/extensions/msteams/src/sdk-types.ts +0 -19
  216. package/extensions/msteams/src/sdk.ts +0 -33
  217. package/extensions/msteams/src/send-context.ts +0 -156
  218. package/extensions/msteams/src/send.ts +0 -489
  219. package/extensions/msteams/src/sent-message-cache.test.ts +0 -16
  220. package/extensions/msteams/src/sent-message-cache.ts +0 -41
  221. package/extensions/msteams/src/storage.ts +0 -22
  222. package/extensions/msteams/src/store-fs.ts +0 -80
  223. package/extensions/msteams/src/token.ts +0 -19
  224. package/extensions/nextcloud-talk/clawdbot.plugin.json +0 -11
  225. package/extensions/nextcloud-talk/index.ts +0 -18
  226. package/extensions/nextcloud-talk/package.json +0 -30
  227. package/extensions/nextcloud-talk/src/accounts.ts +0 -154
  228. package/extensions/nextcloud-talk/src/channel.ts +0 -404
  229. package/extensions/nextcloud-talk/src/config-schema.ts +0 -78
  230. package/extensions/nextcloud-talk/src/format.ts +0 -79
  231. package/extensions/nextcloud-talk/src/inbound.ts +0 -336
  232. package/extensions/nextcloud-talk/src/monitor.ts +0 -246
  233. package/extensions/nextcloud-talk/src/normalize.ts +0 -31
  234. package/extensions/nextcloud-talk/src/onboarding.ts +0 -341
  235. package/extensions/nextcloud-talk/src/policy.ts +0 -175
  236. package/extensions/nextcloud-talk/src/room-info.ts +0 -111
  237. package/extensions/nextcloud-talk/src/runtime.ts +0 -14
  238. package/extensions/nextcloud-talk/src/send.ts +0 -206
  239. package/extensions/nextcloud-talk/src/signature.ts +0 -67
  240. package/extensions/nextcloud-talk/src/types.ts +0 -179
  241. package/extensions/nostr/CHANGELOG.md +0 -46
  242. package/extensions/nostr/README.md +0 -136
  243. package/extensions/nostr/clawdbot.plugin.json +0 -11
  244. package/extensions/nostr/index.ts +0 -69
  245. package/extensions/nostr/package.json +0 -31
  246. package/extensions/nostr/src/channel.test.ts +0 -141
  247. package/extensions/nostr/src/channel.ts +0 -342
  248. package/extensions/nostr/src/config-schema.ts +0 -90
  249. package/extensions/nostr/src/metrics.ts +0 -464
  250. package/extensions/nostr/src/nostr-bus.fuzz.test.ts +0 -544
  251. package/extensions/nostr/src/nostr-bus.integration.test.ts +0 -452
  252. package/extensions/nostr/src/nostr-bus.test.ts +0 -199
  253. package/extensions/nostr/src/nostr-bus.ts +0 -741
  254. package/extensions/nostr/src/nostr-profile-http.test.ts +0 -378
  255. package/extensions/nostr/src/nostr-profile-http.ts +0 -500
  256. package/extensions/nostr/src/nostr-profile-import.test.ts +0 -120
  257. package/extensions/nostr/src/nostr-profile-import.ts +0 -259
  258. package/extensions/nostr/src/nostr-profile.fuzz.test.ts +0 -479
  259. package/extensions/nostr/src/nostr-profile.test.ts +0 -410
  260. package/extensions/nostr/src/nostr-profile.ts +0 -242
  261. package/extensions/nostr/src/nostr-state-store.test.ts +0 -128
  262. package/extensions/nostr/src/nostr-state-store.ts +0 -226
  263. package/extensions/nostr/src/runtime.ts +0 -14
  264. package/extensions/nostr/src/seen-tracker.ts +0 -271
  265. package/extensions/nostr/src/types.test.ts +0 -161
  266. package/extensions/nostr/src/types.ts +0 -99
  267. package/extensions/nostr/test/setup.ts +0 -5
  268. package/extensions/open-prose/README.md +0 -25
  269. package/extensions/open-prose/clawdbot.plugin.json +0 -11
  270. package/extensions/open-prose/index.ts +0 -5
  271. package/extensions/open-prose/package.json +0 -11
  272. package/extensions/open-prose/skills/prose/LICENSE +0 -21
  273. package/extensions/open-prose/skills/prose/SKILL.md +0 -318
  274. package/extensions/open-prose/skills/prose/alt-borges.md +0 -141
  275. package/extensions/open-prose/skills/prose/alts/arabian-nights.md +0 -358
  276. package/extensions/open-prose/skills/prose/alts/borges.md +0 -360
  277. package/extensions/open-prose/skills/prose/alts/folk.md +0 -322
  278. package/extensions/open-prose/skills/prose/alts/homer.md +0 -346
  279. package/extensions/open-prose/skills/prose/alts/kafka.md +0 -373
  280. package/extensions/open-prose/skills/prose/compiler.md +0 -2967
  281. package/extensions/open-prose/skills/prose/examples/01-hello-world.prose +0 -4
  282. package/extensions/open-prose/skills/prose/examples/02-research-and-summarize.prose +0 -6
  283. package/extensions/open-prose/skills/prose/examples/03-code-review.prose +0 -17
  284. package/extensions/open-prose/skills/prose/examples/04-write-and-refine.prose +0 -14
  285. package/extensions/open-prose/skills/prose/examples/05-debug-issue.prose +0 -20
  286. package/extensions/open-prose/skills/prose/examples/06-explain-codebase.prose +0 -17
  287. package/extensions/open-prose/skills/prose/examples/07-refactor.prose +0 -20
  288. package/extensions/open-prose/skills/prose/examples/08-blog-post.prose +0 -20
  289. package/extensions/open-prose/skills/prose/examples/09-research-with-agents.prose +0 -25
  290. package/extensions/open-prose/skills/prose/examples/10-code-review-agents.prose +0 -32
  291. package/extensions/open-prose/skills/prose/examples/11-skills-and-imports.prose +0 -27
  292. package/extensions/open-prose/skills/prose/examples/12-secure-agent-permissions.prose +0 -43
  293. package/extensions/open-prose/skills/prose/examples/13-variables-and-context.prose +0 -51
  294. package/extensions/open-prose/skills/prose/examples/14-composition-blocks.prose +0 -48
  295. package/extensions/open-prose/skills/prose/examples/15-inline-sequences.prose +0 -23
  296. package/extensions/open-prose/skills/prose/examples/16-parallel-reviews.prose +0 -19
  297. package/extensions/open-prose/skills/prose/examples/17-parallel-research.prose +0 -19
  298. package/extensions/open-prose/skills/prose/examples/18-mixed-parallel-sequential.prose +0 -36
  299. package/extensions/open-prose/skills/prose/examples/19-advanced-parallel.prose +0 -71
  300. package/extensions/open-prose/skills/prose/examples/20-fixed-loops.prose +0 -20
  301. package/extensions/open-prose/skills/prose/examples/21-pipeline-operations.prose +0 -35
  302. package/extensions/open-prose/skills/prose/examples/22-error-handling.prose +0 -51
  303. package/extensions/open-prose/skills/prose/examples/23-retry-with-backoff.prose +0 -63
  304. package/extensions/open-prose/skills/prose/examples/24-choice-blocks.prose +0 -86
  305. package/extensions/open-prose/skills/prose/examples/25-conditionals.prose +0 -114
  306. package/extensions/open-prose/skills/prose/examples/26-parameterized-blocks.prose +0 -100
  307. package/extensions/open-prose/skills/prose/examples/27-string-interpolation.prose +0 -105
  308. package/extensions/open-prose/skills/prose/examples/28-automated-pr-review.prose +0 -37
  309. package/extensions/open-prose/skills/prose/examples/28-gas-town.prose +0 -1572
  310. package/extensions/open-prose/skills/prose/examples/29-captains-chair.prose +0 -218
  311. package/extensions/open-prose/skills/prose/examples/30-captains-chair-simple.prose +0 -42
  312. package/extensions/open-prose/skills/prose/examples/31-captains-chair-with-memory.prose +0 -145
  313. package/extensions/open-prose/skills/prose/examples/33-pr-review-autofix.prose +0 -168
  314. package/extensions/open-prose/skills/prose/examples/34-content-pipeline.prose +0 -204
  315. package/extensions/open-prose/skills/prose/examples/35-feature-factory.prose +0 -296
  316. package/extensions/open-prose/skills/prose/examples/36-bug-hunter.prose +0 -237
  317. package/extensions/open-prose/skills/prose/examples/37-the-forge.prose +0 -1474
  318. package/extensions/open-prose/skills/prose/examples/38-skill-scan.prose +0 -455
  319. package/extensions/open-prose/skills/prose/examples/39-architect-by-simulation.prose +0 -277
  320. package/extensions/open-prose/skills/prose/examples/40-rlm-self-refine.prose +0 -32
  321. package/extensions/open-prose/skills/prose/examples/41-rlm-divide-conquer.prose +0 -38
  322. package/extensions/open-prose/skills/prose/examples/42-rlm-filter-recurse.prose +0 -46
  323. package/extensions/open-prose/skills/prose/examples/43-rlm-pairwise.prose +0 -50
  324. package/extensions/open-prose/skills/prose/examples/44-run-endpoint-ux-test.prose +0 -261
  325. package/extensions/open-prose/skills/prose/examples/45-plugin-release.prose +0 -159
  326. package/extensions/open-prose/skills/prose/examples/45-run-endpoint-ux-test-with-remediation.prose +0 -637
  327. package/extensions/open-prose/skills/prose/examples/46-run-endpoint-ux-test-fast.prose +0 -148
  328. package/extensions/open-prose/skills/prose/examples/46-workflow-crystallizer.prose +0 -225
  329. package/extensions/open-prose/skills/prose/examples/47-language-self-improvement.prose +0 -356
  330. package/extensions/open-prose/skills/prose/examples/48-habit-miner.prose +0 -445
  331. package/extensions/open-prose/skills/prose/examples/49-prose-run-retrospective.prose +0 -210
  332. package/extensions/open-prose/skills/prose/examples/README.md +0 -391
  333. package/extensions/open-prose/skills/prose/examples/roadmap/README.md +0 -22
  334. package/extensions/open-prose/skills/prose/examples/roadmap/iterative-refinement.prose +0 -20
  335. package/extensions/open-prose/skills/prose/examples/roadmap/parallel-review.prose +0 -18
  336. package/extensions/open-prose/skills/prose/examples/roadmap/simple-pipeline.prose +0 -17
  337. package/extensions/open-prose/skills/prose/examples/roadmap/syntax/open-prose-syntax.prose +0 -223
  338. package/extensions/open-prose/skills/prose/guidance/antipatterns.md +0 -951
  339. package/extensions/open-prose/skills/prose/guidance/patterns.md +0 -700
  340. package/extensions/open-prose/skills/prose/guidance/system-prompt.md +0 -180
  341. package/extensions/open-prose/skills/prose/help.md +0 -143
  342. package/extensions/open-prose/skills/prose/lib/README.md +0 -105
  343. package/extensions/open-prose/skills/prose/lib/calibrator.prose +0 -215
  344. package/extensions/open-prose/skills/prose/lib/cost-analyzer.prose +0 -174
  345. package/extensions/open-prose/skills/prose/lib/error-forensics.prose +0 -250
  346. package/extensions/open-prose/skills/prose/lib/inspector.prose +0 -196
  347. package/extensions/open-prose/skills/prose/lib/profiler.prose +0 -460
  348. package/extensions/open-prose/skills/prose/lib/program-improver.prose +0 -275
  349. package/extensions/open-prose/skills/prose/lib/project-memory.prose +0 -118
  350. package/extensions/open-prose/skills/prose/lib/user-memory.prose +0 -93
  351. package/extensions/open-prose/skills/prose/lib/vm-improver.prose +0 -243
  352. package/extensions/open-prose/skills/prose/primitives/session.md +0 -587
  353. package/extensions/open-prose/skills/prose/prose.md +0 -1235
  354. package/extensions/open-prose/skills/prose/state/filesystem.md +0 -478
  355. package/extensions/open-prose/skills/prose/state/in-context.md +0 -380
  356. package/extensions/open-prose/skills/prose/state/postgres.md +0 -875
  357. package/extensions/open-prose/skills/prose/state/sqlite.md +0 -572
  358. package/extensions/qwen-portal-auth/README.md +0 -24
  359. package/extensions/qwen-portal-auth/clawdbot.plugin.json +0 -11
  360. package/extensions/qwen-portal-auth/index.ts +0 -127
  361. package/extensions/qwen-portal-auth/oauth.ts +0 -190
  362. package/extensions/signal/clawdbot.plugin.json +0 -11
  363. package/extensions/signal/index.ts +0 -18
  364. package/extensions/signal/package.json +0 -11
  365. package/extensions/signal/src/channel.ts +0 -312
  366. package/extensions/signal/src/runtime.ts +0 -14
  367. package/extensions/telegram/clawdbot.plugin.json +0 -11
  368. package/extensions/telegram/index.ts +0 -18
  369. package/extensions/telegram/package.json +0 -11
  370. package/extensions/telegram/src/channel.ts +0 -478
  371. package/extensions/telegram/src/runtime.ts +0 -14
  372. package/extensions/tlon/README.md +0 -5
  373. package/extensions/tlon/clawdbot.plugin.json +0 -11
  374. package/extensions/tlon/index.ts +0 -18
  375. package/extensions/tlon/package.json +0 -30
  376. package/extensions/tlon/src/channel.ts +0 -379
  377. package/extensions/tlon/src/config-schema.test.ts +0 -32
  378. package/extensions/tlon/src/config-schema.ts +0 -43
  379. package/extensions/tlon/src/monitor/discovery.ts +0 -71
  380. package/extensions/tlon/src/monitor/history.ts +0 -87
  381. package/extensions/tlon/src/monitor/index.ts +0 -501
  382. package/extensions/tlon/src/monitor/processed-messages.test.ts +0 -24
  383. package/extensions/tlon/src/monitor/processed-messages.ts +0 -38
  384. package/extensions/tlon/src/monitor/utils.ts +0 -83
  385. package/extensions/tlon/src/onboarding.ts +0 -213
  386. package/extensions/tlon/src/runtime.ts +0 -14
  387. package/extensions/tlon/src/targets.ts +0 -79
  388. package/extensions/tlon/src/types.ts +0 -85
  389. package/extensions/tlon/src/urbit/auth.ts +0 -18
  390. package/extensions/tlon/src/urbit/http-api.ts +0 -36
  391. package/extensions/tlon/src/urbit/send.test.ts +0 -38
  392. package/extensions/tlon/src/urbit/send.ts +0 -127
  393. package/extensions/tlon/src/urbit/sse-client.test.ts +0 -41
  394. package/extensions/tlon/src/urbit/sse-client.ts +0 -367
  395. package/extensions/twitch/CHANGELOG.md +0 -21
  396. package/extensions/twitch/README.md +0 -89
  397. package/extensions/twitch/clawdbot.plugin.json +0 -9
  398. package/extensions/twitch/index.ts +0 -20
  399. package/extensions/twitch/package.json +0 -20
  400. package/extensions/twitch/src/access-control.test.ts +0 -489
  401. package/extensions/twitch/src/access-control.ts +0 -154
  402. package/extensions/twitch/src/actions.ts +0 -173
  403. package/extensions/twitch/src/client-manager-registry.ts +0 -115
  404. package/extensions/twitch/src/config-schema.ts +0 -82
  405. package/extensions/twitch/src/config.test.ts +0 -88
  406. package/extensions/twitch/src/config.ts +0 -116
  407. package/extensions/twitch/src/monitor.ts +0 -257
  408. package/extensions/twitch/src/onboarding.test.ts +0 -311
  409. package/extensions/twitch/src/onboarding.ts +0 -411
  410. package/extensions/twitch/src/outbound.test.ts +0 -373
  411. package/extensions/twitch/src/outbound.ts +0 -186
  412. package/extensions/twitch/src/plugin.test.ts +0 -39
  413. package/extensions/twitch/src/plugin.ts +0 -274
  414. package/extensions/twitch/src/probe.test.ts +0 -198
  415. package/extensions/twitch/src/probe.ts +0 -118
  416. package/extensions/twitch/src/resolver.ts +0 -137
  417. package/extensions/twitch/src/runtime.ts +0 -14
  418. package/extensions/twitch/src/send.test.ts +0 -289
  419. package/extensions/twitch/src/send.ts +0 -136
  420. package/extensions/twitch/src/status.test.ts +0 -270
  421. package/extensions/twitch/src/status.ts +0 -176
  422. package/extensions/twitch/src/token.test.ts +0 -171
  423. package/extensions/twitch/src/token.ts +0 -87
  424. package/extensions/twitch/src/twitch-client.test.ts +0 -574
  425. package/extensions/twitch/src/twitch-client.ts +0 -277
  426. package/extensions/twitch/src/types.ts +0 -141
  427. package/extensions/twitch/src/utils/markdown.ts +0 -92
  428. package/extensions/twitch/src/utils/twitch.ts +0 -78
  429. package/extensions/twitch/test/setup.ts +0 -7
  430. package/extensions/voice-call/CHANGELOG.md +0 -72
  431. package/extensions/voice-call/README.md +0 -134
  432. package/extensions/voice-call/clawdbot.plugin.json +0 -601
  433. package/extensions/voice-call/index.ts +0 -497
  434. package/extensions/voice-call/package.json +0 -16
  435. package/extensions/voice-call/src/cli.ts +0 -300
  436. package/extensions/voice-call/src/config.test.ts +0 -204
  437. package/extensions/voice-call/src/config.ts +0 -493
  438. package/extensions/voice-call/src/core-bridge.ts +0 -196
  439. package/extensions/voice-call/src/manager/context.ts +0 -21
  440. package/extensions/voice-call/src/manager/events.ts +0 -177
  441. package/extensions/voice-call/src/manager/lookup.ts +0 -33
  442. package/extensions/voice-call/src/manager/outbound.ts +0 -248
  443. package/extensions/voice-call/src/manager/state.ts +0 -50
  444. package/extensions/voice-call/src/manager/store.ts +0 -88
  445. package/extensions/voice-call/src/manager/timers.ts +0 -86
  446. package/extensions/voice-call/src/manager/twiml.ts +0 -9
  447. package/extensions/voice-call/src/manager.test.ts +0 -108
  448. package/extensions/voice-call/src/manager.ts +0 -876
  449. package/extensions/voice-call/src/media-stream.test.ts +0 -97
  450. package/extensions/voice-call/src/media-stream.ts +0 -393
  451. package/extensions/voice-call/src/providers/base.ts +0 -67
  452. package/extensions/voice-call/src/providers/index.ts +0 -10
  453. package/extensions/voice-call/src/providers/mock.ts +0 -168
  454. package/extensions/voice-call/src/providers/plivo.test.ts +0 -28
  455. package/extensions/voice-call/src/providers/plivo.ts +0 -504
  456. package/extensions/voice-call/src/providers/stt-openai-realtime.ts +0 -311
  457. package/extensions/voice-call/src/providers/telnyx.ts +0 -364
  458. package/extensions/voice-call/src/providers/tts-openai.ts +0 -264
  459. package/extensions/voice-call/src/providers/twilio/api.ts +0 -45
  460. package/extensions/voice-call/src/providers/twilio/webhook.ts +0 -29
  461. package/extensions/voice-call/src/providers/twilio.test.ts +0 -64
  462. package/extensions/voice-call/src/providers/twilio.ts +0 -595
  463. package/extensions/voice-call/src/response-generator.ts +0 -171
  464. package/extensions/voice-call/src/runtime.ts +0 -205
  465. package/extensions/voice-call/src/telephony-audio.ts +0 -88
  466. package/extensions/voice-call/src/telephony-tts.ts +0 -95
  467. package/extensions/voice-call/src/tunnel.ts +0 -331
  468. package/extensions/voice-call/src/types.ts +0 -272
  469. package/extensions/voice-call/src/utils.ts +0 -12
  470. package/extensions/voice-call/src/voice-mapping.ts +0 -65
  471. package/extensions/voice-call/src/webhook-security.test.ts +0 -233
  472. package/extensions/voice-call/src/webhook-security.ts +0 -446
  473. package/extensions/voice-call/src/webhook.ts +0 -490
  474. package/extensions/whatsapp/clawdbot.plugin.json +0 -11
  475. package/extensions/whatsapp/index.ts +0 -18
  476. package/extensions/whatsapp/package.json +0 -11
  477. package/extensions/whatsapp/src/channel.ts +0 -500
  478. package/extensions/whatsapp/src/runtime.ts +0 -14
  479. package/extensions/zalo/CHANGELOG.md +0 -55
  480. package/extensions/zalo/README.md +0 -50
  481. package/extensions/zalo/clawdbot.plugin.json +0 -11
  482. package/extensions/zalo/index.ts +0 -20
  483. package/extensions/zalo/package.json +0 -33
  484. package/extensions/zalo/src/accounts.ts +0 -71
  485. package/extensions/zalo/src/actions.ts +0 -62
  486. package/extensions/zalo/src/api.ts +0 -206
  487. package/extensions/zalo/src/channel.directory.test.ts +0 -35
  488. package/extensions/zalo/src/channel.ts +0 -394
  489. package/extensions/zalo/src/config-schema.ts +0 -24
  490. package/extensions/zalo/src/monitor.ts +0 -760
  491. package/extensions/zalo/src/monitor.webhook.test.ts +0 -70
  492. package/extensions/zalo/src/onboarding.ts +0 -405
  493. package/extensions/zalo/src/probe.ts +0 -46
  494. package/extensions/zalo/src/proxy.ts +0 -18
  495. package/extensions/zalo/src/runtime.ts +0 -14
  496. package/extensions/zalo/src/send.ts +0 -117
  497. package/extensions/zalo/src/status-issues.ts +0 -50
  498. package/extensions/zalo/src/token.ts +0 -55
  499. package/extensions/zalo/src/types.ts +0 -42
  500. package/extensions/zalouser/CHANGELOG.md +0 -33
  501. package/extensions/zalouser/README.md +0 -221
  502. package/extensions/zalouser/clawdbot.plugin.json +0 -11
  503. package/extensions/zalouser/index.ts +0 -32
  504. package/extensions/zalouser/package.json +0 -33
  505. package/extensions/zalouser/src/accounts.ts +0 -117
  506. package/extensions/zalouser/src/channel.test.ts +0 -17
  507. package/extensions/zalouser/src/channel.ts +0 -641
  508. package/extensions/zalouser/src/config-schema.ts +0 -27
  509. package/extensions/zalouser/src/monitor.ts +0 -574
  510. package/extensions/zalouser/src/onboarding.ts +0 -488
  511. package/extensions/zalouser/src/probe.ts +0 -28
  512. package/extensions/zalouser/src/runtime.ts +0 -14
  513. package/extensions/zalouser/src/send.ts +0 -150
  514. package/extensions/zalouser/src/status-issues.test.ts +0 -58
  515. package/extensions/zalouser/src/status-issues.ts +0 -81
  516. package/extensions/zalouser/src/tool.ts +0 -156
  517. package/extensions/zalouser/src/types.ts +0 -102
  518. package/extensions/zalouser/src/zca.ts +0 -208
  519. package/skills/1password/SKILL.md +0 -53
  520. package/skills/1password/references/cli-examples.md +0 -29
  521. package/skills/1password/references/get-started.md +0 -17
  522. package/skills/apple-notes/SKILL.md +0 -50
  523. package/skills/apple-reminders/SKILL.md +0 -67
  524. package/skills/bear-notes/SKILL.md +0 -79
  525. package/skills/bird/SKILL.md +0 -197
  526. package/skills/blogwatcher/SKILL.md +0 -46
  527. package/skills/blucli/SKILL.md +0 -27
  528. package/skills/bluebubbles/SKILL.md +0 -39
  529. package/skills/camsnap/SKILL.md +0 -25
  530. package/skills/canvas/SKILL.md +0 -189
  531. package/skills/clawdhub/SKILL.md +0 -53
  532. package/skills/coding-agent/SKILL.md +0 -278
  533. package/skills/discord/SKILL.md +0 -475
  534. package/skills/eightctl/SKILL.md +0 -29
  535. package/skills/food-order/SKILL.md +0 -41
  536. package/skills/gemini/SKILL.md +0 -23
  537. package/skills/gifgrep/SKILL.md +0 -47
  538. package/skills/github/SKILL.md +0 -48
  539. package/skills/gog/SKILL.md +0 -92
  540. package/skills/goplaces/SKILL.md +0 -30
  541. package/skills/himalaya/SKILL.md +0 -217
  542. package/skills/himalaya/references/configuration.md +0 -174
  543. package/skills/himalaya/references/message-composition.md +0 -182
  544. package/skills/imsg/SKILL.md +0 -25
  545. package/skills/local-places/SERVER_README.md +0 -101
  546. package/skills/local-places/SKILL.md +0 -91
  547. package/skills/local-places/pyproject.toml +0 -27
  548. package/skills/local-places/src/local_places/__init__.py +0 -2
  549. package/skills/local-places/src/local_places/google_places.py +0 -314
  550. package/skills/local-places/src/local_places/main.py +0 -65
  551. package/skills/local-places/src/local_places/schemas.py +0 -107
  552. package/skills/mcporter/SKILL.md +0 -38
  553. package/skills/model-usage/SKILL.md +0 -45
  554. package/skills/model-usage/references/codexbar-cli.md +0 -28
  555. package/skills/model-usage/scripts/model_usage.py +0 -310
  556. package/skills/nano-banana-pro/SKILL.md +0 -30
  557. package/skills/nano-banana-pro/scripts/generate_image.py +0 -169
  558. package/skills/nano-pdf/SKILL.md +0 -20
  559. package/skills/notion/SKILL.md +0 -156
  560. package/skills/obsidian/SKILL.md +0 -55
  561. package/skills/openai-image-gen/SKILL.md +0 -71
  562. package/skills/openai-image-gen/scripts/gen.py +0 -240
  563. package/skills/openai-whisper/SKILL.md +0 -19
  564. package/skills/openai-whisper-api/SKILL.md +0 -43
  565. package/skills/openai-whisper-api/scripts/transcribe.sh +0 -85
  566. package/skills/openhue/SKILL.md +0 -30
  567. package/skills/oracle/SKILL.md +0 -105
  568. package/skills/ordercli/SKILL.md +0 -47
  569. package/skills/peekaboo/SKILL.md +0 -153
  570. package/skills/sag/SKILL.md +0 -62
  571. package/skills/session-logs/SKILL.md +0 -105
  572. package/skills/sherpa-onnx-tts/SKILL.md +0 -49
  573. package/skills/sherpa-onnx-tts/bin/sherpa-onnx-tts +0 -178
  574. package/skills/skill-creator/SKILL.md +0 -371
  575. package/skills/skill-creator/license.txt +0 -202
  576. package/skills/skill-creator/scripts/init_skill.py +0 -378
  577. package/skills/skill-creator/scripts/package_skill.py +0 -111
  578. package/skills/skill-creator/scripts/quick_validate.py +0 -101
  579. package/skills/slack/SKILL.md +0 -144
  580. package/skills/songsee/SKILL.md +0 -29
  581. package/skills/sonoscli/SKILL.md +0 -26
  582. package/skills/spotify-player/SKILL.md +0 -34
  583. package/skills/summarize/SKILL.md +0 -67
  584. package/skills/things-mac/SKILL.md +0 -61
  585. package/skills/tmux/SKILL.md +0 -121
  586. package/skills/tmux/scripts/find-sessions.sh +0 -112
  587. package/skills/tmux/scripts/wait-for-text.sh +0 -83
  588. package/skills/trello/SKILL.md +0 -84
  589. package/skills/video-frames/SKILL.md +0 -29
  590. package/skills/video-frames/scripts/frame.sh +0 -81
  591. package/skills/voice-call/SKILL.md +0 -35
  592. package/skills/wacli/SKILL.md +0 -42
  593. package/skills/weather/SKILL.md +0 -49
@@ -1,700 +0,0 @@
1
- ---
2
- role: best-practices
3
- summary: |
4
- Design patterns for robust, efficient, and maintainable OpenProse programs.
5
- Read this file when authoring new programs or reviewing existing ones.
6
- see-also:
7
- - prose.md: Execution semantics, how to run programs
8
- - compiler.md: Full syntax grammar, validation rules
9
- - antipatterns.md: Patterns to avoid
10
- ---
11
-
12
- # OpenProse Design Patterns
13
-
14
- This document catalogs proven patterns for orchestrating AI agents effectively. Each pattern addresses specific concerns: robustness, cost efficiency, speed, maintainability, or self-improvement capability.
15
-
16
- ---
17
-
18
- ## Structural Patterns
19
-
20
- #### parallel-independent-work
21
-
22
- When tasks have no data dependencies, execute them concurrently. This maximizes throughput and minimizes wall-clock time.
23
-
24
- ```prose
25
- # Good: Independent research runs in parallel
26
- parallel:
27
- market = session "Research market trends"
28
- tech = session "Research technology landscape"
29
- competition = session "Analyze competitor products"
30
-
31
- session "Synthesize findings"
32
- context: { market, tech, competition }
33
- ```
34
-
35
- The synthesis session waits for all branches, but total time equals the longest branch rather than the sum of all branches.
36
-
37
- #### fan-out-fan-in
38
-
39
- For processing collections, fan out to parallel workers then collect results. Use `parallel for` instead of manual parallel branches.
40
-
41
- ```prose
42
- let topics = ["AI safety", "interpretability", "alignment", "robustness"]
43
-
44
- parallel for topic in topics:
45
- session "Deep dive research on {topic}"
46
-
47
- session "Create unified report from all research"
48
- ```
49
-
50
- This scales naturally with collection size and keeps code DRY.
51
-
52
- #### pipeline-composition
53
-
54
- Chain transformations using pipe operators for readable data flow. Each stage has a single responsibility.
55
-
56
- ```prose
57
- let candidates = session "Generate 10 startup ideas"
58
-
59
- let result = candidates
60
- | filter:
61
- session "Is this idea technically feasible? yes/no"
62
- context: item
63
- | map:
64
- session "Expand this idea into a one-page pitch"
65
- context: item
66
- | reduce(best, current):
67
- session "Compare these two pitches, return the stronger one"
68
- context: [best, current]
69
- ```
70
-
71
- #### agent-specialization
72
-
73
- Define agents with focused expertise. Specialized agents produce better results than generalist prompts.
74
-
75
- ```prose
76
- agent security-reviewer:
77
- model: sonnet
78
- prompt: """
79
- You are a security expert. Focus exclusively on:
80
- - Authentication and authorization flaws
81
- - Injection vulnerabilities
82
- - Data exposure risks
83
- Ignore style, performance, and other concerns.
84
- """
85
-
86
- agent performance-reviewer:
87
- model: sonnet
88
- prompt: """
89
- You are a performance engineer. Focus exclusively on:
90
- - Algorithmic complexity
91
- - Memory usage patterns
92
- - I/O bottlenecks
93
- Ignore security, style, and other concerns.
94
- """
95
- ```
96
-
97
- #### reusable-blocks
98
-
99
- Extract repeated workflows into parameterized blocks. Blocks are the functions of OpenProse.
100
-
101
- ```prose
102
- block review-and-revise(artifact, criteria):
103
- let feedback = session "Review {artifact} against {criteria}"
104
- session "Revise {artifact} based on feedback"
105
- context: feedback
106
-
107
- # Reuse the pattern
108
- do review-and-revise("the architecture doc", "clarity and completeness")
109
- do review-and-revise("the API design", "consistency and usability")
110
- do review-and-revise("the test plan", "coverage and edge cases")
111
- ```
112
-
113
- ---
114
-
115
- ## Robustness Patterns
116
-
117
- #### bounded-iteration
118
-
119
- Always constrain loops with `max:` to prevent runaway execution. Even well-crafted conditions can fail to terminate.
120
-
121
- ```prose
122
- # Good: Explicit upper bound
123
- loop until **all tests pass** (max: 20):
124
- session "Identify and fix the next failing test"
125
-
126
- # The program will terminate even if tests never fully pass
127
- ```
128
-
129
- #### graceful-degradation
130
-
131
- Use `on-fail: "continue"` when partial results are acceptable. Collect what you can rather than failing entirely.
132
-
133
- ```prose
134
- parallel (on-fail: "continue"):
135
- primary = session "Query primary data source"
136
- backup = session "Query backup data source"
137
- cache = session "Check local cache"
138
-
139
- # Continue with whatever succeeded
140
- session "Merge available data"
141
- context: { primary, backup, cache }
142
- ```
143
-
144
- #### retry-with-backoff
145
-
146
- External services fail transiently. Retry with exponential backoff to handle rate limits and temporary outages.
147
-
148
- ```prose
149
- session "Call external API"
150
- retry: 5
151
- backoff: "exponential"
152
- ```
153
-
154
- For critical paths, combine retry with fallback:
155
-
156
- ```prose
157
- try:
158
- session "Call primary API"
159
- retry: 3
160
- backoff: "exponential"
161
- catch:
162
- session "Use fallback data source"
163
- ```
164
-
165
- #### error-context-capture
166
-
167
- Capture error context for intelligent recovery. The error variable provides information for diagnostic or remediation sessions.
168
-
169
- ```prose
170
- try:
171
- session "Deploy to production"
172
- catch as err:
173
- session "Analyze deployment failure and suggest fixes"
174
- context: err
175
- session "Attempt automatic remediation"
176
- context: err
177
- ```
178
-
179
- #### defensive-context
180
-
181
- Validate assumptions before expensive operations. Cheap checks prevent wasted computation.
182
-
183
- ```prose
184
- let prereqs = session "Check all prerequisites: API keys, permissions, dependencies"
185
-
186
- if **prerequisites are not met**:
187
- session "Report missing prerequisites and exit"
188
- context: prereqs
189
- throw "Prerequisites not satisfied"
190
-
191
- # Expensive operations only run if prereqs pass
192
- session "Execute main workflow"
193
- ```
194
-
195
- ---
196
-
197
- ## Cost Efficiency Patterns
198
-
199
- #### model-tiering
200
-
201
- Match model capability to task complexity:
202
-
203
- | Model | Best For | Examples |
204
- |-------|----------|----------|
205
- | **Sonnet 4.5** | Orchestration, control flow, coordination | VM execution, captain's chair, workflow routing |
206
- | **Opus 4.5** | Hard/difficult work requiring deep reasoning | Complex analysis, strategic decisions, novel problem-solving |
207
- | **Haiku** | Simple, self-evident tasks (use sparingly) | Classification, summarization, formatting |
208
-
209
- **Key insight:** Sonnet 4.5 excels at *orchestrating* agents and managing control flow—it's the ideal model for the OpenProse VM itself and for "captain" agents that coordinate work. Opus 4.5 should be reserved for agents doing genuinely difficult intellectual work. Haiku can handle simple tasks but should generally be avoided where quality matters.
210
-
211
- **Detailed task-to-model mapping:**
212
-
213
- | Task Type | Model | Rationale |
214
- |-----------|-------|-----------|
215
- | Orchestration, routing, coordination | Sonnet | Fast, good at following structure |
216
- | Investigation, debugging, diagnosis | Sonnet | Structured analysis, checklist-style work |
217
- | Triage, classification, categorization | Sonnet | Clear criteria, deterministic decisions |
218
- | Code review, verification (checklist) | Sonnet | Following defined review criteria |
219
- | Simple implementation, fixes | Sonnet | Applying known patterns |
220
- | Complex multi-file synthesis | Opus | Needs to hold many things in context |
221
- | Novel architecture, strategic planning | Opus | Requires creative problem-solving |
222
- | Ambiguous problems, unclear requirements | Opus | Needs to reason through uncertainty |
223
-
224
- **Rule of thumb:** If you can write a checklist for the task, Sonnet can do it. If the task requires genuine creativity or navigating ambiguity, use Opus.
225
-
226
- ```prose
227
- agent captain:
228
- model: sonnet # Orchestration and coordination
229
- persist: true # Execution-scoped (dies with run)
230
- prompt: "You coordinate the team and review work"
231
-
232
- agent researcher:
233
- model: opus # Hard analytical work
234
- prompt: "You perform deep research and analysis"
235
-
236
- agent formatter:
237
- model: haiku # Simple transformation (use sparingly)
238
- prompt: "You format text into consistent structure"
239
-
240
- agent preferences:
241
- model: sonnet
242
- persist: user # User-scoped (survives across projects)
243
- prompt: "You remember user preferences and patterns"
244
-
245
- # Captain orchestrates, specialists do the hard work
246
- session: captain
247
- prompt: "Plan the research approach"
248
-
249
- let findings = session: researcher
250
- prompt: "Investigate the technical architecture"
251
-
252
- resume: captain
253
- prompt: "Review findings and determine next steps"
254
- context: findings
255
- ```
256
-
257
- #### context-minimization
258
-
259
- Pass only relevant context. Large contexts slow processing and increase costs.
260
-
261
- ```prose
262
- # Bad: Passing everything
263
- session "Write executive summary"
264
- context: [raw_data, analysis, methodology, appendices, references]
265
-
266
- # Good: Pass only what's needed
267
- let key_findings = session "Extract key findings from analysis"
268
- context: analysis
269
-
270
- session "Write executive summary"
271
- context: key_findings
272
- ```
273
-
274
- #### early-termination
275
-
276
- Exit loops as soon as the goal is achieved. Don't iterate unnecessarily.
277
-
278
- ```prose
279
- # The condition is checked each iteration
280
- loop until **solution found and verified** (max: 10):
281
- session "Generate potential solution"
282
- session "Verify solution correctness"
283
- # Exits immediately when condition is met, not after max iterations
284
- ```
285
-
286
- #### early-signal-exit
287
-
288
- When observing or monitoring, exit as soon as you have a definitive answer—don't wait for the full observation window.
289
-
290
- ```prose
291
- # Good: Exit on signal
292
- let observation = session: observer
293
- prompt: "Watch the stream. Signal immediately if you detect a blocking error."
294
- timeout: 120s
295
- early_exit: **blocking_error detected**
296
-
297
- # Bad: Fixed observation window
298
- loop 30 times:
299
- resume: observer
300
- prompt: "Keep watching..." # Even if error was obvious at iteration 2
301
- ```
302
-
303
- This respects signals when they arrive rather than waiting for arbitrary timeouts.
304
-
305
- #### defaults-over-prompts
306
-
307
- For standard configuration, use constants or environment variables. Only prompt when genuinely variable.
308
-
309
- ```prose
310
- # Good: Sensible defaults
311
- const API_URL = "https://api.example.com"
312
- const TEST_PROGRAM = "# Simple test\nsession 'Hello'"
313
-
314
- # Slower: Prompting for known values
315
- let api_url = input "Enter API URL" # Usually the same value
316
- let program = input "Enter test program" # Usually the same value
317
- ```
318
-
319
- If 90% of runs use the same value, hardcode it. Let users override via CLI args if needed.
320
-
321
- #### race-for-speed
322
-
323
- When any valid result suffices, race multiple approaches and take the first success.
324
-
325
- ```prose
326
- parallel ("first"):
327
- session "Try algorithm A"
328
- session "Try algorithm B"
329
- session "Try algorithm C"
330
-
331
- # Continues as soon as any approach completes
332
- session "Use winning result"
333
- ```
334
-
335
- #### batch-similar-work
336
-
337
- Group similar operations to amortize overhead. One session with structured output beats many small sessions.
338
-
339
- ```prose
340
- # Inefficient: Many small sessions
341
- for file in files:
342
- session "Analyze {file}"
343
-
344
- # Efficient: Batch analysis
345
- session "Analyze all files and return structured findings for each"
346
- context: files
347
- ```
348
-
349
- ---
350
-
351
- ## Self-Improvement Patterns
352
-
353
- #### self-verification-in-prompt
354
-
355
- For tasks that would otherwise require a separate verifier, include verification as the final step in the prompt. This saves a round-trip while maintaining rigor.
356
-
357
- ```prose
358
- # Good: Combined work + self-verification
359
- agent investigator:
360
- model: sonnet
361
- prompt: """Diagnose the error.
362
- 1. Examine code paths
363
- 2. Check logs and state
364
- 3. Form hypothesis
365
- 4. BEFORE OUTPUTTING: Verify your evidence supports your conclusion.
366
-
367
- Output only if confident. If uncertain, state what's missing."""
368
-
369
- # Slower: Separate verifier agent
370
- let diagnosis = session: researcher
371
- prompt: "Investigate the error"
372
- let verification = session: verifier
373
- prompt: "Verify this diagnosis" # Extra round-trip
374
- context: diagnosis
375
- ```
376
-
377
- Use a separate verifier when you need genuine adversarial review (different perspective), but for self-consistency checks, bake verification into the prompt.
378
-
379
- #### iterative-refinement
380
-
381
- Use feedback loops to progressively improve outputs. Each iteration builds on the previous.
382
-
383
- ```prose
384
- let draft = session "Create initial draft"
385
-
386
- loop until **draft meets quality bar** (max: 5):
387
- let critique = session "Critically evaluate this draft"
388
- context: draft
389
- draft = session "Improve draft based on critique"
390
- context: [draft, critique]
391
-
392
- session "Finalize and publish"
393
- context: draft
394
- ```
395
-
396
- #### multi-perspective-review
397
-
398
- Gather diverse viewpoints before synthesis. Different lenses catch different issues.
399
-
400
- ```prose
401
- parallel:
402
- user_perspective = session "Evaluate from end-user viewpoint"
403
- tech_perspective = session "Evaluate from engineering viewpoint"
404
- business_perspective = session "Evaluate from business viewpoint"
405
-
406
- session "Synthesize feedback and prioritize improvements"
407
- context: { user_perspective, tech_perspective, business_perspective }
408
- ```
409
-
410
- #### adversarial-validation
411
-
412
- Use one agent to challenge another's work. Adversarial pressure improves robustness.
413
-
414
- ```prose
415
- let proposal = session "Generate proposal"
416
-
417
- let critique = session "Find flaws and weaknesses in this proposal"
418
- context: proposal
419
-
420
- let defense = session "Address each critique with evidence or revisions"
421
- context: [proposal, critique]
422
-
423
- session "Produce final proposal incorporating valid critiques"
424
- context: [proposal, critique, defense]
425
- ```
426
-
427
- #### consensus-building
428
-
429
- For critical decisions, require agreement between independent evaluators.
430
-
431
- ```prose
432
- parallel:
433
- eval1 = session "Independently evaluate the solution"
434
- eval2 = session "Independently evaluate the solution"
435
- eval3 = session "Independently evaluate the solution"
436
-
437
- loop until **evaluators agree** (max: 3):
438
- session "Identify points of disagreement"
439
- context: { eval1, eval2, eval3 }
440
- parallel:
441
- eval1 = session "Reconsider position given other perspectives"
442
- context: { eval1, eval2, eval3 }
443
- eval2 = session "Reconsider position given other perspectives"
444
- context: { eval1, eval2, eval3 }
445
- eval3 = session "Reconsider position given other perspectives"
446
- context: { eval1, eval2, eval3 }
447
-
448
- session "Document consensus decision"
449
- context: { eval1, eval2, eval3 }
450
- ```
451
-
452
- ---
453
-
454
- ## Maintainability Patterns
455
-
456
- #### descriptive-agent-names
457
-
458
- Name agents for their role, not their implementation. Names should convey purpose.
459
-
460
- ```prose
461
- # Good: Role-based naming
462
- agent code-reviewer:
463
- agent technical-writer:
464
- agent data-analyst:
465
-
466
- # Bad: Implementation-based naming
467
- agent opus-agent:
468
- agent session-1-handler:
469
- agent helper:
470
- ```
471
-
472
- #### prompt-as-contract
473
-
474
- Write prompts that specify expected inputs and outputs. Clear contracts prevent misunderstandings.
475
-
476
- ```prose
477
- agent json-extractor:
478
- model: haiku
479
- prompt: """
480
- Extract structured data from text.
481
-
482
- Input: Unstructured text containing entity information
483
- Output: JSON object with fields: name, date, amount, status
484
-
485
- If a field cannot be determined, use null.
486
- Never invent information not present in the input.
487
- """
488
- ```
489
-
490
- #### separation-of-concerns
491
-
492
- Each session should do one thing well. Combine simple sessions rather than creating complex ones.
493
-
494
- ```prose
495
- # Good: Single responsibility per session
496
- let data = session "Fetch and validate input data"
497
- let analysis = session "Analyze data for patterns"
498
- context: data
499
- let recommendations = session "Generate recommendations from analysis"
500
- context: analysis
501
- session "Format recommendations as report"
502
- context: recommendations
503
-
504
- # Bad: God session
505
- session "Fetch data, analyze it, generate recommendations, and format a report"
506
- ```
507
-
508
- #### explicit-context-flow
509
-
510
- Make data flow visible through explicit context passing. Avoid relying on implicit conversation history.
511
-
512
- ```prose
513
- # Good: Explicit flow
514
- let step1 = session "First step"
515
- let step2 = session "Second step"
516
- context: step1
517
- let step3 = session "Third step"
518
- context: [step1, step2]
519
-
520
- # Bad: Implicit flow (relies on conversation state)
521
- session "First step"
522
- session "Second step using previous results"
523
- session "Third step using all previous"
524
- ```
525
-
526
- ---
527
-
528
- ## Performance Patterns
529
-
530
- #### lazy-evaluation
531
-
532
- Defer expensive operations until their results are needed. Don't compute what might not be used.
533
-
534
- ```prose
535
- session "Assess situation"
536
-
537
- if **detailed analysis needed**:
538
- # Expensive operations only when necessary
539
- parallel:
540
- deep_analysis = session "Perform deep analysis"
541
- model: opus
542
- historical = session "Gather historical comparisons"
543
- session "Comprehensive report"
544
- context: { deep_analysis, historical }
545
- else:
546
- session "Quick summary"
547
- model: haiku
548
- ```
549
-
550
- #### progressive-disclosure
551
-
552
- Start with fast, cheap operations. Escalate to expensive ones only when needed.
553
-
554
- ```prose
555
- # Tier 1: Fast screening (haiku)
556
- let initial = session "Quick assessment"
557
- model: haiku
558
-
559
- if **needs deeper review**:
560
- # Tier 2: Moderate analysis (sonnet)
561
- let detailed = session "Detailed analysis"
562
- model: sonnet
563
- context: initial
564
-
565
- if **needs expert review**:
566
- # Tier 3: Deep reasoning (opus)
567
- session "Expert-level analysis"
568
- model: opus
569
- context: [initial, detailed]
570
- ```
571
-
572
- #### work-stealing
573
-
574
- Use `parallel ("any", count: N)` to get results as fast as possible from a pool of workers.
575
-
576
- ```prose
577
- # Get 3 good ideas as fast as possible from 5 parallel attempts
578
- parallel ("any", count: 3, on-fail: "ignore"):
579
- session "Generate creative solution approach 1"
580
- session "Generate creative solution approach 2"
581
- session "Generate creative solution approach 3"
582
- session "Generate creative solution approach 4"
583
- session "Generate creative solution approach 5"
584
-
585
- session "Select best from the first 3 completed"
586
- ```
587
-
588
- ---
589
-
590
- ## Composition Patterns
591
-
592
- #### workflow-template
593
-
594
- Create blocks that encode entire workflow patterns. Instantiate with different parameters.
595
-
596
- ```prose
597
- block research-report(topic, depth):
598
- let research = session "Research {topic} at {depth} level"
599
- let analysis = session "Analyze findings about {topic}"
600
- context: research
601
- let report = session "Write {depth}-level report on {topic}"
602
- context: [research, analysis]
603
-
604
- # Instantiate for different needs
605
- do research-report("market trends", "executive")
606
- do research-report("technical architecture", "detailed")
607
- do research-report("competitive landscape", "comprehensive")
608
- ```
609
-
610
- #### middleware-pattern
611
-
612
- Wrap sessions with cross-cutting concerns like logging, timing, or validation.
613
-
614
- ```prose
615
- block with-validation(task, validator):
616
- let result = session "{task}"
617
- let valid = session "{validator}"
618
- context: result
619
- if **validation failed**:
620
- throw "Validation failed for: {task}"
621
-
622
- do with-validation("Generate SQL query", "Check SQL for injection vulnerabilities")
623
- do with-validation("Generate config file", "Validate config syntax")
624
- ```
625
-
626
- #### circuit-breaker
627
-
628
- After repeated failures, stop trying and fail fast. Prevents cascading failures.
629
-
630
- ```prose
631
- let failures = 0
632
- let max_failures = 3
633
-
634
- loop while **service needed and failures < max_failures** (max: 10):
635
- try:
636
- session "Call external service"
637
- # Reset on success
638
- failures = 0
639
- catch:
640
- failures = failures + 1
641
- if **failures >= max_failures**:
642
- session "Circuit open - using fallback"
643
- throw "Service unavailable"
644
- ```
645
-
646
- ---
647
-
648
- ## Observability Patterns
649
-
650
- #### checkpoint-narration
651
-
652
- For long workflows, emit progress markers. Helps with debugging and monitoring.
653
-
654
- ```prose
655
- session "Phase 1: Data Collection"
656
- # ... collection work ...
657
-
658
- session "Phase 2: Analysis"
659
- # ... analysis work ...
660
-
661
- session "Phase 3: Report Generation"
662
- # ... report work ...
663
-
664
- session "Phase 4: Quality Assurance"
665
- # ... QA work ...
666
- ```
667
-
668
- #### structured-output-contracts
669
-
670
- Request structured outputs that can be reliably parsed and validated.
671
-
672
- ```prose
673
- agent structured-reviewer:
674
- model: sonnet
675
- prompt: """
676
- Always respond with this exact JSON structure:
677
- {
678
- "verdict": "pass" | "fail" | "needs_review",
679
- "issues": [{"severity": "high"|"medium"|"low", "description": "..."}],
680
- "suggestions": ["..."]
681
- }
682
- """
683
-
684
- let review = session: structured-reviewer
685
- prompt: "Review this code for security issues"
686
- ```
687
-
688
- ---
689
-
690
- ## Summary
691
-
692
- The most effective OpenProse programs combine these patterns:
693
-
694
- 1. **Structure**: Parallelize independent work, use blocks for reuse
695
- 2. **Robustness**: Bound loops, handle errors, retry transient failures
696
- 3. **Efficiency**: Tier models, minimize context, terminate early
697
- 4. **Quality**: Iterate, get multiple perspectives, validate adversarially
698
- 5. **Maintainability**: Name clearly, separate concerns, make flow explicit
699
-
700
- Choose patterns based on your specific constraints. A quick prototype prioritizes speed over robustness. A production workflow prioritizes reliability over cost. A research exploration prioritizes thoroughness over efficiency.