Maintenance is the product

Tom & Jakub · Tue, 20 Oct 2026

The knowledge graph, the search index, the MCP endpoint — all replaceable. The durable work is keeping an organisation's knowledge true, in a corpus the organisation owns.

Everyone building agent context is selling retrieval — a graph, an index, an endpoint. We think retrieval is the replaceable part. The durable problem is deciding what is still true: weighing evidence, reconciling contradictions, keeping derived knowledge aligned with the sources it came from. That work has to run continuously, and its output has to land somewhere the organisation owns. The corpus is not the product. Maintenance is.


An agent working inside a real engineering organisation depends on knowledge from two kinds of sources. The first is the code. Codebases are dense with patterns that encode past decisions: how services authenticate, how errors propagate, where the boundaries between systems actually sit. This knowledge exists even when nobody has written it down. An agent can inspect the code in front of it, but it cannot reliably know which patterns are deliberate, which are shared across the company, and which are merely legacy. Something needs to identify those patterns, distil them, and preserve pointers to the code that supports them so they can be surfaced later.

The second source is the wider organisation: Jira or Linear tickets, Confluence and Notion pages, Backstage, product documents, incident reports, and decisions distributed across many systems. Together, the code and these external systems contain most of the context an agent needs. They just do not form a coherent body of knowledge.

Access is useful, but it is not coherence

We can connect an agent directly to Jira, Confluence, Notion, Backstage, and every other source through MCP tools. The agent still has to guess where an answer might live, search each system independently, and join the results during every run. It often cannot know what it failed to search. Connecting agents to every source gives them access, not coherence.

Local memory has a similar problem. Markdown files are a good primitive: they are readable, portable, and easy for both people and agents to edit. But as they accumulate, they contradict one another, drift away from the code, and become difficult to navigate. Manually maintained index files eventually fall behind too — we made the longer argument in AGENTS.md is the wrong conversation.

The natural response is to reach for a more sophisticated store. A vector database can find similar text. A graph can traverse relationships. Both can improve retrieval, but neither decides which claim is still current, reconciles contradictions, or keeps derived knowledge aligned with its sources. Without maintenance, a better index only provides faster access to the same memory soup.

A corpus the organisation owns

Our approach is to bring useful knowledge from these sources into a structured, Git-backed corpus. Code-derived patterns can live alongside knowledge pulled from tickets, documentation, catalogues, and other systems, with links back to the supporting evidence.

Git is deliberately unremarkable. It is versioned, shared, access-controlled, reviewable, and already understood by engineering teams. Automatic updates produce visible commits. People can inspect what changed, correct it directly, or use the same review processes they already trust.

Even without specialised retrieval, the corpus remains useful. Point Claude, Codex, Cursor, or another agent at the repository and ask it to navigate the files. Open it in Obsidian. Add a custom agent or cron job. Ask an agent to change a document, review the diff, and commit it.

The corpus is not the product. It is the organisation's knowledge, and the value should remain with the organisation. ctxpipe is the management layer around it.

ctxpipe architecture: the corpus is the centre; everything else is a rebuildable view ctxpipe · Architecture The corpus is the centre. Everything else is a view. ctxpipe writes knowledge into a Git corpus you own. Everything that reads it is a rebuildable view. local memory · agent sessions SOURCES Code repos Linear · Jira Confluence · Notion Backstage Incident reports ingest · orchestrated by ctx| GIT-BACKED CORPUS context/ claims/ patterns/ decisions/ index.md a1b2c3 revise payments retry 9f4e21 link ADR-019 → billing-api ctx| · maintenance 1 observe 2 extract 3 connect 4 reconcile 5 revise removable projections: graph · search · MCP rebuildable · replaceable AGENT HUMAN ctxpipe yours Turn the loop off and nothing is lost — the corpus is already yours.
ctxpipe writes knowledge into a Git corpus you own. Everything that reads it is a rebuildable view.

The job is continuous maintenance

Simply copying everything into Git would move the mess rather than solve it. The actual work happens continuously in the background. ctxpipe observes the underlying sources, extracts useful knowledge, connects related material, maintains navigation, identifies contradictions, and revises claims when their evidence changes. When it derives something new, it writes the result back into the corpus with its provenance rather than keeping it in a private internal store.

Claims age. Evidence moves.

Maintenance also means accounting for confidence and time. A current implementation may be strong evidence for how a system behaves. An old Confluence page may be weaker. A recently approved architectural decision may accurately describe intent without describing what is already deployed. Something confidently true five years ago may no longer be useful today. The system needs to preserve where a claim came from, when it was valid, and what newer evidence supports or contradicts it.

Take a concrete case. An agent asks how payments-service handles retries. The code says three attempts with exponential backoff. A runbook from 2021 says five attempts at a fixed interval. An ADR approved last month says the service is moving to idempotency keys with two attempts. All three are documentation. Only one describes production today, and only one describes where it is heading. The corpus entry for this claim records the current answer, weights the implementation above the stale page, flags the contradiction, and marks the ADR as intent rather than deployment — each with a pointer back to its evidence. When the ADR ships, the claim is revised in a commit anyone can review.

The life of a claim: current code, a stale runbook, and a pending ADR, then a Git revision when the ADR ships ctxpipe · Knowledge maintenance The life of a claim Where it came from, when it was valid, and what supersedes it. EVIDENCE payments-service/src/retry.ts STRONG 3 attempts · exponential backoff code · current · a1b2c3 · 2026 Payments runbook · Confluence WEAK 5 attempts · fixed interval doc · last edited 2021 · stale ! contradicts implementation ADR-019 · Idempotent payments INTENT idempotency keys · 2 attempts decision · approved Jul 2026 · not yet deployed supports contradicts supersedes claims/payments-service/retries.md status: current answer: 3 attempts · exponential backoff valid_from: 2024-03 evidence: retry.ts@a1b2c3 strong · current confluence:4471 weak · conflict pending: ADR-019 · not deployed every line links back to its source revised WHEN THE ADR SHIPS ADR-019 deployed change detected at source 7d3f0a2 revise retry claim answer → 2 attempts · idempotency keys supersedes a1b2c3 human review · merge the same PR process as code Not stored in a private index — written back to Git and reviewed like code. ctxpipe · ctxpipe.ai
One claim, three sources: current code supports it, a stale runbook contradicts it, and an ADR is still pending. When the ADR ships, the claim is revised in Git.

This maintenance layer is the core of ctxpipe. The knowledge graph, search indexes, MCP interface, and other retrieval mechanisms help deliver the result, but they are not the system's durable source of truth.

Retrieval should remain replaceable

As the corpus grows, agents need better ways to retrieve the small part that matters. A knowledge graph can expose relationships across repositories. Semantic and code search can find relevant evidence. An MCP interface can deliver the result inside an agent's existing workflow.

In our model, these are projections over the corpus. The graph should be a view, not a vault. It can be rebuilt. Search indexes can be replaced. Teams can build their own retrieval or maintenance jobs without asking permission from ctxpipe.

In Specificity compounds. Generality dilutes. we argued the graph compounds with every commit and every agent run. That still holds — but the compounding happens in the corpus, not the projection. Capturing context is the slow, accumulating work: ingestion from the underlying sources, local memory hooks on agent sessions, contradictions reconciled, claims revised. Generating a graph over the result is the cheap part — a deterministic build that can be rerun in minutes. That asymmetry is the point. It is what makes the graph safe to rebuild, and the Git-backed corpus the thing worth owning: portable, inspectable, and open regardless of what sits on top of it.

Inside out

We call this approach inside out. The default architecture for context products runs outside in: the vendor ingests your knowledge into their system, and that system becomes the only useful interface to it. The longer you use it, the deeper your knowledge sinks into someone else's product. Inside out inverts the arrangement. The knowledge stays inside your boundary — a Git repository you own, in a format anything can read — and ctxpipe operates around it as the maintenance layer. The product wraps the asset. It never contains it.

If ctxpipe stops working for a team, they can turn it off. Their knowledge remains in Git, in an open and inspectable form. They can point another agent at it, build another graph over it, or continue managing it themselves.

The context belongs to the organisation. ctxpipe's job is to keep it useful.


ctxpipe is the open-source context layer for engineering teams. It keeps what your team knows in a git repository you own: current, reviewable, and the same for every engineer and every agent. Self-host it, or request early access to the hosted version.

Request early access · Book a demo · View GitHub repo