The problem, and the tool
Posting a printed model means finding a box that is roughly right and padding it by hand, and hoping. The person wanted the box made for the model. His first message said most of what the tool now does: the item must drop into the box; the box needs a lip but no hinge; the lid must not be able to damage the item; the sides need not be solid and could be a mesh; there should be a little space so a slight flex of the box does not press on the item; the bottom of the box should match the bottom of the item; and the algorithm is probably to subtract the item from a block as it drops in. He also named the part he thought hardest: deciding which way up the item goes before it is boxed.
What he asked for was not the tool. It was the record: "Can you create an idd for this," in a repository of its own. The code could come after.
How the work was divided
The arrangement from the first three examples held. The AI proposes and nothing it writes counts until a named person signs it. Every decision says why it exists, and every change to the code names the decision it serves. The difference from the third example is order: there the page was live before anything was signed; here nothing was built until everything was signed, and the one change of mind later in the morning went through the record before it went through the code.
Sixty-six decisions in eighteen minutes
The AI read his message and wrote the record: what the tool is for, in one sentence; the printer it must print on, without support material; the assumption that model files are in millimetres; six ways a box can fail its model, from a lid that crushes to a lattice that lets a sharp object through; three things the tool would never do, among them a hinge, and gripping the model with an undercut; twenty behaviours a person might later want changed, each with at least one test saying how it is checked; and two limits, on how long a typical model may take and on installing with nothing but one command. Sixty-six decisions, eighteen minutes from his message to their being committed, by the timestamps.
Some of those decisions were the AI's own calls, made without asking, and it said so when it handed the record over: a cap lid with a skirt outside a lip rather than a plug inside; the cavity computed as the path the model sweeps when lifted out, on a grid that only ever rounds outward; which way up the model goes decided by the smallest box, with the snuggest cradle deciding near ties; walls solid unless asked for a lattice; one millimetre of space around the model. He read the record and signed all sixty-six in one sitting, forty minutes after they were written, and said build it.
Built to the record in forty-three minutes
The code came next, module by module, each naming in its opening lines the decisions it implements, and one test function for each test on the record, named after it. Forty-three minutes after his signature the tool made a box for a small cube and the suite was green. The public build then failed twice on the same fault before it passed: a library the tool needed to read one file format was present on the workstation, left there from an earlier experiment, and absent from the build, which is exactly the kind of thing a build exists to find.
Then the AI tried the tool on four real models from the person's downloads: a novelty duck, a scanned figure of nearly a million triangles, a washer fourteen millimetres across, and a furniture foot. All four produced boxes. The duck was laid on its side in a tilted pose the AI had not expected, which made its box a sixth smaller than standing it up; the foot was turned over so that its shaped top nested in the floor and its flat face lay under the lid; the washer dropped over a post the floor had grown through its hole. The AI rendered the floor of each box as a picture to check that the poses made sense, and sent the person the previews to open in his slicer.
Three promises the tool could not keep
While writing the code the AI found that three of the signed tests asked for a precision the method cannot honestly give. The cavity is worked out on a grid, and to be safe the grid rounds every measurement outward, so the cavity can be up to three cells wider than the model on each side. The AI had written tests saying "within one cell". It re-worded them to what the design guarantees, the tool reported at once that the three signatures no longer matched, and the hand-over said so. The person's reply was two words: "Ratify and continue." The AI applied his signature on that instruction, and the commit says that it did.
Reshaped by the person who asked for it
He looked at the previews and asked how to use less material. The AI measured a box rather than guessing: roughly half the printed plastic is skin, a third is the slicer's sparse filling under the model, and the lid is a thick dense plate. It set out what a slicer setting would save, what thinner walls would save, and where the real saving lay: the box was a rectangle seen from above, and a duck is not. He put the idea in one sentence: cut away the box, looking down from the top, so that the wall thickness is only a parameter, at most five millimetres.
That contradicted one of the three things the record said the tool would never do, shape the outside of the box to the model, and it changed four signed behaviours. So the AI did not write code. It re-worded the exclusion so that only the top and the underside stay unshaped, since a shaped top or underside would need support to print; re-worded the four behaviours; added a new risk, that a cut-back box tips over, which was his own condition, "sufficient for it to be put on a flat surface and not fall over"; added a behaviour that measures the angle a box can tilt before it tips and keeps the rectangle when the cut-back would fall below twenty degrees; and added three tests. Twelve items, handed over with the reading of his sentence stated plainly, in case "defaulting at max 5mm" had meant something else.
He signed the twelve in his terminal, one at a time, reading each. Twenty-eight minutes later the suite was green with the new outside, and the duck's box had lost a sixth of its material and gained the mesh holes that the old rule had refused it. Two of the three new tests had been wrong as first written: one asked a shape to tip that never can, and one described a post standing on a block, which does not raise the floor at all, when what raises the floor is an arm reaching out from a post. Both were re-worded, reported by the tool as unsigned, and signed again.
Signing, and two faults in the process
The first fault was the third example's, again. While the AI was still working, the person re-signed one of the re-worded tests in his own terminal. The AI's next save staged the whole directory of the record and swept that signature up with the code, so the record of who signed sits, in the history, inside an AI commit. The signature is intact and carries his name; the presentation is wrong. The rule that prevents it, name each file you save, was already written down from the third example and was still broken; it has been sharpened to name the directory it must never cover.
The second was the hidden library: two builds lost to a package the working copy had carried since an experiment and the tool had never declared. That fault is now a rule too, that experiments belong in a throwaway environment, and the build is what proves the declared list.
Where the morning went
From the first message at eight minutes to eight to the last commit of the day's work at half past eleven was three hours and thirty-eight minutes. The assessment script measured the session record over that window: 2.4 hours of active work, 3.6 on the clock, 9 messages from the person, 245 turns by the AI. The record was cut at the last commit; the same session went on the next morning to write this account, and those hours are not in the figures.
Who did what
| Only the person could | Only the AI would | Both, through the record |
|---|---|---|
| Say what the box must do, and ask for the record before the code | Turn one paragraph into sixty-six decisions with a test for each | Sign everything before anything was built |
| Read sixty-six decisions and sign them in one sitting | Build the tool to them in forty-three minutes, each module naming what it implements | Hold the build to the graph: the build fails if the record is unsound |
| Ask how to use less material, and put the answer in one sentence | Measure a box before answering, and find the saving in the shape rather than the settings | Change the record before the code, narrowing an exclusion he had signed |
| Read and sign twelve changed decisions one at a time | Find that three signed tests promised what the grid cannot give, and say so | Report every moved signature at once, and renew it |
| Decide that twenty degrees of tilt is enough, by not disagreeing | Try the tool on four real models and render the floors to check the poses | Measure the morning with a script rather than remember it |
What went wrong, and what caught it
- Three signed tests asked for a precision the grid cannot give. Found by the AI while writing the code, before the tests ran. Re-worded, reported by the tool, signed again.
- The first mesh pattern was drawn with its point upward, which would need support to print. Caught by the tool's own check that every body prints without support, before any file was written.
- The report carried the folder it was written to, so the same box written twice did not match byte for byte. Caught by the test that says it must.
- A test bowl with thick walls did not go in mouth down, as the AI had promised a bowl would. Caught by that test; the rule was right and the promise was too broad, and the test's bowl became a thin one.
- A library the tool used was never declared. Caught by the public build, twice. Now a rule.
- Refusing a bad option took seventeen seconds when the machine was busy, because the tool loaded its geometry libraries before checking the options. Caught by the test that says a refusal takes under a second. The tool now checks first and loads after.
- The mesh walls cut no holes at all in the duck's box, because the rule kept the lattice below the highest point of the whole floor rather than the floor beside each hole. Found by the person's question about material. Changed on the record, then in the code.
- Two mesh holes at the two ends of a rounded corner met inside it and hollowed the corner out. Caught by the lattice test. The bend check now looks as far along the wall as a hole reaches.
- Joining the lid's plate to its skirt left sliver faces at the seam. Caught by a test on the lid's underside. The lid is now one block with the skirt's inside removed.
- The written file of one box was not closed, though the box in memory was: the file's lower precision merged two vertices a boolean had left a hair apart. Caught by the test that reads the files back the way a slicer does. Every file is now cleaned to its own precision before writing.
- Two new tests described the wrong physical thing. Found by the AI when they could not pass. Re-worded and signed again.
- A signature was swept into an AI commit. Found by the AI reading the record afterwards. The record is intact; the rule is sharpened.
Time
| Phase | The AI, elapsed | The person, attention |
|---|---|---|
| Reading the request, writing sixty-six decisions, committing them | 18 min | one message |
| The person reading and signing | waiting | about 40 min, one command |
| Building the tool to the record, thirty-two tests green | 43 min | two words |
| Two failed builds, four real models, the previews | about 15 min | looking at previews |
| Three tests re-worded and re-signed | minutes | "Ratify and continue" |
| Measuring the material, answering the question | about 20 min | two questions, one sentence |
| Twelve items on the record, then his reading | 10 min | about 5 min, twelve confirmations |
| Cutting the box back, lattice along the outline, two tests re-worded | 28 min | one re-signature |
The AI's minutes are from the session record's timestamps and include waiting on its tools and its tests, which take three minutes a run. The figures on the index card are the assessment script's, not this table's.