aae4d42229
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.9 KiB
1.9 KiB
Task 03 — Verification net
Agent: verification-engineer · Model: Codex
Depends on: 01 · Parallel with: 02, 04 · Blocks: 12–16
Worktree: .agents/scripts/worktree.sh start 03 verification-net
Goal
Rendered-text baselines for all ten routes, captured from the vanilla site, before any page is migrated. Without this the page migrators have nothing to diff against and "no content was lost" becomes an opinion.
This task is on the critical path. Do it early.
Scope
.agents/snapshots/, scripts/audit-ui.mjs, .agents/scripts/visual-regression.mjs.
Steps
npm run serveagainst the current, unmigrated site.- Snapshot all ten routes:
Commit them. They are the regression net.
for r in "" full-guide summary models agents skills rules skills-review \ hands-on/starter hands-on/rules; do node .agents/scripts/snapshot-route.mjs "http://localhost:4173/$r/" \ > ".agents/snapshots/${r:-index}.txt" done - Write
.agents/scripts/visual-regression.mjs(Playwright). Extend the existingscripts/inspect.pypattern rather than inventing one. Baselines to.agents/snapshots/before/. - Fix the audit gap:
audit-ui.mjsrejects external<script>/<link>but misses external URLs in CSS — which is exactly how the broken Google Fonts@font-facegot into this "dependency-free" site. Add@import,src: url(https:…),url(https:…).
Done when
- Ten committed snapshots, each non-empty and containing that page's real prose
visual-regression.mjscaptures 10 routes × 4 widths- Extended
audit-ui.mjsfails on today'sstyles.css(prove it catches the real bug), then the dead rule is removed by task 02 npm run gategreen
Do not
Do not change any assertion in verify.mjs yet. That is task 19, after the
pages exist.