[
  {
    "id": "01-system-context",
    "title": "AI Code Completion Service — System Context",
    "layout": "context",
    "colWidth": 260,
    "system": {
      "label": "Code Completion Service",
      "sub": "Ghost text, per keystroke"
    },
    "groups": [
      {
        "side": "left",
        "title": "People",
        "nodes": [
          {
            "id": "dev",
            "label": "Developer",
            "kind": "actor",
            "rel": "types, accepts",
            "dir": "in"
          },
          {
            "id": "admin",
            "label": "Platform admin",
            "kind": "actor",
            "rel": "policy, seats",
            "dir": "in"
          },
          {
            "id": "mleng",
            "label": "Model engineer",
            "kind": "actor",
            "rel": "promotes models",
            "dir": "in"
          }
        ]
      },
      {
        "side": "top",
        "title": "Editor surfaces (in scope: the contract only)",
        "nodes": [
          {
            "id": "vscode",
            "label": "VS Code plugin",
            "kind": "external",
            "rel": "suggest / cancel",
            "dir": "in"
          },
          {
            "id": "jb",
            "label": "JetBrains plugin",
            "kind": "external",
            "rel": "suggest / cancel",
            "dir": "in"
          },
          {
            "id": "nvim",
            "label": "Neovim plugin",
            "kind": "external",
            "rel": "suggest / cancel",
            "dir": "in"
          }
        ]
      },
      {
        "side": "right",
        "title": "Platform dependencies",
        "nodes": [
          {
            "id": "entra",
            "label": "Microsoft Entra ID",
            "kind": "security",
            "rel": "identity",
            "icon": "azure_AzureActiveDirectory__Identity"
          },
          {
            "id": "scm",
            "label": "Source hosting",
            "kind": "external",
            "rel": "repo read, ACLs"
          },
          {
            "id": "gpu",
            "label": "Azure GPU capacity",
            "kind": "platform",
            "rel": "accelerator pools",
            "icon": "azure_AzureKubernetesService__Containers"
          }
        ]
      },
      {
        "side": "bottom",
        "title": "Downstream and out of scope",
        "nodes": [
          {
            "id": "chat",
            "label": "Editor chat / agents",
            "kind": "external",
            "rel": "separate service",
            "kind2": "error"
          },
          {
            "id": "billing",
            "label": "Billing platform",
            "kind": "external",
            "rel": "usage figures",
            "kind2": "batch"
          },
          {
            "id": "train",
            "label": "Model training",
            "kind": "external",
            "rel": "no data path",
            "kind2": "error"
          }
        ]
      }
    ],
    "note": "Red paths are deliberate non-connections: chat and agents are a separate service, and no tenant code reaches training.",
    "meta": {
      "v": "1.0",
      "owner": "Developer Experience Architecture",
      "date": "2026-10"
    }
  },
  {
    "id": "02-high-level-architecture",
    "title": "High-Level Architecture — Keystroke to Ghost Text",
    "layout": "flow",
    "chain": false,
    "align": "middle",
    "canvas": {
      "width": 1760
    },
    "stages": [
      {
        "title": "Editor",
        "nodes": [
          {
            "id": "plugin",
            "label": "Editor plugin",
            "sub": "debounce, cancel"
          },
          {
            "id": "local",
            "label": "Local redaction",
            "sub": "ignore rules"
          }
        ]
      },
      {
        "title": "Edge",
        "nodes": [
          {
            "id": "afd",
            "label": "Front Door",
            "sub": "anycast, WAF",
            "kind": "integration"
          },
          {
            "id": "gate",
            "label": "Seat & quota gate",
            "sub": "deadline stamped",
            "kind": "integration"
          }
        ]
      },
      {
        "title": "Context",
        "nodes": [
          {
            "id": "ctx",
            "label": "FIM assembly",
            "sub": "token budget"
          },
          {
            "id": "retr",
            "label": "Repo retrieval",
            "sub": "permission scoped"
          }
        ]
      },
      {
        "title": "Admission",
        "nodes": [
          {
            "id": "route",
            "label": "Affinity router",
            "sub": "session to replica"
          },
          {
            "id": "adm",
            "label": "Admission control",
            "sub": "deadline aware",
            "kind": "decision"
          }
        ]
      },
      {
        "title": "Inference",
        "nodes": [
          {
            "id": "pool",
            "label": "GPU pool",
            "sub": "continuous batching"
          },
          {
            "id": "kv",
            "label": "KV prefix cache",
            "sub": "HBM / DRAM / NVMe",
            "kind": "store"
          }
        ]
      },
      {
        "title": "Filter",
        "nodes": [
          {
            "id": "post",
            "label": "Post-process",
            "sub": "trim, dedup"
          },
          {
            "id": "filt",
            "label": "Secret & licence scan",
            "sub": "fail closed",
            "kind": "security"
          }
        ]
      },
      {
        "title": "Measure",
        "nodes": [
          {
            "id": "tel",
            "label": "Telemetry ingest",
            "sub": "accept, retain",
            "kind": "queue"
          },
          {
            "id": "qual",
            "label": "Quality plane",
            "sub": "control arm"
          }
        ]
      }
    ],
    "edges": [
      {
        "from": "plugin",
        "to": "afd",
        "label": "suggest"
      },
      {
        "from": "afd",
        "to": "gate"
      },
      {
        "from": "gate",
        "to": "ctx",
        "label": "deadline"
      },
      {
        "from": "ctx",
        "to": "route",
        "label": "prompt"
      },
      {
        "from": "adm",
        "to": "pool",
        "label": "admit"
      },
      {
        "from": "pool",
        "to": "post",
        "label": "stream"
      },
      {
        "from": "post",
        "to": "filt"
      },
      {
        "from": "filt",
        "to": "tel",
        "label": "events",
        "kind": "async"
      },
      {
        "from": "tel",
        "to": "qual",
        "kind": "async"
      },
      {
        "from": "adm",
        "to": "plugin",
        "label": "empty, never late",
        "kind": "error",
        "route": "gutter"
      }
    ],
    "note": "The spine is the happy path; the suggestion streams back along it. The red return is the normal path under load: a fast, silent nothing.",
    "meta": {
      "v": "1.0",
      "owner": "Developer Experience Architecture",
      "date": "2026-10"
    }
  },
  {
    "id": "03-actors-and-journeys",
    "title": "Actors and the Journeys They Own",
    "layout": "actors",
    "cardWidth": 280,
    "canvas": {
      "width": 1740
    },
    "groups": [
      {
        "title": "The people who feel the latency",
        "kind": "boundary",
        "actors": [
          {
            "id": "dev",
            "label": "Working developer",
            "sub": "1.2 M daily",
            "goal": "Finish the line I was already typing, without stopping to read something wrong.",
            "journeys": [
              {
                "id": "j-ghost",
                "label": "Accept a suggestion",
                "sub": "2.4 B requests/day"
              },
              {
                "label": "Ignore one and keep typing",
                "sub": "55% cancelled"
              }
            ]
          },
          {
            "id": "lead",
            "label": "Engineering lead",
            "sub": "per repo group",
            "goal": "Know whether this is helping my team or quietly putting plausible nonsense in our code.",
            "journeys": [
              {
                "label": "Read acceptance by repo"
              },
              {
                "label": "Exclude a generated path"
              }
            ]
          }
        ]
      },
      {
        "title": "The people who own the estate",
        "kind": "trust",
        "actors": [
          {
            "id": "admin",
            "label": "Platform admin",
            "sub": "40 tenants",
            "goal": "Switch it on for 4,000 engineers without our source code being retained anywhere.",
            "journeys": [
              {
                "id": "j-switch",
                "label": "Switch on a tenant",
                "sub": "zero retention"
              },
              {
                "label": "Revoke a seat",
                "sub": "60 s effective"
              }
            ]
          },
          {
            "id": "sec",
            "label": "Security reviewer",
            "kind": "security",
            "sub": "approves adoption",
            "goal": "See where code goes, what is retained, and what stops a key being suggested back.",
            "journeys": [
              {
                "label": "Trace the data path"
              },
              {
                "label": "Audit filter suppressions"
              }
            ],
            "icon": "fa5_user_shield"
          }
        ]
      },
      {
        "title": "The people who change the model",
        "kind": "cloud",
        "actors": [
          {
            "id": "mleng",
            "label": "Model engineer",
            "sub": "weekly cadence",
            "goal": "Ship a better model and know within a day whether it actually helped anyone.",
            "journeys": [
              {
                "id": "j-rollout",
                "label": "Promote a model",
                "sub": "1% canary, 24 h"
              },
              {
                "label": "Roll one back",
                "sub": "10 min"
              }
            ]
          },
          {
            "id": "sre",
            "label": "On-call SRE",
            "kind": "platform",
            "sub": "follows the sun",
            "goal": "Tell the difference between a fleet that is slow and one that is quietly useless.",
            "journeys": [
              {
                "label": "Drain a GPU node"
              },
              {
                "label": "Shed multi-line traffic"
              }
            ]
          }
        ]
      },
      {
        "title": "Machines in the cast",
        "kind": "plain",
        "actors": [
          {
            "id": "indexer",
            "label": "Workspace indexer",
            "kind": "platform",
            "sub": "per repo",
            "goal": "Keep a retrieval index that reflects the branch the developer is actually on.",
            "journeys": [
              {
                "label": "Reindex a changed repo"
              }
            ]
          },
          {
            "id": "gate",
            "label": "Promotion gate",
            "kind": "decision",
            "sub": "automated",
            "goal": "Refuse a model that loses retention, without waking anybody up.",
            "journeys": [
              {
                "label": "Block or promote"
              }
            ]
          }
        ]
      }
    ],
    "meta": {
      "v": "1.0",
      "owner": "Developer Experience Architecture",
      "date": "2026-10"
    }
  },
  {
    "id": "04-journey-the-ghost-text",
    "title": "Journey — The Developer and the Grey Text",
    "layout": "journey",
    "actor": {
      "label": "Working developer",
      "sub": "mid-file, mid-thought",
      "goal": "Finish this line without breaking the thought I am holding",
      "trigger": "A pause of 60 ms after a keystroke, inside a function body",
      "success": "Tab pressed, and the line still there an hour later"
    },
    "phases": [
      {
        "title": "Type"
      },
      {
        "title": "Pause",
        "sub": "60 ms"
      },
      {
        "title": "Wait",
        "moment": true
      },
      {
        "title": "Read",
        "moment": true
      },
      {
        "title": "Accept"
      },
      {
        "title": "Live with it"
      }
    ],
    "lanes": [
      {
        "title": "What they do",
        "kind": "step",
        "cells": [
          [
            {
              "label": "Types a few chars"
            }
          ],
          [
            {
              "label": "Stops for a moment"
            }
          ],
          [
            {
              "label": "Keeps eyes on cursor"
            }
          ],
          [
            {
              "label": "Scans the grey text"
            }
          ],
          [
            {
              "label": "Presses Tab"
            },
            {
              "label": "Or types over it"
            }
          ],
          [
            {
              "label": "Edits or deletes it"
            }
          ]
        ]
      },
      {
        "title": "What the platform does",
        "kind": "system",
        "cells": [
          [
            {
              "label": "Nothing yet"
            }
          ],
          [
            {
              "label": "Assembles FIM prompt"
            },
            {
              "label": "Stamps the deadline"
            }
          ],
          [
            {
              "label": "Reuses warm prefix"
            },
            {
              "label": "Streams first tokens"
            }
          ],
          [
            {
              "label": "Trims and scans"
            }
          ],
          [
            {
              "label": "Logs accept event"
            }
          ],
          [
            {
              "label": "Measures retention"
            }
          ]
        ]
      },
      {
        "title": "How it feels",
        "kind": "emotion",
        "levels": [
          "Invisible help",
          "Neutral",
          "In the way"
        ],
        "points": [
          1,
          1,
          0,
          1,
          2,
          1
        ]
      },
      {
        "title": "Where it hurts",
        "kind": "pain",
        "cells": [
          [],
          [],
          [
            {
              "label": "Cold cache: +180 ms"
            },
            {
              "label": "Reads as a stall"
            }
          ],
          [
            {
              "label": "Plausible and wrong"
            }
          ],
          [],
          [
            {
              "label": "Deleted at review"
            }
          ]
        ]
      },
      {
        "title": "What answers it",
        "kind": "gain",
        "cells": [
          [],
          [
            {
              "label": "60 ms debounce"
            }
          ],
          [
            {
              "label": "Session affinity"
            },
            {
              "label": "Empty, never late"
            }
          ],
          [
            {
              "label": "Degeneracy check"
            }
          ],
          [
            {
              "label": "Accept telemetry"
            }
          ],
          [
            {
              "label": "Retention as metric"
            }
          ]
        ]
      }
    ],
    "chain": true,
    "note": "The trough is the wait, and it is the whole architecture: a cold prefix reads as a broken editor, not as a slower model.",
    "meta": {
      "v": "1.0",
      "owner": "Developer Experience Architecture",
      "date": "2026-10"
    }
  },
  {
    "id": "05-journey-promoting-a-model",
    "title": "Journey — Promoting a Model Nobody Asked For",
    "layout": "journey",
    "actor": {
      "label": "Model engineer",
      "sub": "weekly cadence",
      "goal": "Prove the new model helps before 1.2 M developers meet it",
      "trigger": "A candidate that wins on the offline corpus by 4%",
      "success": "Promoted on retention, or blocked with a number attached"
    },
    "phases": [
      {
        "title": "Register",
        "sub": "content addressed"
      },
      {
        "title": "Evaluate",
        "sub": "held-out corpus"
      },
      {
        "title": "Canary",
        "sub": "1% / 24 h",
        "moment": true
      },
      {
        "title": "Judge",
        "moment": true
      },
      {
        "title": "Ramp"
      },
      {
        "title": "Live with it"
      }
    ],
    "lanes": [
      {
        "title": "What they do",
        "kind": "step",
        "cells": [
          [
            {
              "label": "Pushes a digest"
            }
          ],
          [
            {
              "label": "Runs offline suite"
            }
          ],
          [
            {
              "label": "Opens 1% split"
            }
          ],
          [
            {
              "label": "Reads the arms"
            }
          ],
          [
            {
              "label": "Ramps to 100%"
            }
          ],
          [
            {
              "label": "Watches retention"
            }
          ]
        ]
      },
      {
        "title": "What the platform does",
        "kind": "system",
        "cells": [
          [
            {
              "label": "Signs the artifact"
            }
          ],
          [
            {
              "label": "Refuses unevaluated"
            }
          ],
          [
            {
              "label": "Stable assignment"
            },
            {
              "label": "Separate GPU pool"
            }
          ],
          [
            {
              "label": "Computes effect size"
            }
          ],
          [
            {
              "label": "Warms prefix caches"
            }
          ],
          [
            {
              "label": "Holds the control arm"
            }
          ]
        ]
      },
      {
        "title": "How it feels",
        "kind": "emotion",
        "levels": [
          "Confident",
          "Uneasy",
          "Blind"
        ],
        "points": [
          2,
          1,
          1,
          0,
          1,
          2
        ]
      },
      {
        "title": "Where it hurts",
        "kind": "pain",
        "cells": [
          [],
          [
            {
              "label": "Offline score misleads"
            }
          ],
          [
            {
              "label": "Cold caches skew p95"
            }
          ],
          [
            {
              "label": "Acceptance up, retention down"
            }
          ],
          [
            {
              "label": "Rollout dismisses caches"
            }
          ],
          []
        ]
      },
      {
        "title": "What answers it",
        "kind": "gain",
        "cells": [
          [
            {
              "label": "Immutable registry"
            }
          ],
          [
            {
              "label": "Eval as a gate, not a verdict"
            }
          ],
          [
            {
              "label": "Warm-up before measuring"
            }
          ],
          [
            {
              "label": "Retention is canonical"
            }
          ],
          [
            {
              "label": "Staged ramp by region"
            }
          ],
          [
            {
              "label": "Auto-rollback in 10 min"
            }
          ]
        ]
      }
    ],
    "chain": true,
    "note": "The trough is Judge: acceptance rises when a model is more confident, and retention is the only signal that notices the difference.",
    "meta": {
      "v": "1.0",
      "owner": "Developer Experience Architecture",
      "date": "2026-10"
    }
  },
  {
    "id": "06-journey-switching-on-a-tenant",
    "title": "Journey — Switching It On For 4,000 Engineers",
    "layout": "journey",
    "actor": {
      "label": "Platform admin",
      "sub": "with a security reviewer behind them",
      "goal": "Give the whole estate completion without giving away the estate's code",
      "trigger": "A budget approval and a security review that has not started well",
      "success": "Seats live, zero retention proved, and a usage figure they trust"
    },
    "phases": [
      {
        "title": "Ask",
        "sub": "security review"
      },
      {
        "title": "Configure",
        "sub": "policy + geo"
      },
      {
        "title": "Pilot",
        "sub": "one repo group",
        "moment": true
      },
      {
        "title": "Roll out"
      },
      {
        "title": "Account for it",
        "moment": true
      },
      {
        "title": "Revoke"
      }
    ],
    "lanes": [
      {
        "title": "What they do",
        "kind": "step",
        "cells": [
          [
            {
              "label": "Asks where code goes"
            }
          ],
          [
            {
              "label": "Sets zero retention"
            },
            {
              "label": "Pins the geography"
            }
          ],
          [
            {
              "label": "Enables 40 engineers"
            }
          ],
          [
            {
              "label": "Assigns 4,000 seats"
            }
          ],
          [
            {
              "label": "Reads cost per accept"
            }
          ],
          [
            {
              "label": "Revokes a leaver"
            }
          ]
        ]
      },
      {
        "title": "What the platform does",
        "kind": "system",
        "cells": [
          [
            {
              "label": "Shows the data path"
            }
          ],
          [
            {
              "label": "Refuses cross-region spill"
            }
          ],
          [
            {
              "label": "Scoped retrieval index"
            }
          ],
          [
            {
              "label": "Caches policy, fails strict"
            }
          ],
          [
            {
              "label": "Attributes GPU seconds"
            }
          ],
          [
            {
              "label": "Effective in 60 s"
            }
          ]
        ]
      },
      {
        "title": "How it feels",
        "kind": "emotion",
        "levels": [
          "Trusting",
          "Wary",
          "Blocked"
        ],
        "points": [
          0,
          1,
          1,
          2,
          0,
          2
        ]
      },
      {
        "title": "Where it hurts",
        "kind": "pain",
        "cells": [
          [
            {
              "label": "\"Disabled\" is not absent"
            }
          ],
          [
            {
              "label": "Policy conflicts silently"
            }
          ],
          [
            {
              "label": "Index leaks private repo"
            }
          ],
          [],
          [
            {
              "label": "Bill is per request"
            }
          ],
          [
            {
              "label": "Credential still valid"
            }
          ]
        ]
      },
      {
        "title": "What answers it",
        "kind": "gain",
        "cells": [
          [
            {
              "label": "Privacy by absence"
            }
          ],
          [
            {
              "label": "Declared precedence"
            }
          ],
          [
            {
              "label": "ACL at request time"
            }
          ],
          [
            {
              "label": "Restrictive on cold cache"
            }
          ],
          [
            {
              "label": "Cost per accepted"
            }
          ],
          [
            {
              "label": "Short-lived tokens"
            }
          ]
        ]
      }
    ],
    "chain": true,
    "note": "The first trough is the review, and it is answered structurally: the retaining path does not exist rather than being switched off.",
    "meta": {
      "v": "1.0",
      "owner": "Developer Experience Architecture",
      "date": "2026-10"
    }
  },
  {
    "id": "07-layered-architecture",
    "title": "Layered Architecture",
    "layout": "bands",
    "layerHeaderWidth": 160,
    "canvas": {
      "width": 1700
    },
    "bands": [
      {
        "name": "Editor clients",
        "nodes": [
          {
            "id": "b-vs",
            "label": "VS Code",
            "kind": "external",
            "sub": "reference client"
          },
          {
            "id": "b-jb",
            "label": "JetBrains",
            "kind": "external"
          },
          {
            "id": "b-nv",
            "label": "Neovim",
            "kind": "external"
          },
          {
            "id": "b-deb",
            "label": "Debounce & cancel"
          },
          {
            "id": "b-red",
            "label": "Local redaction"
          }
        ]
      },
      {
        "name": "Edge",
        "nodes": [
          {
            "id": "b-afd",
            "label": "Front Door",
            "kind": "integration",
            "sub": "anycast + WAF"
          },
          {
            "id": "b-seat",
            "label": "Seat check",
            "kind": "security"
          },
          {
            "id": "b-quota",
            "label": "Tenant quota",
            "kind": "integration"
          },
          {
            "id": "b-geo",
            "label": "Geography pin",
            "kind": "integration"
          },
          {
            "id": "b-ver",
            "label": "Client version gate",
            "kind": "decision"
          }
        ]
      },
      {
        "name": "Context",
        "nodes": [
          {
            "id": "b-fim",
            "label": "FIM assembly"
          },
          {
            "id": "b-tabs",
            "label": "Open-tab sources"
          },
          {
            "id": "b-rag",
            "label": "Repo retrieval"
          },
          {
            "id": "b-budget",
            "label": "Token budget"
          },
          {
            "id": "b-stable",
            "label": "Stable-prefix order"
          }
        ]
      },
      {
        "name": "Admission",
        "nodes": [
          {
            "id": "b-pick",
            "label": "Model choice"
          },
          {
            "id": "b-aff",
            "label": "Affinity lookup",
            "kind": "store",
            "sub": "Redis"
          },
          {
            "id": "b-adm",
            "label": "Deadline admission",
            "kind": "decision"
          },
          {
            "id": "b-shed",
            "label": "Ordered shedding"
          }
        ]
      },
      {
        "name": "Inference",
        "nodes": [
          {
            "id": "b-batch",
            "label": "Continuous batching",
            "sub": "AKS GPU pools"
          },
          {
            "id": "b-hbm",
            "label": "KV cache — HBM",
            "kind": "store"
          },
          {
            "id": "b-dram",
            "label": "KV cache — DRAM",
            "kind": "store"
          },
          {
            "id": "b-nvme",
            "label": "KV cache — NVMe",
            "kind": "store"
          },
          {
            "id": "b-spec",
            "label": "Speculative decode"
          }
        ]
      },
      {
        "name": "Post-process",
        "nodes": [
          {
            "id": "b-trim",
            "label": "Stop-sequence trim"
          },
          {
            "id": "b-dedup",
            "label": "Suffix dedup"
          },
          {
            "id": "b-sec",
            "label": "Secret scan",
            "kind": "security",
            "sub": "fail closed"
          },
          {
            "id": "b-lic",
            "label": "Public-code match",
            "kind": "security"
          },
          {
            "id": "b-deg",
            "label": "Degeneracy check",
            "kind": "decision"
          }
        ]
      },
      {
        "name": "Measurement",
        "nodes": [
          {
            "id": "b-eh",
            "label": "Event Hubs",
            "kind": "queue"
          },
          {
            "id": "b-scrub",
            "label": "Privacy scrub",
            "kind": "security"
          },
          {
            "id": "b-adx",
            "label": "Data Explorer",
            "kind": "store"
          },
          {
            "id": "b-exp",
            "label": "Experiment arms"
          },
          {
            "id": "b-gate2",
            "label": "Promotion gate",
            "kind": "decision"
          }
        ]
      },
      {
        "name": "Control plane",
        "nodes": [
          {
            "id": "b-sql",
            "label": "Policy & seats",
            "kind": "store",
            "sub": "Azure SQL"
          },
          {
            "id": "b-reg",
            "label": "Model registry",
            "kind": "store",
            "sub": "ACR, by digest"
          },
          {
            "id": "b-flag",
            "label": "Flags & kill switch",
            "kind": "platform"
          },
          {
            "id": "b-kv2",
            "label": "Key Vault",
            "kind": "security"
          },
          {
            "id": "b-mon",
            "label": "Azure Monitor",
            "kind": "platform"
          }
        ]
      }
    ],
    "edges": [
      {
        "from": "b-deb",
        "to": "b-afd",
        "label": "suggest",
        "route": "tb"
      },
      {
        "from": "b-ver",
        "to": "b-fim",
        "label": "deadline",
        "route": "tb"
      },
      {
        "from": "b-stable",
        "to": "b-pick",
        "route": "tb"
      },
      {
        "from": "b-adm",
        "to": "b-batch",
        "label": "admit",
        "route": "tb"
      },
      {
        "from": "b-spec",
        "to": "b-trim",
        "label": "stream",
        "route": "tb"
      },
      {
        "from": "b-deg",
        "to": "b-eh",
        "label": "events",
        "kind": "async",
        "route": "tb"
      },
      {
        "from": "b-gate2",
        "to": "b-reg",
        "label": "promote",
        "kind": "async",
        "route": "gutter"
      },
      {
        "from": "b-sql",
        "to": "b-seat",
        "label": "cached policy",
        "kind": "async",
        "route": "gutter"
      }
    ],
    "note": "The control plane spans every layer and sits on none of them: it is read through a cache and never on the critical path.",
    "meta": {
      "v": "1.0",
      "owner": "Developer Experience Architecture",
      "date": "2026-10"
    }
  },
  {
    "id": "08-platform-components",
    "title": "Platform Components (C4 L2)",
    "layout": "nested",
    "canvas": {
      "width": 1760
    },
    "boxes": [
      {
        "title": "Developer machine",
        "kind": "onprem",
        "dir": "row",
        "children": [
          {
            "title": "Editor process",
            "kind": "boundary",
            "nodes": [
              {
                "id": "c-plug",
                "label": "Completion plugin",
                "sub": "debounce, cancel"
              },
              {
                "id": "c-gather",
                "label": "Context gatherer",
                "sub": "tabs, recent edits"
              },
              {
                "id": "c-red",
                "label": "Redactor",
                "sub": "ignore rules",
                "kind": "security"
              }
            ]
          }
        ]
      },
      {
        "title": "Azure — serving region",
        "kind": "cloud",
        "dir": "col",
        "children": [
          {
            "title": "Edge (Front Door + API gateway)",
            "kind": "boundary",
            "nodes": [
              {
                "id": "c-afd",
                "label": "Front Door",
                "sub": "anycast, WAF",
                "kind": "integration"
              },
              {
                "id": "c-authz",
                "label": "Seat authoriser",
                "sub": "Entra token",
                "kind": "security"
              },
              {
                "id": "c-quota",
                "label": "Quota shaper",
                "kind": "integration"
              },
              {
                "id": "c-dl",
                "label": "Deadline stamper",
                "kind": "integration"
              }
            ]
          },
          {
            "title": "Request plane (Container Apps, stateless)",
            "kind": "boundary",
            "nodes": [
              {
                "id": "c-fim",
                "label": "Prompt assembler",
                "sub": "FIM, budgeted"
              },
              {
                "id": "c-ret",
                "label": "Retrieval service",
                "sub": "BM25 + symbols"
              },
              {
                "id": "c-router",
                "label": "Affinity router"
              },
              {
                "id": "c-post",
                "label": "Post-processor",
                "sub": "trim, dedup"
              },
              {
                "id": "c-filter",
                "label": "Safety filters",
                "sub": "secret, licence",
                "kind": "security"
              }
            ]
          },
          {
            "title": "Inference plane (AKS GPU node pools, session affine)",
            "kind": "boundary",
            "nodes": [
              {
                "id": "c-sched",
                "label": "Batch scheduler",
                "sub": "continuous batching"
              },
              {
                "id": "c-small",
                "label": "Fast model server",
                "sub": "single-line"
              },
              {
                "id": "c-large",
                "label": "Multi-line server",
                "sub": "escalated"
              },
              {
                "id": "c-cache",
                "label": "KV cache manager",
                "sub": "3 tiers",
                "kind": "store"
              }
            ]
          },
          {
            "title": "Measurement plane",
            "kind": "boundary",
            "nodes": [
              {
                "id": "c-eh",
                "label": "Event Hubs",
                "sub": "two streams",
                "kind": "queue"
              },
              {
                "id": "c-scrub",
                "label": "Scrubber",
                "kind": "security"
              },
              {
                "id": "c-adx",
                "label": "Data Explorer",
                "sub": "aggregates",
                "kind": "store"
              },
              {
                "id": "c-qual",
                "label": "Quality service",
                "sub": "arms, gating"
              }
            ]
          },
          {
            "title": "Control plane (regional read, global write)",
            "kind": "trust",
            "nodes": [
              {
                "id": "c-sql",
                "label": "Policy & seats",
                "sub": "Azure SQL",
                "kind": "store"
              },
              {
                "id": "c-redis",
                "label": "Policy & affinity cache",
                "sub": "Redis",
                "kind": "store"
              },
              {
                "id": "c-acr",
                "label": "Model registry",
                "sub": "ACR, by digest",
                "kind": "store"
              },
              {
                "id": "c-flag",
                "label": "Flags & kill switch",
                "kind": "platform"
              },
              {
                "id": "c-akv",
                "label": "Key Vault / HSM",
                "kind": "security"
              }
            ]
          }
        ]
      }
    ],
    "outside": [
      {
        "id": "c-entra",
        "label": "Microsoft Entra ID",
        "kind": "security",
        "icon": "azure_AzureActiveDirectory__Identity"
      },
      {
        "id": "c-scm",
        "label": "Source hosting",
        "kind": "external",
        "sub": "repo + ACLs"
      },
      {
        "id": "c-mon",
        "label": "Azure Monitor",
        "kind": "platform"
      },
      {
        "id": "c-blob",
        "label": "Blob Storage",
        "kind": "store",
        "sub": "artifacts, raw"
      }
    ],
    "edges": [
      {
        "from": "c-plug",
        "to": "c-afd",
        "label": "suggest"
      },
      {
        "from": "c-dl",
        "to": "c-fim",
        "label": "deadline"
      },
      {
        "from": "c-fim",
        "to": "c-router"
      },
      {
        "from": "c-ret",
        "to": "c-scm",
        "label": "ACL check",
        "kind": "sync"
      },
      {
        "from": "c-router",
        "to": "c-sched",
        "label": "session key"
      },
      {
        "from": "c-filter",
        "to": "c-eh",
        "label": "events",
        "kind": "async"
      },
      {
        "from": "c-qual",
        "to": "c-acr",
        "label": "promote",
        "kind": "async"
      },
      {
        "from": "c-acr",
        "to": "c-blob",
        "label": "weights",
        "kind": "batch"
      }
    ],
    "note": "Omitted for legibility: the per-tier Monitor exporters, private endpoints, the Entra token path and the affinity-map write, all drawn on views 09, 11, 15, 17, 18 and 20.",
    "meta": {
      "v": "1.0",
      "owner": "Developer Experience Architecture",
      "date": "2026-10"
    }
  },
  {
    "id": "09-integration-surface",
    "title": "Integration Surface",
    "layout": "hub",
    "canvas": {
      "width": 1700
    },
    "left": {
      "title": "Callers",
      "nodes": [
        {
          "id": "i-vs",
          "label": "VS Code plugin",
          "kind": "external",
          "sub": "reference client"
        },
        {
          "id": "i-jb",
          "label": "JetBrains plugin",
          "kind": "external"
        },
        {
          "id": "i-nv",
          "label": "Neovim plugin",
          "kind": "external"
        },
        {
          "id": "i-adminui",
          "label": "Admin console",
          "kind": "external"
        },
        {
          "id": "i-ci",
          "label": "Model promotion CI",
          "kind": "platform"
        }
      ]
    },
    "centre": {
      "title": "Code Completion Service",
      "nodes": [
        {
          "id": "i-sug",
          "label": "Suggestion API",
          "sub": "streaming, cancellable",
          "kind": "integration",
          "icon": "azure_AzureAPIManagement__Web"
        },
        {
          "id": "i-tel",
          "label": "Telemetry API",
          "sub": "accept / retain",
          "kind": "integration",
          "icon": "azure_AzureEventHub__Analytics"
        },
        {
          "id": "i-adm",
          "label": "Admin API",
          "sub": "policy, seats, usage",
          "kind": "integration",
          "icon": "azure_AzureAPIManagement__Web"
        },
        {
          "id": "i-mdl",
          "label": "Model API",
          "sub": "register, split, roll back",
          "kind": "integration",
          "icon": "azure_AzureAPIManagement__Web"
        }
      ]
    },
    "right": {
      "title": "Dependencies",
      "nodes": [
        {
          "id": "i-entra",
          "label": "Microsoft Entra ID",
          "sub": "identity",
          "kind": "security",
          "rel": "",
          "dir": "out",
          "icon": "azure_AzureActiveDirectory__Identity"
        },
        {
          "id": "i-scm",
          "label": "Source hosting",
          "sub": "repo + ACL",
          "kind": "external",
          "rel": "",
          "dir": "out"
        },
        {
          "id": "i-gpu",
          "label": "AKS GPU pools",
          "sub": "inference",
          "kind": "platform",
          "rel": "",
          "dir": "out",
          "icon": "azure_AzureKubernetesService__Containers"
        },
        {
          "id": "i-lic",
          "label": "Public-code corpus",
          "sub": "match index",
          "kind": "external",
          "rel": "",
          "dir": "out",
          "kind2": "batch"
        }
      ]
    },
    "note": "Four APIs, one of which is on a 300 ms budget; the other three are control-plane calls and may be slow. Monitor and the nightly usage export are drawn on views 01 and 18.",
    "meta": {
      "v": "1.0",
      "owner": "Developer Experience Architecture",
      "date": "2026-10"
    }
  },
  {
    "id": "10-request-path-data-flow",
    "title": "Data Flow — What Leaves the Machine and What Comes Back",
    "layout": "flow",
    "align": "top",
    "canvas": {
      "width": 1780
    },
    "stages": [
      {
        "title": "On the machine",
        "nodes": [
          {
            "id": "d-buf",
            "label": "Open buffers",
            "kind": "store",
            "sub": "never uploaded whole"
          },
          {
            "id": "d-pick",
            "label": "Source selection"
          },
          {
            "id": "d-redact",
            "label": "Redaction",
            "kind": "security",
            "sub": "secrets, ignores"
          }
        ]
      },
      {
        "title": "In flight",
        "nodes": [
          {
            "id": "d-prompt",
            "label": "FIM prompt",
            "sub": "≤ 8 k tokens"
          },
          {
            "id": "d-hdr",
            "label": "Request envelope",
            "sub": "tenant, seat, deadline"
          }
        ]
      },
      {
        "title": "Held in memory only",
        "nodes": [
          {
            "id": "d-ctx",
            "label": "Assembled context"
          },
          {
            "id": "d-kv",
            "label": "KV prefix state",
            "kind": "store",
            "sub": "recomputable"
          },
          {
            "id": "d-out",
            "label": "Generated tokens"
          }
        ]
      },
      {
        "title": "Split at the boundary",
        "nodes": [
          {
            "id": "d-split",
            "label": "Stream split",
            "kind": "decision",
            "sub": "code vs not"
          }
        ]
      },
      {
        "title": "Persisted — no code",
        "nodes": [
          {
            "id": "d-ev",
            "label": "Interaction events",
            "kind": "queue",
            "sub": "ids, latency, verdicts"
          },
          {
            "id": "d-agg",
            "label": "Quality aggregates",
            "kind": "store",
            "sub": "ADX, 400 days"
          },
          {
            "id": "d-usage",
            "label": "Usage & cost",
            "kind": "store",
            "sub": "per tenant"
          }
        ]
      },
      {
        "title": "Persisted — may hold code",
        "nodes": [
          {
            "id": "d-diag",
            "label": "Diagnostic sample",
            "kind": "risk",
            "sub": "opt-in, ≤ 24 h"
          },
          {
            "id": "d-eval",
            "label": "Eval corpus",
            "kind": "store",
            "sub": "licensed only"
          }
        ]
      },
      {
        "title": "Never persisted",
        "nodes": [
          {
            "id": "d-zero",
            "label": "Zero-retention tenants",
            "kind": "security",
            "sub": "no path exists"
          },
          {
            "id": "d-notrain",
            "label": "Training",
            "kind": "risk",
            "sub": "no data path"
          }
        ]
      }
    ],
    "edges": [
      {
        "from": "d-redact",
        "to": "d-prompt",
        "label": "redacted span"
      },
      {
        "from": "d-hdr",
        "to": "d-ctx"
      },
      {
        "from": "d-ctx",
        "to": "d-kv",
        "label": "prefix"
      },
      {
        "from": "d-out",
        "to": "d-split",
        "label": "suggestion"
      },
      {
        "from": "d-split",
        "to": "d-ev",
        "label": "metadata",
        "kind": "async"
      },
      {
        "from": "d-split",
        "to": "d-diag",
        "label": "opt-in only",
        "kind": "error"
      }
    ],
    "note": "The red path is the only way code-bearing data is retained, and it is refused by default. Zero-retention tenants have no arrow because they have no path.",
    "meta": {
      "v": "1.0",
      "owner": "Developer Experience Architecture",
      "date": "2026-10"
    }
  },
  {
    "id": "11-data-stores-and-ownership",
    "title": "Data Architecture — Ownership and Rebuildability",
    "layout": "nested",
    "canvas": {
      "width": 1740
    },
    "boxes": [
      {
        "title": "Systems of record — lose these and the platform is gone",
        "kind": "trust",
        "dir": "row",
        "children": [
          {
            "title": "Control plane (global write, regional read replicas)",
            "kind": "boundary",
            "nodes": [
              {
                "id": "s-sql",
                "label": "Policy, tenants, seats",
                "kind": "store",
                "sub": "Azure SQL, RPO 0"
              },
              {
                "id": "s-consent",
                "label": "Consent & audit",
                "kind": "store",
                "sub": "append-only, 5 y"
              },
              {
                "id": "s-reg",
                "label": "Model registry",
                "kind": "store",
                "sub": "ACR, immutable"
              }
            ]
          },
          {
            "title": "Measurement (append-only)",
            "kind": "boundary",
            "nodes": [
              {
                "id": "s-raw",
                "label": "Interaction log",
                "kind": "store",
                "sub": "Blob, 30 d raw"
              },
              {
                "id": "s-eval",
                "label": "Eval corpora",
                "kind": "store",
                "sub": "licensed, 2 y"
              }
            ]
          }
        ]
      },
      {
        "title": "Rebuildable projections — no backup, only a recompute time",
        "kind": "boundary",
        "dir": "row",
        "children": [
          {
            "title": "Quality",
            "kind": "plain",
            "nodes": [
              {
                "id": "s-adx",
                "label": "Quality aggregates",
                "kind": "store",
                "sub": "ADX, 400 d"
              },
              {
                "id": "s-arm",
                "label": "Experiment arms",
                "kind": "store"
              }
            ]
          },
          {
            "title": "Retrieval",
            "kind": "plain",
            "nodes": [
              {
                "id": "s-idx",
                "label": "Workspace indexes",
                "kind": "store",
                "sub": "40 TB, per repo"
              },
              {
                "id": "s-sym",
                "label": "Symbol graph",
                "kind": "store"
              }
            ]
          },
          {
            "title": "Caches",
            "kind": "plain",
            "nodes": [
              {
                "id": "s-pol",
                "label": "Policy cache",
                "kind": "store",
                "sub": "Redis, 30 s"
              },
              {
                "id": "s-aff",
                "label": "Affinity map",
                "kind": "store",
                "sub": "Redis, session TTL"
              }
            ]
          }
        ]
      },
      {
        "title": "Ephemeral — recomputed, never recovered",
        "kind": "lane",
        "dir": "row",
        "children": [
          {
            "title": "Inference memory",
            "kind": "plain",
            "nodes": [
              {
                "id": "s-hbm",
                "label": "KV cache — HBM",
                "kind": "store",
                "sub": "device memory"
              },
              {
                "id": "s-dram",
                "label": "KV cache — DRAM",
                "kind": "store",
                "sub": "host spill"
              },
              {
                "id": "s-nvme",
                "label": "KV cache — NVMe",
                "kind": "store",
                "sub": "node local"
              },
              {
                "id": "s-inflight",
                "label": "Prompt & suggestion",
                "kind": "risk",
                "sub": "memory only"
              }
            ]
          }
        ]
      }
    ],
    "outside": [
      {
        "id": "s-scm",
        "label": "Source hosting",
        "kind": "external",
        "sub": "the code's real owner"
      }
    ],
    "edges": [
      {
        "from": "s-scm",
        "to": "s-idx",
        "label": "rebuilt from",
        "kind": "batch"
      },
      {
        "from": "s-raw",
        "to": "s-adx",
        "label": "replayable",
        "kind": "batch"
      },
      {
        "from": "s-sql",
        "to": "s-pol",
        "label": "cached",
        "kind": "async"
      },
      {
        "from": "s-inflight",
        "to": "s-raw",
        "label": "metadata only",
        "kind": "async"
      }
    ],
    "note": "The platform owns no code. Every store that could hold code is either ephemeral, opt-in, or a rebuildable projection of a repository someone else owns.",
    "meta": {
      "v": "1.0",
      "owner": "Developer Experience Architecture",
      "date": "2026-10"
    }
  },
  {
    "id": "12-telemetry-and-policy-data-model",
    "title": "Data Model — Policy, Session and the Suggestion Event",
    "layout": "er",
    "canvas": {
      "width": 1760,
      "cols": 4
    },
    "rowGap": 230,
    "entities": [
      {
        "id": "tenant",
        "name": "tenant",
        "kind": "store",
        "row": 0,
        "col": 1,
        "attrs": [
          "tenant_id  PK",
          "retention_mode",
          "geography",
          "model_tier",
          "spend_ceiling"
        ]
      },
      {
        "id": "seat",
        "name": "seat",
        "kind": "store",
        "row": 0,
        "col": 2,
        "attrs": [
          "seat_id  PK",
          "tenant_id  FK",
          "principal_oid",
          "state",
          "revoked_at"
        ]
      },
      {
        "id": "policy",
        "name": "policy_rule",
        "kind": "store",
        "row": 0,
        "col": 3,
        "attrs": [
          "rule_id  PK",
          "scope  tenant|group|seat",
          "languages",
          "filters",
          "precedence"
        ]
      },
      {
        "id": "consent",
        "name": "consent_record",
        "kind": "store",
        "row": 0,
        "col": 0,
        "attrs": [
          "record_id  PK",
          "tenant_id  FK",
          "change",
          "actor",
          "at  immutable"
        ]
      },
      {
        "id": "session",
        "name": "edit_session",
        "kind": "store",
        "row": 1,
        "col": 2,
        "attrs": [
          "session_id  PK",
          "seat_id  FK",
          "workspace_id  FK",
          "replica_id",
          "prefix_hash"
        ]
      },
      {
        "id": "request",
        "name": "suggestion_request",
        "kind": "store",
        "row": 1,
        "col": 3,
        "attrs": [
          "request_id  PK",
          "session_id  FK",
          "model_digest  FK",
          "recipe_version",
          "deadline_ms"
        ]
      },
      {
        "id": "outcome",
        "name": "suggestion_outcome",
        "kind": "store",
        "row": 2,
        "col": 3,
        "attrs": [
          "request_id  PK FK",
          "state",
          "ttft_ms",
          "filtered_by",
          "arm_id  FK"
        ]
      },
      {
        "id": "retention",
        "name": "retention_check",
        "kind": "store",
        "row": 2,
        "col": 2,
        "attrs": [
          "request_id  FK",
          "at_seconds",
          "chars_surviving",
          "measured_at"
        ]
      },
      {
        "id": "workspace",
        "name": "workspace",
        "kind": "store",
        "row": 1,
        "col": 1,
        "attrs": [
          "workspace_id  PK",
          "tenant_id  FK",
          "repo_ref",
          "index_version"
        ]
      },
      {
        "id": "model",
        "name": "model_version",
        "kind": "store",
        "row": 1,
        "col": 0,
        "attrs": [
          "model_digest  PK",
          "family",
          "decoding_config",
          "eval_run_id",
          "signed_by"
        ]
      },
      {
        "id": "arm",
        "name": "experiment_arm",
        "kind": "store",
        "row": 2,
        "col": 0,
        "attrs": [
          "arm_id  PK",
          "experiment_id",
          "model_digest  FK",
          "traffic_pct",
          "is_control"
        ]
      },
      {
        "id": "cost",
        "name": "cost_attribution",
        "kind": "store",
        "row": 2,
        "col": 1,
        "attrs": [
          "day, tenant_id, model_digest  PK",
          "gpu_seconds",
          "displayed",
          "accepted",
          "wasted_pct"
        ]
      }
    ],
    "relations": [
      {
        "from": "tenant",
        "to": "consent",
        "label": "1 : N",
        "from_side": "w",
        "to_side": "e"
      },
      {
        "from": "tenant",
        "to": "seat",
        "label": "1 : N",
        "from_side": "e",
        "to_side": "w"
      },
      {
        "from": "seat",
        "to": "policy",
        "label": "0 : N",
        "from_side": "e",
        "to_side": "w",
        "kind": "optional"
      },
      {
        "from": "tenant",
        "to": "workspace",
        "label": "1 : N",
        "from_side": "s",
        "to_side": "n"
      },
      {
        "from": "workspace",
        "to": "session",
        "label": "1 : N",
        "from_side": "e",
        "to_side": "w"
      },
      {
        "from": "session",
        "to": "request",
        "label": "1 : N",
        "from_side": "e",
        "to_side": "w"
      },
      {
        "from": "request",
        "to": "outcome",
        "label": "1 : 1",
        "from_side": "s",
        "to_side": "n"
      },
      {
        "from": "outcome",
        "to": "retention",
        "label": "1 : N",
        "from_side": "w",
        "to_side": "e"
      },
      {
        "from": "model",
        "to": "arm",
        "label": "1 : N",
        "from_side": "s",
        "to_side": "n"
      },
      {
        "from": "model",
        "to": "cost",
        "label": "1 : N",
        "from_side": "s3",
        "to_side": "n1"
      }
    ],
    "note": "No entity holds code: suggestion_request stores the recipe version, never the prompt. The model_digest on a request and the arm_id on an outcome are columns rather than drawn edges.",
    "meta": {
      "v": "1.0",
      "owner": "Developer Experience Architecture",
      "date": "2026-10"
    }
  },
  {
    "id": "13-keystroke-to-ghost-text",
    "title": "Critical Flow — One Keystroke, 300 Milliseconds",
    "layout": "sequence",
    "canvas": {
      "width": 1760
    },
    "lifelines": [
      {
        "id": "dev",
        "label": "Developer",
        "kind": "actor"
      },
      {
        "id": "plug",
        "label": "Editor plugin"
      },
      {
        "id": "edge",
        "label": "Edge + seat gate",
        "kind": "integration"
      },
      {
        "id": "ctx",
        "label": "Prompt assembler"
      },
      {
        "id": "route",
        "label": "Affinity router"
      },
      {
        "id": "gpu",
        "label": "GPU replica",
        "icon": "azure_AzureKubernetesService__Containers"
      },
      {
        "id": "filt",
        "label": "Safety filters",
        "kind": "security"
      },
      {
        "id": "tel",
        "label": "Telemetry",
        "kind": "queue",
        "icon": "azure_AzureEventHub__Analytics"
      }
    ],
    "messages": [
      {
        "from": "dev",
        "to": "plug",
        "label": "keystroke",
        "kind": "call"
      },
      {
        "from": "plug",
        "to": "plug",
        "label": "cancel previous in-flight",
        "kind": "self"
      },
      {
        "from": "plug",
        "to": "plug",
        "label": "debounce 60 ms",
        "kind": "self"
      },
      {
        "from": "plug",
        "to": "edge",
        "label": "POST /suggest  (deadline 2000 ms)",
        "kind": "call"
      },
      {
        "from": "edge",
        "to": "edge",
        "label": "seat, quota, version, geography",
        "kind": "self"
      },
      {
        "from": "edge",
        "to": "ctx",
        "label": "forward, deadline 1940 ms",
        "kind": "call"
      },
      {
        "from": "ctx",
        "to": "ctx",
        "label": "FIM assembly, budget, stable order",
        "kind": "self"
      },
      {
        "from": "ctx",
        "to": "route",
        "label": "prompt + session key",
        "kind": "call"
      },
      {
        "from": "route",
        "to": "route",
        "label": "affinity lookup; admit or refuse",
        "kind": "self"
      },
      {
        "from": "route",
        "to": "plug",
        "label": "no capacity in deadline — empty",
        "kind": "error"
      },
      {
        "from": "route",
        "to": "gpu",
        "label": "admit to in-flight batch",
        "kind": "call"
      },
      {
        "from": "gpu",
        "to": "gpu",
        "label": "prefix cache hit (85%)",
        "kind": "self"
      },
      {
        "from": "gpu",
        "to": "filt",
        "label": "first tokens, streaming",
        "kind": "call"
      },
      {
        "from": "filt",
        "to": "filt",
        "label": "trim, suffix dedup, secret scan",
        "kind": "self"
      },
      {
        "from": "filt",
        "to": "plug",
        "label": "displayable at 120 ms p50",
        "kind": "return"
      },
      {
        "from": "plug",
        "to": "dev",
        "label": "ghost text painted",
        "kind": "return"
      },
      {
        "from": "dev",
        "to": "plug",
        "label": "Tab, or keeps typing",
        "kind": "call"
      },
      {
        "from": "plug",
        "to": "tel",
        "label": "accepted / cancelled",
        "kind": "async"
      },
      {
        "from": "plug",
        "to": "tel",
        "label": "retention probe at 120 s",
        "kind": "async"
      }
    ],
    "note": "Message 10 is the one that keeps the contract: the refusal is issued before any accelerator work starts.",
    "meta": {
      "v": "1.0",
      "owner": "Developer Experience Architecture",
      "date": "2026-10"
    }
  },
  {
    "id": "14-context-assembly-pipeline",
    "title": "Context Assembly — Spending a Token Budget",
    "layout": "flow",
    "align": "top",
    "canvas": {
      "width": 1780
    },
    "stages": [
      {
        "title": "Candidate sources",
        "nodes": [
          {
            "id": "p-cur",
            "label": "Current file",
            "sub": "prefix + suffix"
          },
          {
            "id": "p-tabs",
            "label": "Open tabs",
            "sub": "up to 20"
          },
          {
            "id": "p-recent",
            "label": "Recent edits",
            "sub": "last 10 min"
          },
          {
            "id": "p-imp",
            "label": "Imported symbols"
          },
          {
            "id": "p-repo",
            "label": "Repo snippets",
            "sub": "retrieved"
          }
        ]
      },
      {
        "title": "Admission",
        "nodes": [
          {
            "id": "p-acl",
            "label": "ACL check",
            "kind": "security",
            "sub": "at request time"
          },
          {
            "id": "p-ign",
            "label": "Ignore rules",
            "kind": "security"
          },
          {
            "id": "p-poison",
            "label": "Poison detector",
            "kind": "decision",
            "sub": "minified, binary"
          }
        ]
      },
      {
        "title": "Rank",
        "nodes": [
          {
            "id": "p-lex",
            "label": "Lexical score",
            "sub": "BM25, in-process"
          },
          {
            "id": "p-sym",
            "label": "Symbol proximity"
          },
          {
            "id": "p-rec",
            "label": "Recency weight"
          }
        ]
      },
      {
        "title": "Allocate",
        "nodes": [
          {
            "id": "p-budget",
            "label": "Budget allocator",
            "sub": "priority order"
          },
          {
            "id": "p-trunc",
            "label": "Lowest-priority truncation",
            "kind": "decision"
          }
        ]
      },
      {
        "title": "Order",
        "nodes": [
          {
            "id": "p-stable",
            "label": "Stable segment",
            "sub": "cacheable prefix"
          },
          {
            "id": "p-vol",
            "label": "Volatile tail",
            "sub": "cursor neighbourhood"
          }
        ]
      },
      {
        "title": "Emit",
        "nodes": [
          {
            "id": "p-prompt",
            "label": "FIM prompt",
            "sub": "≤ 8 k tokens"
          },
          {
            "id": "p-recipe",
            "label": "Recipe version",
            "sub": "logged, not the prompt"
          }
        ]
      }
    ],
    "edges": [
      {
        "from": "p-repo",
        "to": "p-acl",
        "label": "scoped"
      },
      {
        "from": "p-cur",
        "to": "p-ign"
      },
      {
        "from": "p-poison",
        "to": "p-lex"
      },
      {
        "from": "p-rec",
        "to": "p-budget",
        "label": "ranked"
      },
      {
        "from": "p-trunc",
        "to": "p-stable",
        "label": "kept"
      },
      {
        "from": "p-vol",
        "to": "p-prompt"
      },
      {
        "from": "p-budget",
        "to": "p-tabs",
        "label": "tabs only",
        "kind": "error",
        "route": "gutter"
      }
    ],
    "note": "Order is not cosmetic: a volatile segment placed early invalidates the prefix cache on every keystroke and costs 180 ms.",
    "meta": {
      "v": "1.0",
      "owner": "Developer Experience Architecture",
      "date": "2026-10"
    }
  },
  {
    "id": "15-four-fates-of-a-request",
    "title": "Inference Plane — Four Fates of One Keystroke",
    "layout": "swimlane",
    "canvas": {
      "width": 1780
    },
    "laneHeaderWidth": 190,
    "stages": [
      "Arrive",
      "Affinity lookup",
      "Admission",
      "Batch slot",
      "Prefix state",
      "Outcome"
    ],
    "lanes": [
      {
        "title": "Warm session — 85%",
        "cells": [
          [
            {
              "label": "Session key known"
            }
          ],
          [
            {
              "label": "Replica hit",
              "kind": "store"
            }
          ],
          [
            {
              "label": "Queue wait < budget",
              "kind": "decision"
            }
          ],
          [
            {
              "label": "Joins in-flight batch"
            }
          ],
          [
            {
              "label": "HBM cache hit",
              "kind": "store"
            }
          ],
          [
            {
              "label": "p50 120 ms",
              "kind": "opportunity"
            }
          ]
        ]
      },
      {
        "title": "Cold session — 15%",
        "cells": [
          [
            {
              "label": "First keystroke"
            }
          ],
          [
            {
              "label": "No replica held"
            }
          ],
          [
            {
              "label": "Any replica accepted",
              "kind": "decision"
            }
          ],
          [
            {
              "label": "Admitted, lower priority"
            }
          ],
          [
            {
              "label": "Recompute prefix"
            }
          ],
          [
            {
              "label": "+180 ms at p95",
              "kind": "risk"
            }
          ]
        ]
      },
      {
        "title": "Drained mid-session",
        "cells": [
          [
            {
              "label": "Node upgrade or spot loss"
            }
          ],
          [
            {
              "label": "Affinity invalidated",
              "kind": "risk"
            }
          ],
          [
            {
              "label": "Re-placed, not errored",
              "kind": "decision"
            }
          ],
          [
            {
              "label": "New replica"
            }
          ],
          [
            {
              "label": "NVMe tier read",
              "kind": "store"
            }
          ],
          [
            {
              "label": "Degrades, never fails",
              "kind": "opportunity"
            }
          ]
        ]
      },
      {
        "title": "Refused at the door",
        "cells": [
          [
            {
              "label": "Peak, 90 k rps"
            }
          ],
          [
            {
              "label": "Lookup skipped"
            }
          ],
          [
            {
              "label": "Deadline unreachable",
              "kind": "risk"
            }
          ],
          [],
          [],
          [
            {
              "label": "Empty, 0 GPU seconds",
              "kind": "opportunity"
            }
          ]
        ]
      },
      {
        "title": "Cancelled — 55% of all",
        "cells": [
          [
            {
              "label": "Developer kept typing"
            }
          ],
          [
            {
              "label": "Same replica"
            }
          ],
          [
            {
              "label": "Already admitted",
              "icon": "fa5_check"
            }
          ],
          [
            {
              "label": "Sequence evicted"
            }
          ],
          [
            {
              "label": "Prefix kept warm",
              "kind": "store"
            }
          ],
          [
            {
              "label": "Reclaimed in 50 ms",
              "kind": "opportunity"
            }
          ]
        ]
      }
    ],
    "note": "Row four costs nothing and row five costs most of the fleet. Budgeting for row five is what makes row one affordable.",
    "meta": {
      "v": "1.0",
      "owner": "Developer Experience Architecture",
      "date": "2026-10"
    }
  },
  {
    "id": "16-model-promotion-and-gating",
    "title": "Model Promotion — Offline Gate, Online Verdict",
    "layout": "flow",
    "align": "top",
    "canvas": {
      "width": 1780
    },
    "stages": [
      {
        "title": "Register",
        "nodes": [
          {
            "id": "m-art",
            "label": "Weights + config",
            "kind": "store",
            "sub": "content addressed"
          },
          {
            "id": "m-sign",
            "label": "Sign & admit",
            "kind": "security",
            "sub": "Key Vault"
          }
        ]
      },
      {
        "title": "Offline gate",
        "nodes": [
          {
            "id": "m-corp",
            "label": "Held-out contexts",
            "kind": "store",
            "sub": "licensed only"
          },
          {
            "id": "m-eval",
            "label": "Eval harness"
          },
          {
            "id": "m-pass",
            "label": "Promotion allowed?",
            "kind": "decision"
          }
        ]
      },
      {
        "title": "Canary",
        "nodes": [
          {
            "id": "m-arm",
            "label": "1% arm",
            "sub": "stable assignment"
          },
          {
            "id": "m-ctrl",
            "label": "Control arm",
            "sub": "held back"
          },
          {
            "id": "m-warm",
            "label": "Cache warm-up",
            "sub": "before measuring"
          }
        ]
      },
      {
        "title": "Online verdict",
        "nodes": [
          {
            "id": "m-acc",
            "label": "Acceptance rate",
            "sub": "immediate, noisy"
          },
          {
            "id": "m-ret",
            "label": "Retention at 120 s",
            "sub": "canonical"
          },
          {
            "id": "m-lat",
            "label": "TTFT p95"
          }
        ]
      },
      {
        "title": "Decide",
        "nodes": [
          {
            "id": "m-gate",
            "label": "Regression > 1.5%?",
            "kind": "decision"
          }
        ]
      },
      {
        "title": "Ramp or revert",
        "nodes": [
          {
            "id": "m-ramp",
            "label": "Staged ramp",
            "sub": "by region"
          },
          {
            "id": "m-back",
            "label": "Alias to previous",
            "kind": "opportunity",
            "sub": "≤ 10 min"
          },
          {
            "id": "m-keep",
            "label": "Previous stays mounted",
            "kind": "store",
            "sub": "72 h"
          }
        ]
      }
    ],
    "edges": [
      {
        "from": "m-sign",
        "to": "m-eval"
      },
      {
        "from": "m-corp",
        "to": "m-eval"
      },
      {
        "from": "m-pass",
        "to": "m-arm",
        "label": "allowed"
      },
      {
        "from": "m-warm",
        "to": "m-ret",
        "label": "then measure"
      },
      {
        "from": "m-ret",
        "to": "m-gate"
      },
      {
        "from": "m-gate",
        "to": "m-ramp",
        "label": "no"
      },
      {
        "from": "m-gate",
        "to": "m-back",
        "label": "yes",
        "kind": "error"
      }
    ],
    "note": "The offline suite is a gate, not a verdict: it can refuse a candidate before it reaches a canary, and it can never promote one. Only retention can.",
    "meta": {
      "v": "1.0",
      "owner": "Developer Experience Architecture",
      "date": "2026-10"
    }
  },
  {
    "id": "17-deployment-topology",
    "title": "Deployment Topology — Three Regions, One Working Set Each",
    "layout": "nested",
    "canvas": {
      "width": 1780
    },
    "boxes": [
      {
        "title": "Global",
        "kind": "cloud",
        "dir": "row",
        "children": [
          {
            "title": "Edge and control",
            "kind": "boundary",
            "nodes": [
              {
                "id": "g-afd",
                "label": "Front Door",
                "sub": "anycast + WAF",
                "kind": "integration"
              },
              {
                "id": "g-sql",
                "label": "Policy & seats",
                "sub": "SQL, write region",
                "kind": "store"
              },
              {
                "id": "g-acr",
                "label": "Model registry",
                "sub": "ACR geo-replicated",
                "kind": "store"
              },
              {
                "id": "g-akv",
                "label": "Key Vault / HSM",
                "kind": "security"
              }
            ]
          }
        ]
      },
      {
        "title": "Serving region — West Europe (primary pattern, repeated per region)",
        "kind": "cloud",
        "dir": "row",
        "children": [
          {
            "title": "Zone 1",
            "kind": "boundary",
            "nodes": [
              {
                "id": "z1-req",
                "label": "Request plane",
                "sub": "Container Apps"
              },
              {
                "id": "z1-gpu",
                "label": "GPU node pool",
                "sub": "session affine",
                "icon": "azure_AzureKubernetesService__Containers"
              },
              {
                "id": "z1-redis",
                "label": "Redis replica",
                "kind": "store"
              }
            ]
          },
          {
            "title": "Zone 2",
            "kind": "boundary",
            "nodes": [
              {
                "id": "z2-req",
                "label": "Request plane"
              },
              {
                "id": "z2-gpu",
                "label": "GPU node pool",
                "icon": "azure_AzureKubernetesService__Containers"
              },
              {
                "id": "z2-redis",
                "label": "Redis replica",
                "kind": "store"
              }
            ]
          },
          {
            "title": "Zone 3 (measurement and spare)",
            "kind": "boundary",
            "nodes": [
              {
                "id": "z3-eh",
                "label": "Event Hubs",
                "kind": "queue"
              },
              {
                "id": "z3-adx",
                "label": "Data Explorer",
                "kind": "store"
              },
              {
                "id": "z3-idx",
                "label": "Retrieval indexes",
                "kind": "store",
                "sub": "per workspace"
              }
            ]
          }
        ]
      },
      {
        "title": "Other serving regions",
        "kind": "cloud",
        "dir": "row",
        "children": [
          {
            "title": "East US",
            "kind": "boundary",
            "nodes": [
              {
                "id": "us-gpu",
                "label": "GPU pools",
                "sub": "own working set",
                "icon": "azure_AzureKubernetesService__Containers"
              },
              {
                "id": "us-req",
                "label": "Request plane"
              }
            ]
          },
          {
            "title": "Southeast Asia",
            "kind": "boundary",
            "nodes": [
              {
                "id": "ap-gpu",
                "label": "GPU pools",
                "icon": "azure_AzureKubernetesService__Containers"
              },
              {
                "id": "ap-req",
                "label": "Request plane"
              }
            ]
          },
          {
            "title": "Sovereign option (phase 3)",
            "kind": "onprem",
            "nodes": [
              {
                "id": "sv-gpu",
                "label": "Tenant-dedicated pool",
                "kind": "risk",
                "sub": "not in MVP",
                "icon": "azure_AzureKubernetesService__Containers"
              }
            ]
          }
        ]
      }
    ],
    "outside": [
      {
        "id": "o-mon",
        "label": "Azure Monitor + Managed Grafana",
        "kind": "platform"
      },
      {
        "id": "o-blob",
        "label": "Blob Storage",
        "kind": "store",
        "sub": "weights, raw telemetry"
      }
    ],
    "edges": [
      {
        "from": "g-afd",
        "to": "z1-req",
        "label": "geography pinned"
      },
      {
        "from": "g-acr",
        "to": "z1-gpu",
        "label": "weights by digest",
        "kind": "batch"
      },
      {
        "from": "z1-redis",
        "to": "z2-redis",
        "label": "affinity map",
        "kind": "async"
      },
      {
        "from": "z3-eh",
        "to": "o-blob",
        "label": "capture",
        "kind": "async"
      }
    ],
    "note": "A region is a complete working set, not a fraction of one: prefix caches are never replicated, so a region loss costs cold starts, not correctness.",
    "meta": {
      "v": "1.0",
      "owner": "Developer Experience Architecture",
      "date": "2026-10"
    }
  },
  {
    "id": "18-observability",
    "title": "Observability — Signal by Stage",
    "layout": "grid",
    "canvas": {
      "width": 1780
    },
    "laneHeaderWidth": 170,
    "columns": [
      "Editor client",
      "Edge",
      "Context",
      "Admission",
      "Inference",
      "Filters & telemetry"
    ],
    "rows": [
      {
        "title": "Latency",
        "cells": [
          [
            {
              "label": "TTFT, client measured",
              "kind": "platform"
            }
          ],
          [
            {
              "label": "Edge overhead"
            }
          ],
          [
            {
              "label": "Assembly p95"
            }
          ],
          [
            {
              "label": "Queue wait p99"
            }
          ],
          [
            {
              "label": "Tokens / second"
            }
          ],
          [
            {
              "label": "Filter time p99"
            }
          ]
        ]
      },
      {
        "title": "Saturation",
        "cells": [
          [
            {
              "label": "In-flight per session"
            }
          ],
          [
            {
              "label": "Quota rejections"
            }
          ],
          [
            {
              "label": "Budget truncations"
            }
          ],
          [
            {
              "label": "Admission refusals",
              "kind": "risk"
            }
          ],
          [
            {
              "label": "Batch occupancy"
            }
          ],
          [
            {
              "label": "Event Hubs lag"
            }
          ]
        ]
      },
      {
        "title": "Cache & affinity",
        "cells": [
          [],
          [],
          [
            {
              "label": "Prefix stability"
            }
          ],
          [
            {
              "label": "Affinity hit rate",
              "kind": "store"
            }
          ],
          [
            {
              "label": "Tier hit: HBM / DRAM / NVMe",
              "kind": "store"
            }
          ],
          []
        ]
      },
      {
        "title": "Quality",
        "cells": [
          [
            {
              "label": "Displayed, accepted"
            }
          ],
          [],
          [
            {
              "label": "Recipe version"
            }
          ],
          [],
          [
            {
              "label": "Per-model acceptance"
            }
          ],
          [
            {
              "label": "Retention at 120 s",
              "kind": "opportunity"
            }
          ]
        ]
      },
      {
        "title": "Safety",
        "cells": [
          [],
          [
            {
              "label": "Client version floor"
            }
          ],
          [
            {
              "label": "Redaction hits",
              "kind": "security"
            }
          ],
          [],
          [
            {
              "label": "Degeneracy ejections"
            }
          ],
          [
            {
              "label": "Secret suppressions",
              "kind": "security"
            }
          ]
        ]
      },
      {
        "title": "Cost",
        "cells": [
          [],
          [
            {
              "label": "Requests per seat"
            }
          ],
          [
            {
              "label": "Tokens per prompt"
            }
          ],
          [
            {
              "label": "Wasted generation %",
              "kind": "risk"
            }
          ],
          [
            {
              "label": "GPU seconds per tenant"
            }
          ],
          [
            {
              "label": "Cost per accepted",
              "kind": "opportunity"
            }
          ]
        ]
      }
    ],
    "note": "Only one row has no error signal behind it: Quality. That is why the control arm is held back permanently rather than per experiment.",
    "meta": {
      "v": "1.0",
      "owner": "Developer Experience Architecture",
      "date": "2026-10"
    }
  },
  {
    "id": "19-model-and-quality-lifecycle",
    "title": "Model and Quality Lifecycle",
    "layout": "cycle",
    "centre": {
      "label": "Completion quality"
    },
    "rx": 440,
    "ry": 215,
    "nodes": [
      {
        "id": "l-reg",
        "label": "Register by digest",
        "sub": "immutable"
      },
      {
        "id": "l-eval",
        "label": "Offline evaluation",
        "sub": "gate only"
      },
      {
        "id": "l-can",
        "label": "Canary at 1%",
        "sub": "24 h minimum"
      },
      {
        "id": "l-meas",
        "label": "Measure retention",
        "sub": "against control"
      },
      {
        "id": "l-dec",
        "label": "Promote or revert",
        "kind": "decision"
      },
      {
        "id": "l-watch",
        "label": "Watch in production",
        "sub": "per language"
      },
      {
        "id": "l-retire",
        "label": "Retire & reclaim",
        "sub": "free the working set"
      }
    ],
    "ringLabels": [
      "candidate",
      "allowed",
      "live to 12 k devs",
      "effect size",
      "verdict",
      "drift",
      "capacity"
    ],
    "note": "The loop closes on retirement, not on promotion: a model left mounted holds working-set memory that the next candidate needs.",
    "meta": {
      "v": "1.0",
      "owner": "Developer Experience Architecture",
      "date": "2026-10"
    }
  },
  {
    "id": "20-trust-zones-and-network",
    "title": "Trust Zones and Network Segmentation",
    "layout": "zones",
    "canvas": {
      "width": 1760
    },
    "zones": [
      {
        "title": "Untrusted — the developer's machine",
        "kind": "trust",
        "nodes": [
          {
            "id": "t-ed",
            "label": "Editor process",
            "kind": "external",
            "sub": "untrusted client"
          },
          {
            "id": "t-buf",
            "label": "Open buffers",
            "kind": "store",
            "sub": "never uploaded whole"
          },
          {
            "id": "t-red",
            "label": "Local redaction",
            "kind": "security"
          },
          {
            "id": "t-tok",
            "label": "Short-lived token",
            "kind": "security",
            "sub": "refreshed"
          }
        ]
      },
      {
        "title": "Public edge — internet facing",
        "kind": "trust",
        "nodes": [
          {
            "id": "t-afd",
            "label": "Front Door + WAF",
            "kind": "integration"
          },
          {
            "id": "t-authz",
            "label": "Seat authoriser",
            "kind": "security"
          },
          {
            "id": "t-ver",
            "label": "Client version gate",
            "kind": "decision"
          },
          {
            "id": "t-rate",
            "label": "Per-seat rate limit",
            "kind": "integration"
          }
        ]
      },
      {
        "title": "Request plane — private, no inbound internet",
        "kind": "trust",
        "nodes": [
          {
            "id": "t-fim",
            "label": "Prompt assembler"
          },
          {
            "id": "t-ret",
            "label": "Retrieval service"
          },
          {
            "id": "t-post",
            "label": "Post-processor"
          },
          {
            "id": "t-filt",
            "label": "Safety filters",
            "kind": "security"
          }
        ]
      },
      {
        "title": "Inference plane — no egress, tenant-partitioned cache",
        "kind": "trust",
        "nodes": [
          {
            "id": "t-gpu",
            "label": "GPU node pools",
            "sub": "egress denied",
            "icon": "azure_AzureKubernetesService__Containers"
          },
          {
            "id": "t-kv",
            "label": "KV cache",
            "kind": "store",
            "sub": "partitioned by tenant"
          },
          {
            "id": "t-sched",
            "label": "Batch scheduler"
          }
        ]
      },
      {
        "title": "Control and data plane — private endpoints only",
        "kind": "trust",
        "nodes": [
          {
            "id": "t-sql",
            "label": "Policy & seats",
            "kind": "store"
          },
          {
            "id": "t-acr",
            "label": "Model registry",
            "kind": "store"
          },
          {
            "id": "t-adx",
            "label": "Quality aggregates",
            "kind": "store"
          },
          {
            "id": "t-akv",
            "label": "Key Vault / HSM",
            "kind": "security"
          },
          {
            "id": "t-aud",
            "label": "Audit store",
            "kind": "store",
            "sub": "append-only"
          }
        ]
      }
    ],
    "edges": [
      {
        "from": "t-ed",
        "to": "t-afd",
        "label": "TLS, token bound"
      },
      {
        "from": "t-authz",
        "to": "t-fim",
        "label": "authorised, deadline"
      },
      {
        "from": "t-ret",
        "to": "t-sql",
        "label": "private endpoint",
        "kind": "async"
      },
      {
        "from": "t-fim",
        "to": "t-sched",
        "label": "prompt, tenant tagged"
      },
      {
        "from": "t-filt",
        "to": "t-adx",
        "label": "metadata, scrubbed",
        "kind": "async"
      }
    ],
    "note": "The inference plane has no egress at all, and returns tokens rather than context: a model that cannot reach the internet cannot exfiltrate what it was given.",
    "meta": {
      "v": "1.0",
      "owner": "Developer Experience Architecture",
      "date": "2026-10"
    }
  },
  {
    "id": "21-identity-seat-and-policy",
    "title": "Identity Flow — Seat, Policy and Repository Permission",
    "layout": "sequence",
    "canvas": {
      "width": 1780
    },
    "lifelines": [
      {
        "id": "dev",
        "label": "Developer",
        "kind": "actor"
      },
      {
        "id": "plug",
        "label": "Editor plugin"
      },
      {
        "id": "entra",
        "label": "Microsoft Entra ID",
        "kind": "security",
        "icon": "azure_AzureActiveDirectory__Identity"
      },
      {
        "id": "edge",
        "label": "Edge authoriser",
        "kind": "integration"
      },
      {
        "id": "cache",
        "label": "Policy cache",
        "kind": "store"
      },
      {
        "id": "sql",
        "label": "Policy store",
        "kind": "store"
      },
      {
        "id": "ret",
        "label": "Retrieval service"
      },
      {
        "id": "scm",
        "label": "Source hosting",
        "kind": "external"
      }
    ],
    "messages": [
      {
        "from": "dev",
        "to": "plug",
        "label": "signs in once",
        "kind": "call"
      },
      {
        "from": "plug",
        "to": "entra",
        "label": "OIDC device code",
        "kind": "call"
      },
      {
        "from": "entra",
        "to": "plug",
        "label": "token, 60 min",
        "kind": "return"
      },
      {
        "from": "plug",
        "to": "edge",
        "label": "suggest + bearer token",
        "kind": "call"
      },
      {
        "from": "edge",
        "to": "edge",
        "label": "verify signature, extract tenant",
        "kind": "self"
      },
      {
        "from": "edge",
        "to": "cache",
        "label": "effective policy for seat",
        "kind": "call"
      },
      {
        "from": "cache",
        "to": "sql",
        "label": "miss — read through",
        "kind": "call"
      },
      {
        "from": "sql",
        "to": "cache",
        "label": "rules, precedence resolved",
        "kind": "return"
      },
      {
        "from": "cache",
        "to": "edge",
        "label": "policy, ≤ 30 s stale",
        "kind": "return"
      },
      {
        "from": "edge",
        "to": "plug",
        "label": "seat revoked or cold cache — refuse",
        "kind": "error"
      },
      {
        "from": "edge",
        "to": "ret",
        "label": "authorised, with principal",
        "kind": "call"
      },
      {
        "from": "ret",
        "to": "scm",
        "label": "may this principal read this repo?",
        "kind": "call"
      },
      {
        "from": "scm",
        "to": "ret",
        "label": "scoped repo list",
        "kind": "return"
      },
      {
        "from": "ret",
        "to": "ret",
        "label": "retrieve within scope only",
        "kind": "self"
      },
      {
        "from": "ret",
        "to": "edge",
        "label": "context, provenance tagged",
        "kind": "return"
      }
    ],
    "note": "Message 12 is evaluated per request, not per index build: an index that outlives a permission change must not serve it.",
    "meta": {
      "v": "1.0",
      "owner": "Developer Experience Architecture",
      "date": "2026-10"
    }
  }
]
