107e429fb9
Task 04 defined the chapters collection; nothing ever filled it. Task 08 built RouteCard/GridGroup and found no data and no href/cta field to feed them. Blocks 12 and 13.
61 lines
2.6 KiB
Markdown
61 lines
2.6 KiB
Markdown
# 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
|