docs(plan): add task 04b for unfilled chapters collection

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.
This commit is contained in:
Marcos Paulo
2026-09-05 16:41:18 +00:00
parent 34f6961264
commit 107e429fb9
@@ -0,0 +1,60 @@
# 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 0506 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