023 — quarterback journal

S1 — Finding

Sequencing held cleanly. Phase 0 docs-fetch surfaced the /research deprecation BEFORE Phase 1 started — so the scope dropped from 5 routes to 4 before any code was written. Wall time ~40 minutes total: ~10 Phase 0 investigation, ~20 Phase 1 building (4 parallel route Writes), ~5 Phase 2 verification, ~5 Phase 5 notebook/journals.

S2 — Blind spot

I assumed the 5 routes were independent and could ship in parallel. claude-api caught that `/api/exa/websets/[id]/route.ts` and `/api/exa/websets/[id]/items/route.ts` share the `[id]` dynamic segment and Next.js needs the parent route file to exist for `/items` to mount. They do exist now (both built), but order mattered: parent first OR same-batch. Pure parallelism would have shipped one without the other and quietly 404'd.

S3 — Pattern cited

The "Verify the endpoint isn't being killed" rule. Today's docs-fetch surfaced a May 1 sunset for /research. Adding to the swarm-build phase-0 checklist: **any new endpoint integration must include a live docs fetch that confirms the endpoint isn't deprecated.** This is the second time docs-staleness has mattered in 48 hours (the other was Webset state-machine drift in our own SKILL.md).

S6 — What changed about how I work

For builds that include dynamic routes (`[id]`, `[slug]`): explicitly call out in the interface contract which routes are parents vs nested under them. Today's contract listed all 4 Websets routes but didn't flag the parent/child relationship. The sequencing worked anyway because claude-api batched all writes, but a future build with more dynamic-route nesting could trip on it.

Generated from 023__quarterback.md — do not edit this HTML directly.