Why the gates
A coding agent that's wrong fails a test and tries again. A printing agent that's wrong runs for six hours on the wrong plate, or makes a part that passes every check and doesn't fit. I wanted something I could tell "make me a mount for this" and trust with the printer.
How a part gets made
Parts are Python programs on top of a small modelling library with built-in checks. A design round ends with a model you can spin around in the browser and approve or send back. Only an approved design gets sliced, and only a sliced job that passes the guards goes to the printer.
The gates
| Gate | What it stops |
|---|---|
| A failed check exports nothing | A model that fails any geometric check never reaches the slicer |
| Design review can't print | The review workflow has no path to the printer; printing is a separate workflow with its own authorisation and a physical preflight |
| Plate and bed guard, checked three times | A job set for the wrong plate or too cold a bed is refused at slice, at upload and at start |
| Start conditions | Printer idle, plate confirmed, and the file hash matches what was reviewed |
The plate guard exists because of a real print that ran at 35 °C on the wrong plate. The workflow rules in the agent's instructions are just instructions; the slice and start guards are code.
Things that went wrong
- 43 green checks and a part that fell off. A fidget toy passed every check and printed cleanly. In hand: "doesn't stay fitted". The checks looked at clearances and never asked whether the part was actually captured. That's now its own check in the library.
- Copy-paste designs. Before the library, each candidate was a 1,500-line script copied from the last one, and a design round could take an hour. Pulling the shared bits out is what made rounds short enough to iterate on.
- The same file, twice. A plate of nine parts gave four good ones. The identical file printed again gave nine of nine. Both are in the log, which is why there's a log.


The log
Every print has a row: the file hash, a photo, and whether it was accepted, rejected or failed at design. When the agent suggests a material or an orientation, it has that history to go on.
Not shown
The code. This is the one I'd build a product on, so it stays private. A person still loads filament and clears the bed.