memory-journal-mcp 7.7.0 → 8.0.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 (531) hide show
  1. package/README.md +126 -56
  2. package/dist/chunk-6OHRCNYW.js +3231 -0
  3. package/dist/chunk-JFMITANR.js +5168 -0
  4. package/dist/{chunk-QCQPAF4I.js → chunk-MWNLAEHR.js} +301 -4321
  5. package/dist/{chunk-ARLYSFSI.js → chunk-UHSO65A4.js} +4242 -6092
  6. package/dist/cli.js +21 -3
  7. package/dist/index.d.ts +16 -13
  8. package/dist/index.js +4 -2
  9. package/dist/resources-IJVKDFGS.js +2 -0
  10. package/dist/tools-44DGXE3V.js +2 -0
  11. package/dist/worker-script.js +201 -20
  12. package/package.json +7 -4
  13. package/skills/README.md +62 -25
  14. package/skills/adversarial-performance/SKILL.md +139 -0
  15. package/skills/adversarial-performance/references/audit-categories.md +462 -0
  16. package/skills/adversarial-performance/references/copilot-performance-prompts.md +44 -0
  17. package/skills/adversarial-performance/references/copilot-usage.md +16 -0
  18. package/skills/adversarial-performance/references/feedback-loop.md +177 -0
  19. package/skills/adversarial-performance/references/multi-pass-performance-protocol.md +398 -0
  20. package/skills/adversarial-planner/SKILL.md +23 -54
  21. package/skills/adversarial-planner/references/copilot-integration.md +25 -40
  22. package/skills/adversarial-planner/references/copilot-usage.md +16 -0
  23. package/skills/adversarial-planner/references/multi-pass-protocol.md +4 -0
  24. package/skills/adversarial-security/SKILL.md +149 -0
  25. package/skills/adversarial-security/references/adversarial-base-protocol.md +44 -0
  26. package/skills/adversarial-security/references/audit-categories.md +723 -0
  27. package/skills/adversarial-security/references/copilot-security-prompts.md +142 -0
  28. package/skills/adversarial-security/references/copilot-usage.md +16 -0
  29. package/skills/adversarial-security/references/feedback-loop.md +206 -0
  30. package/skills/adversarial-security/references/journal-opt-out.md +7 -0
  31. package/skills/adversarial-security/references/multi-pass-security-protocol.md +403 -0
  32. package/skills/adversarial-skill-audit/SKILL.md +118 -0
  33. package/skills/adversarial-skill-audit/references/audit-categories.md +308 -0
  34. package/skills/adversarial-skill-audit/references/copilot-skill-prompts.md +68 -0
  35. package/skills/adversarial-skill-audit/references/copilot-usage.md +16 -0
  36. package/skills/adversarial-skill-audit/references/feedback-loop.md +155 -0
  37. package/skills/adversarial-skill-audit/references/multi-pass-skill-protocol.md +367 -0
  38. package/skills/adversarial-skill-audit/scripts/check-skills.ps1 +48 -0
  39. package/skills/adversarial-skill-audit/scripts/run-copilot.ps1 +52 -0
  40. package/skills/adversarial-workflow-audit/SKILL.md +82 -0
  41. package/skills/adversarial-workflow-audit/references/audit-categories.md +28 -0
  42. package/skills/adversarial-workflow-audit/references/copilot-usage.md +16 -0
  43. package/skills/adversarial-workflow-audit/scripts/check-workflows.ps1 +24 -0
  44. package/skills/agents-sdk/SKILL.md +220 -0
  45. package/skills/agents-sdk/references/callable.md +92 -0
  46. package/skills/agents-sdk/references/codemode.md +209 -0
  47. package/skills/agents-sdk/references/email.md +144 -0
  48. package/skills/agents-sdk/references/mcp/SKILL.md +65 -0
  49. package/skills/agents-sdk/references/mcp/code-mode-reference.md +245 -0
  50. package/skills/agents-sdk/references/mcp/oauth-reference.md +359 -0
  51. package/skills/agents-sdk/references/mcp/references/architecture-reference.md +208 -0
  52. package/skills/agents-sdk/references/mcp/references/cloudflare-quickstart.md +156 -0
  53. package/skills/agents-sdk/references/mcp/references/error-handling.md +343 -0
  54. package/skills/agents-sdk/references/mcp/references/http-security.md +164 -0
  55. package/skills/agents-sdk/references/mcp/references/implementation-guide.md +507 -0
  56. package/skills/agents-sdk/references/mcp/references/testing-reference.md +171 -0
  57. package/skills/agents-sdk/references/mcp.md +157 -0
  58. package/skills/agents-sdk/references/state-scheduling.md +164 -0
  59. package/skills/agents-sdk/references/streaming-chat.md +168 -0
  60. package/skills/agents-sdk/references/workflows.md +136 -0
  61. package/skills/auth-identity/SKILL.md +48 -0
  62. package/skills/autonomous-dev/SKILL.md +46 -23
  63. package/skills/autonomous-dev/references/workflow_orchestration.md +22 -0
  64. package/skills/aws/SKILL.md +39 -0
  65. package/skills/azure/SKILL.md +38 -0
  66. package/skills/bin/sync.js +7 -1
  67. package/skills/biome/SKILL.md +59 -0
  68. package/skills/bun/SKILL.md +8 -2
  69. package/skills/cloudflare/SKILL.md +37 -0
  70. package/skills/cloudflare/references/agents-sdk/README.md +95 -0
  71. package/skills/cloudflare/references/agents-sdk/api.md +195 -0
  72. package/skills/cloudflare/references/agents-sdk/configuration.md +178 -0
  73. package/skills/cloudflare/references/agents-sdk/gotchas.md +173 -0
  74. package/skills/cloudflare/references/agents-sdk/patterns.md +215 -0
  75. package/skills/cloudflare/references/ai-gateway/README.md +176 -0
  76. package/skills/cloudflare/references/ai-gateway/configuration.md +117 -0
  77. package/skills/cloudflare/references/ai-gateway/dynamic-routing.md +88 -0
  78. package/skills/cloudflare/references/ai-gateway/features.md +96 -0
  79. package/skills/cloudflare/references/ai-gateway/sdk-integration.md +110 -0
  80. package/skills/cloudflare/references/ai-gateway/troubleshooting.md +90 -0
  81. package/skills/cloudflare/references/ai-search/README.md +145 -0
  82. package/skills/cloudflare/references/ai-search/api.md +87 -0
  83. package/skills/cloudflare/references/ai-search/configuration.md +91 -0
  84. package/skills/cloudflare/references/ai-search/gotchas.md +92 -0
  85. package/skills/cloudflare/references/ai-search/patterns.md +87 -0
  86. package/skills/cloudflare/references/analytics-engine/README.md +96 -0
  87. package/skills/cloudflare/references/analytics-engine/api.md +112 -0
  88. package/skills/cloudflare/references/analytics-engine/configuration.md +107 -0
  89. package/skills/cloudflare/references/analytics-engine/gotchas.md +87 -0
  90. package/skills/cloudflare/references/analytics-engine/patterns.md +83 -0
  91. package/skills/cloudflare/references/api/README.md +66 -0
  92. package/skills/cloudflare/references/api/api.md +205 -0
  93. package/skills/cloudflare/references/api/configuration.md +158 -0
  94. package/skills/cloudflare/references/api/gotchas.md +231 -0
  95. package/skills/cloudflare/references/api/patterns.md +208 -0
  96. package/skills/cloudflare/references/api-shield/README.md +44 -0
  97. package/skills/cloudflare/references/api-shield/api.md +153 -0
  98. package/skills/cloudflare/references/api-shield/configuration.md +210 -0
  99. package/skills/cloudflare/references/api-shield/gotchas.md +132 -0
  100. package/skills/cloudflare/references/api-shield/patterns.md +185 -0
  101. package/skills/cloudflare/references/argo-smart-routing/README.md +96 -0
  102. package/skills/cloudflare/references/argo-smart-routing/api.md +253 -0
  103. package/skills/cloudflare/references/argo-smart-routing/configuration.md +205 -0
  104. package/skills/cloudflare/references/argo-smart-routing/gotchas.md +115 -0
  105. package/skills/cloudflare/references/argo-smart-routing/patterns.md +107 -0
  106. package/skills/cloudflare/references/bindings/README.md +127 -0
  107. package/skills/cloudflare/references/bindings/api.md +214 -0
  108. package/skills/cloudflare/references/bindings/configuration.md +200 -0
  109. package/skills/cloudflare/references/bindings/gotchas.md +210 -0
  110. package/skills/cloudflare/references/bindings/patterns.md +205 -0
  111. package/skills/cloudflare/references/bot-management/README.md +95 -0
  112. package/skills/cloudflare/references/bot-management/api.md +175 -0
  113. package/skills/cloudflare/references/bot-management/configuration.md +175 -0
  114. package/skills/cloudflare/references/bot-management/gotchas.md +116 -0
  115. package/skills/cloudflare/references/bot-management/patterns.md +181 -0
  116. package/skills/cloudflare/references/browser-rendering/README.md +84 -0
  117. package/skills/cloudflare/references/browser-rendering/api.md +108 -0
  118. package/skills/cloudflare/references/browser-rendering/configuration.md +78 -0
  119. package/skills/cloudflare/references/browser-rendering/gotchas.md +91 -0
  120. package/skills/cloudflare/references/browser-rendering/patterns.md +93 -0
  121. package/skills/cloudflare/references/c3/README.md +111 -0
  122. package/skills/cloudflare/references/c3/api.md +71 -0
  123. package/skills/cloudflare/references/c3/configuration.md +85 -0
  124. package/skills/cloudflare/references/c3/gotchas.md +97 -0
  125. package/skills/cloudflare/references/c3/patterns.md +84 -0
  126. package/skills/cloudflare/references/cache-reserve/README.md +150 -0
  127. package/skills/cloudflare/references/cache-reserve/api.md +184 -0
  128. package/skills/cloudflare/references/cache-reserve/configuration.md +170 -0
  129. package/skills/cloudflare/references/cache-reserve/gotchas.md +136 -0
  130. package/skills/cloudflare/references/cache-reserve/patterns.md +197 -0
  131. package/skills/cloudflare/references/containers/README.md +87 -0
  132. package/skills/cloudflare/references/containers/api.md +197 -0
  133. package/skills/cloudflare/references/containers/configuration.md +191 -0
  134. package/skills/cloudflare/references/containers/gotchas.md +182 -0
  135. package/skills/cloudflare/references/containers/patterns.md +204 -0
  136. package/skills/cloudflare/references/cron-triggers/README.md +101 -0
  137. package/skills/cloudflare/references/cron-triggers/api.md +224 -0
  138. package/skills/cloudflare/references/cron-triggers/configuration.md +190 -0
  139. package/skills/cloudflare/references/cron-triggers/gotchas.md +207 -0
  140. package/skills/cloudflare/references/cron-triggers/patterns.md +274 -0
  141. package/skills/cloudflare/references/d1/README.md +137 -0
  142. package/skills/cloudflare/references/d1/api.md +213 -0
  143. package/skills/cloudflare/references/d1/configuration.md +198 -0
  144. package/skills/cloudflare/references/d1/gotchas.md +98 -0
  145. package/skills/cloudflare/references/d1/patterns.md +240 -0
  146. package/skills/cloudflare/references/ddos/README.md +42 -0
  147. package/skills/cloudflare/references/ddos/api.md +158 -0
  148. package/skills/cloudflare/references/ddos/configuration.md +94 -0
  149. package/skills/cloudflare/references/ddos/gotchas.md +114 -0
  150. package/skills/cloudflare/references/ddos/patterns.md +220 -0
  151. package/skills/cloudflare/references/decision-trees.md +95 -0
  152. package/skills/cloudflare/references/do-storage/README.md +79 -0
  153. package/skills/cloudflare/references/do-storage/api.md +107 -0
  154. package/skills/cloudflare/references/do-storage/configuration.md +114 -0
  155. package/skills/cloudflare/references/do-storage/gotchas.md +153 -0
  156. package/skills/cloudflare/references/do-storage/patterns.md +210 -0
  157. package/skills/cloudflare/references/do-storage/testing.md +186 -0
  158. package/skills/cloudflare/references/durable-objects/README.md +194 -0
  159. package/skills/cloudflare/references/durable-objects/api.md +205 -0
  160. package/skills/cloudflare/references/durable-objects/configuration.md +160 -0
  161. package/skills/cloudflare/references/durable-objects/gotchas.md +200 -0
  162. package/skills/cloudflare/references/durable-objects/patterns.md +205 -0
  163. package/skills/cloudflare/references/email-routing/README.md +89 -0
  164. package/skills/cloudflare/references/email-routing/api.md +192 -0
  165. package/skills/cloudflare/references/email-routing/configuration.md +187 -0
  166. package/skills/cloudflare/references/email-routing/gotchas.md +203 -0
  167. package/skills/cloudflare/references/email-routing/patterns.md +241 -0
  168. package/skills/cloudflare/references/email-workers/README.md +153 -0
  169. package/skills/cloudflare/references/email-workers/api.md +227 -0
  170. package/skills/cloudflare/references/email-workers/configuration.md +115 -0
  171. package/skills/cloudflare/references/email-workers/gotchas.md +133 -0
  172. package/skills/cloudflare/references/email-workers/patterns.md +108 -0
  173. package/skills/cloudflare/references/graphql-api/README.md +147 -0
  174. package/skills/cloudflare/references/graphql-api/api.md +175 -0
  175. package/skills/cloudflare/references/graphql-api/configuration.md +151 -0
  176. package/skills/cloudflare/references/graphql-api/gotchas.md +111 -0
  177. package/skills/cloudflare/references/graphql-api/patterns.md +276 -0
  178. package/skills/cloudflare/references/hyperdrive/README.md +84 -0
  179. package/skills/cloudflare/references/hyperdrive/api.md +149 -0
  180. package/skills/cloudflare/references/hyperdrive/configuration.md +166 -0
  181. package/skills/cloudflare/references/hyperdrive/gotchas.md +77 -0
  182. package/skills/cloudflare/references/hyperdrive/patterns.md +203 -0
  183. package/skills/cloudflare/references/images/README.md +65 -0
  184. package/skills/cloudflare/references/images/api.md +101 -0
  185. package/skills/cloudflare/references/images/configuration.md +206 -0
  186. package/skills/cloudflare/references/images/gotchas.md +106 -0
  187. package/skills/cloudflare/references/images/patterns.md +126 -0
  188. package/skills/cloudflare/references/kv/README.md +90 -0
  189. package/skills/cloudflare/references/kv/api.md +163 -0
  190. package/skills/cloudflare/references/kv/configuration.md +148 -0
  191. package/skills/cloudflare/references/kv/gotchas.md +133 -0
  192. package/skills/cloudflare/references/kv/patterns.md +195 -0
  193. package/skills/cloudflare/references/miniflare/README.md +113 -0
  194. package/skills/cloudflare/references/miniflare/api.md +204 -0
  195. package/skills/cloudflare/references/miniflare/configuration.md +174 -0
  196. package/skills/cloudflare/references/miniflare/gotchas.md +179 -0
  197. package/skills/cloudflare/references/miniflare/patterns.md +187 -0
  198. package/skills/cloudflare/references/network-interconnect/README.md +104 -0
  199. package/skills/cloudflare/references/network-interconnect/api.md +220 -0
  200. package/skills/cloudflare/references/network-interconnect/configuration.md +123 -0
  201. package/skills/cloudflare/references/network-interconnect/gotchas.md +175 -0
  202. package/skills/cloudflare/references/network-interconnect/patterns.md +174 -0
  203. package/skills/cloudflare/references/observability/README.md +93 -0
  204. package/skills/cloudflare/references/observability/api.md +168 -0
  205. package/skills/cloudflare/references/observability/configuration.md +178 -0
  206. package/skills/cloudflare/references/observability/gotchas.md +125 -0
  207. package/skills/cloudflare/references/observability/patterns.md +105 -0
  208. package/skills/cloudflare/references/pages/README.md +92 -0
  209. package/skills/cloudflare/references/pages/api.md +205 -0
  210. package/skills/cloudflare/references/pages/configuration.md +216 -0
  211. package/skills/cloudflare/references/pages/gotchas.md +218 -0
  212. package/skills/cloudflare/references/pages/patterns.md +215 -0
  213. package/skills/cloudflare/references/pages-functions/README.md +104 -0
  214. package/skills/cloudflare/references/pages-functions/api.md +159 -0
  215. package/skills/cloudflare/references/pages-functions/configuration.md +130 -0
  216. package/skills/cloudflare/references/pages-functions/gotchas.md +102 -0
  217. package/skills/cloudflare/references/pages-functions/patterns.md +148 -0
  218. package/skills/cloudflare/references/pipelines/README.md +109 -0
  219. package/skills/cloudflare/references/pipelines/api.md +214 -0
  220. package/skills/cloudflare/references/pipelines/configuration.md +98 -0
  221. package/skills/cloudflare/references/pipelines/gotchas.md +84 -0
  222. package/skills/cloudflare/references/pipelines/patterns.md +87 -0
  223. package/skills/cloudflare/references/product-index.md +112 -0
  224. package/skills/cloudflare/references/pulumi/README.md +113 -0
  225. package/skills/cloudflare/references/pulumi/api.md +230 -0
  226. package/skills/cloudflare/references/pulumi/configuration.md +213 -0
  227. package/skills/cloudflare/references/pulumi/gotchas.md +205 -0
  228. package/skills/cloudflare/references/pulumi/patterns.md +260 -0
  229. package/skills/cloudflare/references/queues/README.md +99 -0
  230. package/skills/cloudflare/references/queues/api.md +211 -0
  231. package/skills/cloudflare/references/queues/configuration.md +151 -0
  232. package/skills/cloudflare/references/queues/gotchas.md +210 -0
  233. package/skills/cloudflare/references/queues/patterns.md +220 -0
  234. package/skills/cloudflare/references/r2/README.md +97 -0
  235. package/skills/cloudflare/references/r2/api.md +235 -0
  236. package/skills/cloudflare/references/r2/configuration.md +176 -0
  237. package/skills/cloudflare/references/r2/gotchas.md +190 -0
  238. package/skills/cloudflare/references/r2/patterns.md +203 -0
  239. package/skills/cloudflare/references/r2-data-catalog/README.md +157 -0
  240. package/skills/cloudflare/references/r2-data-catalog/api.md +199 -0
  241. package/skills/cloudflare/references/r2-data-catalog/configuration.md +205 -0
  242. package/skills/cloudflare/references/r2-data-catalog/gotchas.md +170 -0
  243. package/skills/cloudflare/references/r2-data-catalog/patterns.md +191 -0
  244. package/skills/cloudflare/references/r2-sql/README.md +138 -0
  245. package/skills/cloudflare/references/r2-sql/SKILL.md.backup +512 -0
  246. package/skills/cloudflare/references/r2-sql/api.md +159 -0
  247. package/skills/cloudflare/references/r2-sql/configuration.md +152 -0
  248. package/skills/cloudflare/references/r2-sql/gotchas.md +228 -0
  249. package/skills/cloudflare/references/r2-sql/patterns.md +230 -0
  250. package/skills/cloudflare/references/realtime-sfu/README.md +66 -0
  251. package/skills/cloudflare/references/realtime-sfu/api.md +164 -0
  252. package/skills/cloudflare/references/realtime-sfu/configuration.md +141 -0
  253. package/skills/cloudflare/references/realtime-sfu/gotchas.md +138 -0
  254. package/skills/cloudflare/references/realtime-sfu/patterns.md +187 -0
  255. package/skills/cloudflare/references/realtimekit/README.md +118 -0
  256. package/skills/cloudflare/references/realtimekit/api.md +234 -0
  257. package/skills/cloudflare/references/realtimekit/configuration.md +226 -0
  258. package/skills/cloudflare/references/realtimekit/gotchas.md +206 -0
  259. package/skills/cloudflare/references/realtimekit/patterns.md +240 -0
  260. package/skills/cloudflare/references/sandbox/README.md +104 -0
  261. package/skills/cloudflare/references/sandbox/api.md +200 -0
  262. package/skills/cloudflare/references/sandbox/configuration.md +154 -0
  263. package/skills/cloudflare/references/sandbox/gotchas.md +201 -0
  264. package/skills/cloudflare/references/sandbox/patterns.md +195 -0
  265. package/skills/cloudflare/references/secrets-store/README.md +77 -0
  266. package/skills/cloudflare/references/secrets-store/api.md +199 -0
  267. package/skills/cloudflare/references/secrets-store/configuration.md +187 -0
  268. package/skills/cloudflare/references/secrets-store/gotchas.md +97 -0
  269. package/skills/cloudflare/references/secrets-store/patterns.md +218 -0
  270. package/skills/cloudflare/references/smart-placement/README.md +143 -0
  271. package/skills/cloudflare/references/smart-placement/api.md +192 -0
  272. package/skills/cloudflare/references/smart-placement/configuration.md +202 -0
  273. package/skills/cloudflare/references/smart-placement/gotchas.md +180 -0
  274. package/skills/cloudflare/references/smart-placement/patterns.md +190 -0
  275. package/skills/cloudflare/references/snippets/README.md +74 -0
  276. package/skills/cloudflare/references/snippets/api.md +214 -0
  277. package/skills/cloudflare/references/snippets/configuration.md +239 -0
  278. package/skills/cloudflare/references/snippets/gotchas.md +104 -0
  279. package/skills/cloudflare/references/snippets/patterns.md +135 -0
  280. package/skills/cloudflare/references/spectrum/README.md +52 -0
  281. package/skills/cloudflare/references/spectrum/api.md +184 -0
  282. package/skills/cloudflare/references/spectrum/configuration.md +203 -0
  283. package/skills/cloudflare/references/spectrum/gotchas.md +155 -0
  284. package/skills/cloudflare/references/spectrum/patterns.md +206 -0
  285. package/skills/cloudflare/references/static-assets/README.md +65 -0
  286. package/skills/cloudflare/references/static-assets/api.md +201 -0
  287. package/skills/cloudflare/references/static-assets/configuration.md +186 -0
  288. package/skills/cloudflare/references/static-assets/gotchas.md +164 -0
  289. package/skills/cloudflare/references/static-assets/patterns.md +189 -0
  290. package/skills/cloudflare/references/stream/README.md +123 -0
  291. package/skills/cloudflare/references/stream/api-live.md +202 -0
  292. package/skills/cloudflare/references/stream/api.md +206 -0
  293. package/skills/cloudflare/references/stream/configuration.md +151 -0
  294. package/skills/cloudflare/references/stream/gotchas.md +139 -0
  295. package/skills/cloudflare/references/stream/patterns.md +217 -0
  296. package/skills/cloudflare/references/tail-workers/README.md +92 -0
  297. package/skills/cloudflare/references/tail-workers/api.md +203 -0
  298. package/skills/cloudflare/references/tail-workers/configuration.md +178 -0
  299. package/skills/cloudflare/references/tail-workers/gotchas.md +206 -0
  300. package/skills/cloudflare/references/tail-workers/patterns.md +190 -0
  301. package/skills/cloudflare/references/terraform/README.md +100 -0
  302. package/skills/cloudflare/references/terraform/api.md +178 -0
  303. package/skills/cloudflare/references/terraform/configuration.md +197 -0
  304. package/skills/cloudflare/references/terraform/gotchas.md +150 -0
  305. package/skills/cloudflare/references/terraform/patterns.md +174 -0
  306. package/skills/cloudflare/references/tunnel/README.md +137 -0
  307. package/skills/cloudflare/references/tunnel/api.md +205 -0
  308. package/skills/cloudflare/references/tunnel/configuration.md +163 -0
  309. package/skills/cloudflare/references/tunnel/gotchas.md +159 -0
  310. package/skills/cloudflare/references/tunnel/networking.md +174 -0
  311. package/skills/cloudflare/references/tunnel/patterns.md +199 -0
  312. package/skills/cloudflare/references/turn/README.md +86 -0
  313. package/skills/cloudflare/references/turn/api.md +236 -0
  314. package/skills/cloudflare/references/turn/configuration.md +181 -0
  315. package/skills/cloudflare/references/turn/gotchas.md +236 -0
  316. package/skills/cloudflare/references/turn/patterns.md +228 -0
  317. package/skills/cloudflare/references/turnstile/README.md +102 -0
  318. package/skills/cloudflare/references/turnstile/api.md +253 -0
  319. package/skills/cloudflare/references/turnstile/configuration.md +242 -0
  320. package/skills/cloudflare/references/turnstile/gotchas.md +253 -0
  321. package/skills/cloudflare/references/turnstile/patterns.md +195 -0
  322. package/skills/cloudflare/references/vectorize/README.md +133 -0
  323. package/skills/cloudflare/references/vectorize/api.md +89 -0
  324. package/skills/cloudflare/references/vectorize/configuration.md +91 -0
  325. package/skills/cloudflare/references/vectorize/gotchas.md +83 -0
  326. package/skills/cloudflare/references/vectorize/patterns.md +92 -0
  327. package/skills/cloudflare/references/waf/README.md +125 -0
  328. package/skills/cloudflare/references/waf/api.md +203 -0
  329. package/skills/cloudflare/references/waf/configuration.md +215 -0
  330. package/skills/cloudflare/references/waf/gotchas.md +208 -0
  331. package/skills/cloudflare/references/waf/patterns.md +236 -0
  332. package/skills/cloudflare/references/web-analytics/README.md +149 -0
  333. package/skills/cloudflare/references/web-analytics/configuration.md +81 -0
  334. package/skills/cloudflare/references/web-analytics/gotchas.md +86 -0
  335. package/skills/cloudflare/references/web-analytics/integration.md +63 -0
  336. package/skills/cloudflare/references/web-analytics/patterns.md +98 -0
  337. package/skills/cloudflare/references/workerd/README.md +85 -0
  338. package/skills/cloudflare/references/workerd/api.md +219 -0
  339. package/skills/cloudflare/references/workerd/configuration.md +200 -0
  340. package/skills/cloudflare/references/workerd/gotchas.md +151 -0
  341. package/skills/cloudflare/references/workerd/patterns.md +205 -0
  342. package/skills/cloudflare/references/workers/README.md +110 -0
  343. package/skills/cloudflare/references/workers/api.md +197 -0
  344. package/skills/cloudflare/references/workers/configuration.md +184 -0
  345. package/skills/cloudflare/references/workers/frameworks.md +200 -0
  346. package/skills/cloudflare/references/workers/gotchas.md +145 -0
  347. package/skills/cloudflare/references/workers/patterns.md +220 -0
  348. package/skills/cloudflare/references/workers-ai/README.md +206 -0
  349. package/skills/cloudflare/references/workers-ai/api.md +115 -0
  350. package/skills/cloudflare/references/workers-ai/configuration.md +98 -0
  351. package/skills/cloudflare/references/workers-ai/gotchas.md +130 -0
  352. package/skills/cloudflare/references/workers-ai/patterns.md +122 -0
  353. package/skills/cloudflare/references/workers-for-platforms/README.md +95 -0
  354. package/skills/cloudflare/references/workers-for-platforms/api.md +212 -0
  355. package/skills/cloudflare/references/workers-for-platforms/configuration.md +178 -0
  356. package/skills/cloudflare/references/workers-for-platforms/gotchas.md +134 -0
  357. package/skills/cloudflare/references/workers-for-platforms/patterns.md +210 -0
  358. package/skills/cloudflare/references/workers-playground/README.md +131 -0
  359. package/skills/cloudflare/references/workers-playground/api.md +101 -0
  360. package/skills/cloudflare/references/workers-playground/configuration.md +169 -0
  361. package/skills/cloudflare/references/workers-playground/gotchas.md +88 -0
  362. package/skills/cloudflare/references/workers-playground/patterns.md +134 -0
  363. package/skills/cloudflare/references/workers-vpc/README.md +130 -0
  364. package/skills/cloudflare/references/workers-vpc/api.md +196 -0
  365. package/skills/cloudflare/references/workers-vpc/configuration.md +151 -0
  366. package/skills/cloudflare/references/workers-vpc/gotchas.md +171 -0
  367. package/skills/cloudflare/references/workers-vpc/patterns.md +235 -0
  368. package/skills/cloudflare/references/workflows/README.md +72 -0
  369. package/skills/cloudflare/references/workflows/api.md +237 -0
  370. package/skills/cloudflare/references/workflows/configuration.md +158 -0
  371. package/skills/cloudflare/references/workflows/gotchas.md +97 -0
  372. package/skills/cloudflare/references/workflows/patterns.md +245 -0
  373. package/skills/cloudflare/references/wrangler/README.md +143 -0
  374. package/skills/cloudflare/references/wrangler/api.md +188 -0
  375. package/skills/cloudflare/references/wrangler/configuration.md +198 -0
  376. package/skills/cloudflare/references/wrangler/gotchas.md +212 -0
  377. package/skills/cloudflare/references/wrangler/patterns.md +211 -0
  378. package/skills/cloudflare/references/zaraz/IMPLEMENTATION_SUMMARY.md +131 -0
  379. package/skills/cloudflare/references/zaraz/README.md +114 -0
  380. package/skills/cloudflare/references/zaraz/api.md +118 -0
  381. package/skills/cloudflare/references/zaraz/configuration.md +94 -0
  382. package/skills/cloudflare/references/zaraz/gotchas.md +88 -0
  383. package/skills/cloudflare/references/zaraz/patterns.md +77 -0
  384. package/skills/docker/SKILL.md +7 -101
  385. package/skills/docker/references/advanced-examples.md +71 -0
  386. package/skills/docker/references/templates.md +34 -0
  387. package/skills/docs-marketer/SKILL.md +178 -0
  388. package/skills/docs-marketer/references/audit-categories.md +328 -0
  389. package/skills/docs-marketer/references/copilot-docs-prompts.md +88 -0
  390. package/skills/docs-marketer/references/copilot-usage.md +16 -0
  391. package/skills/docs-marketer/references/feedback-loop.md +155 -0
  392. package/skills/docs-marketer/references/multi-pass-docs-protocol.md +410 -0
  393. package/skills/drizzle-orm/SKILL.md +82 -0
  394. package/skills/durable-objects/SKILL.md +167 -0
  395. package/skills/durable-objects/references/advanced_features.md +29 -0
  396. package/skills/durable-objects/references/rules.md +300 -0
  397. package/skills/durable-objects/references/testing.md +261 -0
  398. package/skills/durable-objects/references/workers.md +336 -0
  399. package/skills/gcp/SKILL.md +37 -0
  400. package/skills/github-actions/SKILL.md +5 -58
  401. package/skills/github-actions/references/templates.md +65 -0
  402. package/skills/github-commander/SKILL.md +13 -21
  403. package/skills/github-commander/workflows/copilot-audit.md +12 -12
  404. package/skills/github-copilot-cli/SKILL.md +21 -26
  405. package/skills/github-repo-setup/SKILL.md +136 -0
  406. package/skills/github-repo-setup/references/community-standards.md +136 -0
  407. package/skills/github-repo-setup/references/github-automation.md +490 -0
  408. package/skills/github-repo-setup/references/inline-templates.md +205 -0
  409. package/skills/github-repo-setup/references/project-config.md +320 -0
  410. package/skills/gitlab/SKILL.md +7 -2
  411. package/skills/gitlab/package-lock.json +389 -389
  412. package/skills/golang/SKILL.md +8 -1
  413. package/skills/graphql/SKILL.md +30 -0
  414. package/skills/hono/SKILL.md +82 -0
  415. package/skills/journal-optimizer/SKILL.md +206 -0
  416. package/skills/journal-optimizer/references/optimizer-scripts.md +169 -0
  417. package/skills/llm-app-engineering/SKILL.md +18 -0
  418. package/skills/monorepo/SKILL.md +56 -0
  419. package/skills/multi-agent-orchestration/SKILL.md +14 -0
  420. package/skills/mysql/SKILL.md +6 -2
  421. package/skills/next-best-practices/SKILL.md +86 -0
  422. package/skills/next-best-practices/references/cache-components-examples.md +234 -0
  423. package/skills/next-best-practices/references/cache-components.md +210 -0
  424. package/skills/next-best-practices/references/upgrade-decision-tree.md +33 -0
  425. package/skills/next-best-practices/references/upgrade.md +43 -0
  426. package/skills/next-cache-components/SKILL.md +441 -0
  427. package/skills/next-upgrade/SKILL.md +43 -0
  428. package/skills/next-upgrade/references/decision-tree.md +33 -0
  429. package/skills/nodejs/SKILL.md +46 -0
  430. package/skills/opentelemetry/SKILL.md +62 -0
  431. package/skills/package.json +39 -4
  432. package/skills/playwright-standard/SKILL.md +6 -11
  433. package/skills/playwright-standard/references/locators.md +7 -0
  434. package/skills/postgres/SKILL.md +6 -1
  435. package/skills/python/SKILL.md +8 -70
  436. package/skills/python/references/advanced-patterns.md +37 -0
  437. package/skills/python/references/config-templates.md +48 -0
  438. package/skills/rag-pipelines/SKILL.md +14 -0
  439. package/skills/redis/SKILL.md +31 -0
  440. package/skills/render/SKILL.md +35 -0
  441. package/skills/rust/SKILL.md +15 -25
  442. package/skills/rust/references/borrow-checker.md +13 -0
  443. package/skills/rust/references/ecosystem.md +11 -0
  444. package/skills/sandbox-sdk/SKILL.md +186 -0
  445. package/skills/sandbox-sdk/references/api-quick-ref.md +113 -0
  446. package/skills/sandbox-sdk/references/examples.md +52 -0
  447. package/skills/shadcn-ui/SKILL.md +22 -57
  448. package/skills/skill-builder/SKILL.md +23 -424
  449. package/skills/skill-builder/references/tutorial.md +457 -0
  450. package/skills/sqlite/SKILL.md +16 -5
  451. package/skills/table.md +59 -0
  452. package/skills/tailwind-css/SKILL.md +11 -60
  453. package/skills/tailwind-css/references/component-patterns.md +52 -0
  454. package/skills/trpc/SKILL.md +56 -0
  455. package/skills/typescript/SKILL.md +30 -433
  456. package/skills/typescript/references/tutorial.md +453 -0
  457. package/skills/vercel-ai-sdk/SKILL.md +48 -0
  458. package/skills/vitest-standard/SKILL.md +5 -11
  459. package/skills/vitest-standard/references/assertions.md +11 -0
  460. package/skills/web-perf/SKILL.md +207 -0
  461. package/skills/workers-best-practices/SKILL.md +120 -0
  462. package/skills/workers-best-practices/references/anti-patterns.md +18 -0
  463. package/skills/workers-best-practices/references/review.md +174 -0
  464. package/skills/workers-best-practices/references/rules.md +485 -0
  465. package/skills/wrangler/SKILL.md +43 -0
  466. package/skills/wrangler/references/cli-commands.md +861 -0
  467. package/skills/zod/SKILL.md +48 -0
  468. package/dist/tools-P4VGG4FH.js +0 -1
  469. package/skills/react-best-practices/AGENTS.md +0 -2883
  470. package/skills/react-best-practices/SKILL.md +0 -138
  471. /package/skills/{react-best-practices → next-best-practices}/README.md +0 -0
  472. /package/skills/{react-best-practices → next-best-practices}/metadata.json +0 -0
  473. /package/skills/{react-best-practices → next-best-practices}/rules/_sections.md +0 -0
  474. /package/skills/{react-best-practices → next-best-practices}/rules/_template.md +0 -0
  475. /package/skills/{react-best-practices → next-best-practices}/rules/advanced-event-handler-refs.md +0 -0
  476. /package/skills/{react-best-practices → next-best-practices}/rules/advanced-init-once.md +0 -0
  477. /package/skills/{react-best-practices → next-best-practices}/rules/advanced-use-latest.md +0 -0
  478. /package/skills/{react-best-practices → next-best-practices}/rules/async-api-routes.md +0 -0
  479. /package/skills/{react-best-practices → next-best-practices}/rules/async-defer-await.md +0 -0
  480. /package/skills/{react-best-practices → next-best-practices}/rules/async-dependencies.md +0 -0
  481. /package/skills/{react-best-practices → next-best-practices}/rules/async-parallel.md +0 -0
  482. /package/skills/{react-best-practices → next-best-practices}/rules/async-suspense-boundaries.md +0 -0
  483. /package/skills/{react-best-practices → next-best-practices}/rules/bundle-barrel-imports.md +0 -0
  484. /package/skills/{react-best-practices → next-best-practices}/rules/bundle-conditional.md +0 -0
  485. /package/skills/{react-best-practices → next-best-practices}/rules/bundle-defer-third-party.md +0 -0
  486. /package/skills/{react-best-practices → next-best-practices}/rules/bundle-dynamic-imports.md +0 -0
  487. /package/skills/{react-best-practices → next-best-practices}/rules/bundle-preload.md +0 -0
  488. /package/skills/{react-best-practices → next-best-practices}/rules/client-event-listeners.md +0 -0
  489. /package/skills/{react-best-practices → next-best-practices}/rules/client-localstorage-schema.md +0 -0
  490. /package/skills/{react-best-practices → next-best-practices}/rules/client-passive-event-listeners.md +0 -0
  491. /package/skills/{react-best-practices → next-best-practices}/rules/client-swr-dedup.md +0 -0
  492. /package/skills/{react-best-practices → next-best-practices}/rules/js-batch-dom-css.md +0 -0
  493. /package/skills/{react-best-practices → next-best-practices}/rules/js-cache-function-results.md +0 -0
  494. /package/skills/{react-best-practices → next-best-practices}/rules/js-cache-property-access.md +0 -0
  495. /package/skills/{react-best-practices → next-best-practices}/rules/js-cache-storage.md +0 -0
  496. /package/skills/{react-best-practices → next-best-practices}/rules/js-combine-iterations.md +0 -0
  497. /package/skills/{react-best-practices → next-best-practices}/rules/js-early-exit.md +0 -0
  498. /package/skills/{react-best-practices → next-best-practices}/rules/js-hoist-regexp.md +0 -0
  499. /package/skills/{react-best-practices → next-best-practices}/rules/js-index-maps.md +0 -0
  500. /package/skills/{react-best-practices → next-best-practices}/rules/js-length-check-first.md +0 -0
  501. /package/skills/{react-best-practices → next-best-practices}/rules/js-min-max-loop.md +0 -0
  502. /package/skills/{react-best-practices → next-best-practices}/rules/js-set-map-lookups.md +0 -0
  503. /package/skills/{react-best-practices → next-best-practices}/rules/js-tosorted-immutable.md +0 -0
  504. /package/skills/{react-best-practices → next-best-practices}/rules/rendering-activity.md +0 -0
  505. /package/skills/{react-best-practices → next-best-practices}/rules/rendering-animate-svg-wrapper.md +0 -0
  506. /package/skills/{react-best-practices → next-best-practices}/rules/rendering-conditional-render.md +0 -0
  507. /package/skills/{react-best-practices → next-best-practices}/rules/rendering-content-visibility.md +0 -0
  508. /package/skills/{react-best-practices → next-best-practices}/rules/rendering-hoist-jsx.md +0 -0
  509. /package/skills/{react-best-practices → next-best-practices}/rules/rendering-hydration-no-flicker.md +0 -0
  510. /package/skills/{react-best-practices → next-best-practices}/rules/rendering-hydration-suppress-warning.md +0 -0
  511. /package/skills/{react-best-practices → next-best-practices}/rules/rendering-svg-precision.md +0 -0
  512. /package/skills/{react-best-practices → next-best-practices}/rules/rendering-usetransition-loading.md +0 -0
  513. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-defer-reads.md +0 -0
  514. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-dependencies.md +0 -0
  515. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-derived-state-no-effect.md +0 -0
  516. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-derived-state.md +0 -0
  517. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-functional-setstate.md +0 -0
  518. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-lazy-state-init.md +0 -0
  519. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-memo-with-default-value.md +0 -0
  520. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-memo.md +0 -0
  521. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-move-effect-to-event.md +0 -0
  522. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-simple-expression-in-memo.md +0 -0
  523. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-transitions.md +0 -0
  524. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-use-ref-transient-values.md +0 -0
  525. /package/skills/{react-best-practices → next-best-practices}/rules/server-after-nonblocking.md +0 -0
  526. /package/skills/{react-best-practices → next-best-practices}/rules/server-auth-actions.md +0 -0
  527. /package/skills/{react-best-practices → next-best-practices}/rules/server-cache-lru.md +0 -0
  528. /package/skills/{react-best-practices → next-best-practices}/rules/server-cache-react.md +0 -0
  529. /package/skills/{react-best-practices → next-best-practices}/rules/server-dedup-props.md +0 -0
  530. /package/skills/{react-best-practices → next-best-practices}/rules/server-parallel-fetching.md +0 -0
  531. /package/skills/{react-best-practices → next-best-practices}/rules/server-serialization.md +0 -0
@@ -0,0 +1,158 @@
1
+ # Workflow Configuration
2
+
3
+ ## wrangler.jsonc Setup
4
+
5
+ ```jsonc
6
+ {
7
+ "name": "my-worker",
8
+ "main": "src/index.ts",
9
+ "compatibility_date": "2025-01-01", // Use current date for new projects
10
+ "observability": {
11
+ "enabled": true, // Enables Workflows dashboard + structured logs
12
+ },
13
+ "workflows": [
14
+ {
15
+ "name": "my-workflow", // Workflow name
16
+ "binding": "MY_WORKFLOW", // Env binding
17
+ "class_name": "MyWorkflow", // TS class name
18
+ // "script_name": "other-worker" // For cross-script calls
19
+ },
20
+ ],
21
+ "limits": {
22
+ "cpu_ms": 300000, // 5 min max (default 30s)
23
+ },
24
+ }
25
+ ```
26
+
27
+ ## Step Configuration
28
+
29
+ ```typescript
30
+ // Basic step
31
+ const data = await step.do('step name', async () => ({ result: 'value' }))
32
+
33
+ // With retry config
34
+ await step.do(
35
+ 'api call',
36
+ {
37
+ retries: {
38
+ limit: 10, // Default: 5, or Infinity
39
+ delay: '10 seconds', // Default: 10000ms
40
+ backoff: 'exponential', // constant | linear | exponential
41
+ },
42
+ timeout: '30 minutes', // Per-attempt timeout (default: 10min)
43
+ },
44
+ async () => {
45
+ const res = await fetch('https://api.example.com/data')
46
+ if (!res.ok) throw new Error('Failed')
47
+ return res.json()
48
+ }
49
+ )
50
+ ```
51
+
52
+ ### Parallel Steps
53
+
54
+ ```typescript
55
+ const [user, settings] = await Promise.all([
56
+ step.do('fetch user', async () => this.env.KV.get(`user:${id}`)),
57
+ step.do('fetch settings', async () => this.env.KV.get(`settings:${id}`)),
58
+ ])
59
+ ```
60
+
61
+ ### Conditional Steps
62
+
63
+ ```typescript
64
+ const config = await step.do('fetch config', async () => this.env.KV.get('flags', { type: 'json' }))
65
+
66
+ // ✅ Deterministic (based on step output)
67
+ if (config.enableEmail) {
68
+ await step.do('send email', async () => sendEmail())
69
+ }
70
+
71
+ // ❌ Non-deterministic (Date.now outside step)
72
+ if (Date.now() > deadline) {
73
+ /* BAD */
74
+ }
75
+ ```
76
+
77
+ ### Dynamic Steps (Loops)
78
+
79
+ ```typescript
80
+ const files = await step.do('list files', async () => this.env.BUCKET.list())
81
+
82
+ for (const file of files.objects) {
83
+ await step.do(`process ${file.key}`, async () => {
84
+ const obj = await this.env.BUCKET.get(file.key)
85
+ return processData(await obj.arrayBuffer())
86
+ })
87
+ }
88
+ ```
89
+
90
+ ## Multiple Workflows
91
+
92
+ ```jsonc
93
+ {
94
+ "workflows": [
95
+ { "name": "user-onboarding", "binding": "USER_ONBOARDING", "class_name": "UserOnboarding" },
96
+ { "name": "data-processing", "binding": "DATA_PROCESSING", "class_name": "DataProcessing" },
97
+ ],
98
+ }
99
+ ```
100
+
101
+ Each class extends `WorkflowEntrypoint` with its own `Params` type.
102
+
103
+ ## Cross-Script Bindings
104
+
105
+ Worker A defines workflow. Worker B calls it by adding `script_name`:
106
+
107
+ ```jsonc
108
+ // Worker B (caller)
109
+ {
110
+ "workflows": [
111
+ {
112
+ "name": "billing-workflow",
113
+ "binding": "BILLING",
114
+ "script_name": "billing-worker", // Points to Worker A
115
+ },
116
+ ],
117
+ }
118
+ ```
119
+
120
+ ## Bindings
121
+
122
+ Workflows access Cloudflare bindings via `this.env`:
123
+
124
+ ```typescript
125
+ type Env = {
126
+ MY_WORKFLOW: Workflow
127
+ KV: KVNamespace
128
+ DB: D1Database
129
+ BUCKET: R2Bucket
130
+ AI: Ai
131
+ VECTORIZE: VectorizeIndex
132
+ }
133
+
134
+ await step.do('use bindings', async () => {
135
+ const kv = await this.env.KV.get('key')
136
+ const db = await this.env.DB.prepare('SELECT * FROM users').first()
137
+ const file = await this.env.BUCKET.get('file.txt')
138
+ const ai = await this.env.AI.run('@cf/meta/llama-2-7b-chat-int8', { prompt: 'Hi' })
139
+ })
140
+ ```
141
+
142
+ ## Pages Functions Binding
143
+
144
+ Pages Functions can trigger Workflows via service bindings:
145
+
146
+ ```typescript
147
+ // functions/_middleware.ts
148
+ export const onRequest: PagesFunction<Env> = async ({ env, request }) => {
149
+ const instance = await env.MY_WORKFLOW.create({
150
+ params: { url: request.url },
151
+ })
152
+ return new Response(`Started ${instance.id}`)
153
+ }
154
+ ```
155
+
156
+ Configure in wrangler.jsonc under `service_bindings`.
157
+
158
+ See: [api.md](./api.md), [patterns.md](./patterns.md)
@@ -0,0 +1,97 @@
1
+ # Gotchas & Debugging
2
+
3
+ ## Common Errors
4
+
5
+ ### "Step Timeout"
6
+
7
+ **Cause:** Step execution exceeding 10 minute default timeout or configured timeout
8
+ **Solution:** Set custom timeout with `step.do('long operation', {timeout: '30 minutes'}, async () => {...})` or increase CPU limit in wrangler.jsonc (max 5min CPU time)
9
+
10
+ ### "waitForEvent Timeout"
11
+
12
+ **Cause:** Event not received within timeout period (default 24h, max 365d)
13
+ **Solution:** Wrap in try-catch to handle timeout gracefully and proceed with default behavior
14
+
15
+ ### "Non-Deterministic Step Names"
16
+
17
+ **Cause:** Using dynamic values like `Date.now()` in step names causes replay issues
18
+ **Solution:** Use deterministic values like `event.instanceId` for step names
19
+
20
+ ### "State Lost in Variables"
21
+
22
+ **Cause:** Using module-level or local variables to store state which is lost on hibernation
23
+ **Solution:** Return values from `step.do()` which are automatically persisted: `const total = await step.do('step 1', async () => 10)`
24
+
25
+ ### "Non-Deterministic Conditionals"
26
+
27
+ **Cause:** Using non-deterministic logic (like `Date.now()`) outside steps in conditionals
28
+ **Solution:** Move non-deterministic operations inside steps: `const isLate = await step.do('check', async () => Date.now() > deadline)`
29
+
30
+ ### "Large Step Returns Exceeding Limit"
31
+
32
+ **Cause:** Returning data >1 MiB from step
33
+ **Solution:** Store large data in R2 and return only reference: `{ key: 'r2-object-key' }`
34
+
35
+ ### "Step Exceeded CPU Limit But Ran for < 30s"
36
+
37
+ **Cause:** Confusion between CPU time (active compute) and wall-clock time (includes I/O waits)
38
+ **Solution:** Network requests, database queries, and sleeps don't count toward CPU. 30s limit = 30s of active processing
39
+
40
+ ### "Idempotency Violation"
41
+
42
+ **Cause:** Step operations not idempotent, causing duplicate charges or actions on retry
43
+ **Solution:** Check if operation already completed before executing (e.g., check if customer already charged)
44
+
45
+ ### "Instance ID Collision"
46
+
47
+ **Cause:** Reusing instance IDs causing conflicts
48
+ **Solution:** Use unique IDs with timestamp: `await env.MY_WORKFLOW.create({ id: \`${userId}-${Date.now()}\`, params: {} })`
49
+
50
+ ### "Instance Data Disappeared After Completion"
51
+
52
+ **Cause:** Completed/errored instances are automatically deleted after retention period (3 days free / 30 days paid)
53
+ **Solution:** Export critical data to KV/R2/D1 before workflow completes
54
+
55
+ ### "Missing await on step.do"
56
+
57
+ **Cause:** Forgetting to await step.do() causing fire-and-forget behavior
58
+ **Solution:** Always await step operations: `await step.do('task', ...)`
59
+
60
+ ## Limits
61
+
62
+ | Limit | Free | Paid | Notes |
63
+ | ---------------------------- | -------- | --------------------------- | ---------------------------------------------------- |
64
+ | CPU per step | 10ms | 30s (default), 5min (max) | Set via `limits.cpu_ms` in wrangler.jsonc |
65
+ | Step state | 1 MiB | 1 MiB | Per step return value |
66
+ | Instance state | 100 MB | 1 GB | Total state per workflow instance |
67
+ | Steps per workflow | 1,024 | 1,024 | `step.sleep()` doesn't count |
68
+ | Executions per day | 100k | Unlimited | Daily execution limit |
69
+ | Concurrent instances | 25 | 10k | Maximum concurrent workflows; waiting state excluded |
70
+ | Queued instances | 100k | 1M | Maximum queued workflow instances |
71
+ | Subrequests per instance | 50 | 10,000 (default), up to 10M | Maximum outbound requests per workflow instance |
72
+ | State retention | 3 days | 30 days | How long completed instances kept |
73
+ | Step timeout default | 10 min | 10 min | Per attempt |
74
+ | waitForEvent timeout default | 24h | 24h | Maximum 365 days |
75
+ | waitForEvent timeout max | 365 days | 365 days | Maximum wait time |
76
+
77
+ **Note:** Instances in `waiting` state (from `step.sleep` or `step.waitForEvent`) don't count toward concurrent instance limit, allowing millions of sleeping workflows.
78
+
79
+ ## Pricing
80
+
81
+ | Metric | Free | Paid | Notes |
82
+ | -------- | ----------- | ------------------------------ | -------------------------------------------------- |
83
+ | Requests | 100k/day | 10M/mo + $0.30/M | Workflow invocations |
84
+ | CPU time | 10ms/invoke | 30M CPU-ms/mo + $0.02/M CPU-ms | Actual CPU usage |
85
+ | Storage | 1 GB | 1 GB/mo + $0.20/GB-mo | All instances (running/errored/sleeping/completed) |
86
+
87
+ ## References
88
+
89
+ - [Official Docs](https://developers.cloudflare.com/workflows/)
90
+ - [Get Started Guide](https://developers.cloudflare.com/workflows/get-started/guide/)
91
+ - [Workers API](https://developers.cloudflare.com/workflows/build/workers-api/)
92
+ - [REST API](https://developers.cloudflare.com/api/resources/workflows/)
93
+ - [Examples](https://developers.cloudflare.com/workflows/examples/)
94
+ - [Limits](https://developers.cloudflare.com/workflows/reference/limits/)
95
+ - [Pricing](https://developers.cloudflare.com/workflows/reference/pricing/)
96
+
97
+ See: [README.md](./README.md), [configuration.md](./configuration.md), [api.md](./api.md), [patterns.md](./patterns.md)
@@ -0,0 +1,245 @@
1
+ # Workflow Patterns
2
+
3
+ ## Image Processing Pipeline
4
+
5
+ ```typescript
6
+ export class ImageProcessingWorkflow extends WorkflowEntrypoint<Env, Params> {
7
+ async run(event, step) {
8
+ const imageData = await step.do('fetch', async () =>
9
+ (await this.env.BUCKET.get(event.payload.imageKey)).arrayBuffer()
10
+ )
11
+ const description = await step.do(
12
+ 'generate description',
13
+ async () =>
14
+ await this.env.AI.run('@cf/llava-hf/llava-1.5-7b-hf', {
15
+ image: Array.from(new Uint8Array(imageData)),
16
+ prompt: 'Describe this image',
17
+ max_tokens: 50,
18
+ })
19
+ )
20
+ await step.waitForEvent('await approval', { event: 'approved', timeout: '24h' })
21
+ await step.do(
22
+ 'publish',
23
+ async () => await this.env.BUCKET.put(`public/${event.payload.imageKey}`, imageData)
24
+ )
25
+ }
26
+ }
27
+ ```
28
+
29
+ ## User Lifecycle
30
+
31
+ ```typescript
32
+ export class UserLifecycleWorkflow extends WorkflowEntrypoint<Env, Params> {
33
+ async run(event, step) {
34
+ await step.do('welcome email', async () => await sendEmail(event.payload.email, 'Welcome!'))
35
+ await step.sleep('trial period', '7 days')
36
+ const hasConverted = await step.do('check conversion', async () => {
37
+ const user = await this.env.DB.prepare('SELECT subscription_status FROM users WHERE id = ?')
38
+ .bind(event.payload.userId)
39
+ .first()
40
+ return user.subscription_status === 'active'
41
+ })
42
+ if (!hasConverted)
43
+ await step.do(
44
+ 'trial expiration email',
45
+ async () => await sendEmail(event.payload.email, 'Trial ending')
46
+ )
47
+ }
48
+ }
49
+ ```
50
+
51
+ ## Data Pipeline
52
+
53
+ ```typescript
54
+ export class DataPipelineWorkflow extends WorkflowEntrypoint<Env, Params> {
55
+ async run(event, step) {
56
+ const rawData = await step.do(
57
+ 'extract',
58
+ { retries: { limit: 10, delay: '30s', backoff: 'exponential' } },
59
+ async () => {
60
+ const res = await fetch(event.payload.sourceUrl)
61
+ if (!res.ok) throw new Error('Fetch failed')
62
+ return res.json()
63
+ }
64
+ )
65
+ const transformed = await step.do('transform', async () =>
66
+ rawData.map((item) => ({ id: item.id, normalized: normalizeData(item) }))
67
+ )
68
+ const dataRef = await step.do('store', async () => {
69
+ const key = `processed/${Date.now()}.json`
70
+ await this.env.BUCKET.put(key, JSON.stringify(transformed))
71
+ return { key }
72
+ })
73
+ await step.do('load', async () => {
74
+ const data = await (await this.env.BUCKET.get(dataRef.key)).json()
75
+ for (let i = 0; i < data.length; i += 100) {
76
+ await this.env.DB.batch(
77
+ data
78
+ .slice(i, i + 100)
79
+ .map((item) =>
80
+ this.env.DB.prepare('INSERT INTO records VALUES (?, ?)').bind(
81
+ item.id,
82
+ item.normalized
83
+ )
84
+ )
85
+ )
86
+ }
87
+ })
88
+ }
89
+ }
90
+ ```
91
+
92
+ ## Human-in-the-Loop Approval
93
+
94
+ ```typescript
95
+ export class ApprovalWorkflow extends WorkflowEntrypoint<Env, Params> {
96
+ async run(event, step) {
97
+ await step.do(
98
+ 'create approval',
99
+ async () =>
100
+ await this.env.DB.prepare('INSERT INTO approvals (id, user_id, status) VALUES (?, ?, ?)')
101
+ .bind(event.instanceId, event.payload.userId, 'pending')
102
+ .run()
103
+ )
104
+ try {
105
+ const approval = await step.waitForEvent<{ approved: boolean }>('wait for approval', {
106
+ event: 'approval-response',
107
+ timeout: '48h',
108
+ })
109
+ if (approval.approved) {
110
+ await step.do('process approval', async () => {})
111
+ } else {
112
+ await step.do('handle rejection', async () => {})
113
+ }
114
+ } catch (e) {
115
+ await step.do(
116
+ 'auto reject',
117
+ async () =>
118
+ await this.env.DB.prepare('UPDATE approvals SET status = ? WHERE id = ?')
119
+ .bind('auto-rejected', event.instanceId)
120
+ .run()
121
+ )
122
+ }
123
+ }
124
+ }
125
+ ```
126
+
127
+ ## Testing Workflows
128
+
129
+ ### Setup
130
+
131
+ ```typescript
132
+ // vitest.config.ts
133
+ import { defineWorkersConfig } from '@cloudflare/vitest-pool-workers/config'
134
+
135
+ export default defineWorkersConfig({
136
+ test: {
137
+ poolOptions: {
138
+ workers: {
139
+ wrangler: { configPath: './wrangler.jsonc' },
140
+ },
141
+ },
142
+ },
143
+ })
144
+ ```
145
+
146
+ ### Introspection API
147
+
148
+ ```typescript
149
+ import { introspectWorkflowInstance } from 'cloudflare:test'
150
+
151
+ const instance = await env.MY_WORKFLOW.create({ params: { userId: '123' } })
152
+ const introspector = await introspectWorkflowInstance(env.MY_WORKFLOW, instance.id)
153
+
154
+ // Wait for step completion
155
+ const result = await introspector.waitForStepResult({ name: 'fetch user', index: 0 })
156
+
157
+ // Mock step behavior
158
+ await introspector.modify(async (m) => {
159
+ await m.mockStepResult({ name: 'api call' }, { mocked: true })
160
+ })
161
+ ```
162
+
163
+ ## Best Practices
164
+
165
+ ### ✅ DO
166
+
167
+ 1. **Granular steps**: One API call per step (unless proving idempotency)
168
+ 2. **Idempotency**: Check-then-execute; use idempotency keys
169
+ 3. **Deterministic names**: Use static or step-output-based names
170
+ 4. **Return state**: Persist via step returns, not variables
171
+ 5. **Always await**: `await step.do()`, avoid dangling promises
172
+ 6. **Deterministic conditionals**: Base on `event.payload` or step outputs
173
+ 7. **Store large data externally**: R2/KV for >1 MiB, return refs
174
+ 8. **Batch creation**: `createBatch()` for multiple instances
175
+
176
+ ### ❌ DON'T
177
+
178
+ 1. **One giant step**: Breaks durability & retry control
179
+ 2. **State outside steps**: Lost on hibernation
180
+ 3. **Mutate events**: Events immutable, return new state
181
+ 4. **Non-deterministic logic outside steps**: `Math.random()`, `Date.now()` must be in steps
182
+ 5. **Side effects outside steps**: May duplicate on restart
183
+ 6. **Non-deterministic step names**: Prevents caching
184
+ 7. **Ignore timeouts**: `waitForEvent` throws, use try-catch
185
+ 8. **Reuse instance IDs**: Must be unique within retention
186
+
187
+ ## Orchestration Patterns
188
+
189
+ ### Fan-Out (Parallel Processing)
190
+
191
+ ```typescript
192
+ const files = await step.do('list', async () => this.env.BUCKET.list())
193
+ await Promise.all(
194
+ files.objects.map((file, i) =>
195
+ step.do(`process ${i}`, async () =>
196
+ processFile(await (await this.env.BUCKET.get(file.key)).arrayBuffer())
197
+ )
198
+ )
199
+ )
200
+ ```
201
+
202
+ ### Parent-Child Workflows
203
+
204
+ ```typescript
205
+ const child = await step.do(
206
+ 'start child',
207
+ async () =>
208
+ await this.env.CHILD_WORKFLOW.create({
209
+ id: `child-${event.instanceId}`,
210
+ params: { data: result.data },
211
+ })
212
+ )
213
+ await step.do('other work', async () => console.log(`Child started: ${child.id}`))
214
+ ```
215
+
216
+ ### Race Pattern
217
+
218
+ ```typescript
219
+ const winner = await Promise.race([
220
+ step.do('option A', async () => slowOperation()),
221
+ step.do('option B', async () => fastOperation()),
222
+ ])
223
+ ```
224
+
225
+ ### Scheduled Workflow Chain
226
+
227
+ ```typescript
228
+ export default {
229
+ async scheduled(event, env) {
230
+ await env.DAILY_WORKFLOW.create({
231
+ id: `daily-${event.scheduledTime}`,
232
+ params: { timestamp: event.scheduledTime },
233
+ })
234
+ },
235
+ }
236
+ export class DailyWorkflow extends WorkflowEntrypoint<Env, Params> {
237
+ async run(event, step) {
238
+ await step.do('daily task', async () => {})
239
+ await step.sleep('wait 7 days', '7 days')
240
+ await step.do('weekly followup', async () => {})
241
+ }
242
+ }
243
+ ```
244
+
245
+ See: [configuration.md](./configuration.md), [api.md](./api.md), [gotchas.md](./gotchas.md)
@@ -0,0 +1,143 @@
1
+ # Cloudflare Wrangler
2
+
3
+ Official CLI for Cloudflare Workers - develop, manage, and deploy Workers from the command line.
4
+
5
+ ## What is Wrangler?
6
+
7
+ Wrangler is the Cloudflare Developer Platform CLI that allows you to:
8
+
9
+ - Create, develop, and deploy Workers
10
+ - Manage bindings (KV, D1, R2, Durable Objects, etc.)
11
+ - Configure routing and environments
12
+ - Run local development servers
13
+ - Execute migrations and manage resources
14
+ - Perform integration testing
15
+
16
+ ## Installation
17
+
18
+ ```bash
19
+ npm install wrangler --save-dev
20
+ # or globally
21
+ npm install -g wrangler
22
+ ```
23
+
24
+ Run commands: `npx wrangler <command>` (or `pnpm`/`yarn wrangler`)
25
+
26
+ ## Reading Order
27
+
28
+ | If you want to... | Start here |
29
+ | --------------------------------- | ------------------------------------------------------------------- |
30
+ | Create/deploy Worker quickly | Essential Commands below → [patterns.md](./patterns.md) §New Worker |
31
+ | Configure bindings (KV, D1, R2) | [configuration.md](./configuration.md) §Bindings |
32
+ | Write integration tests | [api.md](./api.md) §startWorker |
33
+ | Debug production issues | [gotchas.md](./gotchas.md) + Essential Commands §Monitoring |
34
+ | Set up multi-environment workflow | [configuration.md](./configuration.md) §Environments |
35
+
36
+ ## Essential Commands
37
+
38
+ ### Project & Development
39
+
40
+ ```bash
41
+ wrangler init [name] # Create new project
42
+ wrangler dev # Local dev server (fast, simulated)
43
+ wrangler dev --remote # Dev with remote resources (production-like)
44
+ wrangler deploy # Deploy to production
45
+ wrangler deploy --env staging # Deploy to environment
46
+ wrangler versions list # List versions
47
+ wrangler rollback [id] # Rollback deployment
48
+ wrangler login # OAuth login
49
+ wrangler whoami # Check auth status
50
+ ```
51
+
52
+ ## Resource Management
53
+
54
+ ### KV
55
+
56
+ ```bash
57
+ wrangler kv namespace create NAME
58
+ wrangler kv key put "key" "value" --namespace-id=<id>
59
+ wrangler kv key get "key" --namespace-id=<id>
60
+ ```
61
+
62
+ ### D1
63
+
64
+ ```bash
65
+ wrangler d1 create NAME
66
+ wrangler d1 execute NAME --command "SQL"
67
+ wrangler d1 migrations create NAME "description"
68
+ wrangler d1 migrations apply NAME
69
+ ```
70
+
71
+ ### R2
72
+
73
+ ```bash
74
+ wrangler r2 bucket create NAME
75
+ wrangler r2 object put BUCKET/key --file path
76
+ wrangler r2 object get BUCKET/key
77
+ ```
78
+
79
+ ### Other Resources
80
+
81
+ ```bash
82
+ wrangler queues create NAME
83
+ wrangler vectorize create NAME --dimensions N --metric cosine
84
+ wrangler hyperdrive create NAME --connection-string "..."
85
+ wrangler workflows create NAME
86
+ wrangler constellation create NAME
87
+ wrangler pages project create NAME
88
+ wrangler pages deployment create --project NAME --branch main
89
+ ```
90
+
91
+ ### Secrets
92
+
93
+ ```bash
94
+ wrangler secret put NAME # Set Worker secret
95
+ wrangler secret list # List Worker secrets
96
+ wrangler secret delete NAME # Delete Worker secret
97
+ wrangler secret bulk FILE.json # Bulk upload from JSON
98
+
99
+ # Secrets Store (centralized, reusable across Workers)
100
+ wrangler secret-store:secret put STORE_NAME SECRET_NAME
101
+ wrangler secret-store:secret list STORE_NAME
102
+ ```
103
+
104
+ ### Monitoring
105
+
106
+ ```bash
107
+ wrangler tail # Real-time logs
108
+ wrangler tail --env production # Tail specific env
109
+ wrangler tail --status error # Filter by status
110
+ ```
111
+
112
+ ## In This Reference
113
+
114
+ - [configuration.md](./configuration.md) - wrangler.jsonc setup, environments, bindings
115
+ - [api.md](./api.md) - Programmatic API (`startWorker`, `getPlatformProxy`, events)
116
+ - [patterns.md](./patterns.md) - Common workflows and development patterns
117
+ - [gotchas.md](./gotchas.md) - Common pitfalls, limits, and troubleshooting
118
+
119
+ ## Quick Decision Tree
120
+
121
+ ```
122
+ Need to test your Worker?
123
+ ├─ Testing full Worker with bindings → api.md §startWorker
124
+ ├─ Testing individual functions → api.md §getPlatformProxy
125
+ └─ Testing with Vitest → patterns.md §Testing with Vitest
126
+
127
+ Need to configure something?
128
+ ├─ Bindings (KV, D1, R2, etc.) → configuration.md §Bindings
129
+ ├─ Multiple environments → configuration.md §Environments
130
+ ├─ Static files → configuration.md §Workers Assets
131
+ └─ Routing → configuration.md §Routing
132
+
133
+ Development not working?
134
+ ├─ Local differs from production → Use `wrangler dev --remote`
135
+ ├─ Bindings not available → gotchas.md §Binding Not Available
136
+ └─ Auth issues → wrangler login
137
+ ```
138
+
139
+ ## See Also
140
+
141
+ - [workers](../workers/) - Workers runtime API reference
142
+ - [miniflare](../miniflare/) - Local testing with Miniflare
143
+ - [workerd](../workerd/) - Runtime that powers `wrangler dev`