Agent-assisted development
Environments are the unit of reproducibility, not code
When an agent writes code that passes locally and fails in CI, the instinct is to blame the model. In practice it is almost always the environment: a toolchain minor version, a missing system library, an env var set by hand and never written down.
The fix that held up was to stop treating the environment as ambient context and start treating it as the artefact. If the environment is defined as data and addressed by its hash, the agent is targeting a fixed contract rather than a moving filesystem.
[toolchain]
node = "20.11.1"
pnpm = "9.1.0"
[packages]
apt = ["libpq-dev"]
[agent]
allow = ["pnpm test", "pnpm build"]The trade-off is up-front friction: you have to declare things that used to be implicit. The payoff is that reproducibility stops being a hope and becomes a property of the system.