@trieungoctam/vibekit 1.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 (352) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +85 -0
  3. package/agents/debugger.md +158 -0
  4. package/agents/docs-manager.md +220 -0
  5. package/agents/planner.md +129 -0
  6. package/agents/researcher.md +58 -0
  7. package/agents/reviewer.md +152 -0
  8. package/agents/tester.md +126 -0
  9. package/bin/vibekit.js +18 -0
  10. package/hooks/lib/ck-config-utils.cjs +831 -0
  11. package/hooks/lib/colors.cjs +95 -0
  12. package/hooks/lib/config-counter.cjs +103 -0
  13. package/hooks/lib/context-builder.cjs +616 -0
  14. package/hooks/lib/git-info-cache.cjs +143 -0
  15. package/hooks/lib/hook-logger.cjs +92 -0
  16. package/hooks/lib/privacy-checker.cjs +297 -0
  17. package/hooks/lib/project-detector.cjs +474 -0
  18. package/hooks/lib/scout-checker.cjs +263 -0
  19. package/hooks/lib/transcript-parser.cjs +181 -0
  20. package/hooks/post-edit-simplify-reminder.cjs +156 -0
  21. package/hooks/privacy-block.cjs +166 -0
  22. package/hooks/scout-block.cjs +147 -0
  23. package/hooks/session-init.cjs +360 -0
  24. package/package.json +41 -0
  25. package/rules/development-rules.md +52 -0
  26. package/rules/documentation-management.md +121 -0
  27. package/rules/orchestration-protocol.md +43 -0
  28. package/rules/primary-workflow.md +57 -0
  29. package/rules/team-coordination-rules.md +90 -0
  30. package/skills/ai/agent-browser/SKILL.md +294 -0
  31. package/skills/ai/agent-browser/references/.gitkeep +0 -0
  32. package/skills/ai/agent-browser/references/agent-browser-vs-chrome-devtools.md +112 -0
  33. package/skills/ai/agent-browser/references/browserbase-cloud-setup.md +161 -0
  34. package/skills/ai/ai-artist/SKILL.md +122 -0
  35. package/skills/ai/ai-artist/data/awesome-prompts.csv +3592 -0
  36. package/skills/ai/ai-artist/data/lighting.csv +19 -0
  37. package/skills/ai/ai-artist/data/nano-banana-templates.csv +17 -0
  38. package/skills/ai/ai-artist/data/platforms.csv +11 -0
  39. package/skills/ai/ai-artist/data/styles.csv +26 -0
  40. package/skills/ai/ai-artist/data/techniques.csv +19 -0
  41. package/skills/ai/ai-artist/data/use-cases.csv +16 -0
  42. package/skills/ai/ai-artist/references/advanced-techniques.md +184 -0
  43. package/skills/ai/ai-artist/references/awesome-nano-banana-pro-prompts.md +8575 -0
  44. package/skills/ai/ai-artist/references/domain-code.md +66 -0
  45. package/skills/ai/ai-artist/references/domain-data.md +72 -0
  46. package/skills/ai/ai-artist/references/domain-marketing.md +66 -0
  47. package/skills/ai/ai-artist/references/domain-patterns.md +33 -0
  48. package/skills/ai/ai-artist/references/domain-writing.md +68 -0
  49. package/skills/ai/ai-artist/references/image-prompting.md +141 -0
  50. package/skills/ai/ai-artist/references/llm-prompting.md +165 -0
  51. package/skills/ai/ai-artist/references/nano-banana.md +136 -0
  52. package/skills/ai/ai-artist/references/reasoning-techniques.md +201 -0
  53. package/skills/ai/ai-artist/references/validation-workflow.md +117 -0
  54. package/skills/ai/ai-artist/scripts/core.py +197 -0
  55. package/skills/ai/ai-artist/scripts/extract_prompts.py +102 -0
  56. package/skills/ai/ai-artist/scripts/generate.py +370 -0
  57. package/skills/ai/ai-artist/scripts/search.py +147 -0
  58. package/skills/ai/ai-multimodal/.env.example +204 -0
  59. package/skills/ai/ai-multimodal/SKILL.md +110 -0
  60. package/skills/ai/ai-multimodal/references/audio-processing.md +387 -0
  61. package/skills/ai/ai-multimodal/references/image-generation.md +939 -0
  62. package/skills/ai/ai-multimodal/references/music-generation.md +311 -0
  63. package/skills/ai/ai-multimodal/references/video-analysis.md +515 -0
  64. package/skills/ai/ai-multimodal/references/video-generation.md +457 -0
  65. package/skills/ai/ai-multimodal/references/vision-understanding.md +492 -0
  66. package/skills/ai/ai-multimodal/scripts/.coverage +0 -0
  67. package/skills/ai/ai-multimodal/scripts/check_setup.py +315 -0
  68. package/skills/ai/ai-multimodal/scripts/document_converter.py +395 -0
  69. package/skills/ai/ai-multimodal/scripts/gemini_batch_process.py +1185 -0
  70. package/skills/ai/ai-multimodal/scripts/media_optimizer.py +506 -0
  71. package/skills/ai/ai-multimodal/scripts/requirements.txt +26 -0
  72. package/skills/ai/ai-multimodal/scripts/tests/.coverage +0 -0
  73. package/skills/ai/ai-multimodal/scripts/tests/requirements.txt +20 -0
  74. package/skills/ai/ai-multimodal/scripts/tests/test_document_converter.py +74 -0
  75. package/skills/ai/ai-multimodal/scripts/tests/test_gemini_batch_process.py +362 -0
  76. package/skills/ai/ai-multimodal/scripts/tests/test_media_optimizer.py +373 -0
  77. package/skills/ai/mcp-management/README.md +219 -0
  78. package/skills/ai/mcp-management/SKILL.md +210 -0
  79. package/skills/ai/mcp-management/assets/tools.json +3146 -0
  80. package/skills/ai/mcp-management/references/configuration.md +114 -0
  81. package/skills/ai/mcp-management/references/gemini-cli-integration.md +221 -0
  82. package/skills/ai/mcp-management/references/mcp-protocol.md +116 -0
  83. package/skills/ai/mcp-management/scripts/.env.example +10 -0
  84. package/skills/ai/mcp-management/scripts/cli.ts +195 -0
  85. package/skills/ai/mcp-management/scripts/dist/analyze-tools.js +70 -0
  86. package/skills/ai/mcp-management/scripts/dist/cli.js +160 -0
  87. package/skills/ai/mcp-management/scripts/dist/mcp-client.js +183 -0
  88. package/skills/ai/mcp-management/scripts/mcp-client.ts +230 -0
  89. package/skills/ai/mcp-management/scripts/package.json +20 -0
  90. package/skills/ai/mcp-management/scripts/tsconfig.json +15 -0
  91. package/skills/core/brainstorm/SKILL.md +164 -0
  92. package/skills/core/brainstorm/scripts/frame-template.html +214 -0
  93. package/skills/core/brainstorm/scripts/helper.js +88 -0
  94. package/skills/core/brainstorm/scripts/server.cjs +338 -0
  95. package/skills/core/brainstorm/scripts/start-server.sh +153 -0
  96. package/skills/core/brainstorm/scripts/stop-server.sh +55 -0
  97. package/skills/core/brainstorm/spec-document-reviewer-prompt.md +49 -0
  98. package/skills/core/brainstorm/visual-companion.md +286 -0
  99. package/skills/core/code-review/SKILL.md +147 -0
  100. package/skills/core/code-review/references/code-review-reception.md +113 -0
  101. package/skills/core/code-review/references/codebase-scan-workflow.md +29 -0
  102. package/skills/core/code-review/references/edge-case-scouting.md +119 -0
  103. package/skills/core/code-review/references/parallel-review-workflow.md +69 -0
  104. package/skills/core/code-review/references/requesting-code-review.md +116 -0
  105. package/skills/core/code-review/references/task-management-reviews.md +140 -0
  106. package/skills/core/code-review/references/verification-before-completion.md +139 -0
  107. package/skills/core/cook/README.md +86 -0
  108. package/skills/core/cook/SKILL.md +113 -0
  109. package/skills/core/cook/references/intent-detection.md +101 -0
  110. package/skills/core/cook/references/review-cycle.md +75 -0
  111. package/skills/core/cook/references/subagent-patterns.md +75 -0
  112. package/skills/core/cook/references/workflow-steps.md +172 -0
  113. package/skills/core/debug/SKILL.md +121 -0
  114. package/skills/core/debug/references/defense-in-depth.md +124 -0
  115. package/skills/core/debug/references/frontend-verification.md +103 -0
  116. package/skills/core/debug/references/investigation-methodology.md +101 -0
  117. package/skills/core/debug/references/log-and-ci-analysis.md +97 -0
  118. package/skills/core/debug/references/performance-diagnostics.md +113 -0
  119. package/skills/core/debug/references/reporting-standards.md +122 -0
  120. package/skills/core/debug/references/root-cause-tracing.md +122 -0
  121. package/skills/core/debug/references/systematic-debugging.md +102 -0
  122. package/skills/core/debug/references/task-management-debugging.md +155 -0
  123. package/skills/core/debug/references/verification.md +123 -0
  124. package/skills/core/debug/scripts/find-polluter.sh +63 -0
  125. package/skills/core/debug/scripts/find-polluter.test.md +102 -0
  126. package/skills/core/execute/SKILL.md +70 -0
  127. package/skills/core/fix/SKILL.md +111 -0
  128. package/skills/core/fix/references/complexity-assessment.md +72 -0
  129. package/skills/core/fix/references/mode-selection.md +46 -0
  130. package/skills/core/fix/references/parallel-exploration.md +100 -0
  131. package/skills/core/fix/references/review-cycle.md +77 -0
  132. package/skills/core/fix/references/skill-activation-matrix.md +78 -0
  133. package/skills/core/fix/references/task-orchestration.md +103 -0
  134. package/skills/core/fix/references/workflow-ci.md +28 -0
  135. package/skills/core/fix/references/workflow-deep.md +122 -0
  136. package/skills/core/fix/references/workflow-logs.md +72 -0
  137. package/skills/core/fix/references/workflow-quick.md +59 -0
  138. package/skills/core/fix/references/workflow-standard.md +111 -0
  139. package/skills/core/fix/references/workflow-test.md +75 -0
  140. package/skills/core/fix/references/workflow-types.md +33 -0
  141. package/skills/core/fix/references/workflow-ui.md +75 -0
  142. package/skills/core/plan/SKILL.md +145 -0
  143. package/skills/core/plan/plan-document-reviewer-prompt.md +49 -0
  144. package/skills/core/subagent-dev/SKILL.md +277 -0
  145. package/skills/core/subagent-dev/code-quality-reviewer-prompt.md +26 -0
  146. package/skills/core/subagent-dev/implementer-prompt.md +113 -0
  147. package/skills/core/subagent-dev/spec-reviewer-prompt.md +61 -0
  148. package/skills/core/tdd/SKILL.md +371 -0
  149. package/skills/core/tdd/testing-anti-patterns.md +299 -0
  150. package/skills/core/test/SKILL.md +109 -0
  151. package/skills/core/test/references/report-format.md +58 -0
  152. package/skills/core/test/references/test-execution-workflow.md +103 -0
  153. package/skills/core/test/references/ui-testing-workflow.md +65 -0
  154. package/skills/core/verify/SKILL.md +139 -0
  155. package/skills/dev/backend-dev/SKILL.md +96 -0
  156. package/skills/dev/backend-dev/references/backend-api-design.md +495 -0
  157. package/skills/dev/backend-dev/references/backend-architecture.md +454 -0
  158. package/skills/dev/backend-dev/references/backend-authentication.md +338 -0
  159. package/skills/dev/backend-dev/references/backend-code-quality.md +659 -0
  160. package/skills/dev/backend-dev/references/backend-debugging.md +904 -0
  161. package/skills/dev/backend-dev/references/backend-devops.md +494 -0
  162. package/skills/dev/backend-dev/references/backend-mindset.md +387 -0
  163. package/skills/dev/backend-dev/references/backend-performance.md +397 -0
  164. package/skills/dev/backend-dev/references/backend-security.md +290 -0
  165. package/skills/dev/backend-dev/references/backend-technologies.md +256 -0
  166. package/skills/dev/backend-dev/references/backend-testing.md +429 -0
  167. package/skills/dev/context-engineering/SKILL.md +108 -0
  168. package/skills/dev/context-engineering/references/context-compression.md +84 -0
  169. package/skills/dev/context-engineering/references/context-degradation.md +93 -0
  170. package/skills/dev/context-engineering/references/context-fundamentals.md +75 -0
  171. package/skills/dev/context-engineering/references/context-optimization.md +82 -0
  172. package/skills/dev/context-engineering/references/evaluation.md +89 -0
  173. package/skills/dev/context-engineering/references/memory-systems.md +88 -0
  174. package/skills/dev/context-engineering/references/multi-agent-patterns.md +90 -0
  175. package/skills/dev/context-engineering/references/project-development.md +97 -0
  176. package/skills/dev/context-engineering/references/runtime-awareness.md +202 -0
  177. package/skills/dev/context-engineering/references/tool-design.md +86 -0
  178. package/skills/dev/context-engineering/scripts/compression_evaluator.py +349 -0
  179. package/skills/dev/context-engineering/scripts/context_analyzer.py +317 -0
  180. package/skills/dev/context-engineering/scripts/tests/test_edge_cases.py +246 -0
  181. package/skills/dev/databases/SKILL.md +84 -0
  182. package/skills/dev/databases/analytics.md +198 -0
  183. package/skills/dev/databases/db-design.md +188 -0
  184. package/skills/dev/databases/incremental-etl.md +213 -0
  185. package/skills/dev/databases/references/mongodb-aggregation.md +447 -0
  186. package/skills/dev/databases/references/mongodb-atlas.md +465 -0
  187. package/skills/dev/databases/references/mongodb-crud.md +408 -0
  188. package/skills/dev/databases/references/mongodb-indexing.md +442 -0
  189. package/skills/dev/databases/references/postgresql-administration.md +594 -0
  190. package/skills/dev/databases/references/postgresql-performance.md +527 -0
  191. package/skills/dev/databases/references/postgresql-psql-cli.md +467 -0
  192. package/skills/dev/databases/references/postgresql-queries.md +475 -0
  193. package/skills/dev/databases/scripts/.coverage +0 -0
  194. package/skills/dev/databases/scripts/db_backup.py +502 -0
  195. package/skills/dev/databases/scripts/db_migrate.py +426 -0
  196. package/skills/dev/databases/scripts/db_performance_check.py +457 -0
  197. package/skills/dev/databases/scripts/requirements.txt +20 -0
  198. package/skills/dev/databases/scripts/tests/coverage-db.json +1 -0
  199. package/skills/dev/databases/scripts/tests/requirements.txt +4 -0
  200. package/skills/dev/databases/scripts/tests/test_db_backup.py +340 -0
  201. package/skills/dev/databases/scripts/tests/test_db_migrate.py +277 -0
  202. package/skills/dev/databases/scripts/tests/test_db_performance_check.py +370 -0
  203. package/skills/dev/databases/stacks/bigquery.md +231 -0
  204. package/skills/dev/databases/stacks/d1_cloudflare.md +137 -0
  205. package/skills/dev/databases/stacks/mysql.md +216 -0
  206. package/skills/dev/databases/stacks/postgres.md +235 -0
  207. package/skills/dev/databases/stacks/sqlite.md +244 -0
  208. package/skills/dev/databases/transactional.md +176 -0
  209. package/skills/dev/devops/.env.example +76 -0
  210. package/skills/dev/devops/SKILL.md +97 -0
  211. package/skills/dev/devops/references/browser-rendering.md +305 -0
  212. package/skills/dev/devops/references/cloudflare-d1-kv.md +123 -0
  213. package/skills/dev/devops/references/cloudflare-platform.md +271 -0
  214. package/skills/dev/devops/references/cloudflare-r2-storage.md +280 -0
  215. package/skills/dev/devops/references/cloudflare-workers-advanced.md +312 -0
  216. package/skills/dev/devops/references/cloudflare-workers-apis.md +309 -0
  217. package/skills/dev/devops/references/cloudflare-workers-basics.md +418 -0
  218. package/skills/dev/devops/references/docker-basics.md +297 -0
  219. package/skills/dev/devops/references/docker-compose.md +292 -0
  220. package/skills/dev/devops/references/gcloud-platform.md +297 -0
  221. package/skills/dev/devops/references/gcloud-services.md +304 -0
  222. package/skills/dev/devops/references/kubernetes-basics.md +99 -0
  223. package/skills/dev/devops/references/kubernetes-helm-advanced.md +75 -0
  224. package/skills/dev/devops/references/kubernetes-helm.md +81 -0
  225. package/skills/dev/devops/references/kubernetes-kubectl.md +74 -0
  226. package/skills/dev/devops/references/kubernetes-security-advanced.md +98 -0
  227. package/skills/dev/devops/references/kubernetes-security.md +95 -0
  228. package/skills/dev/devops/references/kubernetes-troubleshooting-advanced.md +74 -0
  229. package/skills/dev/devops/references/kubernetes-troubleshooting.md +49 -0
  230. package/skills/dev/devops/references/kubernetes-workflows-advanced.md +75 -0
  231. package/skills/dev/devops/references/kubernetes-workflows.md +78 -0
  232. package/skills/dev/devops/scripts/cloudflare_deploy.py +269 -0
  233. package/skills/dev/devops/scripts/docker_optimize.py +332 -0
  234. package/skills/dev/devops/scripts/requirements.txt +20 -0
  235. package/skills/dev/devops/scripts/tests/requirements.txt +3 -0
  236. package/skills/dev/devops/scripts/tests/test_cloudflare_deploy.py +285 -0
  237. package/skills/dev/devops/scripts/tests/test_docker_optimize.py +436 -0
  238. package/skills/dev/frontend-design/SKILL.md +78 -0
  239. package/skills/dev/frontend-design/references/ai-multimodal-overview.md +165 -0
  240. package/skills/dev/frontend-design/references/analysis-best-practices.md +80 -0
  241. package/skills/dev/frontend-design/references/analysis-prompts.md +141 -0
  242. package/skills/dev/frontend-design/references/analysis-techniques.md +118 -0
  243. package/skills/dev/frontend-design/references/animejs.md +396 -0
  244. package/skills/dev/frontend-design/references/asset-generation.md +337 -0
  245. package/skills/dev/frontend-design/references/design-extraction-overview.md +71 -0
  246. package/skills/dev/frontend-design/references/extraction-best-practices.md +141 -0
  247. package/skills/dev/frontend-design/references/extraction-output-templates.md +162 -0
  248. package/skills/dev/frontend-design/references/extraction-prompts.md +127 -0
  249. package/skills/dev/frontend-design/references/technical-accessibility.md +119 -0
  250. package/skills/dev/frontend-design/references/technical-best-practices.md +97 -0
  251. package/skills/dev/frontend-design/references/technical-optimization.md +44 -0
  252. package/skills/dev/frontend-design/references/technical-overview.md +90 -0
  253. package/skills/dev/frontend-design/references/technical-workflows.md +150 -0
  254. package/skills/dev/frontend-design/references/visual-analysis-overview.md +95 -0
  255. package/skills/dev/frontend-design/references/workflow-3d.md +102 -0
  256. package/skills/dev/frontend-design/references/workflow-describe.md +87 -0
  257. package/skills/dev/frontend-design/references/workflow-immersive.md +87 -0
  258. package/skills/dev/frontend-design/references/workflow-quick.md +57 -0
  259. package/skills/dev/frontend-design/references/workflow-screenshot.md +63 -0
  260. package/skills/dev/frontend-design/references/workflow-video.md +74 -0
  261. package/skills/dev/frontend-dev/SKILL.md +400 -0
  262. package/skills/dev/frontend-dev/resources/common-patterns.md +331 -0
  263. package/skills/dev/frontend-dev/resources/complete-examples.md +872 -0
  264. package/skills/dev/frontend-dev/resources/component-patterns.md +502 -0
  265. package/skills/dev/frontend-dev/resources/data-fetching.md +767 -0
  266. package/skills/dev/frontend-dev/resources/file-organization.md +502 -0
  267. package/skills/dev/frontend-dev/resources/loading-and-error-states.md +501 -0
  268. package/skills/dev/frontend-dev/resources/performance.md +406 -0
  269. package/skills/dev/frontend-dev/resources/routing-guide.md +364 -0
  270. package/skills/dev/frontend-dev/resources/styling-guide.md +428 -0
  271. package/skills/dev/frontend-dev/resources/typescript-standards.md +418 -0
  272. package/skills/dev/git/SKILL.md +114 -0
  273. package/skills/dev/git/references/branch-management.md +88 -0
  274. package/skills/dev/git/references/commit-standards.md +46 -0
  275. package/skills/dev/git/references/gh-cli-guide.md +109 -0
  276. package/skills/dev/git/references/safety-protocols.md +69 -0
  277. package/skills/dev/git/references/workflow-commit.md +58 -0
  278. package/skills/dev/git/references/workflow-merge.md +48 -0
  279. package/skills/dev/git/references/workflow-pr.md +58 -0
  280. package/skills/dev/git/references/workflow-push.md +52 -0
  281. package/skills/dev/git-worktree/SKILL.md +218 -0
  282. package/skills/utils/ask/SKILL.md +58 -0
  283. package/skills/utils/bootstrap/SKILL.md +101 -0
  284. package/skills/utils/bootstrap/references/shared-phases.md +59 -0
  285. package/skills/utils/bootstrap/references/workflow-auto.md +52 -0
  286. package/skills/utils/bootstrap/references/workflow-fast.md +50 -0
  287. package/skills/utils/bootstrap/references/workflow-full.md +60 -0
  288. package/skills/utils/bootstrap/references/workflow-parallel.md +59 -0
  289. package/skills/utils/ck-help/SKILL.md +102 -0
  290. package/skills/utils/ck-help/scripts/ck-help.py +1321 -0
  291. package/skills/utils/ck-help/scripts/commands_data.yaml +3 -0
  292. package/skills/utils/ck-help/scripts/skills_data.yaml +593 -0
  293. package/skills/utils/copywriting/SKILL.md +94 -0
  294. package/skills/utils/copywriting/references/copy-formulas.md +150 -0
  295. package/skills/utils/copywriting/references/cta-patterns.md +168 -0
  296. package/skills/utils/copywriting/references/email-copy.md +193 -0
  297. package/skills/utils/copywriting/references/headline-templates.md +140 -0
  298. package/skills/utils/copywriting/references/landing-page-copy.md +175 -0
  299. package/skills/utils/copywriting/references/power-words.md +189 -0
  300. package/skills/utils/copywriting/references/social-media-copy.md +222 -0
  301. package/skills/utils/copywriting/references/workflow-cro.md +83 -0
  302. package/skills/utils/copywriting/references/workflow-enhance.md +32 -0
  303. package/skills/utils/copywriting/references/workflow-fast.md +29 -0
  304. package/skills/utils/copywriting/references/workflow-good.md +39 -0
  305. package/skills/utils/copywriting/references/writing-styles.md +247 -0
  306. package/skills/utils/copywriting/scripts/extract-writing-styles.py +308 -0
  307. package/skills/utils/copywriting/templates/copy-brief.md +49 -0
  308. package/skills/utils/docs/SKILL.md +55 -0
  309. package/skills/utils/docs/references/init-workflow.md +32 -0
  310. package/skills/utils/docs/references/summarize-workflow.md +18 -0
  311. package/skills/utils/docs/references/update-workflow.md +59 -0
  312. package/skills/utils/journal/SKILL.md +11 -0
  313. package/skills/utils/kanban/SKILL.md +99 -0
  314. package/skills/utils/preview/SKILL.md +75 -0
  315. package/skills/utils/preview/references/generation-modes.md +95 -0
  316. package/skills/utils/preview/references/view-mode.md +42 -0
  317. package/skills/utils/repomix/SKILL.md +248 -0
  318. package/skills/utils/repomix/references/configuration.md +211 -0
  319. package/skills/utils/repomix/references/usage-patterns.md +232 -0
  320. package/skills/utils/repomix/scripts/.coverage +0 -0
  321. package/skills/utils/repomix/scripts/README.md +179 -0
  322. package/skills/utils/repomix/scripts/repomix_batch.py +455 -0
  323. package/skills/utils/repomix/scripts/repos.example.json +15 -0
  324. package/skills/utils/repomix/scripts/requirements.txt +15 -0
  325. package/skills/utils/repomix/scripts/tests/test_repomix_batch.py +531 -0
  326. package/skills/utils/research/SKILL.md +171 -0
  327. package/skills/utils/scout/SKILL.md +89 -0
  328. package/skills/utils/scout/references/external-scouting.md +140 -0
  329. package/skills/utils/scout/references/internal-scouting.md +119 -0
  330. package/skills/utils/scout/references/task-management-scouting.md +125 -0
  331. package/skills/utils/sequential-thinking/.env.example +8 -0
  332. package/skills/utils/sequential-thinking/README.md +183 -0
  333. package/skills/utils/sequential-thinking/SKILL.md +95 -0
  334. package/skills/utils/sequential-thinking/package.json +31 -0
  335. package/skills/utils/sequential-thinking/references/advanced-strategies.md +79 -0
  336. package/skills/utils/sequential-thinking/references/advanced-techniques.md +76 -0
  337. package/skills/utils/sequential-thinking/references/core-patterns.md +95 -0
  338. package/skills/utils/sequential-thinking/references/examples-api.md +88 -0
  339. package/skills/utils/sequential-thinking/references/examples-architecture.md +94 -0
  340. package/skills/utils/sequential-thinking/references/examples-debug.md +90 -0
  341. package/skills/utils/sequential-thinking/scripts/format-thought.js +159 -0
  342. package/skills/utils/sequential-thinking/scripts/process-thought.js +236 -0
  343. package/skills/utils/sequential-thinking/tests/format-thought.test.js +133 -0
  344. package/skills/utils/sequential-thinking/tests/process-thought.test.js +215 -0
  345. package/skills/utils/write-skill/SKILL.md +655 -0
  346. package/skills/utils/write-skill/anthropic-best-practices.md +1150 -0
  347. package/skills/utils/write-skill/examples/CLAUDE_MD_TESTING.md +189 -0
  348. package/skills/utils/write-skill/graphviz-conventions.dot +172 -0
  349. package/skills/utils/write-skill/persuasion-principles.md +187 -0
  350. package/skills/utils/write-skill/render-graphs.js +168 -0
  351. package/skills/utils/write-skill/testing-skills-with-subagents.md +384 -0
  352. package/src/commands/init.js +238 -0
@@ -0,0 +1,305 @@
1
+ # Cloudflare Browser Rendering
2
+
3
+ Headless browser automation with Puppeteer/Playwright on Cloudflare Workers.
4
+
5
+ ## Setup
6
+
7
+ **wrangler.toml:**
8
+ ```toml
9
+ name = "browser-worker"
10
+ main = "src/index.ts"
11
+ compatibility_date = "2024-01-01"
12
+
13
+ browser = { binding = "MYBROWSER" }
14
+ ```
15
+
16
+ ## Basic Screenshot Worker
17
+
18
+ ```typescript
19
+ import puppeteer from '@cloudflare/puppeteer';
20
+
21
+ export default {
22
+ async fetch(request: Request, env: Env): Promise<Response> {
23
+ const browser = await puppeteer.launch(env.MYBROWSER);
24
+ const page = await browser.newPage();
25
+
26
+ await page.goto('https://example.com', { waitUntil: 'networkidle2' });
27
+ const screenshot = await page.screenshot({ type: 'png' });
28
+
29
+ await browser.close();
30
+
31
+ return new Response(screenshot, {
32
+ headers: { 'Content-Type': 'image/png' }
33
+ });
34
+ }
35
+ };
36
+ ```
37
+
38
+ ## Session Reuse (Cost Optimization)
39
+
40
+ ```typescript
41
+ // Disconnect instead of close
42
+ await browser.disconnect();
43
+
44
+ // Retrieve and reconnect
45
+ const sessions = await puppeteer.sessions(env.MYBROWSER);
46
+ const freeSession = sessions.find(s => !s.connectionId);
47
+
48
+ if (freeSession) {
49
+ const browser = await puppeteer.connect(env.MYBROWSER, freeSession.sessionId);
50
+ }
51
+ ```
52
+
53
+ ## PDF Generation
54
+
55
+ ```typescript
56
+ const browser = await puppeteer.launch(env.MYBROWSER);
57
+ const page = await browser.newPage();
58
+
59
+ await page.setContent(`
60
+ <!DOCTYPE html>
61
+ <html>
62
+ <head>
63
+ <style>
64
+ body { font-family: Arial; padding: 50px; }
65
+ h1 { color: #2c3e50; }
66
+ </style>
67
+ </head>
68
+ <body>
69
+ <h1>Certificate</h1>
70
+ <p>Awarded to: <strong>John Doe</strong></p>
71
+ </body>
72
+ </html>
73
+ `);
74
+
75
+ const pdf = await page.pdf({
76
+ format: 'A4',
77
+ printBackground: true,
78
+ margin: { top: '1cm', right: '1cm', bottom: '1cm', left: '1cm' }
79
+ });
80
+
81
+ await browser.close();
82
+
83
+ return new Response(pdf, {
84
+ headers: { 'Content-Type': 'application/pdf' }
85
+ });
86
+ ```
87
+
88
+ ## Durable Objects for Persistent Sessions
89
+
90
+ ```typescript
91
+ export class Browser {
92
+ state: DurableObjectState;
93
+ browser: any;
94
+ lastUsed: number;
95
+
96
+ constructor(state: DurableObjectState, env: Env) {
97
+ this.state = state;
98
+ this.lastUsed = Date.now();
99
+ }
100
+
101
+ async fetch(request: Request, env: Env) {
102
+ if (!this.browser) {
103
+ this.browser = await puppeteer.launch(env.MYBROWSER);
104
+ }
105
+
106
+ this.lastUsed = Date.now();
107
+ await this.state.storage.setAlarm(Date.now() + 10000);
108
+
109
+ const page = await this.browser.newPage();
110
+ const url = new URL(request.url).searchParams.get('url');
111
+ await page.goto(url);
112
+ const screenshot = await page.screenshot();
113
+ await page.close();
114
+
115
+ return new Response(screenshot, {
116
+ headers: { 'Content-Type': 'image/png' }
117
+ });
118
+ }
119
+
120
+ async alarm() {
121
+ if (Date.now() - this.lastUsed > 60000) {
122
+ await this.browser?.close();
123
+ this.browser = null;
124
+ } else {
125
+ await this.state.storage.setAlarm(Date.now() + 10000);
126
+ }
127
+ }
128
+ }
129
+ ```
130
+
131
+ ## AI-Powered Web Scraper
132
+
133
+ ```typescript
134
+ import { Ai } from '@cloudflare/ai';
135
+
136
+ export default {
137
+ async fetch(request: Request, env: Env): Promise<Response> {
138
+ const browser = await puppeteer.launch(env.MYBROWSER);
139
+ const page = await browser.newPage();
140
+ await page.goto('https://news.ycombinator.com');
141
+ const content = await page.content();
142
+ await browser.close();
143
+
144
+ const ai = new Ai(env.AI);
145
+ const response = await ai.run('@cf/meta/llama-3-8b-instruct', {
146
+ messages: [
147
+ {
148
+ role: 'system',
149
+ content: 'Extract top 5 article titles and URLs as JSON'
150
+ },
151
+ { role: 'user', content: content }
152
+ ]
153
+ });
154
+
155
+ return Response.json(response);
156
+ }
157
+ };
158
+ ```
159
+
160
+ ## Crawler with Queues
161
+
162
+ ```typescript
163
+ export default {
164
+ async queue(batch: MessageBatch<any>, env: Env): Promise<void> {
165
+ const browser = await puppeteer.launch(env.MYBROWSER);
166
+
167
+ for (const message of batch.messages) {
168
+ const page = await browser.newPage();
169
+ await page.goto(message.body.url);
170
+
171
+ const links = await page.evaluate(() => {
172
+ return Array.from(document.querySelectorAll('a')).map(a => a.href);
173
+ });
174
+
175
+ for (const link of links) {
176
+ await env.QUEUE.send({ url: link });
177
+ }
178
+
179
+ await page.close();
180
+ message.ack();
181
+ }
182
+
183
+ await browser.close();
184
+ }
185
+ };
186
+ ```
187
+
188
+ ## Configuration
189
+
190
+ ### Timeout
191
+ ```typescript
192
+ await page.goto(url, {
193
+ timeout: 60000, // 60 seconds max
194
+ waitUntil: 'networkidle2'
195
+ });
196
+
197
+ await page.waitForSelector('.content', { timeout: 45000 });
198
+ ```
199
+
200
+ ### Viewport
201
+ ```typescript
202
+ await page.setViewport({ width: 1920, height: 1080 });
203
+ ```
204
+
205
+ ### Screenshot Options
206
+ ```typescript
207
+ const screenshot = await page.screenshot({
208
+ type: 'png', // 'png' | 'jpeg' | 'webp'
209
+ quality: 90, // JPEG/WebP only
210
+ fullPage: true, // Full scrollable page
211
+ clip: { // Crop
212
+ x: 0, y: 0,
213
+ width: 800,
214
+ height: 600
215
+ }
216
+ });
217
+ ```
218
+
219
+ ## Limits & Pricing
220
+
221
+ ### Free Plan
222
+ - 10 minutes/day
223
+ - 3 concurrent browsers
224
+ - 3 new browsers/minute
225
+
226
+ ### Paid Plan
227
+ - 10 hours/month included
228
+ - 30 concurrent browsers
229
+ - 30 new browsers/minute
230
+ - $0.09/hour overage
231
+ - $2.00/concurrent browser overage
232
+
233
+ ### Cost Optimization
234
+ 1. Use `disconnect()` instead of `close()`
235
+ 2. Enable Keep-Alive (10 min max)
236
+ 3. Pool tabs with browser contexts
237
+ 4. Cache auth state with KV
238
+ 5. Implement Durable Objects cleanup
239
+
240
+ ## Best Practices
241
+
242
+ ### Session Management
243
+ - Always use `disconnect()` for reuse
244
+ - Implement session pooling
245
+ - Track session IDs and states
246
+
247
+ ### Performance
248
+ - Cache content in KV
249
+ - Use browser contexts vs multiple browsers
250
+ - Choose appropriate `waitUntil` strategy
251
+ - Set realistic timeouts
252
+
253
+ ### Error Handling
254
+ - Handle timeout errors gracefully
255
+ - Check session availability before connecting
256
+ - Validate responses before caching
257
+
258
+ ### Security
259
+ - Validate user-provided URLs
260
+ - Implement authentication
261
+ - Sanitize extracted content
262
+ - Set appropriate CORS headers
263
+
264
+ ## Troubleshooting
265
+
266
+ **Timeout Errors:**
267
+ ```typescript
268
+ await page.goto(url, {
269
+ timeout: 60000,
270
+ waitUntil: 'domcontentloaded' // Faster than networkidle2
271
+ });
272
+ ```
273
+
274
+ **Memory Issues:**
275
+ ```typescript
276
+ await page.close(); // Close pages
277
+ await browser.disconnect(); // Reuse session
278
+ ```
279
+
280
+ **Font Rendering:**
281
+ Use supported fonts (Noto Sans, Roboto, etc.) or inject custom:
282
+ ```html
283
+ <link href="https://fonts.googleapis.com/css2?family=Poppins" rel="stylesheet">
284
+ ```
285
+
286
+ ## Key Methods
287
+
288
+ ### Puppeteer
289
+ - `puppeteer.launch(binding)` - Start browser
290
+ - `puppeteer.connect(binding, sessionId)` - Reconnect
291
+ - `puppeteer.sessions(binding)` - List sessions
292
+ - `browser.newPage()` - Create page
293
+ - `browser.disconnect()` - Disconnect (keep alive)
294
+ - `browser.close()` - Close (terminate)
295
+ - `page.goto(url, options)` - Navigate
296
+ - `page.screenshot(options)` - Capture
297
+ - `page.pdf(options)` - Generate PDF
298
+ - `page.content()` - Get HTML
299
+ - `page.evaluate(fn)` - Execute JS
300
+
301
+ ## Resources
302
+
303
+ - Docs: https://developers.cloudflare.com/browser-rendering/
304
+ - Puppeteer: https://pptr.dev/
305
+ - Examples: https://developers.cloudflare.com/workers/examples/
@@ -0,0 +1,123 @@
1
+ # Cloudflare D1 & KV
2
+
3
+ ## D1 (SQLite Database)
4
+
5
+ ### Setup
6
+ ```bash
7
+ # Create database
8
+ wrangler d1 create my-database
9
+
10
+ # Add to wrangler.toml
11
+ [[d1_databases]]
12
+ binding = "DB"
13
+ database_name = "my-database"
14
+ database_id = "YOUR_DATABASE_ID"
15
+
16
+ # Apply schema
17
+ wrangler d1 execute my-database --file=./schema.sql
18
+ ```
19
+
20
+ ### Usage
21
+
22
+ ```typescript
23
+ // Query
24
+ const result = await env.DB.prepare(
25
+ "SELECT * FROM users WHERE id = ?"
26
+ ).bind(userId).first();
27
+
28
+ // Insert
29
+ await env.DB.prepare(
30
+ "INSERT INTO users (name, email) VALUES (?, ?)"
31
+ ).bind("Alice", "alice@example.com").run();
32
+
33
+ // Batch (atomic)
34
+ await env.DB.batch([
35
+ env.DB.prepare("UPDATE accounts SET balance = balance - 100 WHERE id = ?").bind(user1),
36
+ env.DB.prepare("UPDATE accounts SET balance = balance + 100 WHERE id = ?").bind(user2)
37
+ ]);
38
+
39
+ // All results
40
+ const { results } = await env.DB.prepare("SELECT * FROM users").all();
41
+ ```
42
+
43
+ ### Features
44
+ - Global read replication (low-latency reads)
45
+ - Single-writer consistency
46
+ - Standard SQLite syntax
47
+ - 25GB database size limit
48
+ - ACID transactions with batch
49
+
50
+ ## KV (Key-Value Store)
51
+
52
+ ### Setup
53
+ ```bash
54
+ # Create namespace
55
+ wrangler kv:namespace create MY_KV
56
+
57
+ # Add to wrangler.toml
58
+ [[kv_namespaces]]
59
+ binding = "KV"
60
+ id = "YOUR_NAMESPACE_ID"
61
+ ```
62
+
63
+ ### Usage
64
+
65
+ ```typescript
66
+ // Put with TTL
67
+ await env.KV.put("session:token", JSON.stringify(data), {
68
+ expirationTtl: 3600,
69
+ metadata: { userId: "123" }
70
+ });
71
+
72
+ // Get
73
+ const value = await env.KV.get("session:token");
74
+ const json = await env.KV.get("session:token", "json");
75
+ const buffer = await env.KV.get("session:token", "arrayBuffer");
76
+ const stream = await env.KV.get("session:token", "stream");
77
+
78
+ // Get with metadata
79
+ const { value, metadata } = await env.KV.getWithMetadata("session:token");
80
+
81
+ // Delete
82
+ await env.KV.delete("session:token");
83
+
84
+ // List
85
+ const list = await env.KV.list({ prefix: "user:" });
86
+ ```
87
+
88
+ ### Features
89
+ - Sub-millisecond reads (edge-cached)
90
+ - Eventual consistency (~60 seconds globally)
91
+ - 25MB value size limit
92
+ - Automatic expiration (TTL)
93
+
94
+ ## Use Cases
95
+
96
+ ### D1
97
+ - Relational data
98
+ - Complex queries with JOINs
99
+ - ACID transactions
100
+ - User accounts, orders, inventory
101
+
102
+ ### KV
103
+ - Cache
104
+ - Sessions
105
+ - Feature flags
106
+ - Rate limiting
107
+ - Real-time counters
108
+
109
+ ## Decision Matrix
110
+
111
+ | Need | Choose |
112
+ |------|--------|
113
+ | SQL queries | D1 |
114
+ | Sub-millisecond reads | KV |
115
+ | ACID transactions | D1 |
116
+ | Large values (>25MB) | R2 |
117
+ | Strong consistency | D1 (writes), Durable Objects |
118
+ | Automatic expiration | KV |
119
+
120
+ ## Resources
121
+
122
+ - D1: https://developers.cloudflare.com/d1/
123
+ - KV: https://developers.cloudflare.com/kv/
@@ -0,0 +1,271 @@
1
+ # Cloudflare Platform Overview
2
+
3
+ Cloudflare Developer Platform: comprehensive edge computing ecosystem for full-stack applications on global network across 300+ cities.
4
+
5
+ ## Core Concepts
6
+
7
+ ### Edge Computing Model
8
+
9
+ **Global Network:**
10
+ - Code runs on servers in 300+ cities globally
11
+ - Requests execute from nearest location
12
+ - Ultra-low latency (<50ms typical)
13
+ - Automatic failover and redundancy
14
+
15
+ **V8 Isolates:**
16
+ - Lightweight execution environments (faster than containers)
17
+ - Millisecond cold starts
18
+ - Zero infrastructure management
19
+ - Automatic scaling
20
+ - Pay-per-request pricing
21
+
22
+ ### Key Components
23
+
24
+ **Workers** - Serverless functions on edge
25
+ - HTTP/scheduled/queue/email handlers
26
+ - JavaScript/TypeScript/Python/Rust support
27
+ - Max 50ms CPU (free), 30s (paid)
28
+ - 128MB memory limit
29
+
30
+ **D1** - SQLite database with global read replication
31
+ - Standard SQLite syntax
32
+ - Single-writer consistency
33
+ - Global read replication
34
+ - 25GB database size limit
35
+ - Batch operations for transactions
36
+
37
+ **KV** - Distributed key-value store
38
+ - Sub-millisecond reads (edge-cached)
39
+ - Eventual consistency (~60s globally)
40
+ - 25MB value size limit
41
+ - Automatic TTL expiration
42
+ - Best for: cache, sessions, feature flags
43
+
44
+ **R2** - Object storage (S3-compatible)
45
+ - Zero egress fees (huge cost advantage)
46
+ - Unlimited storage
47
+ - 5TB object size limit
48
+ - S3-compatible API
49
+ - Multipart upload support
50
+
51
+ **Durable Objects** - Stateful compute with WebSockets
52
+ - Single-instance coordination (strong consistency)
53
+ - Persistent storage (1GB limit paid)
54
+ - WebSocket support
55
+ - Automatic hibernation
56
+
57
+ **Queues** - Message queue system
58
+ - At-least-once delivery
59
+ - Automatic retries (exponential backoff)
60
+ - Dead-letter queue support
61
+ - Batch processing
62
+
63
+ **Pages** - Static site hosting + serverless functions
64
+ - Git integration (auto-deploy)
65
+ - Directory-based routing
66
+ - Framework support (Next.js, Remix, Astro, SvelteKit)
67
+ - Built-in preview deployments
68
+
69
+ **Workers AI** - Run AI models on edge
70
+ - LLMs (Llama 3, Mistral, Gemma, Qwen)
71
+ - Image generation (Stable Diffusion, DALL-E)
72
+ - Embeddings (BGE, GTE)
73
+ - Speech recognition (Whisper)
74
+ - No GPU management required
75
+
76
+ **Browser Rendering** - Headless browser automation
77
+ - Puppeteer/Playwright support
78
+ - Screenshots, PDFs, web scraping
79
+ - Session reuse for cost optimization
80
+ - MCP server support for AI agents
81
+
82
+ ## Architecture Patterns
83
+
84
+ ### Full-Stack Application
85
+
86
+ ```
87
+ ┌─────────────────────────────────────────┐
88
+ │ Cloudflare Pages (Frontend) │
89
+ │ Next.js / Remix / Astro │
90
+ └──────────────────┬──────────────────────┘
91
+
92
+ ┌──────────────────▼──────────────────────┐
93
+ │ Workers (API Layer) │
94
+ │ - Routing │
95
+ │ - Authentication │
96
+ │ - Business logic │
97
+ └─┬──────┬──────┬──────┬──────┬───────────┘
98
+ │ │ │ │ │
99
+ ▼ ▼ ▼ ▼ ▼
100
+ ┌────┐ ┌────┐ ┌────┐ ┌────┐ ┌────────────┐
101
+ │ D1 │ │ KV │ │ R2 │ │ DO │ │ Workers AI │
102
+ └────┘ └────┘ └────┘ └────┘ └────────────┘
103
+ ```
104
+
105
+ ### Polyglot Storage Pattern
106
+
107
+ ```typescript
108
+ export default {
109
+ async fetch(request: Request, env: Env) {
110
+ // KV: Fast cache
111
+ const cached = await env.KV.get(key);
112
+ if (cached) return new Response(cached);
113
+
114
+ // D1: Structured data
115
+ const user = await env.DB.prepare(
116
+ "SELECT * FROM users WHERE id = ?"
117
+ ).bind(userId).first();
118
+
119
+ // R2: Media files
120
+ const avatar = await env.R2_BUCKET.get(`avatars/${user.id}.jpg`);
121
+
122
+ // Durable Objects: Real-time
123
+ const chat = env.CHAT_ROOM.get(env.CHAT_ROOM.idFromName(roomId));
124
+
125
+ // Queue: Async processing
126
+ await env.EMAIL_QUEUE.send({ to: user.email, template: 'welcome' });
127
+
128
+ return new Response(JSON.stringify({ user }));
129
+ }
130
+ };
131
+ ```
132
+
133
+ ## Wrangler CLI Essentials
134
+
135
+ ### Installation
136
+ ```bash
137
+ npm install -g wrangler
138
+ wrangler login
139
+ wrangler init my-worker
140
+ ```
141
+
142
+ ### Core Commands
143
+ ```bash
144
+ # Development
145
+ wrangler dev # Local dev server
146
+ wrangler dev --remote # Dev on real edge
147
+
148
+ # Deployment
149
+ wrangler deploy # Deploy to production
150
+ wrangler deploy --dry-run # Preview changes
151
+
152
+ # Logs
153
+ wrangler tail # Real-time logs
154
+ wrangler tail --format pretty # Formatted logs
155
+
156
+ # Versions
157
+ wrangler deployments list # List deployments
158
+ wrangler rollback [version] # Rollback
159
+
160
+ # Secrets
161
+ wrangler secret put SECRET_NAME
162
+ wrangler secret list
163
+ ```
164
+
165
+ ### Resource Management
166
+ ```bash
167
+ # D1
168
+ wrangler d1 create my-db
169
+ wrangler d1 execute my-db --file=schema.sql
170
+
171
+ # KV
172
+ wrangler kv:namespace create MY_KV
173
+ wrangler kv:key put --binding=MY_KV "key" "value"
174
+
175
+ # R2
176
+ wrangler r2 bucket create my-bucket
177
+ wrangler r2 object put my-bucket/file.txt --file=./file.txt
178
+ ```
179
+
180
+ ## Configuration (wrangler.toml)
181
+
182
+ ```toml
183
+ name = "my-worker"
184
+ main = "src/index.ts"
185
+ compatibility_date = "2024-01-01"
186
+
187
+ # Environment variables
188
+ [vars]
189
+ ENVIRONMENT = "production"
190
+
191
+ # D1 Database
192
+ [[d1_databases]]
193
+ binding = "DB"
194
+ database_name = "my-database"
195
+ database_id = "YOUR_DATABASE_ID"
196
+
197
+ # KV Namespace
198
+ [[kv_namespaces]]
199
+ binding = "KV"
200
+ id = "YOUR_NAMESPACE_ID"
201
+
202
+ # R2 Bucket
203
+ [[r2_buckets]]
204
+ binding = "R2_BUCKET"
205
+ bucket_name = "my-bucket"
206
+
207
+ # Durable Objects
208
+ [[durable_objects.bindings]]
209
+ name = "COUNTER"
210
+ class_name = "Counter"
211
+ script_name = "my-worker"
212
+
213
+ # Queues
214
+ [[queues.producers]]
215
+ binding = "MY_QUEUE"
216
+ queue = "my-queue"
217
+
218
+ # Workers AI
219
+ [ai]
220
+ binding = "AI"
221
+
222
+ # Cron triggers
223
+ [triggers]
224
+ crons = ["0 0 * * *"]
225
+ ```
226
+
227
+ ## Best Practices
228
+
229
+ ### Performance
230
+ - Keep Workers lightweight (<1MB bundled)
231
+ - Use bindings over fetch (faster than HTTP)
232
+ - Leverage KV and Cache API for frequently accessed data
233
+ - Use D1 batch for multiple queries
234
+ - Stream large responses
235
+
236
+ ### Security
237
+ - Use `wrangler secret` for API keys
238
+ - Separate production/staging/development environments
239
+ - Validate user input
240
+ - Implement rate limiting (KV or Durable Objects)
241
+ - Configure proper CORS headers
242
+
243
+ ### Cost Optimization
244
+ - R2 for large files (zero egress fees vs S3)
245
+ - KV for caching (reduce D1/R2 requests)
246
+ - Request deduplication with caching
247
+ - Efficient D1 queries (proper indexing)
248
+ - Monitor usage via Cloudflare Analytics
249
+
250
+ ## Decision Matrix
251
+
252
+ | Need | Choose |
253
+ |------|--------|
254
+ | Sub-millisecond reads | KV |
255
+ | SQL queries | D1 |
256
+ | Large files (>25MB) | R2 |
257
+ | Real-time WebSockets | Durable Objects |
258
+ | Async background jobs | Queues |
259
+ | ACID transactions | D1 |
260
+ | Strong consistency | Durable Objects |
261
+ | Zero egress costs | R2 |
262
+ | AI inference | Workers AI |
263
+ | Static site hosting | Pages |
264
+
265
+ ## Resources
266
+
267
+ - Docs: https://developers.cloudflare.com
268
+ - Wrangler: https://developers.cloudflare.com/workers/wrangler/
269
+ - Discord: https://discord.cloudflare.com
270
+ - Examples: https://developers.cloudflare.com/workers/examples/
271
+ - Status: https://www.cloudflarestatus.com