Stakeout

Repo analyzer · runs S1 detect and S2 trace on any GitHub repo, then lets you pick upstream, consumer, base and head

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.