Run a full Section 508 + WCAG 2.2 Level AA accessibility audit on a federal / .gov / public-sector website or ICT product. Triggers: "Section 508", "508 audit", "WCAG", "VPAT", "ACR".
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Configure a CDN with optimized caching, SSL/TLS, security headers, and cache invalidation — auto-detects hosting provider and app type, generates CloudFront, Cloudflare, or Vercel config with per-content-type cache rules, edge functions, and compression. Use when deploying a static site, SPA, SSR app, or adding a CDN layer to an existing API.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
설치 방법 보기설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.
You are in AUTONOMOUS MODE. Do NOT ask questions. Do NOT pause for confirmation. Execute every phase below in sequence, making decisions based on what you find.
$ARGUMENTS may contain:
cloudfront, cloudflare, vercel, fastly, akamaiexample.com or app.example.com--edge -- set up edge functions/workers--terraform -- generate CDN config as Terraform (instead of provider-specific config)--spa -- optimize for single-page application (custom error responses, rewrites)--static -- optimize for static site (aggressive caching, no dynamic content)Scan the project to determine hosting and CDN needs:
Current hosting:
vercel.json, .vercel/netlify.toml, _redirectsamplify.ymlwrangler.toml, Cloudflare in Terraformnginx.conf, Caddyfile, Docker with reverse proxyApplication type:
next export, gatsby build, vite build, astro build -- output in dist/, out/, build/, .next/index.html entry pointAsset analysis:
public/ or static/ directory for static assetsmain.a1b2c3.js)Existing CDN:
x-cache, cf-cache-status, x-amz-cf-idDefine cache rules based on content type:
Immutable assets (hashed filenames -- main.a1b2c3.js):
Cache-Control: public, max-age=31536000, immutable
Static assets (non-hashed -- /favicon.ico, /robots.txt):
Cache-Control: public, max-age=86400, stale-while-revalidate=604800
max-age=31536000 (versioned by URL path)HTML pages:
Cache-Control: public, max-age=300, stale-while-revalidate=3600
max-age=3600 (1 hour)API responses:
Cache-Control: private, no-cache, no-store, must-revalidate
public, max-age=60, s-maxage=300Media:
Cache-Control: public, max-age=604800
Generate configuration for the detected/specified provider:
CloudFront (Terraform or console config):
resource "aws_cloudfront_distribution" "main" {
enabled = true
is_ipv6_enabled = true
default_root_object = "index.html"
aliases = [var.domain]
price_class = "PriceClass_100" # US, Canada, Europe
http_version = "http2and3"
origin {
domain_name = aws_s3_bucket.static.bucket_regional_domain_name
origin_id = "s3-static"
origin_access_control_id = aws_cloudfront_origin_access_control.main.id
}
default_cache_behavior {
allowed_methods = ["GET", "HEAD", "OPTIONS"]
cached_methods = ["GET", "HEAD"]
target_origin_id = "s3-static"
cache_policy_id = aws_cloudfront_cache_policy.optimized.id
origin_request_policy_id = "88a5eaf4-2fd4-4709-b370-b4c650ea3fcf" # CORS-S3Origin
viewer_protocol_policy = "redirect-to-https"
compress = true
}
# API origin (if applicable)
origin {
domain_name = var.api_domain
origin_id = "api"
custom_origin_config {
http_port = 80
https_port = 443
origin_protocol_policy = "https-only"
origin_ssl_protocols = ["TLSv1.2"]
}
}
ordered_cache_behavior {
path_pattern = "/api/*"
target_origin_id = "api"
allowed_methods = ["DELETE", "GET", "HEAD", "OPTIONS", "PATCH", "POST", "PUT"]
cached_methods = ["GET", "HEAD"]
cache_policy_id = "4135ea2d-6df8-44a3-9df3-4b5a84be39ad" # CachingDisabled
viewer_protocol_policy = "https-only"
compress = true
}
# SPA custom error response
custom_error_response {
error_code = 403
response_code = 200
response_page_path = "/index.html"
}
viewer_certificate {
acm_certificate_arn = var.certificate_arn
ssl_support_method = "sni-only"
minimum_protocol_version = "TLSv1.2_2021"
}
restrictions {
geo_restriction {
restriction_type = "none"
}
}
}
Cloudflare (wrangler.toml + page rules or _headers):
name = "{project-name}"
compatibility_date = "2024-01-01"
[site]
bucket = "./dist"
[[headers]]
for = "/_next/static/*"
[headers.values]
Cache-Control = "public, max-age=31536000, immutable"
[[headers]]
for = "/api/*"
[headers.values]
Cache-Control = "no-store"
Generate Cloudflare page rules or cache rules:
*.js, *.css: Cache Level = Cache Everything, Edge TTL = 1 year/api/*: Cache Level = Bypass*.html: Cache Level = Cache Everything, Edge TTL = 5 minutesVercel (vercel.json):
{
"headers": [
{
"source": "/(.*).js",
"headers": [
{ "key": "Cache-Control", "value": "public, max-age=31536000, immutable" }
]
},
{
"source": "/api/(.*)",
"headers": [
{ "key": "Cache-Control", "value": "no-store" }
]
}
]
}
Application-level headers (if no CDN config file available): Generate middleware to set Cache-Control headers in the application code.
Ensure HTTPS is properly configured:
CloudFront + ACM:
aws_acm_certificate with DNS validationus-east-1 for CloudFrontCloudflare:
max-age=31536000; includeSubDomainsLet's Encrypt (self-hosted):
Generate security headers in CDN config:
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
X-XSS-Protection: 0
Referrer-Policy: strict-origin-when-cross-origin
Permissions-Policy: camera=(), microphone=(), geolocation=()
Content-Security-Policy: default-src 'self'; script-src 'self' 'unsafe-inline'
Generate edge function/worker for common patterns:
A/B testing:
Redirects:
_redirects file to edge functionGeolocation:
CF-IPCountry or CloudFront-Viewer-Country headerBot protection:
Image optimization:
Set up cache invalidation for deployments:
CloudFront:
aws cloudfront create-invalidation \
--distribution-id $DISTRIBUTION_ID \
--paths "/*"
/index.html, /about/index.html)Cloudflare:
curl -X POST "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/purge_cache" \
-H "Authorization: Bearer $CF_API_TOKEN" \
-d '{"purge_everything": true}'
Vercel: automatic on deploy (no manual invalidation needed)
Generate CI/CD step for invalidation after deploy.
Configure additional optimizations:
Link: <https://cdn.example.com>; rel=preconnect headersAfter completing deployment/infrastructure changes, validate:
IF STILL FAILING after 2 iterations:
## CDN Configuration Complete
### Provider: {provider}
### Domain: {domain}
### Files Created
{list of files}
### Caching Rules
| Content Type | Cache Duration | Revalidation |
|-------------|---------------|--------------|
| Hashed assets (JS/CSS) | 1 year | Immutable |
| Static assets | 1 day | 7 day stale-while-revalidate |
| HTML pages | 5 minutes | 1 hour stale-while-revalidate |
| API responses | No cache | -- |
| Media files | 7 days | -- |
### Security Headers
{list of security headers configured}
### Cache Invalidation
{command or CI step to invalidate cache}
### Performance
- Compression: Brotli + Gzip
- Protocol: HTTP/2 + HTTP/3
- TLS: 1.2 minimum
curl -I https://yourdomain.com/asset.js -- check Cache-Control headerAfter producing output, record execution metadata for the /evolve pipeline.
Check if a project memory directory exists:
~/.claude/projects/skill-telemetry.md in that memory directoryEntry format:
### /cdn — {{YYYY-MM-DD}}
- Outcome: {{SUCCESS | PARTIAL | FAILED}}
- Self-healed: {{yes — what was healed | no}}
- Iterations used: {{N}} / {{N max}}
- Bottleneck: {{phase that struggled or "none"}}
- Suggestion: {{one-line improvement idea for /evolve, or "none"}}
Only log if the memory directory exists. Skip silently if not found. Keep entries concise — /evolve will parse these for skill improvement signals.
Cache-Control: no-cache when you mean no-store (no-cache still caches, just revalidates)아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.
로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.
아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.
Run a full Section 508 + WCAG 2.2 Level AA accessibility audit on a federal / .gov / public-sector website or ICT product. Triggers: "Section 508", "508 audit", "WCAG", "VPAT", "ACR".
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Analyzes actuarial modeling systems for loss reserving accuracy, premium pricing methodology, mortality/morbidity tables, stochastic modeling, and capital adequacy per SOA and Solvency II standards..
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Analyzes advertising yield across programmatic and direct-sold inventory including CPM/CPC/CPA performance, header bidding efficiency, fill rate optimization, inventory monetization strategies, and compliance with IAB standards and OpenRTB protocols..
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Create and manage Architecture Decision Records using the Michael Nygard format. Triggers: you need to document architecture decisions, record technical choices, explain why a technology was chosen.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Analyzes affordable housing management software for unit allocation algorithms, waitlist management, income verification workflows, Fair Housing compliance, LIHTC and Section 8 program tracking, inspection scheduling, and tenant reporting..
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Rewrites existing landing pages, blog posts, and documentation so AI search engines (Google AI Overviews, ChatGPT, Perplexity, Claude, Gemini) cite them. Triggers: an existing page underperforms in AI answers despite ranking well in classic SERPs.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.