skills/cloud-infra/SKILL.md
Unified cloud infrastructure skill for Cloudflare R2 storage, Vercel deployment, signed URLs, CDN caching, and file upload patterns for Next.js apps. Auto-triages Quick work like one config, upload endpoint, or cache header fix, and Deep work like full upload pipelines, CDN strategy, or R2+Workers integration. MUST use for cloud infrastructure requests: R2 bucket setup, presigned URLs, Vercel config, CDN caching, file uploads, image optimization, edge caching, cache invalidation, storage integration, Cloudflare Workers, S3-compatible storage, Cache-Control, ISR revalidation, stale-while-revalidate, wrangler, or R2 bindings. Do not use for database design, API route logic, or frontend components.
npx skillsauth add cuozg/oh-my-skills cloud-infraInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Cloud infrastructure patterns for Next.js apps — R2 storage, Vercel config, signed URLs, CDN caching, and upload pipelines.
| Signal | Mode | |--------|------| | Single R2 bucket setup, one presigned URL endpoint, cache header fix, env var config | Quick | | Full upload pipeline with validation, R2 + Workers + CDN integration, multi-zone caching strategy, complete Vercel deployment setup | Deep |
vercel.json, wrangler.toml, .env*, route handlers)lsp_diagnostics on all changed files; confirm no missing env vars@aws-sdk/client-s3 + @aws-sdk/s3-request-presigner for R2 (NOT full AWS SDK)region: "auto" for R2 S3 client — R2 does not use AWS regionsforcePathStyle: true in S3 client config for R2as any or @ts-ignore — type everything properlyContent-Type constraints on presigned upload URLs to prevent type spoofingCache-Control headers on responses — never rely on CDN defaultss-maxage + stale-while-revalidate for CDN-cached API responsespublic, max-age=31536000, immutable for content-hashed static assetsSet-Cookie headersenv.BUCKET API — not S3 SDKACL parameters in PutObject or CreateBucket commandsexport const dynamic = "force-dynamic" for API routes that must never be cached (webhooks, auth callbacks, mutations)@aws-sdk/* — R2 SDK needs Node.js runtimeAbortController.abort() — let the abort propagate and clean up server-side| File | Covers |
|------|--------|
| cloudflare-r2.md | R2 bucket setup, S3 SDK config, Workers binding, native API, cost patterns |
| vercel-config.md | vercel.json, env vars, functions config, monorepo, storage, domains, crons |
| signed-urls.md | Presigned upload/download URLs, HMAC signing, security constraints, multipart |
| cdn-caching.md | Cache-Control recipes, Cloudflare Cache Rules, Vercel ISR, on-demand revalidation |
| upload-patterns.md | Direct upload flow, multipart uploads, progress tracking, validation, Next.js integration |
tools
Generate Unity raster image assets through Unity MCP: game sprites, item art, backgrounds, UI icons, portraits, concept images, transparent cutouts, image edits, upscales, background removal, and Unity scene or Game View screenshots. Use when a Unity project needs image files imported under Assets or screenshots captured from the editor. Do not use for meshes, audio, animation, materials, gameplay code, UI Toolkit layout, or generic non-Unity image generation.
tools
Create Unity technical solution documents from user requirements, feature ideas, bug goals, specs, or codebase problems. Use when the user asks for a technical approach, architecture, implementation strategy, solution options, feasibility analysis, system design, or "how should we build/fix this" for Unity runtime, Editor, tools, assets, data, UI, WebGL, SDKs, or production pipelines.
tools
Orchestrate Unity Editor via MCP (Model Context Protocol) tools and resources. Use when working with Unity projects through MCP for Unity - creating/modifying GameObjects, editing scripts, managing scenes, running tests, or any Unity Editor automation. Provides best practices, tool schemas, and workflow patterns for effective Unity-MCP integration.
development
Convert a spec document into an implementation TODO list in the same spec folder. U se when the user says goal-todo, todo from spec, generate tasks from spec, turn this spec into todos, create implementation checklist, extract tasks, or asks to read a Docs/Specs design doc and produce what must be implemented. Includes UI/UX review and codebase investigation before writing the checklist. Do not use for implementing the tasks, creating new goal files, writing test cases, or verifying completed work.