Astro pages, layouts, content collections, hydration directives and integrations. Use when adding or changing Astro pages, components or content collections, or choosing a client: directive.
71
89%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Passed
No findings from the security scan
Docs: https://docs.astro.build
public/ serves assets as-is; src/assets/ goes through the build pipeline. Wrong folder = no optimization, or a broken import.src/content.config.ts (not src/content/config.ts) and requires an explicit loader, e.g. glob({ pattern: '**/*.{md,mdx}', base: './src/content/blog' }).client:* directive, and pick the cheapest one that still works: client:load (critical), client:idle (deferred), client:visible (lazy), client:media (breakpoint-gated), client:only (last resort — skips SSR entirely, so no server-rendered HTML).getStaticPaths() is required for dynamic routes in static output; it does not run in output: 'server'.output: 'server' (or 'hybrid') and an adapter (node, vercel, netlify, cloudflare) in astro.config.mjs.z.coerce.date() for frontmatter dates, since raw frontmatter is a string.src/pages/ (file-based routes), layouts/, components/, content/, styles/, assets/. API routes: export GET/POST from src/pages/api/*.ts returning new Response(...). Type-safe mutations: defineAction in src/actions/index.ts.
src/content.config.ts via defineCollection + Zod schema; export from collections.src/content/<name>/ with one sample file.getCollection('<name>', filterFn).Integrations: astro add react tailwind mdx sitemap etc. — never hand-edit the integrations array.
monkilabs/opencastle
3942f46
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.