SMALL BOTS. BIG ASSUMPTIONS.

Invariants are
the new interface.

Give agents freedom to implement.
Be precise about what must remain true.

Watch a Go package go sideways.
Then give the bots a contract.

Enter the workshop
01 / THE WORKSHOP

Same interface. Different outcomes.

INTERACTIVE SIMULATIONdemo / pkg / inventory
01
Meet your very confident team.

The interface checks the shape. Who checks the behavior?

NO CONTRACT
READY
GO
pkg/inventory/inventory.go • proposed
✓ All example implementations satisfy Inventory.SIMULATED
THE RECEIPTS

A signature isn’t a promise.

Reserve(qty int) error tells us how to call it. It doesn’t say whether stock can go below zero.

BEFORE5
REQUEST8
AFTER—
Waiting for the first proposal.
Take the controlsBreak a rule. Try a request. Test the contract.
TRY THE ACCEPTED CODE

Operations use the accepted implementation.

MAKE A BAD PROPOSAL
GUIDANCE ≠ ENFORCEMENT

Turn checks off with the file still present. A written instruction alone can’t block a bad patch.

THE CAST & THE COMEDY
02 / THE IDEA

The implementation can change.
The promises shouldn’t.

01

The interface

Go checks that the methods exist with the right signatures. An implementation can pass that check and still get the behavior wrong.

Reserve(qty int) error
02

The instructions

Put package-specific invariants in AGENTS.md. Give agents the context they need before they start making changes.

Stock must never be negative.
03

The evidence

Turn those promises into tests. Reject failing proposals, explain what broke, and let the agent find a valid implementation.

Write it. Check it. Keep it true.

A Markdown file is a conversation.
A passing check is evidence.