The graph

Your codebase has a map.

The Software Intent Graph connects what your software must do to the code, hazards, checks and decisions behind it. Those obligations stay with the repository after a ticket closes. Your next agent can retrieve them through MCP, including the history and evidence it needs to check again.

The public findings register →

payments · example service · hand drawn affects implemented by implemented by implemented by implemented by verified by verified by verified by verified by PAY-KI-07 · open refund exceeded captured amount PAY-SYS-012 · approved a refund never exceeds the captured amount PAY-SYS-008 · approved a declined card is never charged twice PAY-SYS-014 · approved an idempotency key replays the same response PAY-SYS-017 · approved a capture never exceeds the authorised amount PAY-SYS-003 · approved amounts stored in minor units PAY-SYS-025 · approved a ledger entry is written before a charge is reported PAY-SYS-021 · approved a webhook is retried with backoff for 24 hours code · go money.go code · go charge.go code · go idempotency.go code · go refund.go code · go ledger.go code · go webhook.go test · go TestMinorUnitsRounding test · go TestDeclinedCardNotRecharged test · go TestIdempotentReplay test · go TestIdempotencyKeyExpiry test · go TestRefundNeverExceedsCapture test · go TestRefundPartialTwice test · go TestCaptureWithinAuth test · go TestLedgerBeforeReport test · go TestWebhookBackoff24h test · go TestWebhookGivesUpAfter24h
payments · example service · hand drawn affects PAY-KI-07 · open refund exceeded captured amount PAY-SYS-012 · approved a refund never exceeds the captured amount PAY-SYS-014 · approved an idempotency key replays the same response PAY-SYS-008 · approved a declined card is never charged twice PAY-SYS-021 · approved a webhook is retried with backoff for 24 hours code · go refund.go test · go refund_test.go code · go idempotency.go test · go replay_test.go code · go webhook.go test · go webhook_test.go

promisecodetestknown issue

hover a card · its links light up

Configured checks validate recorded links when they run in your workflow. To see a map that was actually built, open the public one below.

A real one

The same map, on a public repository.

buger/jsonparser: a Go JSON parser, more than ten years in production. Its map and its register are public.

portal.reqproof.com/projects/jsonparser
The seeded map of jsonparser in the Proof portal, centred on one requirement about ParseBoolean.
The seeded map of jsonparser, centred on one requirement about ParseBoolean. It shows what that promise rests on and what it can reach.
123

requirements for this project, each one a sentence you can open. 28 are approved; the other 95 are in review.

141

functions in the library, traced to the promises they serve. The tree also carries 139 generated benchmark stubs, all stamped against one stakeholder requirement, so the full count is 280. The project's changelog published 279/279 at v1.5.0, before the last function landed.

6

defects found and fixed upstream, each carrying a test you can run

2

misses published, with their postmortem. Both are defect records on the same public register

SEEDED PRODUCT DEMO Open findings on branch proof-demo are demonstrations. That capture is the probelabs/jsonparser fork. The real register is buger/jsonparser master. Draft requirements remain candidates; approval records authority for the promise. What this record does not prove →

Blast radius

Touch one function. See what needs checking.

Change one thing and the map lists what depends on it, before you merge.

payments · example service · hand drawn ONE PROMISE CHANGED THE CHANGE STARTS HERE THE WALK FOLLOWS PROMISES, CODE, TESTS AND PAGES 31 PROMISES EACH ONE APPROVED 10 IMPLEMENTATION FILES 10 FILES ON THE PATH OF YOUR CHANGE 33 TEST FILES 33 LINKED TESTS TO ASSESS FOR THIS CHANGE 56 DOCUMENTATION PAGES 56 LINKED PAGES TO REVIEW FOR POSSIBLE UPDATES 130 linked, listed THE WALK ENDS · NO CYCLES
One promise, walked to what it can reach. The counts in this drawing are for the example service, and the counts you can check are on the register and the live graph.

One promise in the drawing above, walked to everything that depends on it. Recorded reach gives you candidates to investigate; it does not establish which behaviors changed.

Questions

Ask it, in plain words.

The map answers the questions engineers ask before a change. These are drawn on the example payments service, not a live repository.

“If I change Refund(), what could be affected?”

Refund() PAY-SYS-012 PAY-SYS-017 PAY-SYS-003 refund_test.go ledger_test.go capture_test.go money_test.go PAY-KI-07

the map answers · three promises · four tests · one known issue, already on the path

“Is this bug already known?”

affects reproducer PAY-KI-07 · openrefund exceededcaptured amount validated by a person PAY-SYS-012the promise it breaks test · gorefund_payki07_test.go

the map answers · yes · PAY-KI-07, reproducer attached · a person validates every finding before it reaches you

“What does this component promise?”

componentpayments PAY-SYS-003minor units PAY-SYS-008no double charge PAY-SYS-012refund capped PAY-SYS-014same response PAY-SYS-017capture capped PAY-SYS-021retries 24h PAY-SYS-025ledger first approved under project policy

the map answers · the list, in plain words, each line with its recorded approval and authority

The questions are real ones. Your engineers ask it. Your CI asks it when the configured CI checks run. Your agents ask it while they work.

Who approves

Agents read the map. You decide who approves it.

Your agents read the map over MCP while they work. Proposals and new evidence move through your repository and approval workflow. Approval follows the saved project policy. Current proof init templates allow agent approval at every assurance level. Configure delegation explicitly before relying on it for higher-consequence work; projects without an agent delegation policy deny agent approval.

Recommended policy: reserve higher assurance for a person.

This example requires current approval at A/B and permits agent approval at C–E. It is a supported configuration, not today’s initialization default. Keep the project’s existing role and comment requirements.

project:
  approval:
    required_for:
      assurance_levels: [A, B]
    agent_autonomous_for:
      all: false
      assurance_levels: [C, D, E]

Approval records a decision. It does not run all checks or grant merge or deployment permission. Those transitions need their own current evidence and authority.

DRAFT · AGENT APPROVAL FOLLOWS THE ASSURANCE LEVEL STILL A DRAFT APPROVED BY THE ENGINEER WHO OWNS IT PAY-SYS-012 · APPROVED RECORDED INTENT, LINKED EVIDENCE payments · example service · hand drawn
Where the line sits between what a machine decides and what a person decides is written down, and you can move it.

When code moves

Keep the obligation. Recheck its evidence.

A changed code revision, requirement or recorded evidence basis can make an earlier result unusable. Run the applicable checks and inspect which evidence is current, stale or missing. Unrecorded dependencies remain a limitation of the map.

Repairing a link restores traceability; it does not establish behavior. Renew the affected evidence, and authorize any amendment to the promise under the applicable policy. See when evidence needs to be renewed.

Start

Start with one component.

Pick the one you would least like to be asked about. The audit starts there, and the map and the gate are yours.

We scope a first use of Proof in your existing repo and agent workflow. Private code stays private. We countersign your NDA before we read a line of your code.

Prefer a call? Ask for 20 minutes →

Leonid Bugaev · founder
sets the bar, and publishes the misses from public work

Inspect a change, not just a diagram.

A retry setting changes. The old check no longer supports the promise. Follow the actual passing, failing and corrected runs, with the gaps still visible.

Explore a requirement and its evidence → · Open the runnable example → · Compare workflows →