Cycle Atlas
Cycle detail pages across all projects — a /cycles listing + full-documentation detail pages joining every repo's cycle records with a backfilled cross-project screengrab archive
Why
The c69 history refresh proved the trail is real: cycle records, live surfaces, and a working capture program. But the record is scattered — /history is curated narrative, /archive is highlights, CYCLE.md files are the full truth nobody renders, and sister projects' cycles are invisible from the design site. Earlier cycles (design c1–c32, qmap c14–c28, all of qflow/bob-wire) have live, capturable surfaces and no imagery. A cycle detail page is the natural home for the entire visual and narrative result of each cycle's effort.
Objective
- Parser + API: tolerant multi-project reader over
cycles/markdown (design + 7 sisters), with status, dates (git fallback), artifacts, and imagery joins. Honest-skip for repos absent at CI prerender. - Pages:
/cycles— a simple project-grouped scroll;/cycles/[project]/[id]— full documentation: complete CYCLE.md narrative rendered, the entire visual record (hero + ordered slices + full-page + archive gallery), artifacts, live-route links. - Backfill: capture script gains
--slices(900px bands from the full-page render) and per-project output; design's ~20 capturable early cycles shot with honesty notes; qmap/qflow/bob-wire/qpixel/market-analyst backfilled per their constraints.
Done looks like: every cycle in every local repo has a detail page; visual cycles show their work; process cycles read honestly as text; /history cycle chips link into the atlas.
Scope
scripts/capture.mts(+sharp),public/cycles/<project>/**server/data/cycles/,server/api/cycles/**,app/pages/cycles/**app/components/AppNav.vue,app/components/HistoryTimeline.vue,content/archive/2026-q3/(+10 honesty-noted entries)
Out: the completeness/filter ops view (future), timeline cycles-source, www/app.qpoint.io captures (parse-only), page-registry cycle? field (other session owns the file), serving cycle artifact files (names only).
Key Changes
- 2026-08-15 — Cycle created; plan in cycle-atlas-plan.md, exploration findings in research.md.
- 2026-08-15 — Capture script:
--slices(sharp 900px bands from full-page renders) +--projectper-repo output with merged manifests. - 2026-08-15 — Parser + API:
server/data/cycles/tolerant multi-project reader (alias table, header variants, Current Outcome = in-progress, recordless dirs, git-date fallback, honest-skip);/api/cycles+/api/cycles/[project]/[id]. 151 cycles across 8 projects on first run. - 2026-08-15 — Pages:
/cyclesproject-grouped listing +/cycles/[project]/[id]full-documentation detail (MDCRenderer narrative, gallery + lightbox, artifacts, live-route links). AppNav Cycles link; history cycle chips link into the atlas per project; hub links to the atlas. - 2026-08-15 — Design early backfill: 23 routes (c1–c57 era) with slices →
public/cycles/design/; 10 honesty-noted archive entries for the strong matches. - 2026-08-15 — Sister backfills: qmap 13 experiment captures + 24 legacy
c<N>.outcomesimages adopted; qflow 12 experiments (c12 live against qcontrol :7878); bob-wire 31 representative shots (17 cycle indexes + 14 flagship pages, c20 portal 6-slice); qpixel 7 test snapshots as c4 evidence; market-analyst 2 inspected aggregate views (/segmentsrejected — customer names). All dev servers sequential, explicit ports, killed after. Imagery: 92/151 cycles, ~39 MB. - 2026-08-15 — In-repo visual records. Each sister repo now owns its cycle imagery: qmap's
docs/images/cycle-history/convention extended to all five sisters (heroes + full renders, slices stay design-site-only), 50 CYCLE.md files gained a## Visual recordsection with repo-relative embeds (GitHub-renderable), provenance READMEs added, one commit per repo. The atlas parser skips that section by title (it renders its own gallery; relative paths wouldn't resolve). - 2026-08-15 — State-atlas thread (state-atlas-prompt.md / -plan.md / -research.md). Capture script gained a declarative program runner (
--program, actions: click/clickSel/clickText/select+optionScan/set/wheel/drag/clickXY/wait/css/reload; auto-hidden chrome, JS-dispatched interactions work on hidden controls). Two shot programs authored from full control inventories: qflow 100 shots (every cycle ≥8 — layout matrices, shape-language survey, presets, cranked-feed time-lapses; c11's blank default fixed: all 7 tabs captured, playback lit at turn 31, the unattributed-API-key risk view) and qmap 110 shots (scenario frames, context toggles, vox asset gallery, c24's deterministic seek ladder at phase boundaries, c28 in Fixture mode; honest ceilings: c16=2, c27=6). Manifests carry per-shot captions + per-cycle newThing → atlas galleries render figcaptions and a "New in this cycle" line, ordered by program sequence. Full sets propagated to qflow/qmap repos with Visual record sections rewritten as hero + collapsible states. ~210 new images, ~70 MB design-side. - 2026-08-15 — Record backfills + qmap early-cycle atlas. Honest CYCLE.md reconstructions written and committed upstream for the five experiment-only cycles: qflow c11 (whose experiment dir turned out to be untracked since April — now finally committed) and qmap c17–c20 (mined from the contemporaneous
dev/experiments/CYCLES.mdrecord; c17 dir renamed, c19/c20 dirs created; recorded March dates preferred over the April batch-commit date). Atlas pages flipped from recordless to full records automatically. Thenqmap-early.json: 104 shots covering c1–c13 (every cycle ≥8 except c4's honest 4), including all 13 c1 boundary-drawing strategies — after fixing a Family-A grid-hide bug (zeroing tracks while keeping named areas so remounted scenes read a real viewport) and giving c1 per-strategy reloads. qmap manifest now spans c1–c28, 228 entries. - 2026-08-16 — Close-out: history chips link per-cycle in compound labels; c71 history entry + atlas-listing hero (16 slices); reusable machinery distilled into
/captureand/document-cycleskills;embed-visual-records.pypromoted from scratchpad toscripts/.
Outcome
The cycle atlas is live: every cycle in every local repo — 151 across 8 projects — has a detail page at /cycles/[project]/[id] rendering its full CYCLE.md narrative (tolerant of ~50 heading variants and 5 recordless dirs), its status (CYCLES/HISTORY/PICKUP joins), git-backed dates, artifacts, and its entire visual record: content-first heroes, ordered page slices, full-page renders, legacy qmap outcomes, and archive galleries. 92 cycles carry imagery after the cross-project backfill. The listing is a simple project-grouped scroll; history pages' cycle chips and the hub link in. Sister data is live-local and honest-skips on CI (the /api/commits precedent). Deferred: completeness/filter ops view, timeline cycles-source, www/app captures, page-registry cycle? field.
The follow-on threads deepened it into a true visual archive: ~420 captures total — content-first heroes, full-page renders, slices, and multi-state shot programs covering every qflow and qmap experiment at 8+ captioned states (honest ceilings: qflow —, qmap c4/c16/c27); five honest record reconstructions committed upstream (including qflow c11's experiment, untracked since April); per-cycle linking from every history chip. The reusable methods live on as the /capture and /document-cycle skills and scripts/embed-visual-records.py.
Visual record
18 captures — heroes, page slices, and full-page renders. Click to view.


















Artifacts
- initial-prompt.md
- thread: state-atlas — prompt + plan
- initial-prompt.md
- research.md
- state-atlas-research.md