configure-plugin/skills/configure-cache-busting/SKILL.md
Cache-busting for Next.js and Vite: content hashing, CDN cache headers. Use when adding Vercel/Cloudflare cache headers or auditing static asset caching.
npx skillsauth add laurigates/claude-plugins configure-cache-bustingInstall 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.
| Use this skill when... | Use another approach when... |
|------------------------|------------------------------|
| Configuring content hashing for Next.js or Vite builds | Optimizing server-side caching (nginx, CDN config directly) |
| Setting up CDN cache headers for Vercel or Cloudflare | Debugging build output issues (system-debugging agent) |
| Verifying cache-busting compliance after a framework upgrade | Configuring general CI/CD workflows (/configure:workflows) |
| Adding build verification scripts for hashed assets | Setting up container builds (/configure:container) |
| Auditing static asset caching strategy across a project | Profiling frontend performance (browser devtools) |
pwdfind . -maxdepth 1 -name 'package.json'find . -maxdepth 1 -name 'next.config.*'find . -maxdepth 1 -name 'vite.config.*'find . -maxdepth 1 -type d \( -name '.next' -o -name 'dist' -o -name 'out' \)find . -maxdepth 2 \( -path './vercel.json' -o -path './_headers' -o -path './_redirects' -o -path './public/_headers' \)find . -maxdepth 1 -name '.project-standards.yaml'Parse from command arguments:
--check-only: Report compliance status without modifications (CI/CD mode)--fix: Apply fixes automatically without prompting--framework <nextjs|vite>: Override framework detection--cdn <cloudflare|vercel|none>: Specify CDN provider for cache header configurationExecute this cache-busting configuration check:
Identify the framework from file structure:
| Indicator | Framework | Config File |
|-----------|-----------|-------------|
| next.config.js or next.config.mjs | Next.js | next.config.* |
| next.config.ts | Next.js | next.config.ts |
| vite.config.js or vite.config.ts | Vite | vite.config.* |
| .next/ directory | Next.js (built) | Detection only |
| dist/ directory + vite in package.json | Vite (built) | Detection only |
Check package.json dependencies for "next" or "vite".
If both detected, prompt user to specify with --framework. If neither detected, report unsupported and exit.
For the detected framework, read config files and check:
Next.js - Read next.config.js/ts and check:
generateBuildId configured for deterministic buildsassetPrefix configured for CDNcompress: true enabledpoweredByHeader: false for securitygenerateEtags configuredheaders() functionVite - Read vite.config.js/ts and check:
build.rollupOptions.output.entryFileNames uses [hash]build.rollupOptions.output.chunkFileNames uses [hash]build.rollupOptions.output.assetFileNames uses [hash]build.manifest: true for SSR/manifest-based routingbuild.cssCodeSplit configured appropriatelyIdentify CDN from project files:
| Indicator | CDN Provider |
|-----------|--------------|
| vercel.json exists | Vercel |
| .vercelignore exists | Vercel |
| _headers in root or public/ | Cloudflare Pages |
| _redirects exists | Cloudflare Pages / Netlify |
| wrangler.toml exists | Cloudflare Workers/Pages |
| None of the above | Generic / None |
Print a formatted compliance report:
Cache-Busting Compliance Report
================================
Project: [name]
Framework: [Next.js 14.x | Vite 5.x]
CDN Provider: [Vercel | Cloudflare | None detected]
Framework Configuration:
Config file next.config.js [EXISTS | MISSING]
Asset hashing [hash] in filenames [ENABLED | DISABLED]
Build manifest manifest files [GENERATED | MISSING]
Deterministic builds Build ID configured [PASS | NOT SET]
Compression gzip/brotli enabled [PASS | DISABLED]
Cache Headers:
Static assets immutable, 1y [CONFIGURED | MISSING]
HTML files no-cache, must-revalidate [CONFIGURED | MISSING]
API routes varies by route [CONFIGURED | N/A]
CDN configuration vercel.json/_headers [EXISTS | MISSING]
Build Output (if built):
Hashed filenames app.[hash].js [DETECTED | NOT BUILT]
Content addressing Unique hashes per version [PASS | DUPLICATE]
Manifest integrity Valid manifest.json [PASS | INVALID]
Overall: [X issues found]
Recommendations:
[List specific fixes needed]
If --check-only, stop here.
Based on detected framework, create or update config files using templates from REFERENCE.md:
next.config.js/ts with deterministic builds, compression, cache headersvite.config.js/ts with content hashing, manifest, chunk splittingBased on detected CDN provider, create or update cache header configuration using templates from REFERENCE.md:
vercel.json with header rulespublic/_headers with cache rulesCreate scripts/verify-cache-busting.js to verify content hashing works after build. Add package.json scripts for build verification. Use the verification script template from REFERENCE.md.
Add cache-busting verification step to GitHub Actions workflow. Use the CI workflow template from REFERENCE.md.
Update .project-standards.yaml:
standards_version: "2025.1"
last_configured: "[timestamp]"
components:
cache-busting: "2025.1"
cache-busting-framework: "[nextjs|vite]"
cache-busting-cdn: "[vercel|cloudflare|none]"
cache-busting-verified: true
Print a summary of changes applied, cache strategy overview, and next steps for verification.
For detailed configuration templates and code examples, see REFERENCE.md.
| Context | Command |
|---------|---------|
| Quick compliance check | /configure:cache-busting --check-only |
| Auto-fix all issues | /configure:cache-busting --fix |
| Next.js project only | /configure:cache-busting --fix --framework nextjs |
| Vite project only | /configure:cache-busting --fix --framework vite |
| Cloudflare CDN headers | /configure:cache-busting --fix --cdn cloudflare |
| Vercel CDN headers | /configure:cache-busting --fix --cdn vercel |
Provide:
/configure:all - Run all compliance checks/configure:status - Quick compliance overview/configure:workflows - GitHub Actions workflow standards/configure:dockerfile - Container configuration with build cachingtesting
Verify accumulated bug claims at upstream HEAD and dedup against trackers before filing issues. Use when filing upstream reports from backlogs, audit docs, or git-history findings.
documentation
Gate outward-bound text (upstream issues, docs, PR bodies) through isolated haiku fresh-reader critique before publishing. Use when an artifact must survive a reader with zero project context.
tools
Suggest improvements to SKILL.md content, descriptions, or tool config from eval results. Use when raising pass rates, fixing triggering, or iterating on a skill after evaluation.
tools
deadbranch CLI for stale-branch cleanup — dry-run preview, TUI or non-interactive delete, protects main/develop/WIP. Use when asked to clean up branches, prune branches, or remove stale branches.