Changes

Check an agent's work in minutes, not hours

Open a change from any branch. Branchscope compares the code graph before and after, flags what breaks your architecture, and draws what changed. A person reads the diagram, then merges.

alice/invoices › Changes › #7

Findings

Breaks controllers-no-data

InvoicesController.Create() uses BillingDbContext

src/Billing.Api/Controllers/InvoicesController.cs:20

Needs review: table-writes

InvoicesController.Create() writes invoices

src/Billing.Api/Controllers/InvoicesController.cs:20

Change maps

See what changed, not which lines

Every change becomes a map of what it adds, edits, renames and removes: functions, types, endpoints and tables, and the calls and data access between them. Across TypeScript and C#, in one picture.

alice/invoices › Changes › #12

#12 Add invoice export

by release-bot, an agent acting for alice

1 rule broken2 new1 edited

  • GET /invoices/export
    new endpoint
    handled by
    ExportController.Get()
  • ExportController.Get()
    calls
    InvoiceService.List()
    body edited
  • ExportController.Get()
    reads
    AppDbContext.Invoices
Breaks controllers-use-services: ExportController reads the database directly (ExportController.cs:18). Not allowed; a person reviews before anything merges.

Findings

Your architecture, checked on every change

Write layers and rules in branchscope.json. A review lists what a change breaks, down to the file and line, and says whether it's not allowed or needs a person to look. Rules already broken before the change are counted, not blamed on it.

alice/invoices › Changes › #7

Findings

Breaks controllers-no-data

InvoicesController.Create() uses BillingDbContext

src/Billing.Api/Controllers/InvoicesController.cs:20

Needs review: table-writes

InvoicesController.Create() writes invoices

src/Billing.Api/Controllers/InvoicesController.cs:20

Renames

Moves and renames aren't churn

Code that only moved or was renamed is recognised by what it is, not where it was, so it doesn't drown the review in additions and removals. Rules follow it to its new name.

alice/greeter › Changes › #3

Renamed or moved

  • greet()→welcome()
  • InvoiceService→BillingService

Plans

Hold a change to its plan

A PLAN.md can say what a change may touch, and what it mustn't. The review shows anything outside it, so an agent that wandered off the task is easy to spot.

alice/invoices › PLAN.md
# Plan

Add invoice export: an endpoint in the API.

```branchscope
{
  "touches": { "files": ["src/Billing.Api/Controllers/**"] },
  "mustNotTouch": { "layers": ["data"] }
}
```

Plan: outside what it says it touches

src/Billing.Api/Services/TaxService.cs

Agents

Agents open changes; people merge

Agents push their own branches and open changes over git, the CLI or MCP. They can read every review as text and JSON, with graph node IDs to cite. Only a person can merge into a protected branch.

alice/invoices › Activity
  • release-bot agent, for alice, via MCPopen_change · Opened change #4ok
  • release-bot agent, for alice, via MCPmerge_change · main is a protected branch: agents can't update itrefused

#4 · opened by release-bot, an agent acting for alice

Review your next agent change in Branchscope

Import a repository from GitHub or GitLab, with its open pull requests, and its changes get graph reviews straight away.