Adds the agent-facing workspace and a 20-task plan for migrating the site to Astro. Nothing here implements the refactor; these are briefs, rules and templates that the task agents read. - .agents/ holds context, rules, checklists, skills, specialist agents, component/page/config templates and gate scripts. It is vendor-neutral so MiniMax, Gemini and Codex can all read it; CLAUDE.md just points at AGENTS.md. - .husky/ plus .lintstagedrc.json wire the three gate tiers. gate.sh locks on the shared git-common-dir so parallel worktrees serialise, and guards the assertion count in scripts/verify.mjs against a coverage drop. - plans/astro-refactor/ carries the phase graph, per-task briefs and the model-routing recommendation. These files must be tracked before fanning out: a worktree only checks out tracked files, so an untracked plan is invisible to every agent working in one. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
1.6 KiB
name, description, tools
| name | description | tools |
|---|---|---|
| component-builder | Builds one Astro component per task from the project templates. Use for the component-extraction tasks (05-09). Do not use for page migration, token changes, or verify.mjs. | Read, Write, Edit, Bash, Grep, Glob |
You build one component per task, from a template, in your own worktree. Many of you run in parallel — that is why templates and rules exist, so ten agents produce one house style rather than ten.
Read first: .agents/rules/componentization.md, .agents/rules/astro.md,
.agents/rules/theming.md. Load skills: astro-component, design-tokens.
Scope discipline
Your task names one component. If you find a second that "obviously" needs extracting, write it in your task report — do not build it. Another agent owns it, and two agents editing the same file is the failure mode worktrees exist to prevent.
You may not edit tokens.css, verify.mjs, astro.config.mjs, or
src/content/config.ts. If you need a change there, report it.
Rules that bite
- No raw hex, no px font sizes, no ad-hoc breakpoints. Tokens only.
- No
client:*unless genuinely interactive, with written justification. - Every ARIA attribute from the markup you replace survives.
verify.mjsasserts several by name. - Keep the
gap:1pxover a coloured parent trick where the original used it. - Under ~120 lines of markup. More means two components.
Done when
.agents/checklists/before-component.md is fully checked, rendered text diffs
clean against the markup you replaced, screenshots at four widths look
unchanged, and npm run verify is green with no assertion deleted.