PERSPECTIVE-AUGMENTATION-PLAN.md
c25. Perspective Augmentation Plan
Goal
Augment the existing c25 inventory-index work with a second layer of planning: one map perspective for each major entity family in the AI ecosystem.
This plan is intentionally additive to the existing PLAN.md.
The shared multi-perspective inventory model is already created. The open question for c25 is not whether these perspectives should exist, but how qmap should express them spatially and operationally.
Execution companion:
The current inventory story remains the anchor:
- agents stay central to the first inventory view
- repositories and files remain the most proven middle layer
- MCP servers, tools, and sub-agents remain the initial capability surfaces
This augmentation asks the next question:
- what should qmap show when we pivot the same ecosystem around
Sessions,Agents,Users,MCP Servers,Models,API Keys,Endpoints,Tools & Skills,Repos / Files, andSecondary Calls?
Existing Foundation
Treat these as already established inputs, not proposed net-new concepts:
- the shared multi-perspective inventory model
- the ten inventory entity families
- the broader inventory and detail-page framing explored in design
- the current in-flight
c25inventory graph, wrapper seam, and synthetic scenario work
This plan is therefore about:
- extending the current qmap implementation to honor those existing perspectives
- deciding what each perspective should emphasize spatially
- identifying where grouping alone is enough and where summaries, compression, or special treatment are required
Augmentation Principle
Do not replace the current c25 work with ten unrelated views.
Instead:
- keep one canonical ecosystem graph
- preserve
QMapInventoryIndexas the shared inventory/index wrapper - add one wrapper component per item type for perspective-specific maps
- add a second c25 experiment page dedicated to item-specific maps
- let each item-specific wrapper decide what deserves spatial treatment, what deserves grouping, and what should stay as compact summary metadata
What To Show Beyond Connections And Groupings
For every perspective, the useful dimensions are broader than "what is it connected to?" and "how should it be grouped?"
Also consider:
- intensity: what is hot versus incidental
- recency: what changed in the selected timeframe
- directionality: who initiated the interaction and where work fanned out
- ownership: who owns the focal entities
- access mode: read, write, invoke, delegate, retry, fail over
- concentration: many-to-one and one-to-many hotspots
- blast radius: what else depends on this entity
- provenance: why this entity is present in the view
- health: failures, retries, latency, stale age
- cost: tokens, spend, expensive concentration points
- compression: which dense areas should collapse into summaries
Wrapper-Per-Item Contract
Each item-specific map should have its own wrapper component, fed by data that is specific to that view rather than by a generic all-entities payload alone.
Each wrapper should define:
focusEntityTypeinputDataShapeprimaryConnectionsdefaultGroupByalternateGroupModesdefaultStatsdefaultFiltersdefaultSelectionExpansionsummaryModules
Recommended first-pass rule:
- use view-specific synthetic data contracts for item maps
- keep semantics on tags and data shape before inventing new meshes
- only add new meshes after the wrapper proves real value
This is specifically a qmap wrapper strategy layered on top of the existing shared inventory model, not a replacement for that model.
Perspective Matrix
Sessions
Useful question:
- what happened in this run, and what did it touch?
Show:
- session -> agent
- session -> user
- session -> models
- session -> MCP servers
- session -> tools and skills
- session -> repos and files
- session -> endpoints
- session -> secondary calls
Useful groupings:
- phase
- status
- team
- environment
- session type
- repo or workspace
Useful extras:
- phase segmentation or replay
- token and cost totals
- read/write/invoke/delegate breakdown
- errors and retries
- touched-entity counts
Agents
Useful question:
- what does this agent do across sessions, repos, tools, and downstream systems?
Show:
- agent -> sessions
- agent -> users
- agent -> models
- agent -> MCP servers
- agent -> tools and skills
- agent -> repos and files
- agent -> endpoints
- agent -> secondary calls
Useful groupings:
- owner team
- business unit
- agent role
- model family
- environment
- primary repo
Useful extras:
- concurrency
- delegation tree
- tool mix
- hot repos and files
- cost and reliability summaries
Users
Useful question:
- how is this user using the AI ecosystem, through which agents, and with what access footprint?
Show:
- user -> sessions
- user -> agents
- user -> repos and files
- user -> tools and skills
- user -> models
- user -> API keys they own or trigger
- user -> endpoints indirectly reached through sessions
Useful groupings:
- team
- role
- business unit
- workspace
- permission tier
- usage frequency
Useful extras:
- top agents used
- collaboration overlap
- sensitive assets touched
- usage spikes
- write footprint
MCP Servers
Useful question:
- which agents and sessions rely on this MCP server, and what work fans out from it?
Show:
- MCP server -> agents
- MCP server -> sessions
- MCP server -> repos and files
- MCP server -> tools and skills
- MCP server -> endpoints
- MCP server -> secondary calls
Useful groupings:
- capability class
- owner team
- provider
- trust tier
- environment
- auth method
Useful extras:
- latency and error rate
- fan-in across teams
- permission scope
- hot operations
- blast radius
Models
Useful question:
- where is this model used, through which agents and endpoints, and at what cost/reliability profile?
Show:
- model -> agents
- model -> sessions
- model -> endpoints
- model -> API keys
- model -> tools and skills
- model -> secondary calls
Useful groupings:
- provider
- model family
- reasoning class
- cost tier
- latency tier
- endpoint
Useful extras:
- token volume
- cost concentration
- fallback chains
- failover and retry patterns
- provider split
API Keys
Useful question:
- where is this credential used, who owns it, and how much blast radius does it carry?
Show:
- API key -> endpoints
- API key -> models
- API key -> MCP servers
- API key -> sessions
- API key -> agents
- API key -> users or service owners
Useful groupings:
- owner
- provider
- environment
- scope
- permission tier
- rotation window
Useful extras:
- age since rotation
- dormant versus hot keys
- anomaly markers
- shared credential risk
- cost attribution
Important note:
- API keys may need lower-visual-weight treatment plus stronger summary sidecars earlier than other perspectives
Endpoints
Useful question:
- which external or internal endpoints are being hit, by whom, and with what performance profile?
Show:
- endpoint -> sessions
- endpoint -> agents
- endpoint -> MCP servers
- endpoint -> models
- endpoint -> API keys
- endpoint -> secondary calls
Useful groupings:
- provider
- region
- environment
- protocol
- auth type
- reliability tier
Useful extras:
- latency heat
- error clusters
- ingress versus egress split
- failover chains
- network-boundary crossings
Tools & Skills
Useful question:
- what capabilities are actually being used, by which agents, and what do those capabilities touch downstream?
Show:
- tool or skill -> agents
- tool or skill -> sessions
- tool or skill -> MCP servers
- tool or skill -> repos and files
- tool or skill -> models
- tool or skill -> secondary calls
Useful groupings:
- capability family
- built-in versus custom
- owner team
- permission class
- invocation frequency
- access mode
Useful extras:
- common tool pairings
- downstream touch breadth
- side-effect intensity
- essential versus dormant capabilities
- delegation initiation markers
Repos / Files
Useful question:
- where is work happening in code and content, and which actors are concentrating on the same assets?
Show:
- repo -> agents
- repo -> sessions
- repo -> users
- repo -> tools and skills
- repo -> MCP servers
- repo -> files
- file -> secondary calls when delegated work lands there
Useful groupings:
- repo
- path or directory
- language
- owner team
- business unit
- access mode
- branch or worktree
Useful extras:
- hotspot files
- co-touch clusters
- read versus write density
- ownership gaps
- critical-path assets
Important note:
- this remains the strongest existing c25 anchor and should likely continue to lead the first implementation wave
Secondary Calls
Useful question:
- what indirect or delegated work was created by primary activity, and how much amplification did it introduce?
Show:
- secondary call -> parent session
- secondary call -> parent agent
- secondary call -> initiating tool or skill
- secondary call -> models
- secondary call -> MCP servers
- secondary call -> repos and files
- secondary call -> endpoints
Useful groupings:
- call type
- depth
- cause
- provider
- status
- retry versus purposeful delegation
Useful extras:
- tree depth
- amplification ratio
- retry loops
- fan-out summaries
- hidden cost
- provenance chain back to the initiating user or agent
Important note:
- this perspective is likely to need collapse and summary behavior early to avoid turning into unreadable fan-out
Shared Grouping Vocabulary
Across perspectives, validate a common set of grouping modes:
- Entity Type
- Focus Entity
- Team
- Business Unit
- Owner
- Environment
- Provider
- Capability Class
- Repository
- Time Bucket
- Status
- Flat
Each perspective should expose only the subset that genuinely helps that entity family.
Shared Non-Spatial Summary Modules
Some signals should likely render as summary panels or strips rather than as more nodes:
- top connected entities
- token and cost totals
- failure counts
- latency bands
- recency distribution
- write concentration
- rotation age
- retry percentage
- delegation-depth histogram
This will matter most for:
- Models
- API Keys
- Secondary Calls
- dense Repos / Files scenarios
Synthetic Data Expansion First Checklist
Recommended execution strategy:
- expand the existing
c25synthetic data before implementing all perspective presets - keep one canonical scenario pack rather than inventing perspective-specific fixture sets too early
- use the richer synthetic graph to pressure-test grouping, summaries, and scene density before adding new visuals
1. Extend The Entity Catalog
Add first-class synthetic entities for the perspectives that are not yet fully covered:
SessionUserModelAPI KeyEndpointSecondary Call
Keep the current entities as they are:
AI AgentRepositoryFileMCP ServerToolSub-Agent
Implementation goal:
- every perspective in this augmentation plan should have at least one real backing entity family in the synthetic scenario graph
2. Extend The Flow Catalog
Add explicit synthetic relationships for the missing perspective stories:
user -> sessionsession -> agentsession -> modelsession -> mcp-serversession -> toolsession -> sub-agentsession -> repositorysession -> endpointagent -> modelmodel -> endpointapi-key -> modelapi-key -> endpointapi-key -> mcp-serversecondary-call -> modelsecondary-call -> endpointsecondary-call -> repositorysecondary-call -> filesecondary-call -> parent sessionsecondary-call -> parent agent
Implementation goal:
- every perspective can expand outward through real graph edges rather than inferred metadata alone
3. Expand Actor Tags
Add enough tags for grouping, filtering, and summaries to feel real:
ownerownerTypeteambusinessUnitenvironmentproviderstatussecurityTiercapabilityClassmodelFamilyendpointRegionendpointKindaccessModesessionIdsessionTyperepocallDepthparentCallId
Implementation goal:
- perspective groupings should be powered by scenario metadata that already exists on the actors
4. Expand Flow Tags
Add enough flow metadata to support perspective-specific scene logic:
protocoloperationdirectionlatencyBucketerrorStateretryCountcostWeighttokenWeighttimeBucketinitiatedBycredentialIdparentSessionIdparentCallId
Implementation goal:
- flows should support hotspot styling, filtering, and summary computation without custom one-off logic per perspective
5. Expand Scenario Stats
Add perspective-facing stats to the synthetic scenario output:
sessionsusersmodelsapiKeysendpointssecondaryCallserrorCountretryCountestimatedCosttokenVolume
Implementation goal:
- the experiment header and future perspective panels can read directly from scenario stats instead of recomputing everything ad hoc
6. Preserve Deterministic Tiers
Keep the current tiering structure:
demoteamspaceenterpriseglobal-enterprise
But ensure each tier now includes enough variety to exercise all entity families.
Minimum coverage recommendation:
demoshould include at least one user, one session, one model, one endpoint, one API key, and one secondary callteamspaceshould include believable cross-team ownership and provider variationenterpriseshould include enough repeated usage to expose hotspots and dependency concentrationglobal-enterpriseshould include enough fan-out to pressure-test compression and summary modules
7. Keep The Current c25 Story Legible
Do not let the synthetic expansion break the existing inventory anchor.
Protect these current c25 strengths:
- agent-centered readability
- repository -> file legibility
- MCP/tool/sub-agent distinction through tags
- deterministic density tuning
Implementation goal:
- the richer data model should broaden
c25, not blur its original inventory story
8. Define Perspective-Readiness Gates
Before implementing each perspective preset, confirm the synthetic data can answer its core question.
Perspective-readiness checklist:
- the focal entity exists as a first-class synthetic actor or explicit summary target
- the primary outbound and inbound relationships exist in the synthetic graph
- there are enough tags to support at least two meaningful grouping modes
- there are enough stats or flow tags to support the default summary strip
- the scenario includes at least one believable hotspot or concentration pattern for that perspective
9. Execute In Two Passes
Pass one:
- expand the synthetic scenario generator and scenario outputs
- verify the experiment still renders cleanly across all four scenario tiers
- verify the existing inventory view remains readable
Pass two:
- add perspective presets on top of the richer scenario graph
- start with the perspectives that can immediately exploit the new entities
10. First Execution Slice
Concrete next slice for c25:
- extend
inventoryScenarios.jswithSession,User,Model,API Key,Endpoint, andSecondary Call - add the missing flow families and tags
- expand
statsandmeta - update the experiment header to expose the new counts
- sanity-check all four tiers for scene density regressions
Completion criteria for this slice:
- current
c25inventory rendering still works - the synthetic data now covers all ten perspective families
- the next step can shift from data modeling to perspective-specific scene behavior
Experiment Structure
Mirror the proven c23 pattern with two c25 experiment entry points:
- page 1: the existing inventory/index experiment
- page 2: an item-specific map lab that loads one wrapper component at a time
The second page should:
- use a select dropdown to switch which item-specific wrapper component is mounted
- feed that mounted component with synthetic data shaped specifically for that view
- keep shared scene controls where possible so wrappers can be compared under similar conditions
Delivery Order
Add the augmentation in waves:
Wave 1
- Agents
- Sessions
- Repos / Files
- MCP Servers
- Tools & Skills
Reason:
- these are closest to the current in-flight c25 graph and can prove the wrapper-per-item strategy fastest
Wave 2
- Models
- Endpoints
- Users
Reason:
- these deepen the inventory into provider, access, and operational dependency views
Wave 3
- API Keys
- Secondary Calls
Reason:
- these are the most likely to force compression, provenance, and special summary treatment
Augmentation Success Criteria
This companion plan is successful when:
- the existing c25 inventory work remains intact
- the already-created shared multi-perspective inventory is respected rather than redefined
- the second c25 experiment page can switch between item-specific wrappers from a dropdown
- each wrapper answers a distinct useful question, not just a recolored version of the same map
- dense perspectives have an explicit compression or summary strategy
- the repo/file-centered inventory story remains legible while the broader ecosystem atlas grows around it