[{"data":1,"prerenderedAt":1479},["ShallowReactive",2],{"$fq4wLb0XVC0-5ahttO4I4061ICvuxvNx7rQXME4DMjY4":3},{"newThing":4,"project":5,"cycle":8,"sections":28,"threads":1444,"otherDocs":1447,"documents":1449,"images":1476,"archiveItems":1477,"links":1478},null,{"id":6,"label":7,"liveBase":4},"design","Design",{"id":9,"num":10,"dir":11,"name":12,"title":13,"focus":14,"status":15,"statusNote":16,"created":17,"completed":4,"mode":18,"report":19,"recordless":23,"thumbnail":4,"imageCount":24,"artifactCount":25,"lastActivity":26,"hasPickup":23,"hasInitialPrompt":27},"c101",101,"c101.qmap-surface","qmap-surface","Qmap Surface","Fold qmap into `DataSurfaceSection`. Draw a thing's Surface (what it reaches) as a scene of pixel pawns, as a second view beside the lists (Map ⇄ List). This starts with a design brief to a designer.","active","brief with the designer since 2026-09-28; 2026-11-03 six finding sessions + the pawns they need handed to qmap c29","2026-09-28","assemblage. It connects a served data contract (`\u002Fapi\u002Fsurface`), a renderer that has never had a product home (qmap), and a pawn family that has never had a job (c47).",{"title":20,"to":21,"note":22},"Surface Map — Designer Brief","\u002Fcycles\u002Fdesign\u002Fc101\u002Fbrief","the brief for a designer: the situation, twenty questions, the cast, what's fixed and what's open",false,0,14,"2026-11-04",true,[29,51,94,230],{"key":30,"title":31,"empty":23,"ast":32},"why","Why",{"type":33,"children":34},"root",[35],{"type":36,"tag":37,"props":38,"children":39},"element","p",{},[40,43,49],{"type":41,"value":42},"text","Every qdash detail page has a Surface section answering ",{"type":36,"tag":44,"props":45,"children":46},"em",{},[47],{"type":41,"value":48},"what does this thing reach?",{"type":41,"value":50},": up to nine ranked lists (models, MCP servers, repos, tools, harnesses, endpoints, users, sensitive files, network destinations). The lists are accurate but hide the shape of the answer. Meanwhile qmap has been explored across 17 design cycles and a dozen qmap cycles without ever reaching the product. It was stopped by dormancy, private-package access, data that needed a reducer, and c77's \"no timeline\" objection. Surface fits qmap around every one of those: its data is served on every scope already, it's a windowed aggregate (a snapshot is the right form), and it has a home next to something users already read. The c47 Pixel Pawns family gives the actors identity by silhouette, which leaves color free to mean state.",{"key":52,"title":53,"empty":23,"ast":54},"objective","Objective",{"type":33,"children":55},[56,67],{"type":36,"tag":37,"props":57,"children":58},{},[59,65],{"type":36,"tag":60,"props":61,"children":62},"strong",{},[63],{"type":41,"value":64},"Stage 1 (this kick-off):",{"type":41,"value":66}," a design brief a designer can work from, framed as problems to solve or illuminate rather than visual specifications, with links on design.internal.qpoint.io, real scene data and supporting research.",{"type":36,"tag":37,"props":68,"children":69},{},[70,75,77,84,86,92],{"type":36,"tag":60,"props":71,"children":72},{},[73],{"type":41,"value":74},"Then:",{"type":41,"value":76}," the designer's actor, state and scene work → a design-site mock (",{"type":36,"tag":78,"props":79,"children":81},"code",{"className":80},[],[82],{"type":41,"value":83},"\u002Fpages\u002Fphase1\u002Fqmap-surface",{"type":41,"value":85},") on captured fixtures → qdash behind the Experimental toggle (see ",{"type":36,"tag":78,"props":87,"children":89},{"className":88},[],[90],{"type":41,"value":91},"build-notes.md",{"type":41,"value":93},").",{"key":95,"title":96,"empty":23,"ast":97},"scope","Scope",{"type":33,"children":98},[99],{"type":36,"tag":100,"props":101,"children":102},"ul",{},[103,170,197],{"type":36,"tag":104,"props":105,"children":106},"li",{},[107,113,115,121,123,129,131,137,139,145,147,153,155,161,163,168],{"type":36,"tag":78,"props":108,"children":110},{"className":109},[],[111],{"type":41,"value":112},"cycles\u002Fc101.qmap-surface\u002F",{"type":41,"value":114},": ",{"type":36,"tag":78,"props":116,"children":118},{"className":117},[],[119],{"type":41,"value":120},"brief.md",{"type":41,"value":122}," (the brief), ",{"type":36,"tag":78,"props":124,"children":126},{"className":125},[],[127],{"type":41,"value":128},"fixtures.md",{"type":41,"value":130}," (real scene data), ",{"type":36,"tag":78,"props":132,"children":134},{"className":133},[],[135],{"type":41,"value":136},"explorations.md",{"type":41,"value":138}," (what past qmap work teaches), ",{"type":36,"tag":78,"props":140,"children":142},{"className":141},[],[143],{"type":41,"value":144},"pawn-inventory.md",{"type":41,"value":146}," (existing art per actor), ",{"type":36,"tag":78,"props":148,"children":150},{"className":149},[],[151],{"type":41,"value":152},"precedents.md",{"type":41,"value":154}," (how other products draw reach), ",{"type":36,"tag":78,"props":156,"children":158},{"className":157},[],[159],{"type":41,"value":160},"prior-work.md",{"type":41,"value":162}," (research), ",{"type":36,"tag":78,"props":164,"children":166},{"className":165},[],[167],{"type":41,"value":91},{"type":41,"value":169}," (engineering sequencing and rulings)",{"type":36,"tag":104,"props":171,"children":172},{},[173,175,181,183,189,191],{"type":41,"value":174},"Later: ",{"type":36,"tag":78,"props":176,"children":178},{"className":177},[],[179],{"type":41,"value":180},"..\u002Fqmap",{"type":41,"value":182}," (housekeeping, new actors, a Surface preset), design-site mock, qdash ",{"type":36,"tag":78,"props":184,"children":186},{"className":185},[],[187],{"type":41,"value":188},"components\u002Fsurface\u002FSection.vue",{"type":41,"value":190}," + ",{"type":36,"tag":78,"props":192,"children":194},{"className":193},[],[195],{"type":41,"value":196},"lib\u002Fsurface-rollups.ts",{"type":36,"tag":104,"props":198,"children":199},{},[200,202,208,210,216,217,223,224],{"type":41,"value":201},"Reads from: qmap c4\u002Fc16\u002Fc21\u002Fc25\u002Fc26\u002Fc27, design c24, c36–c38, c42, c43, c47, c77, c92 (surface-section, detail-pages), market-analyst ",{"type":36,"tag":78,"props":203,"children":205},{"className":204},[],[206],{"type":41,"value":207},"unknown-agent-fleet",{"type":41,"value":209},", ",{"type":36,"tag":78,"props":211,"children":213},{"className":212},[],[214],{"type":41,"value":215},"unreviewed-mcp-surface",{"type":41,"value":209},{"type":36,"tag":78,"props":218,"children":220},{"className":219},[],[221],{"type":41,"value":222},"unsanctioned-external-services",{"type":41,"value":209},{"type":36,"tag":78,"props":225,"children":227},{"className":226},[],[228],{"type":41,"value":229},"personal-vs-enterprise-accounts",{"key":231,"title":232,"empty":23,"ast":233},"key-changes","Key Changes",{"type":33,"children":234},[235],{"type":36,"tag":100,"props":236,"children":237},{},[238,368,432,464,653,740,877,978,1069,1189,1280,1298,1346],{"type":36,"tag":104,"props":239,"children":240},{},[241,246],{"type":36,"tag":60,"props":242,"children":243},{},[244],{"type":41,"value":245},"kick-off (2026-09-28):",{"type":36,"tag":100,"props":247,"children":248},{},[249,261,295,307,345,358],{"type":36,"tag":104,"props":250,"children":251},{},[252,254,260],{"type":41,"value":253},"Research sweeps: qmap's state, the 17 design cycles that touched it, qdash's Surface data, and the problem registry (",{"type":36,"tag":255,"props":256,"children":258},"a",{"href":257},"\u002Fcycles\u002Fdesign\u002Fc101\u002Fdoc\u002Fprior-work",[259],{"type":41,"value":160},{"type":41,"value":93},{"type":36,"tag":104,"props":262,"children":263},{},[264,266],{"type":41,"value":265},"Mark's rulings:\n",{"type":36,"tag":100,"props":267,"children":268},{},[269,274,279,284],{"type":36,"tag":104,"props":270,"children":271},{},[272],{"type":41,"value":273},"Map the elements the Surface section renders, including skills and harnesses.",{"type":36,"tag":104,"props":275,"children":276},{},[277],{"type":41,"value":278},"A design-site mock comes first.",{"type":36,"tag":104,"props":280,"children":281},{},[282],{"type":41,"value":283},"c100 is unrelated.",{"type":36,"tag":104,"props":285,"children":286},{},[287,289,294],{"type":41,"value":288},"Commit qmap's uncommitted work as-is (see ",{"type":36,"tag":255,"props":290,"children":292},{"href":291},"\u002Fcycles\u002Fdesign\u002Fc101\u002Fdoc\u002Fbuild-notes",[293],{"type":41,"value":91},{"type":41,"value":93},{"type":36,"tag":104,"props":296,"children":297},{},[298,300,305],{"type":41,"value":299},"The first plan was rewritten, on Mark's steer, into a designer's brief (",{"type":36,"tag":255,"props":301,"children":303},{"href":302},"\u002Fcycles\u002Fdesign\u002Fc101\u002Fdoc\u002Fbrief",[304],{"type":41,"value":120},{"type":41,"value":306},"): six problems (P1–P6), 13 actors as pawns, the problems around the actors, links, deliverables, open questions, and one real Surface in the appendix. Mark cut the actor-configurations and constraints sections.",{"type":36,"tag":104,"props":308,"children":309},{},[310,312],{"type":41,"value":311},"Three companion research documents, linked from the brief's header:\n",{"type":36,"tag":100,"props":313,"children":314},{},[315,325,335],{"type":36,"tag":104,"props":316,"children":317},{},[318,323],{"type":36,"tag":255,"props":319,"children":321},{"href":320},"\u002Fcycles\u002Fdesign\u002Fc101\u002Fdoc\u002Fexplorations",[322],{"type":41,"value":136},{"type":41,"value":324},": the qmap experiments reviewed from their captures. Category rugs around one subject (c21, c22), nested rugs (c25), dimming (c16) and regrouping in place (c5, c13) already work. P2, P4 and P6 are untouched. c26 flatland was never captured, and the policy-detail mock's map disagrees with its own table.",{"type":36,"tag":104,"props":326,"children":327},{},[328,333],{"type":36,"tag":255,"props":329,"children":331},{"href":330},"\u002Fcycles\u002Fdesign\u002Fc101\u002Fdoc\u002Fpawn-inventory",[332],{"type":41,"value":144},{"type":41,"value":334},": only the Agent and the Endpoint (machine) have finished pixel art. Endpoint, Repo, Model, Tool and Account have no 3D form of their own. The 28 voxel placeholders aren't drawn to the c47 family.",{"type":36,"tag":104,"props":336,"children":337},{},[338,343],{"type":36,"tag":255,"props":339,"children":341},{"href":340},"\u002Fcycles\u002Fdesign\u002Fc101\u002Fdoc\u002Fprecedents",[342],{"type":41,"value":152},{"type":41,"value":344},": 13 external precedents, 8 patterns and 5 anti-patterns. The closest is Kiali: idle configured services are greyed and hidden by default, and undeclared outside hosts go to a catch-all node.",{"type":36,"tag":104,"props":346,"children":347},{},[348,350,356],{"type":41,"value":349},"Brief corrected with these findings: c47 was a brief, not finished art; the UxPixelArt link lives in the ",{"type":36,"tag":78,"props":351,"children":353},{"className":352},[],[354],{"type":41,"value":355},"display",{"type":41,"value":357}," group; \"not allowlisted\" can mean unreviewed or refused.",{"type":36,"tag":104,"props":359,"children":360},{},[361,366],{"type":36,"tag":255,"props":362,"children":364},{"href":363},"\u002Fcycles\u002Fdesign\u002Fc101\u002Fdoc\u002Ffixtures",[365],{"type":41,"value":128},{"type":41,"value":367}," holds team, endpoint and fleet scenes from the seed. It also holds live MCP data showing three server states: configured + used, configured-never-used, and used-but-unconfigured. The third was added to P2.",{"type":36,"tag":104,"props":369,"children":370},{},[371,376,378,384,386,391,393,426,430],{"type":36,"tag":60,"props":372,"children":373},{},[374],{"type":41,"value":375},"problem alternates (2026-09-28):",{"type":41,"value":377}," Mark liked some of P1–P6 more than others and asked for alternates, starting with inventory jobs-to-be-done. ",{"type":36,"tag":255,"props":379,"children":381},{"href":380},"\u002Fcycles\u002Fdesign\u002Fc101\u002Fdoc\u002Fproblems-alternates",[382],{"type":41,"value":383},"problems-alternates.md",{"type":41,"value":385}," has four sets: A inventory (nine cards: take stock, not on the books, watched, shelfware, where it lives, who answers for it, keep it current, what's new, duplicates), B governance, C investigation and D spend\u002Fenablement. It also has a crosswalk to P1–P6 and a suggested six-card inventory composition. Mark: \"I like all of these… let's have an exhaustive set.\" Folded into the brief as ",{"type":36,"tag":60,"props":387,"children":388},{},[389],{"type":41,"value":390},"twenty problems in six families",{"type":41,"value":392},":",{"type":36,"tag":100,"props":394,"children":395},{},[396,401,406,411,416,421],{"type":36,"tag":104,"props":397,"children":398},{},[399],{"type":41,"value":400},"Stock S1–S4",{"type":36,"tag":104,"props":402,"children":403},{},[404],{"type":41,"value":405},"Coverage and hygiene C1–C5",{"type":36,"tag":104,"props":407,"children":408},{},[409],{"type":41,"value":410},"Exposure and risk R1–R5",{"type":36,"tag":104,"props":412,"children":413},{},[414],{"type":41,"value":415},"Decisions D1–D2",{"type":36,"tag":104,"props":417,"children":418},{},[419],{"type":41,"value":420},"Value V1–V3",{"type":36,"tag":104,"props":422,"children":423},{},[424],{"type":41,"value":425},"Telling T1",{"type":36,"tag":427,"props":428,"children":429},"br",{},[],{"type":41,"value":431},"Each is a job statement with its question, what the map shows, data status and persona. P1–P6 and the overlapping alternates were merged (a merged-or-dropped table records how). Three are new: C3 know what's alive (the running flag, last active), R4 see what it could do (read vs write, not served) and T1 show it to someone new. The actor table gained the matching states. Deliverables gained a problem-coverage matrix, and the lens comps now draw from the families.",{"type":36,"tag":104,"props":433,"children":434},{},[435,440,442,448,450,455,457,462],{"type":36,"tag":60,"props":436,"children":437},{},[438],{"type":41,"value":439},"designer brief (2026-09-28):",{"type":41,"value":441}," at Mark's request (a designer should have great leeway in how they frame the problem; we supply constraints, goals, data and stories), ",{"type":36,"tag":255,"props":443,"children":445},{"href":444},"\u002Fcycles\u002Fdesign\u002Fc101\u002Fdoc\u002Fdesigner-brief",[446],{"type":41,"value":447},"designer-brief.md",{"type":41,"value":449}," is a heavily edited version of ",{"type":36,"tag":78,"props":451,"children":453},{"className":452},[],[454],{"type":41,"value":120},{"type":41,"value":456},", about a quarter of its length (1,500 words against 5,400). It keeps the situation, the goal, the twenty questions as the viewer's own questions with a data mark (● 13 · ◐ 4 · ○ 3), the cast with the states that matter, and a short list of what's fixed. Everything else is left open, with the old open questions as starting points only. The first asks are the designer's framing, the cast, and one real scene. Dropped: the solution-shaped \"map shows\" lines, the prescribed deliverables, internal numbering and bookkeeping, and data fields. ",{"type":36,"tag":78,"props":458,"children":460},{"className":459},[],[461],{"type":41,"value":120},{"type":41,"value":463}," stays as the reference and its TLDR count is corrected (13 served, not 14).",{"type":36,"tag":104,"props":465,"children":466},{},[467,472,474,479,481,486,488,494,496,502,504,509,511,517,519,608,611,613,619,621,627,629,635,637,643,645,651],{"type":36,"tag":60,"props":468,"children":469},{},[470],{"type":41,"value":471},"explainer page (2026-09-28):",{"type":41,"value":473}," the designer brief as a design-site page, ",{"type":36,"tag":60,"props":475,"children":476},{},[477],{"type":41,"value":478},"Surface Map",{"type":41,"value":480},", at ",{"type":36,"tag":78,"props":482,"children":484},{"className":483},[],[485],{"type":41,"value":21},{"type":41,"value":487}," (",{"type":36,"tag":78,"props":489,"children":491},{"className":490},[],[492],{"type":41,"value":493},"app\u002Fpages\u002Fcycles\u002Fdesign\u002Fc101\u002Fbrief.vue",{"type":41,"value":495},", content in ",{"type":36,"tag":78,"props":497,"children":499},{"className":498},[],[500],{"type":41,"value":501},"app\u002Fdata\u002Fbrief-c101.ts",{"type":41,"value":503},", kept in step with ",{"type":36,"tag":78,"props":505,"children":507},{"className":506},[],[508],{"type":41,"value":447},{"type":41,"value":510},"). It is a static route, so c99's report-only ",{"type":36,"tag":78,"props":512,"children":514},{"className":513},[],[515],{"type":41,"value":516},"[project]\u002F[id]\u002Freport.vue",{"type":41,"value":518}," stays untouched. It shows:",{"type":36,"tag":100,"props":520,"children":521},{},[522,548,556,566,591],{"type":36,"tag":104,"props":523,"children":524},{},[525,530,532,538,540,546],{"type":36,"tag":60,"props":526,"children":527},{},[528],{"type":41,"value":529},"Surface today:",{"type":41,"value":531}," Priya's real Surface rendered with the live ",{"type":36,"tag":78,"props":533,"children":535},{"className":534},[],[536],{"type":41,"value":537},"DataSurfaceSection",{"type":41,"value":539}," \u002F ",{"type":36,"tag":78,"props":541,"children":543},{"className":542},[],[544],{"type":41,"value":545},"DataSurfacePanel",{"type":41,"value":547},".",{"type":36,"tag":104,"props":549,"children":550},{},[551],{"type":36,"tag":60,"props":552,"children":553},{},[554],{"type":41,"value":555},"The goal.",{"type":36,"tag":104,"props":557,"children":558},{},[559,564],{"type":36,"tag":60,"props":560,"children":561},{},[562],{"type":41,"value":563},"The twenty questions:",{"type":41,"value":565}," six family cards with ● ◐ ○ data marks (13 · 4 · 3).",{"type":36,"tag":104,"props":567,"children":568},{},[569,574,576,582,583,589],{"type":36,"tag":60,"props":570,"children":571},{},[572],{"type":41,"value":573},"The cast:",{"type":41,"value":575}," 13 cards, using the real ",{"type":36,"tag":78,"props":577,"children":579},{"className":578},[],[580],{"type":41,"value":581},"AgentPawn",{"type":41,"value":539},{"type":36,"tag":78,"props":584,"children":586},{"className":585},[],[587],{"type":41,"value":588},"EndpointPawn",{"type":41,"value":590}," where art exists and qdash's glyph or \"?\" where it doesn't, plus the harness pawn's four states.",{"type":36,"tag":104,"props":592,"children":593},{},[594,599,601,607],{"type":36,"tag":60,"props":595,"children":596},{},[597],{"type":41,"value":598},"What's fixed and what's open, what to see first, and material links.",{"type":41,"value":600}," Those include this cycle's companion docs through ",{"type":36,"tag":78,"props":602,"children":604},{"className":603},[],[605],{"type":41,"value":606},"\u002Fcycles\u002Fdesign\u002Fc101\u002Fdoc\u002F…",{"type":41,"value":547},{"type":36,"tag":427,"props":609,"children":610},{},[],{"type":41,"value":612},"The cycle page links to it through a ",{"type":36,"tag":78,"props":614,"children":616},{"className":615},[],[617],{"type":41,"value":618},"**Report:**",{"type":41,"value":620}," header. That header gained an optional ",{"type":36,"tag":78,"props":622,"children":624},{"className":623},[],[625],{"type":41,"value":626}," — note",{"type":41,"value":628}," subtitle (",{"type":36,"tag":78,"props":630,"children":632},{"className":631},[],[633],{"type":41,"value":634},"parseCycleMd.ts",{"type":41,"value":636},", cycles ",{"type":36,"tag":78,"props":638,"children":640},{"className":639},[],[641],{"type":41,"value":642},"[id]\u002Findex.vue",{"type":41,"value":644},"); c99's card keeps its old text. It was verified in the browser pane on the live ",{"type":36,"tag":78,"props":646,"children":648},{"className":647},[],[649],{"type":41,"value":650},":3000",{"type":41,"value":652}," dev server: no console errors, and all doc and component links resolve.",{"type":36,"tag":104,"props":654,"children":655},{},[656,661,663,669,671,677,679,685,687,693,695,700,702,708,710,714,716,722,724,730,732,738],{"type":36,"tag":60,"props":657,"children":658},{},[659],{"type":41,"value":660},"published (2026-09-28):",{"type":41,"value":662}," design ",{"type":36,"tag":78,"props":664,"children":666},{"className":665},[],[667],{"type":41,"value":668},"d1bb0687",{"type":41,"value":670}," (c101 paths only; c100's uncommitted work was left in the tree) was deployed as ",{"type":36,"tag":78,"props":672,"children":674},{"className":673},[],[675],{"type":41,"value":676},"deploy",{"type":41,"value":678}," → ",{"type":36,"tag":78,"props":680,"children":682},{"className":681},[],[683],{"type":41,"value":684},"fbefb99d",{"type":41,"value":686},". It is live: ",{"type":36,"tag":78,"props":688,"children":690},{"className":689},[],[691],{"type":41,"value":692},"_deploy.json",{"type":41,"value":694}," reads ",{"type":36,"tag":78,"props":696,"children":698},{"className":697},[],[699],{"type":41,"value":668},{"type":41,"value":701},", and ",{"type":36,"tag":78,"props":703,"children":705},{"className":704},[],[706],{"type":41,"value":707},"\u002Fcycles\u002Fdesign\u002Fc101\u002Fbrief\u002F",{"type":41,"value":709}," serves ",{"type":36,"tag":60,"props":711,"children":712},{},[713],{"type":41,"value":478},{"type":41,"value":715}," with the Surface panels and pawns. The cycle page carries the report card, and the doc routes render. The designer's URL is ",{"type":36,"tag":78,"props":717,"children":719},{"className":718},[],[720],{"type":41,"value":721},"https:\u002F\u002Fdesign.internal.qpoint.io\u002Fcycles\u002Fdesign\u002Fc101\u002Fbrief",{"type":41,"value":723},", behind Access (Mark set up the designer's access). The first deploy attempt had no ",{"type":36,"tag":78,"props":725,"children":727},{"className":726},[],[728],{"type":41,"value":729},"GITHUB_TOKEN",{"type":41,"value":731}," in a non-interactive shell; ",{"type":36,"tag":78,"props":733,"children":735},{"className":734},[],[736],{"type":41,"value":737},"zsh -ic 'npm run deploy'",{"type":41,"value":739}," works.",{"type":36,"tag":104,"props":741,"children":742},{},[743,748],{"type":36,"tag":60,"props":744,"children":745},{},[746],{"type":41,"value":747},"session close (2026-09-30):",{"type":36,"tag":100,"props":749,"children":750},{},[751,769,785,811,852],{"type":36,"tag":104,"props":752,"children":753},{},[754,759,761,767],{"type":36,"tag":60,"props":755,"children":756},{},[757],{"type":41,"value":758},"Pushed:",{"type":41,"value":760}," ",{"type":36,"tag":78,"props":762,"children":764},{"className":763},[],[765],{"type":41,"value":766},"main",{"type":41,"value":768}," pushed to origin, including this cycle's commits and the other sessions' commits that were queued ahead of it.",{"type":36,"tag":104,"props":770,"children":771},{},[772,777,779,784],{"type":36,"tag":60,"props":773,"children":774},{},[775],{"type":41,"value":776},"Where it stands:",{"type":41,"value":778}," the brief is with the designer, at ",{"type":36,"tag":78,"props":780,"children":782},{"className":781},[],[783],{"type":41,"value":721},{"type":41,"value":547},{"type":36,"tag":104,"props":786,"children":787},{},[788,793],{"type":36,"tag":60,"props":789,"children":790},{},[791],{"type":41,"value":792},"Next:",{"type":36,"tag":100,"props":794,"children":795},{},[796,801],{"type":36,"tag":104,"props":797,"children":798},{},[799],{"type":41,"value":800},"The designer's first round: their framing, the cast, and one real scene (Priya's harness).",{"type":36,"tag":104,"props":802,"children":803},{},[804,806,810],{"type":41,"value":805},"Then pick the next steps together; the engineering sequence waits in ",{"type":36,"tag":255,"props":807,"children":808},{"href":291},[809],{"type":41,"value":91},{"type":41,"value":547},{"type":36,"tag":104,"props":812,"children":813},{},[814,819],{"type":36,"tag":60,"props":815,"children":816},{},[817],{"type":41,"value":818},"Not done:",{"type":36,"tag":100,"props":820,"children":821},{},[822,827],{"type":36,"tag":104,"props":823,"children":824},{},[825],{"type":41,"value":826},"qmap Phase 0. Commit its uncommitted work as-is, per Mark's ruling; it can run any time.",{"type":36,"tag":104,"props":828,"children":829},{},[830,832,837,838,843,845,850],{"type":41,"value":831},"Brief upkeep. ",{"type":36,"tag":78,"props":833,"children":835},{"className":834},[],[836],{"type":41,"value":447},{"type":41,"value":209},{"type":36,"tag":78,"props":839,"children":841},{"className":840},[],[842],{"type":41,"value":501},{"type":41,"value":844}," and ",{"type":36,"tag":78,"props":846,"children":848},{"className":847},[],[849],{"type":41,"value":120},{"type":41,"value":851}," must be edited together when the brief changes.",{"type":36,"tag":104,"props":853,"children":854},{},[855,860,861,867,869,875],{"type":36,"tag":60,"props":856,"children":857},{},[858],{"type":41,"value":859},"Open outside the cycle:",{"type":41,"value":760},{"type":36,"tag":78,"props":862,"children":864},{"className":863},[],[865],{"type":41,"value":866},"design-f39.pages.dev",{"type":41,"value":868}," still served the site without a login on 2026-09-30, while ",{"type":36,"tag":78,"props":870,"children":872},{"className":871},[],[873],{"type":41,"value":874},"design.internal.qpoint.io",{"type":41,"value":876}," is behind Access. Mark is handling the Cloudflare side.",{"type":36,"tag":104,"props":878,"children":879},{},[880,885,887,893,895,951,954,956,962,963,969,971,977],{"type":36,"tag":60,"props":881,"children":882},{},[883],{"type":41,"value":884},"finding sessions (2026-11-02):",{"type":41,"value":886}," Mark asked for a narrower focus: violation findings, and the sessions that generated them, as material for small map \"dioramas\". ",{"type":36,"tag":255,"props":888,"children":890},{"href":889},"\u002Fcycles\u002Fdesign\u002Fc101\u002Fdoc\u002Ffinding-sessions",[891],{"type":41,"value":892},"finding-sessions.md",{"type":41,"value":894}," holds six written sessions in the Meridian world, using real policy names (c114's fixture world plus qdash's seeded controls):",{"type":36,"tag":896,"props":897,"children":898},"ol",{},[899,909,919,927,935,943],{"type":36,"tag":104,"props":900,"children":901},{},[902,907],{"type":36,"tag":60,"props":903,"children":904},{},[905],{"type":41,"value":906},"The Vanta MCP",{"type":41,"value":908}," (c114 Session 1)",{"type":36,"tag":104,"props":910,"children":911},{},[912,917],{"type":36,"tag":60,"props":913,"children":914},{},[915],{"type":41,"value":916},"The SSN in the fixture",{"type":41,"value":918}," (LLM02)",{"type":36,"tag":104,"props":920,"children":921},{},[922],{"type":36,"tag":60,"props":923,"children":924},{},[925],{"type":41,"value":926},"Approvals off",{"type":36,"tag":104,"props":928,"children":929},{},[930],{"type":36,"tag":60,"props":931,"children":932},{},[933],{"type":41,"value":934},"The paste that didn't leave",{"type":36,"tag":104,"props":936,"children":937},{},[938],{"type":36,"tag":60,"props":939,"children":940},{},[941],{"type":41,"value":942},"The poisoned Sentry event",{"type":36,"tag":104,"props":944,"children":945},{},[946],{"type":36,"tag":60,"props":947,"children":948},{},[949],{"type":41,"value":950},"The install we couldn't see",{"type":36,"tag":427,"props":952,"children":953},{},[],{"type":41,"value":955},"Each scenario has beats, a cast and a Data line. Each diorama is two or three stills (before, the finding, the afterlife), not a timeline. This turns around the brief's \"sessions are counted, not drawn\": here the session is the stage. The doc ends with what the dioramas need that the brief lacks: a session rug, risk on lines (payload, gate, wall), an Observed\u002FEnforced pair, step order, unknown as fog, and afterlife states. Prompt and plan are in ",{"type":36,"tag":78,"props":957,"children":959},{"className":958},[],[960],{"type":41,"value":961},"finding-sessions-prompt.md",{"type":41,"value":844},{"type":36,"tag":78,"props":964,"children":966},{"className":965},[],[967],{"type":41,"value":968},"finding-sessions-plan.md",{"type":41,"value":970},". Committed in ",{"type":36,"tag":78,"props":972,"children":974},{"className":973},[],[975],{"type":41,"value":976},"586ac2a13b",{"type":41,"value":547},{"type":36,"tag":104,"props":979,"children":980},{},[981,986,988,993,995,1001,1002,1008,1010,1016,1018,1051,1054,1056,1061,1063,1068],{"type":36,"tag":60,"props":982,"children":983},{},[984],{"type":41,"value":985},"sessions page (2026-11-02):",{"type":41,"value":987}," Mark: \"let's start by creating a page in the design app that lists out all the actors and what happened. we're starting with pencil and paper.\" So the map waits. ",{"type":36,"tag":60,"props":989,"children":990},{},[991],{"type":41,"value":992},"Finding Sessions",{"type":41,"value":994}," at ",{"type":36,"tag":78,"props":996,"children":998},{"className":997},[],[999],{"type":41,"value":1000},"\u002Fcycles\u002Fdesign\u002Fc101\u002Fsessions",{"type":41,"value":487},{"type":36,"tag":78,"props":1003,"children":1005},{"className":1004},[],[1006],{"type":41,"value":1007},"app\u002Fpages\u002Fcycles\u002Fdesign\u002Fc101\u002Fsessions.vue",{"type":41,"value":1009},", data in ",{"type":36,"tag":78,"props":1011,"children":1013},{"className":1012},[],[1014],{"type":41,"value":1015},"app\u002Fdata\u002Ffinding-sessions-c101.ts",{"type":41,"value":1017},") has:",{"type":36,"tag":100,"props":1019,"children":1020},{},[1021,1031,1041],{"type":36,"tag":104,"props":1022,"children":1023},{},[1024,1029],{"type":36,"tag":60,"props":1025,"children":1026},{},[1027],{"type":41,"value":1028},"The cast across all six:",{"type":41,"value":1030}," a matrix of actor kinds × sessions, with ⚑ where a finding's mark sits, plus actor and finding totals (79 actors, 13 findings).",{"type":36,"tag":104,"props":1032,"children":1033},{},[1034,1039],{"type":36,"tag":60,"props":1035,"children":1036},{},[1037],{"type":41,"value":1038},"Per session:",{"type":41,"value":1040}," the logline and facts, a finding badge for each policy (severity, and Observed vs Enforced), the actor list (kind, name, state in this session, and the beat times it appears in), what happened beat by beat (finding beats tinted, with the actors each beat touches as chips), and Afterwards.",{"type":36,"tag":104,"props":1042,"children":1043},{},[1044,1049],{"type":36,"tag":60,"props":1045,"children":1046},{},[1047],{"type":41,"value":1048},"Interaction:",{"type":41,"value":1050}," clicking an actor dims the beats it isn't in.",{"type":36,"tag":427,"props":1052,"children":1053},{},[],{"type":41,"value":1055},"Every beat names its actors, so each actor's story comes from the beats, and the data file is the start of a fixture. Checked on the live ",{"type":36,"tag":78,"props":1057,"children":1059},{"className":1058},[],[1060],{"type":41,"value":650},{"type":41,"value":1062}," server: no console errors, and the actor filter works. Committed in ",{"type":36,"tag":78,"props":1064,"children":1066},{"className":1065},[],[1067],{"type":41,"value":976},{"type":41,"value":547},{"type":36,"tag":104,"props":1070,"children":1071},{},[1072,1077,1079,1084,1086],{"type":36,"tag":60,"props":1073,"children":1074},{},[1075],{"type":41,"value":1076},"plain words (2026-11-02):",{"type":41,"value":1078}," Mark: \"the scenarios are a bit hard to understand, I'm looking to create a simple cast of characters and a ELI5 explanation about what happened \u002F went wrong \u002F etc.\" Then, mid-build: \"I don't mind what we had, I just wanted to supplement with simple, quickly read overview.\" So the page now opens with an ",{"type":36,"tag":60,"props":1080,"children":1081},{},[1082],{"type":41,"value":1083},"Overview",{"type":41,"value":1085},", and everything below it is unchanged.",{"type":36,"tag":100,"props":1087,"children":1088},{},[1089,1106,1116,1126,1157,1173],{"type":36,"tag":104,"props":1090,"children":1091},{},[1092,1097,1099,1104],{"type":36,"tag":60,"props":1093,"children":1094},{},[1095],{"type":41,"value":1096},"The cast of characters:",{"type":41,"value":1098}," twelve plain names. The person, the helper, the laptop, the brain, the brain's company, the badge, the plug-in, the tools, the project, the files, the outside places, and ",{"type":36,"tag":60,"props":1100,"children":1101},{},[1102],{"type":41,"value":1103},"the guard",{"type":41,"value":1105}," (Qpoint itself).",{"type":36,"tag":104,"props":1107,"children":1108},{},[1109,1114],{"type":36,"tag":60,"props":1110,"children":1111},{},[1112],{"type":41,"value":1113},"Six story cards:",{"type":41,"value":1115}," each has a plain title (the stranger on the phone, the secret in the test file, no brakes, the door that stayed shut, the trick note, the invisible helper). Each card lists the four to six characters its story needs, then four short parts: what happened, what went wrong, what the guard did, what happened next. It links down to the full session.",{"type":36,"tag":104,"props":1117,"children":1118},{},[1119,1124],{"type":36,"tag":60,"props":1120,"children":1121},{},[1122],{"type":41,"value":1123},"Below the overview:",{"type":41,"value":1125}," the kinds × sessions table and the six detailed sessions, as before.",{"type":36,"tag":104,"props":1127,"children":1128},{},[1129,1134,1135,1141,1143,1149,1151,1156],{"type":36,"tag":60,"props":1130,"children":1131},{},[1132],{"type":41,"value":1133},"Data:",{"type":41,"value":760},{"type":36,"tag":78,"props":1136,"children":1138},{"className":1137},[],[1139],{"type":41,"value":1140},"characters",{"type":41,"value":1142}," and a per-session ",{"type":36,"tag":78,"props":1144,"children":1146},{"className":1145},[],[1147],{"type":41,"value":1148},"eli5",{"type":41,"value":1150}," added to ",{"type":36,"tag":78,"props":1152,"children":1154},{"className":1153},[],[1155],{"type":41,"value":1015},{"type":41,"value":547},{"type":36,"tag":104,"props":1158,"children":1159},{},[1160,1165,1166,1171],{"type":36,"tag":60,"props":1161,"children":1162},{},[1163],{"type":41,"value":1164},"Markdown:",{"type":41,"value":760},{"type":36,"tag":78,"props":1167,"children":1169},{"className":1168},[],[1170],{"type":41,"value":892},{"type":41,"value":1172}," gained an \"In plain words\" section.",{"type":36,"tag":104,"props":1174,"children":1175},{},[1176,1181,1183,1188],{"type":36,"tag":60,"props":1177,"children":1178},{},[1179],{"type":41,"value":1180},"Checked:",{"type":41,"value":1182}," in the browser, with no console errors. Committed in ",{"type":36,"tag":78,"props":1184,"children":1186},{"className":1185},[],[1187],{"type":41,"value":976},{"type":41,"value":547},{"type":36,"tag":104,"props":1190,"children":1191},{},[1192,1197,1199],{"type":36,"tag":60,"props":1193,"children":1194},{},[1195],{"type":41,"value":1196},"qmap handoff (2026-11-03):",{"type":41,"value":1198}," Mark: \"we're starting to work in the qmap project, save and update history, and make our example sessions available and clear so that project can know which pixel pawns are needed.\"",{"type":36,"tag":100,"props":1200,"children":1201},{},[1202,1224,1253,1270],{"type":36,"tag":104,"props":1203,"children":1204},{},[1205,1215,1217,1222],{"type":36,"tag":60,"props":1206,"children":1207},{},[1208,1214],{"type":36,"tag":255,"props":1209,"children":1211},{"href":1210},"\u002Fcycles\u002Fdesign\u002Fc101\u002Fdoc\u002Fpawns-needed",[1212],{"type":41,"value":1213},"pawns-needed.md",{"type":41,"value":392},{"type":41,"value":1216}," what qmap must draw to stage the six sessions, derived from the data (79 actor instances, 11 kinds, 13 findings). That comes to 11 pawns plus the guard's marks. Each pawn gets its count, its sessions, the states the six need, the art today (from ",{"type":36,"tag":78,"props":1218,"children":1220},{"className":1219},[],[1221],{"type":41,"value":144},{"type":41,"value":1223},") and a priority. First priority: helper (watched \u002F no brakes \u002F unknown), plug-in (configured \u002F stranger \u002F joins after an exception), file (ordinary \u002F sensitive by severity), outside place (approved \u002F weak TLS \u002F blocked at a wall \u002F crossed), and the guard's marks (severity, Observed vs Enforced, afterlife states). Skill and Team aren't needed. The non-pawn treatments the scenes lean on are listed separately.",{"type":36,"tag":104,"props":1225,"children":1226},{},[1227,1237,1239,1244,1246,1252],{"type":36,"tag":60,"props":1228,"children":1229},{},[1230,1236],{"type":36,"tag":78,"props":1231,"children":1233},{"className":1232},[],[1234],{"type":41,"value":1235},"finding-sessions.json",{"type":41,"value":392},{"type":41,"value":1238}," the six sessions as data. Each actor carries its beats and the findings on it. Generated from ",{"type":36,"tag":78,"props":1240,"children":1242},{"className":1241},[],[1243],{"type":41,"value":1015},{"type":41,"value":1245}," by ",{"type":36,"tag":78,"props":1247,"children":1249},{"className":1248},[],[1250],{"type":41,"value":1251},"npx tsx scripts\u002Ffinding-sessions-export.mts",{"type":41,"value":547},{"type":36,"tag":104,"props":1254,"children":1255},{},[1256,1261,1262,1268],{"type":36,"tag":60,"props":1257,"children":1258},{},[1259],{"type":41,"value":1260},"qmap side:",{"type":41,"value":760},{"type":36,"tag":78,"props":1263,"children":1265},{"className":1264},[],[1266],{"type":41,"value":1267},"qmap\u002Fcycles\u002Fc29.look-and-feel\u002Fdesign-c101-finding-sessions.md",{"type":41,"value":1269},", a self-contained note for qmap's newly opened c29 (look and feel, hierarchy, labeling). It has the six stories in one line each, the pawn short list, and paths to the JSON, the pawn list, the page and the brief. Only the new file was added: c29's CYCLE.md and qmap's other uncommitted work (c101's still-open \"qmap Phase 0\") were left alone, because c29's session and dev server are live.",{"type":36,"tag":104,"props":1271,"children":1272},{},[1273,1278],{"type":36,"tag":60,"props":1274,"children":1275},{},[1276],{"type":41,"value":1277},"The sessions page's footer",{"type":41,"value":1279}," links the pawn list and the JSON.",{"type":36,"tag":104,"props":1281,"children":1282},{},[1283,1288,1290,1296],{"type":36,"tag":60,"props":1284,"children":1285},{},[1286],{"type":41,"value":1287},"Side note, \u002Fcycles (2026-11-02):",{"type":41,"value":1289}," Micro is now the ",{"type":36,"tag":78,"props":1291,"children":1293},{"className":1292},[],[1294],{"type":41,"value":1295},"\u002Fcycles",{"type":41,"value":1297}," default layout (see c111).",{"type":36,"tag":104,"props":1299,"children":1300},{},[1301,1306,1308,1313,1315,1321,1323,1329,1331,1336,1338,1344],{"type":36,"tag":60,"props":1302,"children":1303},{},[1304],{"type":41,"value":1305},"saved (2026-11-03):",{"type":41,"value":1307}," the sessions, page, JSON, pawn list and records went in as design ",{"type":36,"tag":78,"props":1309,"children":1311},{"className":1310},[],[1312],{"type":41,"value":976},{"type":41,"value":1314}," (on branch ",{"type":36,"tag":78,"props":1316,"children":1318},{"className":1317},[],[1319],{"type":41,"value":1320},"c123\u002Fowasp-agentic-tour",{"type":41,"value":1322},"), and the handoff note as qmap ",{"type":36,"tag":78,"props":1324,"children":1326},{"className":1325},[],[1327],{"type":41,"value":1328},"29b3de2",{"type":41,"value":1330},". Neither is pushed, and the page isn't deployed, so ",{"type":36,"tag":78,"props":1332,"children":1334},{"className":1333},[],[1335],{"type":41,"value":1000},{"type":41,"value":1337}," is local only for now. While updating ",{"type":36,"tag":78,"props":1339,"children":1341},{"className":1340},[],[1342],{"type":41,"value":1343},"cycles\u002FCYCLES.md",{"type":41,"value":1345},", a script of ours emptied it for about half a minute. It was rebuilt from HEAD plus c128's uncommitted diff.",{"type":36,"tag":104,"props":1347,"children":1348},{},[1349,1354,1356],{"type":36,"tag":60,"props":1350,"children":1351},{},[1352],{"type":41,"value":1353},"qmap takes it up (recorded 2026-11-04):",{"type":41,"value":1355}," qmap's c29 (look and feel) staged the sessions the day the handoff landed. Its own record has the detail; these are the parts that change this cycle's plans:",{"type":36,"tag":100,"props":1357,"children":1358},{},[1359,1376,1399,1409,1434],{"type":36,"tag":104,"props":1360,"children":1361},{},[1362,1367,1369,1374],{"type":36,"tag":60,"props":1363,"children":1364},{},[1365],{"type":41,"value":1366},"The working scene:",{"type":41,"value":1368}," scenario 1, the stranger on the phone, is c29's default scene. It's the only scenario with flows so far. c29 holds a copy of ",{"type":36,"tag":78,"props":1370,"children":1372},{"className":1371},[],[1373],{"type":41,"value":1235},{"type":41,"value":1375}," (identical on 2026-11-04), and design still owns it.",{"type":36,"tag":104,"props":1377,"children":1378},{},[1379,1384,1386,1391,1393,1397],{"type":36,"tag":60,"props":1380,"children":1381},{},[1382],{"type":41,"value":1383},"Fewer pawns in the default view:",{"type":41,"value":1385}," Mark's Zones hierarchy makes ",{"type":36,"tag":60,"props":1387,"children":1388},{},[1389],{"type":41,"value":1390},"endpoint, account and repo rugs, not actors",{"type":41,"value":1392},". The top-level rugs are AI Services, Internet and the Endpoint. A personal account's ⚑ now sits in its rug label. ",{"type":36,"tag":255,"props":1394,"children":1395},{"href":1210},[1396],{"type":41,"value":1213},{"type":41,"value":1398}," carries a note saying so.",{"type":36,"tag":104,"props":1400,"children":1401},{},[1402,1407],{"type":36,"tag":60,"props":1403,"children":1404},{},[1405],{"type":41,"value":1406},"Tools are in question:",{"type":41,"value":1408}," Mark: tools \"as 3d objects with as much space as a harness feels wrong.\" c29 is comparing four treatments (labels on lines, tool belt, expanding stack, Tools box). MCP tools now sit on their server's rug. Nothing is picked yet.",{"type":36,"tag":104,"props":1410,"children":1411},{},[1412,1417,1419,1425,1427,1432],{"type":36,"tag":60,"props":1413,"children":1414},{},[1415],{"type":41,"value":1416},"The harness stand-in:",{"type":41,"value":1418}," the grey, red-hatted helper split from the voxel ",{"type":36,"tag":78,"props":1420,"children":1422},{"className":1421},[],[1423],{"type":41,"value":1424},"Helpers",{"type":41,"value":1426}," pair, not design's ",{"type":36,"tag":78,"props":1428,"children":1430},{"className":1429},[],[1431],{"type":41,"value":581},{"type":41,"value":1433}," art. Every other actor is a grey placeholder sphere while rugs are tuned.",{"type":36,"tag":104,"props":1435,"children":1436},{},[1437,1442],{"type":36,"tag":60,"props":1438,"children":1439},{},[1440],{"type":41,"value":1441},"Still open here:",{"type":41,"value":1443}," the designer's first round isn't on record, and \"qmap Phase 0\" (commit qmap's old uncommitted work) is now tangled with c29's own uncommitted work.",[1445],{"name":1446,"prompt":961,"plan":968},"finding-sessions",[120,91,447,136,892,128,1448,144,1213,152,160,383],"initial-prompt.md",[1450,1452,1454,1455,1457,1459,1461,1463,1465,1466,1468,1470,1472,1474],{"file":120,"title":1451},"Qmap Surface — Design Brief",{"file":91,"title":1453},"Qmap Surface — Build Notes",{"file":447,"title":20},{"file":136,"title":1456},"Qmap Surface: What Each Exploration Teaches the Surface Map",{"file":968,"title":1458},"finding-sessions: plan",{"file":961,"title":1460},"finding-sessions: prompt",{"file":892,"title":1462},"Finding Sessions: six scenarios for the dioramas",{"file":128,"title":1464},"Qmap Surface — Scene Fixtures",{"file":1448,"title":13},{"file":144,"title":1467},"Pawn Inventory — what art exists for the 13 Surface actors",{"file":1213,"title":1469},"Pawns Needed for the Six Finding Sessions",{"file":152,"title":1471},"Surface map: precedents",{"file":160,"title":1473},"Qmap Surface — Prior Work",{"file":383,"title":1475},"Qmap Surface — Alternate Problem Sets",[],[],[],1794599335669]