Chapter 32
Take away the ammunition
Remove the ammunition and make your own system stand without the analogy.
On this page
The brass has carried the questions far enough.
You have watched a garage define success outside the subsystem, drawn parts by their jobs and refusals, followed rejections and swaps, deferred load-bearing decisions until evidence arrived, traced state, separated observation from policy, held partial truth through a fault, shipped a small capability, and included the next run in done.
You have also watched the model refuse claims it has not earned. The press has processed real brass through case feed, decapping, full-length sizing, and headspace inspection. That does not make its live-ammunition line proven. No cartridge has made the range round trip. Executed recovery remains open. The software model is green and the garage still gets the final word.
Now choose a system the garage does not know.
Not ammunition. Not the document pipeline used as an example in the earlier draft. Choose a flow you actually understand well enough to know when the analogy lies: an order, a patient referral, a deployment, a support incident, a warehouse pick, an identity review, a research result.
The task is not to retell this tutorial with new nouns. It is to make your own body plan stand after the scaffolding comes down.
Build the transfer package
Produce these nine artifacts.
1. Define done in the containing system
Write one sentence:
This work is done when ________ can ________ while ________ remains true.
The second blank is the capability. The third names an obligation outside the subsystem. If your service grades itself, go one system outward.
2. Draw the body plan
Draw parts and arrows. For every major part, record:
- one job;
- one thing it refuses to know;
- the message, material, or authority crossing each arrow;
- at least one point where substitution matters;
- one route that could bypass the intended design.
Do not draw methods or tables yet. If the arrows go everywhere, preserve that fact before cleaning the diagram.
3. Trace one thing through state and exits
Follow one real item from entry to release:
| Point | State established | Transformation, observation, or decision | Owner | Possible exit | Identity preserved |
|---|---|---|---|---|---|
Send materially different refusals to materially different exits. Name what unknown means at the most important gate.
4. Record one load-bearing decision
Choose an unknown whose wrong answer would be expensive to reverse:
| Unknown | Cost of being wrong | What waiting teaches | Cheapest proof | Possible no | Decision due when |
|---|---|---|---|---|---|
The proof must be capable of returning an inconvenient answer. A demo that can only confirm the preferred design is theater.
5. Define one coherent slice
Use the slice card:
| Capability | Entry | Complete path | Containing-system criteria | Proof | Explicit residue | Due condition |
|---|---|---|---|---|---|---|
Do not submit database, API, and interface layers that become useful only when all three are done. Submit one complete thought.
6. Add the sustain loop
For that slice, name at least two concrete obligations from maintenance, provenance, cleanup, recovery, restart, and feedback:
| Obligation | Mechanism | Owner | Trigger | Completion evidence | Failure path |
|---|---|---|---|---|---|
The first success is not finished if the second run depends on somebody remembering what to reset.
7. Write the outer test first
Write a failing test around the selected capability. It should include:
- a normal input;
- an expected refusal;
- an interruption after at least one effect completed;
- the identity or provenance an operator needs;
- the state that must remain visible when control returns.
Use the real collaborators you own inside the test boundary. Substitute at an adapter seam, not inside a vendor SDK. Make the failure about missing behavior, not missing plumbing.
8. Prove one joint
Write a smaller test that replaces a policy or collaborator and observes a changed result. A constructor parameter that can be ignored does not pass.
Then implement the smallest slice that makes the outer test green. Keep the normal and failure paths behind the same entry point. Run the whole suite after each small change.
9. Name one non-mapping
Write this sentence:
The garage model does not help with ________ because ________.
Do not repair the analogy. Leave the mismatch visible and use a model that belongs to your domain.
This is the restraint test. If every part of your system receives a reloading partner, you have decorated your domain with this story.
Challenge the package
Without returning to the tutorial, answer five questions from your artifacts:
- Where can the intended body plan be bypassed?
- What happens when the system knows nothing at its most important gate?
- What partial truth remains after the selected failure?
- What makes the recovery assessment safe to ask for twice?
- What must be true before the system is ready to run again?
If an answer exists only in prose and not in the drawing, state trace, result, or test, decide which artifact should carry it. The goal is not more documents. It is inspectable decisions.
A week after finishing, put the tutorial away and ask yourself only:
What questions from the garage would I use on a system I had never seen before?
Write the first answer before looking anything up. The useful measure is not whether you remember the stripper clip. It is whether the story changed what you ask.
Where the lab stands
The Ruby miniature has thirty-seven green examples. It composes success, three distinct pre-production exits, a held plate, partial truth, and recovery assessment. It refuses to execute recovery automatically.
The physical press has earned one narrow claim. Approximately twenty cases became scrap while the 5.56 sizing setup was calibrated. In the next bounded fifty-case set, forty-eight passed the first headspace inspection and two entered rework. Accepted replacements restored the set to fifty, and the RCBS station swaged it. The rejected pair remains segregated for photographed rework.
Those fifty cases still need final cleaning, complete drying, and inspection. Primer placement, powder drop, bullet seating, final crimp, finished-batch identity, and range use remain open. Before 7.62 or 9mm enters the system, dedicated toolheads and powder systems are planned; none is installed.
The readiness rule's exact release predicate remains open (The Lab Ledger tracks it). Interrupted-run provenance still needs an owner in the software body plan. The full tutorial transfer test has been designed and not yet run.
Those are not loose ends to hide before the closing paragraph. They are the places where the next evidence enters.
Follow one thing through your system. Watch where it is rejected. Ask what can be swapped without surgery. Name what each part refuses to know. Hold on to partial truth. Leave the system ready to teach you what happens next.
Then let it.