# Task 09 — Chapter blocks **Agent**: `component-builder` · **Model**: MiniMax-M3 **Depends on**: 07 · **Parallel with**: 08, 10, 11 · **Blocks**: 13, 14 **Worktree**: `.agents/scripts/worktree.sh start 09 chapter-blocks` ## Goal The shared furniture of `/models/`, `/agents/`, `/skills/`, `/summary/`, `/rules/` — five pages that today duplicate the same markup five times. ## Scope `src/components/blocks/` — `ChapterHero.astro`, `SectionGrid.astro`, `ComparisonTable.astro`, `TopBar.astro`, `SiteFooter.astro`. `src/layouts/ChapterLayout.astro`. ## Source `chapters.css` is already the shared layer; the duplication is in the five HTML files. Diff them against each other first — what differs is props, what matches is the component. ## Watch for - `TopBar` carries `aria-current="page"`. Preserve it; it is the only indication of location for assistive tech. - The tables in `/models/` and `/rules/` scroll horizontally on narrow screens (`overflow-x:auto`, `min-width` on the inner element). Keep that — dropping it makes the tables unreadable on a phone, and `audit-ui.mjs` asserts related responsive tokens. ## Done when - [ ] All five pages' markup expressible with these components - [ ] Rendered text identical to current pages - [ ] Zero JS - [ ] Checklist complete; `pnpm run gate` green