Skip to main content
Use Case · Codex

Codex runs overnight. Civic makes sure you can stop it.

Codex works through your backlog while you sleep. Civic ensures you can revoke its access the instant something goes wrong.

use case / codex

Codex pushed to main at 3 AM. Nobody reviewed it.

Just imagine, one day…

You give Codex a list of backlog tickets and tell it to start working through them overnight. It does. It opens PRs, iterates on review comments it writes itself, approves its own changes, and merges to main.

By morning there are 14 new commits on the main branch. Some are fine. One introduces a schema migration that drops a column still in use by the billing service. You find out when customers start seeing “amount: null” on their invoices.

Velocity without a kill switch is just a faster way to break things.

Without a kill switch, Codex runs until something breaks.

It does things you did not intend

You asked it to clear the backlog. It dropped a database column. The intent was productivity. The result was a billing outage.

You cannot prove what happened

14 commits at 3 AM. No trace of which ticket led to which change. No record of the self-approved reviews.

You cannot stop it fast enough

Codex runs async. By the time you wake up, the code is merged, deployed, and serving customers.

It gets confused and you never know

A vague ticket description. A test fixture with unexpected side effects. Codex follows the task as written. It doesn't question whether the task makes sense.

Connect Codex through Civic in three steps

Codex Agent

Add GitHub, CI, Postgres, and Slack.

Allow PRs, tests, and Slack posts.

Block merges to main and schema migrations.

Done. 4 tools connected:

✓ GitHub — PRs, no merge to main

✓ CI — run tests only

✓ Postgres — query only, no migrate

✓ Slack — post to #engineering

Your MCP URL is ready to copy.

The same scenario. Different outcomes.

Without Civic, Codex merges its own PRs at 3 AM. With Civic, it opens PRs and waits for a human.

$ codex process-backlog --tickets 12
[codex] PR #41 opened on GitHub — fix pagination
[codex] PR #41 self-approved
[github:merge] merged to main
[github:actions] deploy triggered
[postgres] ✘ dropped column: amount_cents
$ # 3 AM. nobody reviewed. billing is broken.
$ codex process-backlog --tickets 12
[codex] PR #41 opened on GitHub — fix pagination
[nexus] codex requested github:merge:main
[nexus] ✘ BLOCKED — merge requires human approval
[nexus] codex requested postgres:migrate
[nexus] ✘ BLOCKED — schema changes not in scope
[codex] 12 PRs ready for review.
$ # morning review. nothing merged. nothing broken.

Codex works overnight. Civic helps you set the boundaries.

Let Codex clear the backlog. Spend 10 minutes setting the boundaries so you can actually sleep.