33,707
Unplanned conceptual changes are the primary driver of agent interaction failure.
Study of agent-authored pull requests, MSR 2026
Open source · local first · MIT
Tibo lists them.
Reads your diff. Names what the agent decided on its own. Keeps a ledger of what you confirm. Runs locally — no account, no API key, no model call.
$ tibo
3 unconfirmed decisions
1. dependency added nodemailer ^6.9
src/email/send.ts · not present before this change
2. new environment var SMTP_FROM
src/email/config.ts · read at startup, no default
3. possible module overlap src/utils/mail.ts
matched an existing mail utility
[k] keep [r] reject [l] later [w] why
The problem
The failure everyone knows is the agent writing bad code. You see it, you fix it.
The failure that costs you is the agent writing reasonable code that quietly decides something. A library you didn't pick. A column you didn't design. A second way of doing something you already had one way of doing. Each one passes review. They only become a problem in aggregate, weeks later, when nobody remembers who decided what.
Evidence
33,707
Unplanned conceptual changes are the primary driver of agent interaction failure.
Study of agent-authored pull requests, MSR 2026
+54%
bugs per developer
Faros AI 2026 telemetry, 22,000 developers
+861%
code churn
Faros AI 2026 telemetry, 22,000 developers
How it works
01
Structural detection, locally. Dependencies, env vars, schema changes, exports, and possible module overlap. No model, no embeddings, nothing uploaded.
02
Keep, reject, or defer. Tibo shows the evidence and leaves the decision with you.
03
Decisions land in .tibo/decisions.md. A fresh session can run npx --yes @goankan/tibo@0.1.1 summary instead of asking you to explain the project again.
Who it is for
Tibo fits after an agent task, before you merge, and whenever a project has more decisions than one person can remember.
01
Keep fast experiments from quietly becoming three competing architectures.
02
Leave a compact record of choices for the teammate who joins the next session.
03
Add a review checkpoint without sending source code to another service.
Best use cases
New dependency
Tibo shows the package, version, added import lines, and possible existing utilities before you accept the choice.
Data change
Tibo flags migration statements, destructive operations, and nearby rollback evidence.
Configuration
Tibo lists new environment variables and where the application reads them.
Parallel code
Tibo compares new exports and filenames with nearby files and labels the result as possible overlap.
When to use it
npx --yes @goankan/tibo@0.1.1 summary so the agent sees what you already agreed to.Coming soon · case study
We are dogfooding Tibo on a production-style application and will publish the findings: decisions caught, time spent reviewing, false positives, and what the ledger changed in the next session.
What it doesn't do
Learn
Three small steps turn a finished agent task into a reviewable decision.
Read the full agent guide →Guide 01
Run Tibo after an agent makes a change, then inspect the working diff.
Read guide →Guide 02
Follow the evidence, then keep, reject, or defer one finding.
Read guide →Guide 03
Reject a change, approve a narrow Codex repair, test it, and scan again.
Read guide →Guide 01
Run Tibo after an agent makes a change, then inspect the working diff.
npx --yes @goankan/tibo@0.1.1 scanGuide 02
Follow the evidence, then keep, reject, or defer one finding.
npx --yes @goankan/tibo@0.1.1 scan --json
npx --yes @goankan/tibo@0.1.1 decide <finding-id> keepGuide 03
Reject a change, approve a narrow Codex repair, test it, and scan again.
npx --yes @goankan/tibo@0.1.1 decide <id> reject
# approve the repair
npx --yes @goankan/tibo@0.1.1 scan
npx --yes @goankan/tibo@0.1.1 summary