Building Codapult and Codapult Guard
Building SaaS infrastructure and developer tools with TypeScript and Next.js. Creator of Codapult and Codapult Guard.
Markdown supported · ⌘↵ to post
Observability without traces is guesswork. I log tool args latency and which policy gate fired so a bad run is a five minute debug not a day.
This tracks with something I've run into building agent tooling for ops workflows: tests catch behavior regressions but never structural ones, and once you're gluing multiple agent-driven changes together the drift compounds quietly. The baseline idea, flag new violations rather than the whole existing debt, is the right call, trying to get a real project to zero first is a nonstarter.
One thing I didn't see addressed: what happens when an agent's change is a legitimate, deliberate refactor that's supposed to move the policy itself, not just violate it. Say a requirement genuinely calls for introducing a new adapter layer that didn't exist before, the agent's diff will look exactly like a violation to Guard (a new import crossing an unapproved boundary) even though it's the correct outcome. Does Guard have any notion of "this change is proposing a policy update" versus "this change breaks an existing rule", or does that always fall back to a human editing the policy file after the fact? That boundary between fact-checking and rule-authoring seems like the part that'll matter most once agents start doing bigger structural work, not just feature slices within an existing shape.
Vlad Zoff
Rulestack
Guard's baseline accept --reason is close to what we landed on for a file our agent keeps growing: going over its size budget only passes if the same commit raises the budget with a written reason. A budget well above the actual size fails too, a blunter take on your "gradually tighten things".