thillel
yesterday at 9:12 PM
I think there are two different problems that get mixed together here:
1. Did the engineer personally understand this change?
2. Is this change allowed to affect critical parts of the system?
The first one is hard to enforce mechanically. You can require design docs, tests, PR explanations, walkthroughs, etc., but a determined person can route all of that through an LLM too.
The second one is more enforceable, and I think it matters a lot in the AI-coding world.
Not all code deserves the same review posture. A dashboard, script, prototype, migration helper, etc. should be able to move fast. But auth, billing, security-sensitive logic, and core business rules should not quietly depend on code that was “just agent output” or barely reviewed.
The pattern I’ve been experimenting with is explicit trust/review tiers in the codebase:
- low-risk / vibe-coded code can exist
- agent-touched files get marked as lower-trust
- humans can restore trust after review
- CI enforces that high-trust code cannot import lower-trust code
- critical directories can be required to stay high-trust
This doesn’t prove the engineer understood the code. Nothing really does.
But it does create review memory in the repo. If a file was touched by an agent, that state is visible in the diff. If someone promotes it back to a trusted tier, that promotion is also visible in the diff, and reviewers can ask “did you actually read this?”
I ended up building a small OSS tool around this idea called Tears: https://github.com/Thillel/tears
The slogan is a bit tongue-in-cheek, but it captures the point: vibe-code responsibly.