debreef

For Java / Spring teams reviewing finished changes

Explain a change you
did not watch being written.

An agent or a teammate finished a multi-file change. You are asked where the rule lives, what happens on failure and why it was built this way. Debreef answers from the code at a pinned commit, and says what it could not determine.

In development. Self-hosted beta in qualification.

Explore a captured change

What happens to the caller’s parsing mode?

Public source · Read only

Google Gson replaces a boolean leniency flag with Strictness. Inspect the two revisions and the source behind each observation.

Loading the captured public source…

The example has no recorded rationale, test results or human decision.
Source observations and unknowns are labelled explicitly.

Download this source handover

What Debreef checks

Summaries tell you what changed.
Debreef shows you what is true at head.

These are views in the self-hosted application, which is in beta qualification. The public example above shows source evidence only. Everything except written explanations works without a model provider.

PR claims, checked against the code

Class, method and endpoint names mentioned in the PR description and commit messages are looked up in the code at head. Statements are kept exactly as written, then compared with what the code does.

  • Supported
  • Contradicted
  • Not established

Each name is shown as changed, present but unchanged, removed, or not found. Missing evidence is never reported as a contradiction.

Where the implementation lives

Each feature in the change is mapped to its members by role: entry point, orchestration, core logic and supporting configuration. Every member opens the exact lines at the pinned commit.

  1. 1 Entry point
  2. 2 Orchestration and core logic
  3. 3 Supporting code and configuration

Members are named from the code itself, not from a summary.

Flows and failure paths at their real strength

From an entry point, each call is drawn and labelled by how certain the analyzer is. With a configured provider, failure questions list thrown exceptions, where each is caught and any declared retries.

  • Exact call
  • Possible call, with candidates
  • Unresolved gap

An unresolved call stays a visible gap, not a confident path.

Missing rationale, said plainly

New external calls, transaction boundaries, authorization changes and new abstractions are listed as observed choices. Reasons appear only as quoted text from the PR, commits or ADRs. When nobody wrote down why, Debreef says so.

  • Recorded and quoted
  • Observed in code. Rationale not recorded.

A generated reason never appears as recorded history.

Exact evidence, stated uncertainty

Observations cite file, lines and commit, and cited bytes are verified by SHA-256 on every read. Explanations use the head commit only. Methods removed along the way live in History.

  • Changed
  • Added
  • Reused, unchanged
  • Removed before head

What source alone cannot establish, such as runtime configuration, is labelled unknown.

Human decisions, kept separate

An owner or reviewer records keep, change or revisit-when with a reason. Records are append-only, carry author, role and time, and are marked stale when a later import changes the code they link to. A published handover exports to Markdown and PDF.

  1. 1 Recorded at the time
  2. 2 Review assessment
  3. 3 Human decision

Disagreements stay visible until a reviewer resolves them.

From a real run

The self-hosted application,
on a public Spring change.

Screens from a development installation of Debreef on spring-petclinic-rest pull requests #302 and #328 (Apache-2.0), 29 October 2026. The answer was written by a configured model provider and saved only after Debreef’s checks. Names are the reviewer account used for the run.

Feature view in Debreef for GET /api/v2/owners: entry point OwnerRestController.listOwnersPage, orchestrator ClinicServiceImpl.findOwners, and four persistence methods, each marked Added with an Open source link.
How a feature is built: entry point, orchestration and persistence members, each opening the exact lines at the pinned commit.
A saved Debreef answer to the question of what happens when a client adds a pet to an owner id that does not exist. The direct answer says addPetToOwner returns HTTP 404 when the owner lookup returns null, cites OwnerRestController.java line 136, and lists what the evidence does not establish.
A real model answer, saved by Debreef after schema, claim-support and citation checks. What the source cannot settle is listed as not determined.
The evidence panel for that answer: claim c1, validation valid, support verdict supported, the quoted line if owner equals null return NOT_FOUND, and OwnerRestController.java lines 136 to 151 highlighted with Digest verified.
Every claim opens its cited lines. Cited bytes are checked against the captured file by SHA-256.
A decision card for an authorization change at OwnerRestController.java line 101 with three zones: Recorded at the time says the rationale was not recorded, Review assessment has none attached, and Human decision shows a Keep decision with its reason, the reviewer and the time.
The three decision zones: what was recorded at the time, review-generated options, and an append-only human decision with author, role and time.

Deployment & privacy

Your source has
a boundary.

Debreef is being prepared for self-hosted use. Source navigation works without a model.

Read the privacy notice
01

A local workspace

The intended v1 scope is Java 17/21, Maven and Spring Boot 3. Runtime behavior that source alone cannot establish stays unknown.

02

An explicit provider boundary

Model features require your chosen provider, an explicit code disclosure decision and your credentials.

03

A bounded public example

This site has no repository import, accounts, analytics or outbound model connection. Debreef sets no cookies; preview access protection may set a hosting cookie. Hosting involves ordinary web request data.

This example does not demonstrate private-repository security or production qualification.

Assisted beta

Bring a change
you need to explain.

Public enrollment is not open yet. Tell us about a public Java/Spring change and the question you need to answer about it.

Contact / hello@debreef.ai

Prepare an assisted beta inquiry

Use a public repository link and a short description of your goal. Do not include private source, credentials or confidential company information.

This website submits nothing. Your email app handles the inquiry.

Request assisted beta access by email

Opens your email app with a short set of questions already filled in. You choose whether to send. Include only public links and a short description of the change you want to understand.

We review inquiries manually. A request does not create an account, reserve a place or guarantee access.