Five questions to ask a dev partner before you sign. They're in the image.
If they get vague on any one of them, that's your answer.
The one never to skip: #3. You should own the code and the repo from day one, admin access included.
#startups
@GergelyOrosz Seeing the same. The risk isn't forgetting git commands, it's losing the habit of reading diffs. When the agent commits, someone still owns what changed and why. We keep commits small and a human reads the diff on anything customer-facing.
Most MCP servers I see are API wrappers: one tool per endpoint. That is the fastest way to make an agent worse. A few rules we now follow when designing tools for agents:
Exceptions only: the agent escalates when it is unsure or a rule fires. Scales best and is the hardest to build, because you have to define "unsure" in code.
@GergelyOrosz Speed metrics are easy. Reliability baselines are hard. If you only track throughput on AI-authored PRs, you'll hit a rollback you didn't budget for.
Most teams find out what the contract was by reading the incident report.
Write the contract first.
The upgrade is free.
Auditing undocumented behavior after a production incident is not.
Every model update is a silent behavior change.
You upgrade the model. Your agent runs.
Something is different — but you don't know what.
Because you never wrote down what the agent was supposed to do.
A behavior contract for an agent defines:
— what it's authorized to decide
— what counts as a successful run
— what output is off-limits
— what triggers escalation
Without this, a model upgrade is an unknown behavior delta.
@samgoodwin89 IaC generated by an agent needs a constraint layer it can't override. Not config — hard constraint. The agent generates everything inside the envelope. The envelope is what the human defines and owns.
@mitsuhiko The cross-repo problem multiplies with depth. One layer of staleness is manageable. Three layers — each dependency has its own mutation rate. The agent's context is a snapshot of a world that's already moved.
@burkeholland Done condition that's externally observable is a different problem than one the agent evaluates internally. Self-evaluation fails — the agent doesn't know what it doesn't know. External observable is the honest version.
@jamesacowling Good increment: returns something testable before the next step starts. Most AI increments fail this — they return a half-state that's only meaningful in context. That's a coupling problem, not a decomposition problem.