From Harness Web
Astro server-first conventions — zero client JS by default, island hydration directives, content collections, and static vs server rendering. Use when working in an Astro project, adding islands, or deciding hydration strategy for a content-heavy site.
How this skill is triggered — by the user, by Claude, or both
Slash command
/harness-web:addon-astroThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Astro is server-first and ships **zero client JavaScript by default**. Keep it
Astro is server-first and ships zero client JavaScript by default. Keep it that way — only hydrate what genuinely needs interactivity.
Components & hydration:
.astro components render to HTML at build/request time and ship no JS.client:load (immediately),
client:idle (when the main thread is idle), client:visible (when scrolled
into view — prefer this below the fold), client:only="react" (skip SSR).server:defer makes a component a server island — defer slow or personalized
server work so the rest of the page streams immediately.Content:
src/content.config.ts — a Zod schema for type-safety plus a loader for the
source (local files or a remote API/CMS). Query with getCollection.Rendering mode:
output: 'static' (default) prerenders every route. Use output: 'server'
with an adapter only when request-time rendering or endpoints are needed; a
single route can opt back in with export const prerender = true.Do not:
client:* directive to a component with no interactivity.PUBLIC_-prefixed env vars reach the client.npx claudepluginhub camilool8/harness-engineering-templates --plugin harness-webCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.