A white paper

The Addressable Enterprise

A governed knowledge graph for the age of agents: give every artifact a business address, file knowledge as a by-product of shipping, and let people and AI interrogate the organization through one trusted layer.

Quick overview

The core argument · 5:23

Full paper

Every section, read aloud · 55:37

An organization rendered as a graph: lines of business, domains, capabilities, features, and functions, with artifacts attached at addresses
The organization as a graph. Hover or tap a node to see its address. The graph that no one can see today, because it is implied across hundreds of wiki spaces and ticket projects.

Executive summary

Enterprises have bought the models. What they cannot buy is their own knowledge in a form a model can use. Most of what an organization knows lives in heads, meetings, and wiki spaces nobody owns, and an AI agent can only reason over what it can retrieve. This is the constraint on enterprise AI value, and it is a data problem, not a model problem.

This paper describes a reference design that fixes it in four moves:

  1. Give everything an address. A business-architecture spine (Line of Business → Product Line → Domain → Capability → Feature → Function) turns the organization into a navigable graph. Every PRD, decision, test, runbook, control, and ticket files at a coordinate.
  2. File knowledge on merge, not in a wiki. When a merge request is approved, its artifacts ingest into the graph with their address and provenance already attached. The merge that ships the work is the merge that files the knowledge. Code files the same way: the source stays in Git, and a generated projection of what each repository is, what it depends on, what depends on it, and what it does passes to the graph on every merge.
  3. Govern the graph like data. Provenance, node-level entitlements, authority tiers, freshness signals, and a named steward. Knowing a node exists is not the same as being allowed to read it.
  4. Serve it through one interrogation layer. Graph traversal plus vector search, exposed as governed tools to Copilot, coding agents, and a workbench, with one rule: when the answer is not in the graph, the system says so.

The payoff is the share of meetings, searching, and re-explaining spent moving context between people. In an illustrative model, that is tens of millions of dollars a year at a large enterprise, and it funds the graph many times over. The design is prototyped and proposed, not in production; Section 10 states exactly what exists.

1

The problem: knowledge an agent cannot reach

Enterprise AI adoption is up and value is flat. Gartner's October 2025 survey found 88% of HR leaders report no significant business value from AI tools, and McKinsey's State of AI 2025 found that while 88% of organizations use AI, only about 6% attribute meaningful EBIT to it. One reason sits underneath all the others: lossy context transfer. Enterprise context lives in heads and meetings, is passed along by voice, and decays with every hop and every departure.

Context relayed across five people loses fidelity at every handoff; an agent cannot join the relay at all
Every verbal relay loses fidelity. Atlassian's State of Teams 2025 found knowledge workers spend about a quarter of the week searching for information, and 56% said the only way to get what they need is to ask someone or schedule a meeting. An agent cannot walk down the hall.

AI makes this worse unless it is fixed. Context locked in a meeting is invisible to an agent, and context scattered across hundreds of Confluence spaces and Jira projects is only marginally better: retrievable by keyword, with no structure, no provenance, and no way to know whether it is current.

The usual answer is "put it in a vector store." That gets a model to a passage. It does not get the model to a relationship: what depends on this capability, which controls test this function, which team owns this service, what was decided about this and why. Those are the questions that inform decisions, and they are graph questions.

The result, in the reference implementation (a large regulated U.S. digital financial services firm), was the familiar pattern: engineers spending afternoons in chat threads to find out which service owns a field; product owners answering the same questions in five channels; security and architecture weighing in months late because nothing told them, at concept time, that a new feature sat inside PCI scope.

2

Design principles

Five rules shaped the design. Each one closes a specific way knowledge systems fail.

Five design principles shown as a sequence from address to refusal
  1. Address before content. An artifact with no address does not exist. Templates and CI checks enforce it. This is what makes the graph navigable instead of searchable.
  2. Knowledge is a by-product, never a chore. If filing knowledge takes a separate step, it will not happen. Ingestion rides on an event people already perform to ship: the approved merge.
  3. Provenance on every node. Source repository, commit, author, attestation date, classification. "The AI said so" is not provenance; a link to an addressed artifact is.
  4. Authorization is not addressability. The graph can tell you a node exists and who owns it without showing you its content. Entitlements are enforced per node, and an agent acting for a user sees only what that user may see.
  5. Say "I don't know." When the answer is not in the structured graph, the system says so and offers to search. That refusal is the trust primitive that makes a single source of truth safe in a regulated bank.

3

The spine: a business address for everything

Company → Line of Business → Product Line → Domain → Capability → Feature → Function

Illustrative address:

CO / Consumer / Subscriptions / Billing / Invoice Scheduling / Recurring Billing Setup / validateBillingDate
The spine as a directed graph: one address path lights up from Company to a function, and a shared capability has two parents
An address is a path through the spine. Note that Identity has two parents: the spine is a directed graph, not a tree, because shared capabilities belong to more than one domain.

The spine is the organization's map. Every project files at a coordinate, and the union of projects is the taxonomy. Three properties matter:

Controls and baselines flow down the spine from a Billing capability to the features beneath it
Inheritance by position. PCI scope, a latency budget, and a data classification attach once at the capability and ride down to every feature and function beneath it.

The spine is itself a governed, versioned artifact with a steward, normally the business-architecture function. Projects pin a spine version, so the map can move without breaking what was filed against it.

Brownfield reality. No enterprise can hand-author hundreds of PRDs to seed the graph. The build path is: new products start in the model; existing products get stub nodes that backfill over time; an agent reads existing Jira and Confluence to propose functions for each capability, and a human adjudicates the proposals. A partially accurate map with freshness signals beats tribal knowledge with none.

4

One address, every layer

A street address does two jobs. It locates a building on a map everyone shares, and it stays the same for everything that happens at that building: the deed, the permits, the utilities, the inspections, the mail. A business address works the same way. The feature Recurring Billing Setup has one canonical address on the spine, and that address is stamped on every artifact that touches the feature, in every repository, in every function of the company.

The organization drawn as a street map: product lines as avenues, domains as streets, capabilities as blocks, one feature as a building whose floors are the technical layers and company functions that share its address
The spine as a street map. Avenues are product lines, streets are domains, blocks are capabilities, and a building is a feature. Every floor of that building, from the mobile app to the legal review, carries the same address. Hover or tap a floor to see its artifacts, owner, and attestation.

This is what makes the graph useful rather than just large. Today, the web front end, the mobile app, the API layer, the servicing tier, the back end, and the third-party integration for one feature live in six repositories owned by five teams, and the architecture review, security assessment, risk acceptance, legal review, and change record for the same feature live in five more systems. Nothing joins them except people's memory. With a canonical address, one query returns all of it.

Code files its projection, not its source

The blue floors are repositories, and they are the one layer that is never stale, because the commit is the truth. Source code never enters the knowledge layer. What enters is a code manifest, generated on every merge: what the repository is (components, services), what it exposes (API contracts, events, datasets written), what it consumes (contracts called, events subscribed, datasets read), what it depends on (libraries, platforms, deploy targets), who owns it, and which feature addresses it implements. Most of that is parsed, not interpreted, from artifacts that already exist: OpenAPI and AsyncAPI specs, event schemas, infrastructure-as-code, package manifests, CI pipelines, and CODEOWNERS. No tokens, no inference, re-run on every merge.

One repository's consumes is another repository's exposes. Once every repo in an estate files a manifest, the upstream and downstream graph assembles itself across repositories without anyone drawing it. "What is downstream of validateBillingDate?" stops being an investigation and becomes a traversal, joined to the requirements, controls, and production events at the same address.

A repository stays in Git; a generated manifest of what it is, exposes, consumes, and depends on passes to the graph, where exposes and consumes edges from different repositories join into an upstream and downstream graph
Code stays in Git. The projection passes to the graph. Parsed facts (contracts, infrastructure, manifests, ownership) are canon on merge; what an agent infers about what a module does is a proposal until a human adjudicates it. Freshness for this layer is the commit itself.

Templates: born-structured by construction

None of this works if the address and the metadata are added afterward. Every artifact type has a template, and the template carries the fields the graph needs in machine-readable front-matter: the address, the owner, the review cadence, the classification, the spine and PRD versions, and the provenance of whatever it was derived from. A continuous-integration check rejects any artifact that is missing a required field or names an address that does not exist on the spine. Curation is not a review step after the fact; it is the template doing its job at creation.

Artifact templates with required front-matter fields, and a continuous-integration gate that accepts complete artifacts and rejects those with missing fields or unknown addresses
One template per artifact type, the same required fields on all of them, and a gate at the merge. An artifact with no address does not exist; an artifact with a bad address never merges.
ArtifactTemplate carriesGate checks
PRD / feature specaddress, owner, cadence, status, requirement rows with IDsaddress exists; every requirement row has an ID
Design / ADRaddress, requirement IDs it satisfies, decision, options, statusno design without a requirement; ADR immutable once accepted
Code manifestaddress(es), owner from CODEOWNERS, exposes, consumes, depends, deploysgenerated on merge; every repo in an estate has one
Executable testaddress, requirement IDs it verifiesno requirement marked done without a passing test
Control / runbook / policyaddress, owner, cadence, classification, what it tests or governscadence set by risk tier; attestation recorded
Ticket / change recordaddress in a required fieldno ticket without an address; address resolves on the spine

Ownership and freshness

An address with no owner is a wiki page with a nicer name. Every node, and every artifact filed at it, carries a named owner, a review cadence, and a last-attested date. Freshness is computed, not asserted: a node is fresh within its cadence, due as the cadence ends, and stale past it. Stale content is served with its flag, never silently. Ownership follows the organization, so when a team changes, the steward reassigns owners at the address and the history stays attached.

An ownership and freshness ledger for one address: each layer with its owner, review cadence, last attestation, and computed status
The ledger for one address. Each layer has an owner and a cadence; the status is arithmetic on the last attestation. Two floors are due and one is stale, so the graph says so before anyone builds on them.

5

The governed knowledge layer

The knowledge layer indexes every addressed artifact and the relationships among capabilities, features, services, APIs, datasets, controls, tests, incidents, decisions, and owners.

Three tiers, separated by owner

Three knowledge tiers: personal, institutional, and product, with the product tier consuming standards and writing decisions back
Personal knowledge informs judgment and never becomes canon. Institutional standards live in the Core. Product artifacts consume the institutional tier at design time and write decisions back.
TierWhat it holdsLives inGovernance
PersonalAn individual's local memory and notes: an architect's scar tissueTheir own workspaceIsolated to the person; informs judgment, never becomes canon
InstitutionalArchitecture standards, NFR baselines, security policy, decisionsThe knowledge layerLifecycle-governed; "a standard is an answer the graph gives you"
ProductThe PRD and its prescriptive artifacts: specs, ADRs, executable tests, runbooksVersioned repositoryMerge-request review; consumes the institutional tier and writes decisions back

This answers the question every enterprise asks and none can answer today: where do the architecture standards live? In the knowledge layer, not on a laptop.

Ingestion on merge

When a merge request is approved and merged, its artifacts ingest as born-structured content: declared spine alignment from front-matter, known provenance from the commit, no inference required. Code ingests the same way, as the generated manifest described in Section 4, never as source. Status digests are machine-generated from the ticketing system and the repository, never hand-written. Knowledge converges because shipping converges it.

A merge request is approved, merged, and its artifacts travel into the graph carrying address and provenance
The merge that ships the work is the merge that files the knowledge. No one updates the wiki, because there is no wiki to update.

Governance properties

Anatomy of one node: its address, provenance fields, entitlement, freshness, and an amber conflict flag
Anatomy of a node. Everything a reader, an auditor, or an agent needs to trust an answer travels with the node itself.

Retrieval: graph plus vector

Vector search finds relevant passages. Graph traversal finds relevant relationships. The knowledge layer does both: a question like "what else consumes validateBillingDate?" is a traversal; "what did we decide about billing-date validation?" is a vector hit on a decision record plus a traversal to its neighbors. The graph layer runs on a managed graph database on AWS, with object storage for artifacts and ingestion from the repository, the ticketing system, and the wiki.

A question lands on a passage by vector similarity, then traversal expands to related nodes
Graph plus vector. The vector hit finds the decision record; traversal brings its neighbors: the function it governs, the test that verifies it, the control it satisfies, and the owner who attested it.

Serving: one interrogation layer

The graph is exposed as governed Model Context Protocol tools, so context is pulled into an agent's window rather than pasted. The same tools serve three surfaces: Copilot over the ticketing and wiki tools for the broad workforce; coding agents working in the repository, bootstrapped with a generated context bundle (the constitution, the addressed spec, and the graph neighbors of the capability being built); and a workbench where each project is an isolated workspace filed at a spine coordinate, teams work in a local copy, and merge requests change shared truth.

The graph, exposed through governed tools, serves Copilot, coding agents, and the workbench
The interrogation contract: any answer that informs a decision cites addressed artifacts. Agent quality depends less on prompts than on what is in the context window.

6

Explore the graph

Two things the graph does that a document store cannot. Pick a question to watch traversal answer it, or switch who is asking to see authorization enforced per node while addressability stays intact.

View as
Interactive graph: a question highlights a traversal; a viewer selection dims nodes the viewer is not entitled to read
Hover or tap any node to see what travels with it.

7

What it changes

Question todayHow it is answeredWith the knowledge layer
Who owns this service?Ask around; search three wikisGraph lookup, with the owner's attestation date
What depends on this capability?Meeting with four teamsTraversal; dependencies generated, not negotiated
Is this feature in PCI scope?Security review in month threeInherited from spine position at concept time
What did we decide, and why?Whoever was in the roomDecision record at an address, with provenance
Which controls test this function?Audit pack assembled by handQuery; evidence by construction
Is this document current?GuessFreshness signal; stale nodes flagged

The economics

The addressable cost is the share of meetings, searching, and re-explaining spent moving context between people. An illustrative model: a 30-person project status meeting, three times a week, one hour, 52 weeks, at a $150 fully loaded rate costs about $702,000 a year. Across 200 projects that is roughly $140M for one recurring series alone, before the rest of the ceremony stack.

Addressable annual savings on a $140 million base across combinations of context-transfer share and elimination rate
Addressable savings on the $140M base, by the share of meeting time that is context transfer (T) and the share of that time eliminated (E). Even the most conservative cell funds the graph. Validate T with calendar telemetry before relying on any of these numbers.

8

The hard parts, honestly

Authorization ≠ addressability

Solved by node-level entitlements and isolation by default. The cost is that the entitlement model must be built before the graph is useful, not after.

The graph will rot

It will, if it is treated as a project. Anchor on capabilities, enforce addresses at creation, assign owners and attestation dates, flag staleness automatically, fund the steward. This is governance, not a build.

Convergence needs conflict resolution

Authority tiers and ambers. Contradictions become work items for an adjudicator, not silent drift.

Brownfield

Stubs, backfill, agent-proposed functions with human adjudication. No big bang.

Correctness in a regulated bank

The trail is criteria → test → evidence, never "the AI said so." The refusal primitive keeps the single source of truth honest.

Two open decisions

Cross-team coordination as a graph view is a design choice; gate cadence is a leadership choice. Tooling can make dependencies visible in seconds. Whether a decision takes an hour or a quarter is org design.

9

Build path

Four phases over 24 months, from one bounded domain to the whole enterprise

Phase 0 (6–8 weeks). Map one bounded domain onto the spine. Assign owners. Baseline the time currently spent on context transfer in that domain.

Phase 1 (12–16 weeks). Stand up the graph for that domain: ingestion on merge, entitlements, freshness. Migrate its PRDs, decision records, and runbooks into addressed artifacts. Expose tools to Copilot and coding agents. Replace status meetings with generated digests. Exit when at least 90% of the domain's nodes are attested, every artifact carries an address, and the risk partner confirms the evidence trail is equal or better.

Phase 2 (months 5–12). Extend to 3–5 domains across at least two lines of business. Productize the ingestion, the tool catalog, and the workbench. Hand the spine to a named steward in business architecture.

Phase 3 (months 13–24). The spine covers all lines of business; portfolio planning, audit packs, and agent context all run on it.

10

Status and caveats

Glossary

Address / spine
A node in the business-architecture graph (Company → LOB → Product Line → Domain → Capability → Feature → Function) to which artifacts attach.
Amber
A surfaced contradiction or risk requiring human disposition.
Born-structured content
Artifacts that carry their address and provenance at creation, so ingestion requires no inference.
Context bundle
The generated package (constitution, addressed spec, graph neighbors) that bootstraps an agent's context window.
Graph plus vector
Retrieval that combines vector search over passages with graph traversal over relationships.
Code manifest
The generated projection of a repository that passes to the graph on merge: what it is, exposes, consumes, depends on, deploys to, who owns it, and which addresses it implements. Source code itself never enters the graph.
Knowledge layer
The governed graph layer that indexes addressed artifacts and their relationships, with provenance, entitlements, and freshness.
MCP
Model Context Protocol, an open protocol for exposing tools and data to AI agents.
Steward
The named owner of the spine, normally in the business-architecture function.