docs: split task 15 into 15a-15e after two failed attempts
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
# Task 15d — Assemble /full-guide/
|
||||
|
||||
**Agent**: `page-migrator` · **Model**: **Codex** **Depends on**: 10, 13, 15a,
|
||||
15b, 15c · **Parallel with**: 16 · **Blocks**: 15e, 18, 19 **Worktree**:
|
||||
`.agents/scripts/worktree.sh start 15d page-full-guide`
|
||||
|
||||
## Goal
|
||||
|
||||
`src/pages/full-guide.astro`. 22 KB of HTML, bilingual throughout, everything
|
||||
interactive already built by 15a/15b/15c and every block already built by
|
||||
task 10. **This task is assembly.** If you find yourself writing a new island,
|
||||
stop — it belongs to one of the earlier briefs and you should report the gap
|
||||
instead.
|
||||
|
||||
Read the reports from 15a, 15b and 15c first. They state their props and the
|
||||
language contract.
|
||||
|
||||
## Islands and nothing else
|
||||
|
||||
| Island | Directive | From |
|
||||
| ------------------------------- | ---------------- | ---- |
|
||||
| Guide selector (one, ×9 groups) | `client:visible` | 15a |
|
||||
| Copy-prompt buttons + progress | `client:visible` | 15b |
|
||||
| Language toggle | `client:idle` | 15c |
|
||||
|
||||
Everything else is server-rendered.
|
||||
|
||||
## Asserted by verify.mjs — all must survive
|
||||
|
||||
`const phases`, `const handsOnPrompts`, `const modelGuide`,
|
||||
`const skillSources`, `const skillInstallPrompts`, `render('plan')`,
|
||||
`renderTree`, `renderWorker`, `renderRoute`, `renderModelProvider`,
|
||||
`renderEffort`, `renderSkillFile`, `renderSkillWorkflow`, `renderCommonSkill`,
|
||||
`renderHandsOn`, `copyPrompt`, plus
|
||||
`data-copy-target="prompt-install-skills|prompt-basic|prompt-skills"`,
|
||||
`hands-on/starter/`, `additional-reading.md`, `role="tablist"`, `<table>`.
|
||||
|
||||
Implementation-detail assertions, deliberately. **Never delete one.** Task 19
|
||||
re-points them to output-level checks; you do not.
|
||||
|
||||
## Watch for
|
||||
|
||||
- `hands-on/starter/` is a **lab fixture**. Link to it, ship it as a static
|
||||
asset, do not componentize it. Same for `hands-on/rules/`.
|
||||
- `renderHandsOn` takes no argument — it is not part of 15a's selector pattern.
|
||||
Check whether 15a covered it; if not, it is yours, and say so in the report.
|
||||
- Do not delete `responsive.css` here. That is 15e, and it needs screenshots.
|
||||
|
||||
## Done when
|
||||
|
||||
- [ ] Snapshot diff against `.agents/snapshots/` empty
|
||||
- [ ] Every interaction works: all nine selector groups, both languages, all
|
||||
three copy buttons
|
||||
- [ ] Keyboard: arrows move between tabs; focus visible throughout
|
||||
- [ ] JS payload **smaller** than today's 50 KB — content is static now
|
||||
- [ ] Screenshots match at 560 / 800 / 1100 / 1600 px
|
||||
- [ ] `pnpm run gate` green — the full gate, not `verify` + `audit-ui` alone
|
||||
- [ ] 42 assertions intact
|
||||
Reference in New Issue
Block a user