Every breaking change leaves fingerprints

Open a case

Start a run: paste a link, the 3 AI subagents take it from there

Paste a GitHub pull request or repo link and press Enter to launch all 3 autonomous subagents

Cold cases (example links):

How a case gets solved

The S1–S9 workflow pipeline · nine steps when an upstream pull request changes a contract

An upstream team changed a contract. SyncSnitch found every downstream break, generated a backward-compatible fix, proved it in containers and opened a draft PR after a human approved.

S1
Dust for prints
Detect

Contract drift in OpenAPI, protobuf, Alembic

Deterministic
S2
Follow the trail
Trace

Static trace to consumer file:line

Deterministic
S3
The Tracer
Tracer subagent

Confirms the real impact

AI subagent
S4
The Transformer
Transformer subagent

Writes the tolerant-reader adapter

AI subagent
S5
The lab
Verify

V1–V6 checks in Docker containers

Docker lab
S6
The Verifier
Verifier subagent

Reads failures, loops back once

AI subagent
S7
The warrant
Human approval gate

A person approves or rejects

Human
S8
File the case
Draft PR

Opens the companion draft PR

Deterministic
S9
Close the file
Run artifact

Run record + replay page

Deterministic

The ruleHow SyncSnitch decides

AI investigates and writes the fix. Code decides pass or fail. A person signs off.

S1, S2, S8 and S9 use zero AI tokens. It only ever edits the downstream repo.

Before you open a case

What a repo needs

Requirements for the full S1–S9 run · one GitHub repo with both services

1 · The upstream service Owns the contract

  • REST: contracts/openapi.yaml in the service folder (or the repo root).
  • gRPC: a .proto file directly in contracts/.
  • Database: Alembic migrations in migrations/versions/*.py (new files between base and head).
  • A change to compare: a commit that edits those contracts. Paste a /pull/<n> or /compare/<base>...<head> link, or SyncSnitch picks the latest contract commit.

2 · The consumer service Gets the fix

  • Another folder in the same repo with a pyproject.toml (a Python project).
  • Tests that run with uv run pytest -q: the Transformer and check V1 use exactly this.
  • Real usage of the changed fields in .py, .sql, .proto files or JSON fixtures under tests/. No usage means no breaking change for it, and the agents have nothing to fix.

3 · Optional Stronger proof, private repos

  • A Dockerfile in both services and Docker on the machine running the site: V3–V5 run in containers. Without them they are reported as skipped, never as passed.
  • Private repos: the server needs GITHUB_TOKEN; opening the draft PR needs gh logged in with push access.

Not supported yet: consumers in other languages than Python, and contracts in other paths. The cold cases on the home page (kshiti26-11/demo: orders-service → billing-service) meet every requirement.