[{"data":1,"prerenderedAt":664},["ShallowReactive",2],{"$fLHYM5UJRvm-7Sek0rhcXmIWEHBdiT41tfq1fMO8ZCa8":3},{"newThing":4,"project":5,"cycle":9,"sections":23,"threads":578,"otherDocs":579,"documents":585,"images":596,"archiveItems":660,"links":661},"The company-wide AI ecosystem inventory map — agents, repos, files, MCP, tools",{"id":6,"label":7,"liveBase":8},"qmap","Qmap",null,{"id":10,"num":11,"dir":12,"name":13,"title":13,"focus":14,"status":15,"statusNote":8,"created":16,"completed":8,"mode":8,"report":8,"recordless":17,"thumbnail":18,"imageCount":19,"artifactCount":20,"lastActivity":21,"hasPickup":17,"hasInitialPrompt":22},"c25",25,"c25.ai-ecosystem-inventory-map","ai-ecosystem-inventory-map","Build a qmap inventory\u002Findex view of the company-wide AI ecosystem using deterministic synthetic data first","active","2026-04-21",false,"\u002Fcycles\u002Fqmap\u002Fc25-ai-ecosystem-inventory-map.png",15,5,"2026-08-15",true,[24,125,158,210,270,287,315,434,537],{"key":25,"title":26,"empty":17,"ast":27},"why","Why",{"type":28,"children":29},"root",[30,45,54,67,97],{"type":31,"tag":32,"props":33,"children":34},"element","p",{},[35,43],{"type":31,"tag":36,"props":37,"children":39},"code",{"className":38},[],[40],{"type":41,"value":42},"text","c21.ai-session-map",{"type":41,"value":44}," proved that qmap can make one AI agent session legible. What we still do not have is the broader inventory view: a company-wide snapshot that answers:",{"type":31,"tag":32,"props":46,"children":47},{},[48],{"type":31,"tag":49,"props":50,"children":51},"strong",{},[52],{"type":41,"value":53},"Which agents were active in this timeframe, what repositories and files are they touching, and what MCP servers, tools, and sub-agents make up that working ecosystem?",{"type":31,"tag":32,"props":55,"children":56},{},[57,59,65],{"type":41,"value":58},"This is not just a bigger ",{"type":31,"tag":36,"props":60,"children":62},{"className":61},[],[63],{"type":41,"value":64},"c21",{"type":41,"value":66},". The semantic structure is different:",{"type":31,"tag":68,"props":69,"children":70},"ul",{},[71,77,82,87,92],{"type":31,"tag":72,"props":73,"children":74},"li",{},[75],{"type":41,"value":76},"multiple active agents instead of one focal session",{"type":31,"tag":72,"props":78,"children":79},{},[80],{"type":41,"value":81},"repositories as first-class actors between agents and files",{"type":31,"tag":72,"props":83,"children":84},{},[85],{"type":41,"value":86},"files that should read as subordinate to repositories",{"type":31,"tag":72,"props":88,"children":89},{},[90],{"type":41,"value":91},"tools and sub-agents that may share a mesh family while remaining semantically distinct",{"type":31,"tag":72,"props":93,"children":94},{},[95],{"type":41,"value":96},"dense stress cases that are wider and heavier than the current session fixtures",{"type":31,"tag":32,"props":98,"children":99},{},[100,102,108,110,116,118,123],{"type":41,"value":101},"The planning work for this was captured in ",{"type":31,"tag":36,"props":103,"children":105},{"className":104},[],[106],{"type":41,"value":107},"design",{"type":41,"value":109}," as ",{"type":31,"tag":36,"props":111,"children":113},{"className":112},[],[114],{"type":41,"value":115},"c43",{"type":41,"value":117},". This cycle brings the actual implementation work into ",{"type":31,"tag":36,"props":119,"children":121},{"className":120},[],[122],{"type":41,"value":6},{"type":41,"value":124},", along with the deterministic synthetic inventory contract needed to tune layout and wrapper behavior locally.",{"key":126,"title":127,"empty":17,"ast":128},"objective","Objective",{"type":28,"children":129},[130,135],{"type":31,"tag":32,"props":131,"children":132},{},[133],{"type":41,"value":134},"Deliver one runnable qmap experiment plus a narrow public wrapper that:",{"type":31,"tag":68,"props":136,"children":137},{},[138,143,148,153],{"type":31,"tag":72,"props":139,"children":140},{},[141],{"type":41,"value":142},"expresses the inventory\u002Findex semantics using qmap's existing actor families first",{"type":31,"tag":72,"props":144,"children":145},{},[146],{"type":41,"value":147},"owns a deterministic synthetic scenario suite covering demo through enterprise density",{"type":31,"tag":72,"props":149,"children":150},{},[151],{"type":41,"value":152},"validates grouping modes that matter for the inventory shape, especially repository readability",{"type":31,"tag":72,"props":154,"children":155},{},[156],{"type":41,"value":157},"establishes the thinnest stable public seam for later promotion into the design site",{"key":159,"title":160,"empty":17,"ast":161},"scope","Scope",{"type":28,"children":162},[163],{"type":31,"tag":68,"props":164,"children":165},{},[166,177,188,199],{"type":31,"tag":72,"props":167,"children":168},{},[169,175],{"type":31,"tag":36,"props":170,"children":172},{"className":171},[],[173],{"type":41,"value":174},"cycles\u002Fc25.ai-ecosystem-inventory-map\u002F",{"type":41,"value":176}," — cycle docs and planning",{"type":31,"tag":72,"props":178,"children":179},{},[180,186],{"type":31,"tag":36,"props":181,"children":183},{"className":182},[],[184],{"type":41,"value":185},"dev\u002Fexperiments\u002Fc25.ai-ecosystem-inventory-map\u002F",{"type":41,"value":187}," — runnable inventory experiment",{"type":31,"tag":72,"props":189,"children":190},{},[191,193],{"type":41,"value":192},"experiment-local synthetic inventory data harness under ",{"type":31,"tag":36,"props":194,"children":196},{"className":195},[],[197],{"type":41,"value":198},"shared\u002F",{"type":31,"tag":72,"props":200,"children":201},{},[202,208],{"type":31,"tag":36,"props":203,"children":205},{"className":204},[],[206],{"type":41,"value":207},"src\u002Fcomponents\u002FQMapInventoryIndex.vue",{"type":41,"value":209}," — public wrapper with inventory-specific defaults if the seam is clean enough",{"key":211,"title":212,"empty":17,"ast":213},"key-changes","Deliverables",{"type":28,"children":214},[215],{"type":31,"tag":68,"props":216,"children":217},{},[218,227,236,245,253,261],{"type":31,"tag":72,"props":219,"children":220},{},[221],{"type":31,"tag":36,"props":222,"children":224},{"className":223},[],[225],{"type":41,"value":226},"cycles\u002Fc25.ai-ecosystem-inventory-map\u002FCYCLE.md",{"type":31,"tag":72,"props":228,"children":229},{},[230],{"type":31,"tag":36,"props":231,"children":233},{"className":232},[],[234],{"type":41,"value":235},"cycles\u002Fc25.ai-ecosystem-inventory-map\u002FPLAN.md",{"type":31,"tag":72,"props":237,"children":238},{},[239],{"type":31,"tag":36,"props":240,"children":242},{"className":241},[],[243],{"type":41,"value":244},"cycles\u002Fc25.ai-ecosystem-inventory-map\u002Finitial-prompt.md",{"type":31,"tag":72,"props":246,"children":247},{},[248],{"type":31,"tag":36,"props":249,"children":251},{"className":250},[],[252],{"type":41,"value":185},{"type":31,"tag":72,"props":254,"children":255},{},[256],{"type":31,"tag":36,"props":257,"children":259},{"className":258},[],[260],{"type":41,"value":207},{"type":31,"tag":72,"props":262,"children":263},{},[264],{"type":31,"tag":36,"props":265,"children":267},{"className":266},[],[268],{"type":41,"value":269},"src\u002Fcomponents\u002FQMapInventoryIndexDefaults.js",{"key":271,"title":272,"empty":17,"inProgress":22,"ast":273},"outcome","Current Outcome",{"type":28,"children":274},[275],{"type":31,"tag":32,"props":276,"children":277},{},[278,280,285],{"type":41,"value":279},"The repo now has a real ",{"type":31,"tag":36,"props":281,"children":283},{"className":282},[],[284],{"type":41,"value":10},{"type":41,"value":286}," home, an experiment-local inventory scenario harness, and a lightweight public wrapper seam. The next implementation pass should focus on scene judgment: density, defaults, and whether repository\u002Ffile relationships stay readable before adding new visual primitives.",{"key":288,"title":289,"empty":17,"ast":290},"extra","Non-Goals",{"type":28,"children":291},[292],{"type":31,"tag":68,"props":293,"children":294},{},[295,300,305,310],{"type":31,"tag":72,"props":296,"children":297},{},[298],{"type":41,"value":299},"wiring live production inventory data",{"type":31,"tag":72,"props":301,"children":302},{},[303],{"type":41,"value":304},"inventing new repository, tool, or sub-agent meshes before the wrapper is proven",{"type":31,"tag":72,"props":306,"children":307},{},[308],{"type":41,"value":309},"creating a design-site route during this cycle",{"type":31,"tag":72,"props":311,"children":312},{},[313],{"type":41,"value":314},"solving final filtering, summarization, or pagination UX before density pressure is understood",{"key":288,"title":316,"empty":17,"ast":317},"Initial Semantic Contract",{"type":28,"children":318},[319,324,392,397,409,414],{"type":31,"tag":32,"props":320,"children":321},{},[322],{"type":41,"value":323},"Recommended first-pass actor mapping:",{"type":31,"tag":68,"props":325,"children":326},{},[327,338,349,360,371,382],{"type":31,"tag":72,"props":328,"children":329},{},[330,332],{"type":41,"value":331},"AI Agents -> ",{"type":31,"tag":36,"props":333,"children":335},{"className":334},[],[336],{"type":41,"value":337},"agent",{"type":31,"tag":72,"props":339,"children":340},{},[341,343],{"type":41,"value":342},"Repositories -> ",{"type":31,"tag":36,"props":344,"children":346},{"className":345},[],[347],{"type":41,"value":348},"app",{"type":31,"tag":72,"props":350,"children":351},{},[352,354],{"type":41,"value":353},"Files -> ",{"type":31,"tag":36,"props":355,"children":357},{"className":356},[],[358],{"type":41,"value":359},"file",{"type":31,"tag":72,"props":361,"children":362},{},[363,365],{"type":41,"value":364},"MCP Servers -> ",{"type":31,"tag":36,"props":366,"children":368},{"className":367},[],[369],{"type":41,"value":370},"mcp-server",{"type":31,"tag":72,"props":372,"children":373},{},[374,376],{"type":41,"value":375},"Tools -> ",{"type":31,"tag":36,"props":377,"children":379},{"className":378},[],[380],{"type":41,"value":381},"skill",{"type":31,"tag":72,"props":383,"children":384},{},[385,387],{"type":41,"value":386},"Sub-Agents -> ",{"type":31,"tag":36,"props":388,"children":390},{"className":389},[],[391],{"type":41,"value":381},{"type":31,"tag":32,"props":393,"children":394},{},[395],{"type":41,"value":396},"Semantic meaning rides on tags, not new meshes, for the first pass:",{"type":31,"tag":68,"props":398,"children":399},{},[400],{"type":31,"tag":72,"props":401,"children":402},{},[403],{"type":31,"tag":36,"props":404,"children":406},{"className":405},[],[407],{"type":41,"value":408},"entityType: 'AI Agent' | 'Repository' | 'File' | 'MCP Server' | 'Tool' | 'Sub-Agent'",{"type":31,"tag":32,"props":410,"children":411},{},[412],{"type":41,"value":413},"Important consequence:",{"type":31,"tag":68,"props":415,"children":416},{},[417,422],{"type":31,"tag":72,"props":418,"children":419},{},[420],{"type":41,"value":421},"tools and sub-agents can be separated by grouping and labeling before deciding whether qmap needs dedicated mesh families",{"type":31,"tag":72,"props":423,"children":424},{},[425,427,432],{"type":41,"value":426},"repositories can be proven as ",{"type":31,"tag":36,"props":428,"children":430},{"className":429},[],[431],{"type":41,"value":348},{"type":41,"value":433}," actors before introducing a repository-specific visual primitive",{"key":288,"title":435,"empty":17,"ast":436},"Required Grouping Modes",{"type":28,"children":437},[438,443,527],{"type":31,"tag":32,"props":439,"children":440},{},[441],{"type":41,"value":442},"The first experiment must validate at least:",{"type":31,"tag":68,"props":444,"children":445},{},[446,463,479,495,511],{"type":31,"tag":72,"props":447,"children":448},{},[449,455,457],{"type":31,"tag":36,"props":450,"children":452},{"className":451},[],[453],{"type":41,"value":454},"Entity Type",{"type":41,"value":456}," -> ",{"type":31,"tag":36,"props":458,"children":460},{"className":459},[],[461],{"type":41,"value":462},"level1: 'entityType'",{"type":31,"tag":72,"props":464,"children":465},{},[466,472,473],{"type":31,"tag":36,"props":467,"children":469},{"className":468},[],[470],{"type":41,"value":471},"Repository",{"type":41,"value":456},{"type":31,"tag":36,"props":474,"children":476},{"className":475},[],[477],{"type":41,"value":478},"level1: 'entityType', level2: 'repo'",{"type":31,"tag":72,"props":480,"children":481},{},[482,488,489],{"type":31,"tag":36,"props":483,"children":485},{"className":484},[],[486],{"type":41,"value":487},"Team",{"type":41,"value":456},{"type":31,"tag":36,"props":490,"children":492},{"className":491},[],[493],{"type":41,"value":494},"level1: 'team'",{"type":31,"tag":72,"props":496,"children":497},{},[498,504,505],{"type":31,"tag":36,"props":499,"children":501},{"className":500},[],[502],{"type":41,"value":503},"Business Unit",{"type":41,"value":456},{"type":31,"tag":36,"props":506,"children":508},{"className":507},[],[509],{"type":41,"value":510},"level1: 'businessUnit'",{"type":31,"tag":72,"props":512,"children":513},{},[514,520,521],{"type":31,"tag":36,"props":515,"children":517},{"className":516},[],[518],{"type":41,"value":519},"Flat",{"type":41,"value":456},{"type":31,"tag":36,"props":522,"children":524},{"className":523},[],[525],{"type":41,"value":526},"{}",{"type":31,"tag":32,"props":528,"children":529},{},[530,535],{"type":31,"tag":36,"props":531,"children":533},{"className":532},[],[534],{"type":41,"value":471},{"type":41,"value":536}," mode is the critical one because it pressure-tests whether repository -> file structure can read clearly without a bespoke nested renderer.",{"key":288,"title":538,"empty":17,"ast":539},"Success Criteria",{"type":28,"children":540},[541],{"type":31,"tag":68,"props":542,"children":543},{},[544,549,568,573],{"type":31,"tag":72,"props":545,"children":546},{},[547],{"type":41,"value":548},"one qmap experiment convincingly reads as an inventory\u002Findex surface rather than a session replay",{"type":31,"tag":72,"props":550,"children":551},{},[552,554,560,562],{"type":41,"value":553},"repository\u002Ffile layering remains legible in both ",{"type":31,"tag":36,"props":555,"children":557},{"className":556},[],[558],{"type":41,"value":559},"teamspace",{"type":41,"value":561}," and ",{"type":31,"tag":36,"props":563,"children":565},{"className":564},[],[566],{"type":41,"value":567},"enterprise",{"type":31,"tag":72,"props":569,"children":570},{},[571],{"type":41,"value":572},"the synthetic scenario pack supports both screenshots and density tuning",{"type":31,"tag":72,"props":574,"children":575},{},[576],{"type":41,"value":577},"the wrapper API stays narrow enough to promote later without importing experiment-local files",[],[580,581,582,583,584],"ITEM-TYPE-CONNECTION-RESEARCH.md","PERSPECTIVE-AUGMENTATION-PLAN.md","PERSPECTIVE-IMPLEMENTATION-PLAN.md","PLAN.md","initial-prompt.md",[586,588,590,592,594],{"file":580,"title":587},"Item-Type Connection Research",{"file":581,"title":589},"Perspective Augmentation Plan",{"file":582,"title":591},"Perspective Implementation Plan",{"file":583,"title":593},"AI Ecosystem Inventory Map Plan",{"file":584,"title":595},"AI Ecosystem Inventory Map",[597,604,608,612,616,620,624,628,632,637,641,645,649,653,657],{"src":598,"kind":599,"order":600,"caption":601,"capturedAt":602,"route":603},"\u002Fcycles\u002Fqmap\u002Fc25-teamspace-repo.png","hero",82,"Teamspace scenario, repository grouping (default)","2026-08-15T23:43:05.086Z","\u002Fexperiments\u002Fc25.ai-ecosystem-inventory-map\u002F",{"src":605,"kind":599,"order":606,"caption":607,"capturedAt":602,"route":603},"\u002Fcycles\u002Fqmap\u002Fc25-demo.png",83,"Demo scenario — the intimate version",{"src":609,"kind":599,"order":610,"caption":611,"capturedAt":602,"route":603},"\u002Fcycles\u002Fqmap\u002Fc25-enterprise.png",84,"Enterprise scale",{"src":613,"kind":599,"order":614,"caption":615,"capturedAt":602,"route":603},"\u002Fcycles\u002Fqmap\u002Fc25-global.png",85,"Global Enterprise — the stress case",{"src":617,"kind":599,"order":618,"caption":619,"capturedAt":602,"route":603},"\u002Fcycles\u002Fqmap\u002Fc25-teamspace-team.png",86,"Teamspace grouped by team",{"src":621,"kind":599,"order":622,"caption":623,"capturedAt":602,"route":603},"\u002Fcycles\u002Fqmap\u002Fc25-teamspace-flat.png",87,"Teamspace flat — ungrouped field",{"src":625,"kind":599,"order":626,"caption":627,"capturedAt":602,"route":603},"\u002Fcycles\u002Fqmap\u002Fc25-entity-type.png",88,"Grouped by entity type — the taxonomy view",{"src":629,"kind":599,"order":630,"caption":631,"capturedAt":602,"route":603},"\u002Fcycles\u002Fqmap\u002Fc25-dramatic.png",89,"Dramatic lighting on the repository view",{"src":633,"kind":599,"order":634,"caption":635,"capturedAt":602,"route":636},"\u002Fcycles\u002Fqmap\u002Fc25-item-session.png",90,"Item map: a session","\u002Fexperiments\u002Fc25.ai-ecosystem-inventory-map\u002Fitem-maps.html",{"src":638,"kind":599,"order":639,"caption":640,"capturedAt":602,"route":636},"\u002Fcycles\u002Fqmap\u002Fc25-item-agent.png",91,"Item map: an agent",{"src":642,"kind":599,"order":643,"caption":644,"capturedAt":602,"route":636},"\u002Fcycles\u002Fqmap\u002Fc25-item-mcp.png",92,"Item map: an MCP server",{"src":646,"kind":599,"order":647,"caption":648,"capturedAt":602,"route":636},"\u002Fcycles\u002Fqmap\u002Fc25-item-apikey.png",93,"Item map: an API key",{"src":650,"kind":599,"order":651,"caption":652,"capturedAt":602,"route":636},"\u002Fcycles\u002Fqmap\u002Fc25-item-model.png",94,"Item map: a model",{"src":654,"kind":599,"order":655,"caption":656,"capturedAt":602,"route":636},"\u002Fcycles\u002Fqmap\u002Fc25-item-repo.png",95,"Item map: repo \u002F file",{"src":18,"kind":599,"order":658,"capturedAt":659,"route":603},4999,"2026-08-15T16:38:39.514Z",[],[662,663],{"route":603,"href":8},{"route":636,"href":8},1794599378848]