# Task 04b — Chapter and landing content

**Agent**: `content-i18n-migrator` · **Model**: MiniMax-M3 **Depends on**: 04 ·
**Parallel with**: 14, 15, 16, 17 · **Blocks**: 12, 13 **Worktree**:
`.agents/scripts/worktree.sh start 04b chapters-data`

## Why this task exists

It is not in the original plan. Task 04 defined the `chapters` collection and
tasks 05–06 filled `skillSources`, `phases`, `providers`, `efforts`,
`handsOnPrompts`, `skillInstallPrompts`, and `reviews` — but nothing ever filled
`chapters`. `src/content/chapters/` does not exist, so the collection is defined
and empty. Task 08 hit this from the other side: it built `RouteCard` and
`GridGroup` and then had no data to feed them.

Two tasks are blocked on it, so it is worth doing on its own rather than
smuggling it into either.

## Scope

`src/content/config.ts` (the `chapters` schema only) and
`src/content/chapters/*.json`. **You own `config.ts`** — you are the only agent
who may edit it. Do not touch any other collection's schema.

## Two things to deliver

### 1. The landing route map has nowhere to live

`index.html` has six cards, each with a destination and its own call-to-action
text. The current `chapters` schema has `cards[]` with `label`/`title`/`copy`
and no `href`, and no CTA field anywhere.

Add what the real markup needs. From task 08's report, the six CTAs are not
uniform — four read "Open chapter →", one "Open lab →", one "Open desk →", so a
single hardcoded default would be wrong. Verify that against `index.html`
yourself rather than trusting it.

### 2. The four chapter pages have no entries

Fill `chapters` for `/models/`, `/agents/`, `/skills/`, `/summary/` plus the
landing page, both locales, from the existing HTML.

## Rules that bite here

- **Both `en` and `pt` are mandatory on every localized field.** A missing `pt`
  must fail the build. Do not make a field optional to get past a validation
  error — find the real Portuguese string in the existing HTML.
- Copy strings **verbatim** from the current HTML. This is a move, not a
  rewrite. No fixing typos, no improving phrasing, no translating anything that
  is already translated.
- Do not migrate any page. Tasks 12 and 13 own that. You produce data only.
- Do not edit `verify.mjs`, `tokens.css`, `astro.config.mjs`, or any component.

## Done when

- [ ] `chapters` schema carries the landing route map's real fields
- [ ] Entries exist for landing + the four chapter pages, both locales
- [ ] Every string traceable to the HTML it came from
- [ ] `pnpm run gate` green, 42 assertions intact
- [ ] Report names the exact schema change so tasks 12 and 13 can rely on it
