[{"data":1,"prerenderedAt":915},["ShallowReactive",2],{"$fGlaz05rDGHz0Ml8z3IV7y3ZXfQdF1LMtLnvsIa7OhgQ":3},{"newThing":4,"project":5,"cycle":9,"sections":24,"threads":862,"otherDocs":863,"documents":865,"images":869,"archiveItems":896,"links":911},"Page evolution (c96): every capture carries a subject (page\u002Fteams, component\u002Fdata-ranked-bars) so the same page joins across cycles, threads, and surfaces — mock → qcontrol preview → qdash; \u002Fcycles\u002Fevolution lists the subjects and each subject page compares any two moments by wipe, onion skin, side-by-side, or sequence",{"id":6,"label":7,"liveBase":8},"design","Design",null,{"id":10,"num":11,"dir":12,"name":13,"title":14,"focus":15,"status":16,"statusNote":8,"created":17,"completed":8,"mode":18,"report":8,"recordless":19,"thumbnail":20,"imageCount":21,"artifactCount":22,"lastActivity":17,"hasPickup":19,"hasInitialPrompt":23},"c96",96,"c96.page-evolution","page-evolution","Page Evolution","Build a before\u002Fafter tool and page-evolution view to correlate captures across cycles and threads","archived","2026-09-25","Assemblage — compose existing capture infrastructure (manifest, shot programs, atlas) with new join logic and UI",false,"\u002Fcycles\u002Fdesign\u002Fc96-evolution-index.png",5,2,true,[25,78,88,172,756],{"key":26,"title":27,"empty":19,"ast":28},"why","Why",{"type":29,"children":30},"root",[31,65],{"type":32,"tag":33,"props":34,"children":35},"element","p",{},[36,39],{"type":37,"value":38},"text","The capture system (scripts\u002Fcapture.mts, shot-programs, public\u002Fcycles\u002F",{"type":32,"tag":40,"props":41,"children":42},"project",{},[43,45],{"type":37,"value":44},"\u002Fmanifest.json) feeds the cycle atlas at \u002Fcycles\u002F",{"type":32,"tag":40,"props":46,"children":47},{},[48,50],{"type":37,"value":49},"\u002F",{"type":32,"tag":51,"props":52,"children":53},"c-n",{},[54,56,63],{"type":37,"value":55},". Captures are per-cycle; the same route is captured repeatedly across threads and cycles under different filenames (e.g., c92-inventory-sessions.png on 2026-09-21 and c92-polish-sessions.png on 2026-09-25 are both \u002Finventory\u002Fsessions on qdash). Just landed in c92 (band-polish thread): shot programs can declare ",{"type":32,"tag":57,"props":58,"children":60},"code",{"className":59},[],[61],{"type":37,"value":62},"thread: { id, label, date }",{"type":37,"value":64},", capture.mts copies it onto each manifest entry, and the atlas groups a cycle's Visual record by thread, newest first.",{"type":32,"tag":33,"props":66,"children":67},{},[68,70,76],{"type":37,"value":69},"But there is no join key tying captures of the same page together ",{"type":32,"tag":71,"props":72,"children":73},"strong",{},[74],{"type":37,"value":75},"across cycles",{"type":37,"value":77},". The request: clear separation between older and newer screenshots, a before\u002Fafter tool for specific pages, and a page-evolution view showing a page's history over time (timeline, side-by-side, slider\u002Fonion-skin comparison).",{"key":79,"title":80,"empty":19,"ast":81},"objective","Objective",{"type":29,"children":82},[83],{"type":32,"tag":33,"props":84,"children":85},{},[86],{"type":37,"value":87},"Extend the capture\u002Fmanifest system to allow correlating captures of the same page across threads and cycles, then build a before\u002Fafter tool and page-evolution view that lets designers and the team understand how a specific page has evolved over the course of development.",{"key":89,"title":90,"empty":19,"ast":91},"scope","Scope",{"type":29,"children":92},[93],{"type":32,"tag":94,"props":95,"children":96},"ul",{},[97,116,126,142,152,162],{"type":32,"tag":98,"props":99,"children":100},"li",{},[101,106,108,114],{"type":32,"tag":71,"props":102,"children":103},{},[104],{"type":37,"value":105},"Page identity key:",{"type":37,"value":107}," What uniquely identifies a page across time? Explicit ",{"type":32,"tag":57,"props":109,"children":111},{"className":110},[],[112],{"type":37,"value":113},"page",{"type":37,"value":115}," tag on shot programs, derived from route, or both?",{"type":32,"tag":98,"props":117,"children":118},{},[119,124],{"type":32,"tag":71,"props":120,"children":121},{},[122],{"type":37,"value":123},"Backfilling:",{"type":37,"value":125}," How to retrofit existing manifest entries with page keys (bulk operation or lazy assignment)?",{"type":32,"tag":98,"props":127,"children":128},{},[129,134,136],{"type":32,"tag":71,"props":130,"children":131},{},[132],{"type":37,"value":133},"View location:",{"type":37,"value":135}," Atlas page per page-key? A component on cycle pages? A new \u002Fpages\u002F",{"type":32,"tag":137,"props":138,"children":139},"key",{},[140],{"type":37,"value":141},"\u002Fhistory route? Archive detail page expansion?",{"type":32,"tag":98,"props":143,"children":144},{},[145,150],{"type":32,"tag":71,"props":146,"children":147},{},[148],{"type":37,"value":149},"Comparison UI:",{"type":37,"value":151}," Side-by-side, slider\u002Fonion-skin overlay, timeline strip, or hybrid?",{"type":32,"tag":98,"props":153,"children":154},{},[155,160],{"type":32,"tag":71,"props":156,"children":157},{},[158],{"type":37,"value":159},"Sister projects:",{"type":37,"value":161}," Do qmap, qflow, bob-wire participate, or design-only?",{"type":32,"tag":98,"props":163,"children":164},{},[165,170],{"type":32,"tag":71,"props":166,"children":167},{},[168],{"type":37,"value":169},"Skills\u002Fdocs:",{"type":37,"value":171}," .claude\u002Fskills\u002Fcapture\u002FSKILL.md and .claude\u002Fskills\u002Fdocument-cycle\u002FSKILL.md updates",{"key":173,"title":174,"empty":19,"ast":175},"key-changes","Key Changes",{"type":29,"children":176},[177,187,381],{"type":32,"tag":33,"props":178,"children":179},{},[180,185],{"type":32,"tag":71,"props":181,"children":182},{},[183],{"type":37,"value":184},"Kick-off (2026-09-25):",{"type":37,"value":186}," Created cycle, wrote initial-prompt.md and CYCLE.md. Open questions documented in Scope; plan and architecture next.",{"type":32,"tag":33,"props":188,"children":189},{},[190,195,197,208,210,216,218,224,226,232,234,240,242,248,250,256,258,263,265,271,273,279,280,286,288,294,296,302,304,310,312,318,320,326,328,334,336,342,344,349,351,357,359,365,366,372,373,379],{"type":32,"tag":71,"props":191,"children":192},{},[193],{"type":37,"value":194},"Planned (2026-09-25):",{"type":37,"value":196}," ",{"type":32,"tag":198,"props":199,"children":201},"a",{"href":200},"\u002Fcycles\u002Fdesign\u002Fc96\u002Fdoc\u002Fplan",[202],{"type":32,"tag":57,"props":203,"children":205},{"className":204},[],[206],{"type":37,"value":207},"plan.md",{"type":37,"value":209}," written, nothing executed. Verified first: the manifest is the only join surface (229 design entries, every hero manifested); route repeats across cycles only 6 times, but stripping ",{"type":32,"tag":57,"props":211,"children":213},{"className":212},[],[214],{"type":37,"value":215},"-vN",{"type":37,"value":217}," \u002F ",{"type":32,"tag":57,"props":219,"children":221},{"className":220},[],[222],{"type":37,"value":223},"?query",{"type":37,"value":225}," joins 31 families, and the same product page lives on three hosts (mock → ",{"type":32,"tag":57,"props":227,"children":229},{"className":228},[],[230],{"type":37,"value":231},"\u002Fqcontrol",{"type":37,"value":233}," preview → qdash ",{"type":32,"tag":57,"props":235,"children":237},{"className":236},[],[238],{"type":37,"value":239},"local",{"type":37,"value":241},"). A dry run of route→subject derivation resolves 215\u002F229 entries into 136 subjects, 22 with real history (",{"type":32,"tag":57,"props":243,"children":245},{"className":244},[],[246],{"type":37,"value":247},"page\u002Fteams",{"type":37,"value":249},": 6 moments, c81→c92, three surfaces). Design: an explicit kind-prefixed ",{"type":32,"tag":57,"props":251,"children":253},{"className":252},[],[254],{"type":37,"value":255},"subject",{"type":37,"value":257}," (",{"type":32,"tag":57,"props":259,"children":261},{"className":260},[],[262],{"type":37,"value":247},{"type":37,"value":264},", ",{"type":32,"tag":57,"props":266,"children":268},{"className":267},[],[269],{"type":37,"value":270},"component\u002Fdata-ranked-bars",{"type":37,"value":272},") + derived ",{"type":32,"tag":57,"props":274,"children":276},{"className":275},[],[277],{"type":37,"value":278},"surface",{"type":37,"value":217},{"type":32,"tag":57,"props":281,"children":283},{"className":282},[],[284],{"type":37,"value":285},"variant",{"type":37,"value":287}," on every manifest entry, a small alias registry (",{"type":32,"tag":57,"props":289,"children":291},{"className":290},[],[292],{"type":37,"value":293},"app\u002Fdata\u002Fsubjects.ts",{"type":37,"value":295},"), a backfill script, a moments model (",{"type":32,"tag":57,"props":297,"children":299},{"className":298},[],[300],{"type":37,"value":301},"buildEvolution.ts",{"type":37,"value":303},") with fans (parallel versions on one day) and lanes (state \u002F theme variants), ",{"type":32,"tag":57,"props":305,"children":307},{"className":306},[],[308],{"type":37,"value":309},"\u002Fevolution",{"type":37,"value":311}," index + ",{"type":32,"tag":57,"props":313,"children":315},{"className":314},[],[316],{"type":37,"value":317},"\u002Fevolution\u002F[kind]\u002F[slug]",{"type":37,"value":319}," with ",{"type":32,"tag":57,"props":321,"children":323},{"className":322},[],[324],{"type":37,"value":325},"UxImageCompare",{"type":37,"value":327}," (wipe · onion · side · sequence) and deep-linkable ",{"type":32,"tag":57,"props":329,"children":331},{"className":330},[],[332],{"type":37,"value":333},"?a=&b=",{"type":37,"value":335},", history chips on atlas figures, an Evolution section on component docs, ",{"type":32,"tag":57,"props":337,"children":339},{"className":338},[],[340],{"type":37,"value":341},"UxLightbox",{"type":37,"value":343}," extracted (rule of three). Seven decisions ruled the same day: single ",{"type":32,"tag":57,"props":345,"children":347},{"className":346},[],[348],{"type":37,"value":255},{"type":37,"value":350}," field; qdash captures join as the ",{"type":32,"tag":57,"props":352,"children":354},{"className":353},[],[355],{"type":37,"value":356},"app",{"type":37,"value":358}," surface; bulk backfill now; view nested under ",{"type":32,"tag":57,"props":360,"children":362},{"className":361},[],[363],{"type":37,"value":364},"\u002Fcycles",{"type":37,"value":257},{"type":32,"tag":57,"props":367,"children":369},{"className":368},[],[370],{"type":37,"value":371},"\u002Fcycles\u002Fevolution",{"type":37,"value":264},{"type":32,"tag":57,"props":374,"children":376},{"className":375},[],[377],{"type":37,"value":378},"evolution",{"type":37,"value":380}," reserved as a project id); components prototyped design-local then extracted; pixel diff is stretch; design-only.",{"type":32,"tag":33,"props":382,"children":383},{},[384,389,391,396,398,404,405,410,412,417,418,423,424,429,431,437,439,445,447,453,454,460,461,466,468,474,475,481,483,489,490,496,498,504,505,511,512,518,520,525,527,532,533,539,540,546,548,553,554,560,562,568,570,576,577,583,585,590,591,596,598,604,606,612,613,618,620,626,628,634,636,641,643,649,651,657,659,664,666,671,672,678,680,686,688,693,695,701,703,709,711,717,718,724,726,732,733,739,741,747,749,754],{"type":32,"tag":71,"props":385,"children":386},{},[387],{"type":37,"value":388},"Executed (2026-09-25):",{"type":37,"value":390}," Phases 1–5 of ",{"type":32,"tag":57,"props":392,"children":394},{"className":393},[],[395],{"type":37,"value":207},{"type":37,"value":397}," run end to end on the design repo; nothing committed yet. ",{"type":32,"tag":399,"props":400,"children":401},"em",{},[402],{"type":37,"value":403},"Identity:",{"type":37,"value":196},{"type":32,"tag":57,"props":406,"children":408},{"className":407},[],[409],{"type":37,"value":293},{"type":37,"value":411}," (kind-prefixed ",{"type":32,"tag":57,"props":413,"children":415},{"className":414},[],[416],{"type":37,"value":255},{"type":37,"value":264},{"type":32,"tag":57,"props":419,"children":421},{"className":420},[],[422],{"type":37,"value":278},{"type":37,"value":264},{"type":32,"tag":57,"props":425,"children":427},{"className":426},[],[428],{"type":37,"value":285},{"type":37,"value":430},"; derivation rules + alias table — ",{"type":32,"tag":57,"props":432,"children":434},{"className":433},[],[435],{"type":37,"value":436},"page\u002Fuser",{"type":37,"value":438}," and ",{"type":32,"tag":57,"props":440,"children":442},{"className":441},[],[443],{"type":37,"value":444},"page\u002Fusers",{"type":37,"value":446}," → ",{"type":32,"tag":57,"props":448,"children":450},{"className":449},[],[451],{"type":37,"value":452},"page\u002Fuser-detail",{"type":37,"value":264},{"type":32,"tag":57,"props":455,"children":457},{"className":456},[],[458],{"type":37,"value":459},"page\u002Fteams-users-devices",{"type":37,"value":446},{"type":32,"tag":57,"props":462,"children":464},{"className":463},[],[465],{"type":37,"value":247},{"type":37,"value":467},", qdash ",{"type":32,"tag":57,"props":469,"children":471},{"className":470},[],[472],{"type":37,"value":473},"\u002Finventory\u002F\u003Cx>\u002Fdetail",{"type":37,"value":446},{"type":32,"tag":57,"props":476,"children":478},{"className":477},[],[479],{"type":37,"value":480},"page\u002F\u003Cx>-detail",{"type":37,"value":482},"), ",{"type":32,"tag":57,"props":484,"children":486},{"className":485},[],[487],{"type":37,"value":488},"PageEntry.subject",{"type":37,"value":264},{"type":32,"tag":57,"props":491,"children":493},{"className":492},[],[494],{"type":37,"value":495},"capture.mts",{"type":37,"value":497}," tagging every mode (",{"type":32,"tag":57,"props":499,"children":501},{"className":500},[],[502],{"type":37,"value":503},"--subject",{"type":37,"value":217},{"type":32,"tag":57,"props":506,"children":508},{"className":507},[],[509],{"type":37,"value":510},"--surface",{"type":37,"value":217},{"type":32,"tag":57,"props":513,"children":515},{"className":514},[],[516],{"type":37,"value":517},"--variant",{"type":37,"value":519},", program ",{"type":32,"tag":57,"props":521,"children":523},{"className":522},[],[524],{"type":37,"value":255},{"type":37,"value":526}," + per-shot ",{"type":32,"tag":57,"props":528,"children":530},{"className":529},[],[531],{"type":37,"value":285},{"type":37,"value":482},{"type":32,"tag":57,"props":534,"children":536},{"className":535},[],[537],{"type":37,"value":538},"scripts\u002Fbackfill-subjects.mts",{"type":37,"value":257},{"type":32,"tag":57,"props":541,"children":543},{"className":542},[],[544],{"type":37,"value":545},"npm run shots:backfill",{"type":37,"value":547},"). Backfill: 215 \u002F 229 design entries tagged into 132 subjects, 23 with more than one moment; the 14 unresolved are site chrome. ",{"type":32,"tag":399,"props":549,"children":550},{},[551],{"type":37,"value":552},"Data:",{"type":37,"value":196},{"type":32,"tag":57,"props":555,"children":557},{"className":556},[],[558],{"type":37,"value":559},"server\u002Fdata\u002Fevolution\u002FbuildEvolution.ts",{"type":37,"value":561}," — moments keyed by cycle + thread + day + surface, sorted day → cycle → surface → clock (so c90 and c92 shot the same day read in cycle order), fans (several routes in one moment: teams-ideas v2–v7 in c67) and lanes (",{"type":32,"tag":57,"props":563,"children":565},{"className":564},[],[566],{"type":37,"value":567},"state=clear",{"type":37,"value":569},"); ",{"type":32,"tag":57,"props":571,"children":573},{"className":572},[],[574],{"type":37,"value":575},"\u002Fapi\u002Fevolution",{"type":37,"value":438},{"type":32,"tag":57,"props":578,"children":580},{"className":579},[],[581],{"type":37,"value":582},"\u002Fapi\u002Fevolution\u002F[kind]\u002F[slug]",{"type":37,"value":584},". ",{"type":32,"tag":399,"props":586,"children":587},{},[588],{"type":37,"value":589},"View:",{"type":37,"value":196},{"type":32,"tag":57,"props":592,"children":594},{"className":593},[],[595],{"type":37,"value":371},{"type":37,"value":597}," (cards pairing first and latest capture, kind tabs, history-only toggle) and ",{"type":32,"tag":57,"props":599,"children":601},{"className":600},[],[602],{"type":37,"value":603},"\u002Fcycles\u002Fevolution\u002F[kind]\u002F[slug]",{"type":37,"value":605}," (lane control, ",{"type":32,"tag":57,"props":607,"children":609},{"className":608},[],[610],{"type":37,"value":611},"EvolutionStrip",{"type":37,"value":264},{"type":32,"tag":57,"props":614,"children":616},{"className":615},[],[617],{"type":37,"value":325},{"type":37,"value":619}," wipe · onion · side with synced scroll, a sequence flipbook with autoplay, step buttons + arrow keys, the record for A and B with cycle, thread, surface, route, caption, ",{"type":32,"tag":57,"props":621,"children":623},{"className":622},[],[624],{"type":37,"value":625},"newThing",{"type":37,"value":627},", hero \u002F full-page lightbox; ",{"type":32,"tag":57,"props":629,"children":631},{"className":630},[],[632],{"type":37,"value":633},"?a=&b=&mode=&lane=",{"type":37,"value":635}," deep links, Copy link). ",{"type":32,"tag":399,"props":637,"children":638},{},[639],{"type":37,"value":640},"Hooks:",{"type":37,"value":642}," atlas figures carry ",{"type":32,"tag":57,"props":644,"children":646},{"className":645},[],[647],{"type":37,"value":648},"history · N moments →",{"type":37,"value":650}," when their subject recurs (51 of c92's 72 figures); component docs pages gain an Evolution section (client-fetched, only when history exists — ",{"type":32,"tag":57,"props":652,"children":654},{"className":653},[],[655],{"type":37,"value":656},"DataRankedBars",{"type":37,"value":658}," shows two moments); ",{"type":32,"tag":57,"props":660,"children":662},{"className":661},[],[663],{"type":37,"value":341},{"type":37,"value":665}," extracted from the atlas and archive copies, both now call it. ",{"type":32,"tag":399,"props":667,"children":668},{},[669],{"type":37,"value":670},"Docs:",{"type":37,"value":196},{"type":32,"tag":57,"props":673,"children":675},{"className":674},[],[676],{"type":37,"value":677},"\u002Fcapture",{"type":37,"value":679}," Subjects section, ",{"type":32,"tag":57,"props":681,"children":683},{"className":682},[],[684],{"type":37,"value":685},"\u002Fdocument-cycle",{"type":37,"value":687}," capture + verification lines. ",{"type":32,"tag":399,"props":689,"children":690},{},[691],{"type":37,"value":692},"Verified",{"type":37,"value":694}," on the live ",{"type":32,"tag":57,"props":696,"children":698},{"className":697},[],[699],{"type":37,"value":700},":3000",{"type":37,"value":702}," server: Teams reads six moments across mock → preview → qdash, teams-ideas keeps its fan, data-ranked-bars its thread label; all four modes and the URL sync exercised in the browser pane, console clean; captures ",{"type":32,"tag":57,"props":704,"children":706},{"className":705},[],[707],{"type":37,"value":708},"c96-evolution-teams",{"type":37,"value":710}," (+full), ",{"type":32,"tag":57,"props":712,"children":714},{"className":713},[],[715],{"type":37,"value":716},"-onion",{"type":37,"value":264},{"type":32,"tag":57,"props":719,"children":721},{"className":720},[],[722],{"type":37,"value":723},"-index",{"type":37,"value":725}," (+full) tagged ",{"type":32,"tag":57,"props":727,"children":729},{"className":728},[],[730],{"type":37,"value":731},"page\u002Fevolution",{"type":37,"value":217},{"type":32,"tag":57,"props":734,"children":736},{"className":735},[],[737],{"type":37,"value":738},"page\u002Fevolution-index",{"type":37,"value":740}," on the ",{"type":32,"tag":57,"props":742,"children":744},{"className":743},[],[745],{"type":37,"value":746},"docs",{"type":37,"value":748}," surface. ",{"type":32,"tag":399,"props":750,"children":751},{},[752],{"type":37,"value":753},"Not done:",{"type":37,"value":755}," layer extraction of the three components (+ demos, at close), pixel-diff scoring (stretch), Outcome \u002F archive entry \u002F HISTORY.",{"key":757,"title":758,"empty":19,"ast":759},"outcome","Outcome",{"type":29,"children":760},[761,798,824],{"type":32,"tag":33,"props":762,"children":763},{},[764,769,771,776,777,782,784,789,791,796],{"type":32,"tag":71,"props":765,"children":766},{},[767],{"type":37,"value":768},"Closed 2026-09-25.",{"type":37,"value":770}," The capture system now has memory. Every design capture carries a subject (",{"type":32,"tag":57,"props":772,"children":774},{"className":773},[],[775],{"type":37,"value":247},{"type":37,"value":264},{"type":32,"tag":57,"props":778,"children":780},{"className":779},[],[781],{"type":37,"value":270},{"type":37,"value":783},"), a surface (mock · qcontrol preview · qdash · docs), and a variant lane — derived from the route with a small alias table and backfilled over 215 of 229 manifest entries: 132 subjects, 23 with history, the 14 unresolved all site chrome. ",{"type":32,"tag":57,"props":785,"children":787},{"className":786},[],[788],{"type":37,"value":371},{"type":37,"value":790}," lists every subject as a first-to-latest card; a subject page runs the timeline strip (fans for parallel versions, lanes for states) over a compare stage with wipe, onion skin, side-by-side with synced scroll, and a sequence flipbook, with A, B, mode, and lane in the URL so a before\u002Fafter is a link. The atlas links each recurring figure to its history, component docs pages show an Evolution section when one exists, and the two hand-rolled lightboxes became one ",{"type":32,"tag":57,"props":792,"children":794},{"className":793},[],[795],{"type":37,"value":341},{"type":37,"value":797},". Teams is the worked example: six moments across three surfaces from the c81 mock to qdash after band-polish.",{"type":32,"tag":33,"props":799,"children":800},{},[801,803,808,809,814,816,822],{"type":37,"value":802},"What the plan foresaw held, with one correction found by use: same-day moments must sort by cycle before clock, or c92 reads ahead of c90. Two lessons carry forward in ",{"type":32,"tag":57,"props":804,"children":806},{"className":805},[],[807],{"type":37,"value":677},{"type":37,"value":438},{"type":32,"tag":57,"props":810,"children":812},{"className":811},[],[813],{"type":37,"value":685},{"type":37,"value":815},": route is the wrong key (versioned routes and three hosts per page hide the history), and thread captures left in ",{"type":32,"tag":57,"props":817,"children":819},{"className":818},[],[820],{"type":37,"value":821},"\u002Ftmp",{"type":37,"value":823}," are history lost.",{"type":32,"tag":33,"props":825,"children":826},{},[827,832,834,839,840,845,847,852,854,860],{"type":32,"tag":71,"props":828,"children":829},{},[830],{"type":37,"value":831},"Follow-ons, not blockers:",{"type":37,"value":833}," extract ",{"type":32,"tag":57,"props":835,"children":837},{"className":836},[],[838],{"type":37,"value":325},{"type":37,"value":264},{"type":32,"tag":57,"props":841,"children":843},{"className":842},[],[844],{"type":37,"value":341},{"type":37,"value":846},", and ",{"type":32,"tag":57,"props":848,"children":850},{"className":849},[],[851],{"type":37,"value":611},{"type":37,"value":853}," to the layer with demos (the c93 → c95 pattern); pixel-diff scoring per step (plan §6 stretch); sister-project ",{"type":32,"tag":57,"props":855,"children":857},{"className":856},[],[858],{"type":37,"value":859},"experiment\u002F*",{"type":37,"value":861}," subjects when qmap or qflow want the view.",[],[864,207],"initial-prompt.md",[866,867],{"file":864,"title":14},{"file":207,"title":868},"— Plan: page evolution",[870,878,885,888,893],{"src":871,"kind":872,"order":873,"caption":874,"capturedAt":875,"subject":731,"route":876,"evolution":877},"\u002Fcycles\u002Fdesign\u002Fc96-evolution-teams.png","hero",0,"\u002Fcycles\u002Fevolution\u002Fpage\u002Fteams — six moments of the Teams page from the c81 mock through the c89 teams-v3 mock, the c90 qcontrol preview, and qdash after c92 band-polish; the strip on top, the wipe stage comparing c81 (A) with c92 (B), the record for each side beneath","2026-09-25T16:15:08.559Z","\u002Fcycles\u002Fevolution\u002Fpage\u002Fteams",{"subject":731,"moments":22},{"src":879,"kind":872,"order":880,"caption":881,"capturedAt":882,"subject":731,"route":883,"evolution":884},"\u002Fcycles\u002Fdesign\u002Fc96-evolution-onion.png",1,"The same pair in onion-skin mode — B blended over A at the slider's opacity; the mode and both captures are in the URL, so a before\u002Fafter is a link","2026-09-25T16:15:13.210Z","\u002Fcycles\u002Fevolution\u002Fpage\u002Fteams?mode=onion",{"subject":731,"moments":22},{"src":20,"kind":872,"order":22,"caption":886,"capturedAt":887,"subject":738,"route":371},"\u002Fcycles\u002Fevolution — 132 subjects, 23 with history; cards pair the first and latest capture, name the cycles spanned and the surfaces seen; history only is the default filter","2026-09-25T16:15:17.462Z",{"src":889,"kind":890,"order":891,"capturedAt":875,"subject":731,"route":876,"evolution":892},"\u002Fcycles\u002Fdesign\u002Fc96-evolution-teams-full.png","full",9000,{"subject":731,"moments":22},{"src":894,"kind":890,"order":895,"capturedAt":887,"subject":738,"route":371},"\u002Fcycles\u002Fdesign\u002Fc96-evolution-index-full.png",9002,[897],{"path":898,"title":899,"image":871,"gallery":900},"archive\u002F2026-q3\u002F2026-09-25-c96-page-evolution","Page Evolution — One Page Across Cycles",[901,903,905,907,909],{"src":871,"alt":902},"Teams — the strip (mock → mock → qcontrol preview → qdash), the lane control, and the wipe stage with c81 on the left and c92 on the right.",{"src":889,"alt":904},"The full subject page — the record for A and B under the stage: cycle, thread, surface, route, caption, what was new, hero and full-page links.",{"src":879,"alt":906},"Onion-skin mode — B blended over A; mode and both captures live in the URL, so a before\u002Fafter is a link.",{"src":20,"alt":908},"The index — every subject as a card pairing its first and latest capture, with the cycles spanned and the surfaces seen.",{"src":894,"alt":910},"The index in full — 23 subjects with history above the single-moment tail.",[912,913,914],{"route":371,"href":371},{"route":883,"href":883},{"route":876,"href":876},1794599413119]