The control plane for autonomous software factories

You’ve probably spent hours perfecting your AGENTS.md, CLAUDE.md, and skills, only for the agent to forget most of it and do whatever it wants anyway.

How Synkro sits between coding agents and your systems Coding agents send tool calls into the Synkro control plane, which holds rules, access, and verification. Calls that pass continue to your files, database, and cluster. Calls that break a rule are returned to the agent with the fix. Every decision is written to an append-only log. AGENTS IN CLAUDE CODE CODEX CURSOR ANTIGRAVITY + MORE SYNKRO · CONTROL PLANE RULES R001–R012 ACCESS PER RUN VERIFY OUTCOMES 2,406 checked · 12 agents active · 41 PRs shipped YOUR CODE YOUR DATABASE YOUR CLUSTER RULE BROKEN · RETURNED WITH THE FIX DECISION LOG APPEND-ONLY 100% CHECKED ENFORCING 01 RULES 02 ACCESS 03 VERIFY How Synkro sits between coding agents and your systems Coding agents send tool calls into the Synkro control plane, which holds rules, access, and verification. Calls that pass continue to your files, database, and cluster. Calls that break a rule are returned to the agent with the fix. Every decision is written to an append-only log. AGENTS IN CLAUDE CODE CODEX CURSOR ANTIGRAVITY + MORE SYNKRO · CONTROL PLANE RULES R001–R012 ACCESS PER RUN VERIFY OUTCOMES 2,406 CHECKED 12 AGENTS ACTIVE 41 PRS SHIPPED YOUR CODE YOUR DATABASE YOUR CLUSTER RULE BROKEN · RETURNED WITH THE FIX DECISION LOG APPEND-ONLY 100% CHECKED ENFORCING 01 RULES 02 ACCESS 03 VERIFY

Engineering time should go into the product, not the plumbing.

Agents run the line at full speed. Synkro sets the rules, controls access, and verifies the work.

Rules that compound

Every review comment and correction commit becomes a rule the next agent follows, so the same mistake never ships twice.

review on PR #4821: use the retry helpercorrection commit c91f2a0 applied the fixthe same fix requested in 7 PRs by 3 reviewersrule R012: network calls go through withRetry()promoted, enforced on every agent's next runrule R003: parameterized SQL onlyrule R004: no raw kubectl in CI workflowsreview on PR #4821: use the retry helpercorrection commit c91f2a0 applied the fixthe same fix requested in 7 PRs by 3 reviewersrule R012: network calls go through withRetry()promoted, enforced on every agent's next runrule R003: parameterized SQL onlyrule R004: no raw kubectl in CI workflows

A valid credential is not a valid action

Keep the IAM stack you already trust. Synkro adds the missing runtime decision: whether this command, edit, install, or deployment step should happen now.

existing identity: verifiedexisting credentials: unchangedtask INF-27: restore the runner cachekubectl get pods in staging: allowedkubectl delete pod in prod: blockedcredential remains valid; action deniedno identity stack cutover requiredexisting identity: verifiedexisting credentials: unchangedtask INF-27: restore the runner cachekubectl get pods in staging: allowedkubectl delete pod in prod: blockedcredential remains valid; action deniedno identity stack cutover required

Proof, not “done”

Work is measured against acceptance criteria and real outcomes, and status reports back to the ticket.

ticket PAY-142: 4 of 6 acceptance criteria metretries with exponential backoff: metidempotency key on submit: metintegration test for double charge: still openresult posted back to the ticket in Linearticket SRCH-88: 5 of 5 met, done by Codexdone means the criteria pass, not that the agent says soticket PAY-142: 4 of 6 acceptance criteria metretries with exponential backoff: metidempotency key on submit: metintegration test for double charge: still openresult posted back to the ticket in Linearticket SRCH-88: 5 of 5 met, done by Codexdone means the criteria pass, not that the agent says so

Understand Agent ROI

See which agents ship useful work, which ones create rework, and which rules cut wasted tokens and engineering time.

41 tasks shipped, 2.4M tokens9 tasks needed rework, 612K tokens4 tasks abandoned, 287K tokensrule R012 saved 141K tokens across 22 runsrule R003 stopped raw SQL 14 timesclaude-opus-4-6: 486K tokens this month6.5 engineering hours saved on correction commitsforecast 1.2M tokens, actual 1.1M41 tasks shipped, 2.4M tokens9 tasks needed rework, 612K tokens4 tasks abandoned, 287K tokensrule R012 saved 141K tokens across 22 runsrule R003 stopped raw SQL 14 timesclaude-opus-4-6: 486K tokens this month6.5 engineering hours saved on correction commitsforecast 1.2M tokens, actual 1.1M

Frequently asked questions

what is an autonomous software factory?

It is an engineering system where coding agents plan work, edit files, run commands, delegate tasks, and call external tools with less human supervision. The faster that system becomes, the less practical it is to review every action by hand.

why do I need this?

Agents treat AGENTS.md, CLAUDE.md, and skills as context, not guarantees. They can miss a rule, lose it in a long session, or take a conflicting shortcut. Synkro checks the action itself, so the instruction still applies when the agent forgets it.

which agents and harnesses does it work with?

Synkro works at the tool-call boundary, so the same rules can apply across Claude Code, Codex, Cursor, and other coding-agent harnesses. If your harness is not supported yet, we build the integration.

do we have to change how the team works?

No. Engineers keep the agents and editors they already use. Synkro sits at the tool-call boundary, so it sees every command, edit, and install as it fires and needs nothing rewritten. Setup is one CLI install; rules are pulled from the registry on the agent’s next run.

what happens when an agent breaks a rule?

The call never runs. Synkro returns the reason and the approved fix to the agent, such as a parameterized query instead of raw SQL or a Kubernetes rollout instead of deleting a pod directly. The agent corrects the action and continues. Nothing that breaks a rule reaches your code, data, or cluster.

when does a human get involved?

Each rule has a mode: flag allows the action and records the rule match; block refuses it; fix refuses it and returns the correction; ask refuses the first attempt and waits for the person to reply `allow it`. That releases one matching retry, not the session.

where does your code and data live?

Where it already lives. The check happens where the agent runs, locally or inside your VPC, and your source never leaves it for the check to happen. What Synkro keeps is the decision log: who tried what, which rule applied, the outcome, and the cost. It only appends, and it exports as JSON.

how do i get started?

Start with one repository and one coding-agent harness. Synkro reviews the PR comments your team has already accepted and suggests rules from those repeated decisions. You choose which rules to enforce before the agent’s next run.

what does it cost?

Usage-based. You pay per decision: every tool call Synkro checks is one. No seats.