[{"data":1,"prerenderedAt":345},["ShallowReactive",2],{"$f8DueE-c81sWBesk9MEw5Mow1qnbHu1PHiV7L0ZDtFxA":3},{"newThing":4,"project":5,"cycle":8,"sections":21,"threads":339,"otherDocs":340,"images":342,"archiveItems":343,"links":344},null,{"id":6,"label":7,"liveBase":4},"design","Design",{"id":9,"num":10,"dir":11,"name":12,"title":12,"focus":13,"status":14,"statusNote":4,"created":15,"completed":4,"mode":4,"recordless":16,"thumbnail":4,"imageCount":17,"artifactCount":18,"lastActivity":19,"hasPickup":16,"hasInitialPrompt":20},"c33",33,"c33.ai-ecosystem-visualizations","ai-ecosystem-visualizations","Visual experiments expressing the AI agent monitoring dataset for security teams","archived","2026-04-03",false,0,1,"2026-09-11",true,[22,36,87,129,322],{"key":23,"title":24,"empty":16,"ast":25},"why","Why",{"type":26,"children":27},"root",[28],{"type":29,"tag":30,"props":31,"children":32},"element","p",{},[33],{"type":34,"value":35},"text","The AI monitoring dataset Qpoint captures — sessions, users, agents, endpoints, models, API keys, tools, files, secondary network calls — is visually rich but currently expressed only as tables and list views. qflow and qmap offer spatial, animated, relational idioms that could make this data immediately legible to security teams. This cycle explores what those idioms look like in practice, without committing to production-bound designs.",{"key":37,"title":38,"empty":16,"ast":39},"objective","Objective",{"type":26,"children":40},[41,46,82],{"type":29,"tag":30,"props":42,"children":43},{},[44],{"type":34,"value":45},"Build 2–3 visual experiments using the AI session\u002Finventory data as a test fixture. Each experiment asks a distinct security question and answers it spatially:",{"type":29,"tag":47,"props":48,"children":49},"ul",{},[50,62,72],{"type":29,"tag":51,"props":52,"children":53},"li",{},[54,56],{"type":34,"value":55},"Session Graph: ",{"type":29,"tag":57,"props":58,"children":59},"em",{},[60],{"type":34,"value":61},"\"What did this agent touch?\"",{"type":29,"tag":51,"props":63,"children":64},{},[65,67],{"type":34,"value":66},"Infrastructure Map: ",{"type":29,"tag":57,"props":68,"children":69},{},[70],{"type":34,"value":71},"\"Who is connected to what, org-wide?\"",{"type":29,"tag":51,"props":73,"children":74},{},[75,77],{"type":34,"value":76},"(future) Capability Surface: ",{"type":29,"tag":57,"props":78,"children":79},{},[80],{"type":34,"value":81},"\"What tools are exposed across the org?\"",{"type":29,"tag":30,"props":83,"children":84},{},[85],{"type":34,"value":86},"Not constrained to PixiJS — medium chosen per experiment.",{"key":88,"title":89,"empty":16,"ast":90},"scope","Scope",{"type":26,"children":91},[92],{"type":29,"tag":47,"props":93,"children":94},{},[95,107,118],{"type":29,"tag":51,"props":96,"children":97},{},[98,105],{"type":29,"tag":99,"props":100,"children":102},"code",{"className":101},[],[103],{"type":34,"value":104},"qflow\u002Fdev\u002Fexperiments\u002Fc11.ai-ecosystem\u002F",{"type":34,"value":106}," — PixiJS canvas experiments",{"type":29,"tag":51,"props":108,"children":109},{},[110,116],{"type":29,"tag":99,"props":111,"children":113},{"className":112},[],[114],{"type":34,"value":115},"design\u002Fapp\u002Fpages\u002Fai-viz\u002F",{"type":34,"value":117}," — Vue\u002FSVG experiments (if applicable)",{"type":29,"tag":51,"props":119,"children":120},{},[121,127],{"type":29,"tag":99,"props":122,"children":124},{"className":123},[],[125],{"type":34,"value":126},"design\u002Fcycles\u002Fc33.ai-ecosystem-visualizations\u002F",{"type":34,"value":128}," — this cycle",{"key":130,"title":131,"empty":16,"ast":132},"key-changes","Key Changes",{"type":26,"children":133},[134,196,216,230,244,258,288],{"type":29,"tag":47,"props":135,"children":136},{},[137,152,182],{"type":29,"tag":51,"props":138,"children":139},{},[140,150],{"type":29,"tag":141,"props":142,"children":143},"strong",{},[144],{"type":29,"tag":99,"props":145,"children":147},{"className":146},[],[148],{"type":34,"value":149},"design\u002FCLAUDE.md",{"type":34,"value":151}," — Added qmap and qflow to Sister Projects with when-to-use guidance, visual output description, data contracts, and known limitations",{"type":29,"tag":51,"props":153,"children":154},{},[155,164,166,172,174,180],{"type":29,"tag":141,"props":156,"children":157},{},[158],{"type":29,"tag":99,"props":159,"children":161},{"className":160},[],[162],{"type":34,"value":163},"qmap\u002FCLAUDE.md",{"type":34,"value":165}," — Added Visual Output (mesh types\u002Fshapes\u002Fcolors), Data Model (actor, dataflow, groupBy shapes), and Capabilities & Limitations sections; updated Actors glossary to include ",{"type":29,"tag":99,"props":167,"children":169},{"className":168},[],[170],{"type":34,"value":171},"user",{"type":34,"value":173}," and ",{"type":29,"tag":99,"props":175,"children":177},{"className":176},[],[178],{"type":34,"value":179},"agent",{"type":34,"value":181}," types (c14)",{"type":29,"tag":51,"props":183,"children":184},{},[185,194],{"type":29,"tag":141,"props":186,"children":187},{},[188],{"type":29,"tag":99,"props":189,"children":191},{"className":190},[],[192],{"type":34,"value":193},"qflow\u002FCLAUDE.md",{"type":34,"value":195}," — Added Visual Output (2D canvas layout description), Data Model (audit log required\u002Foptional fields, full clientConfig shape), and Capabilities & Limitations sections",{"type":29,"tag":30,"props":197,"children":198},{},[199,201,206,208,214],{"type":34,"value":200},"All experiments live in ",{"type":29,"tag":99,"props":202,"children":204},{"className":203},[],[205],{"type":34,"value":104},{"type":34,"value":207},". Versioned as ",{"type":29,"tag":99,"props":209,"children":211},{"className":210},[],[212],{"type":34,"value":213},"Exp{Name}.r{N}.vue",{"type":34,"value":215}," — non-destructive, all iterations preserved and switchable from the nav shell.",{"type":29,"tag":30,"props":217,"children":218},{},[219,228],{"type":29,"tag":141,"props":220,"children":221},{},[222],{"type":29,"tag":99,"props":223,"children":225},{"className":224},[],[226],{"type":34,"value":227},"ExpSessionGraph.r1.vue",{"type":34,"value":229}," — Zone layout. Linear left-to-right: Actors → Infrastructure → Files → External Hosts. Directed edges with arrowheads, edge weight by access count. Risk signals: sensitive files red, unexpected hosts orange, animated pulse rings.",{"type":29,"tag":30,"props":231,"children":232},{},[233,242],{"type":29,"tag":141,"props":234,"children":235},{},[236],{"type":29,"tag":99,"props":237,"children":239},{"className":238},[],[240],{"type":34,"value":241},"ExpSessionGraph.r2.vue",{"type":34,"value":243}," — Radial layout. Agent at center. Four arc sectors radiate outward: User (top), Infrastructure (right arc: endpoint\u002Fmodel\u002Fkey), Files (left arc), External Hosts (bottom arc). Donut-slice sector backgrounds group like entities. Spoke weight by access count. Files sized by access frequency.",{"type":29,"tag":30,"props":245,"children":246},{},[247,256],{"type":29,"tag":141,"props":248,"children":249},{},[250],{"type":29,"tag":99,"props":251,"children":253},{"className":252},[],[254],{"type":34,"value":255},"ExpInfraMap.r1.vue",{"type":34,"value":257}," — Org-wide infrastructure map. Endpoints (left, grouped by type: dev\u002FCI\u002Fcloud) connect to models (right, hexagons sized by session volume) via animated traveling dots. Edge color = API key used (blue=shared org, green=CI pipeline, amber=unknown). Concentration risk and credential outliers emerge spatially.",{"type":29,"tag":30,"props":259,"children":260},{},[261,270,272,278,280,286],{"type":29,"tag":141,"props":262,"children":263},{},[264],{"type":29,"tag":99,"props":265,"children":267},{"className":266},[],[268],{"type":34,"value":269},"ExpCapSurface.r1.vue",{"type":34,"value":271}," — Capability surface. Four MCP server clusters (Built-in, GitHub, Figma, DB MCP) with tool nodes sized by call volume, colored by error rate. ",{"type":29,"tag":99,"props":273,"children":275},{"className":274},[],[276],{"type":34,"value":277},"query_db",{"type":34,"value":279}," flagged red (50% error rate). ",{"type":29,"tag":99,"props":281,"children":283},{"className":282},[],[284],{"type":34,"value":285},"backup_table",{"type":34,"value":287}," dimmed (never called — latent capability).",{"type":29,"tag":30,"props":289,"children":290},{},[291,296,298,304,306,312,314,320],{"type":29,"tag":141,"props":292,"children":293},{},[294],{"type":34,"value":295},"Data:",{"type":34,"value":297}," ",{"type":29,"tag":99,"props":299,"children":301},{"className":300},[],[302],{"type":34,"value":303},"data\u002Fai-session.js",{"type":34,"value":305}," (single rich session), ",{"type":29,"tag":99,"props":307,"children":309},{"className":308},[],[310],{"type":34,"value":311},"data\u002Forg-wide.js",{"type":34,"value":313}," (6 endpoints, 3 keys, 3 models), ",{"type":29,"tag":99,"props":315,"children":317},{"className":316},[],[318],{"type":34,"value":319},"data\u002Fcapabilities.js",{"type":34,"value":321}," (4 MCP servers, 17 tools).",{"key":323,"title":324,"empty":16,"ast":325},"outcome","Outcome",{"type":26,"children":326},[327],{"type":29,"tag":30,"props":328,"children":329},{},[330,332,337],{"type":34,"value":331},"Produced four PixiJS experiments in ",{"type":29,"tag":99,"props":333,"children":335},{"className":334},[],[336],{"type":34,"value":104},{"type":34,"value":338}," — two session-graph layouts (zone and radial), an org-wide infrastructure map, and a capability surface — each answering a distinct security question spatially. Documented qmap\u002Fqflow visual output, data model, and limitations in all three CLAUDE.md files so the visualization tools became usable from sibling projects. Its threads were carried forward by c41 (signal column flow) and c43 (inventory map); closed in the c69 sweep.",[],[341],"initial-prompt.md",[],[],[],1789151086735]