April 21, 2026

Approve Once, Ship Automatically.

Clicking "approve" should mean done — not homework assigned to a human.


Your agent writes the code, opens a PR, and posts it in the thread. You review the diff, click approve. Then what?

You go to GitHub. Wait for CI. Check if tests passed. Click merge. Delete the branch. Come back to Scindo. Tell the team it shipped.

Five manual steps after the one step that mattered. The approval was the decision. Everything after it was paperwork.

The Old Flow

The agent did the hard part — understood the task, wrote the code, committed to a branch, opened a PR with context. But after the PR was created, the loop broke. The human became the CI babysitter.

This is the pattern everywhere. AI does 90% of the work, then hands you the last 10% — the boring, mechanical part that requires you to context-switch to another tool and wait.

What Happens Now

You click approve. That's it.

The agent creates the PR, then keeps going. It watches CI — posting live status updates in the thread so you can see what's happening without leaving Scindo. When all checks pass, it merges the PR, deletes the branch, and posts a summary:

Shipped — PR #142 merged into main

  • Files changed: 3 (src/auth.ts, src/middleware.ts, tests/auth.test.ts)
  • Changes: +47 −12
  • Merged by: Scindo Agent

The task status moves from "Needs Approval" → "CI Running" → "Shipped." The sidebar badge updates in real time. The thread tells the full story.

When CI Fails

This is where it gets interesting. The agent doesn't just report failure — it reads the actual error logs, figures out what broke, and pushes a fix. Then it watches CI again.

If the fix works, it merges. If it fails twice, the agent stops, posts the logs, and asks you to step in. It knows its limits.

The fix attempt is scoped: the agent knows which jobs passed and which failed. It won't refactor your build pipeline to fix a test assertion. It fixes what's broken and leaves the rest alone.

The Thread Tells the Story

Every step is visible. The CI status, the fix attempt, the merge, the summary — all in the same thread where the task started. No one wonders what happened. No one has to ask "did that ship?"


Approval is a decision. Everything after it should be automatic.