Agentic Loom: recipes checked by an admission model while you write them, and again when they run Units, actions and limits come from each unit's own declaration. The palette is built from the descriptors: one tab per unit, one block per declared action Each block's slots are that action's declared conditions, with the limit beside each. The recipe has 1 error: it names no lot yet Each phase is asked live, the way its gate will ask: 1 admitted, 3 will pause on the units' recorded state Green outline: admitted. Amber: a refusal that is a fact. The verdict sits beside the phase name. The plan check finds 3 undeclared effects: descriptors say what state an action needs, never what it leaves Dashed violet: nothing can be decided, because the evidence does not exist. A state block says where the unit is from here. Asserting IDLE gives 1 state conflict: load needs EXECUTE With EXECUTE asserted the plan drops to 2 undeclared effects; the gates still say 3 will pause An assertion is not an observation: a run's gates check the unit's recorded state, never a claimed one. Compiled one way into an ordinary Loom graph: one Admit gate per phase, one row per unit procedure Generated nodes are read-only here; the recipe is the source. The first gate blocks. A State refusal is a fact, so the panel offers exactly accept as is, rework, or reject What is offered comes from the model's permitted dispositions for each refusal. Rework goes back through the evaluator. The refusal is about state, not the value, so the gate blocks again Accepting as is needs a justification; it is kept in the record beside the refusal The run completes. The batch record has 4 rows, each phase with its decision beside it 3 gates were accepted as is, each with its justification, and a QA sign-off. The record keeps every decision under its own name: 9 entries, blocked, reworked, overridden with the reason, approved Campaign scope: plan this unit's window, and feed the next lot from the one just made Another recipe holds chrom-01 over an overlapping window with a higher priority: Contention, resolvable, never waivable Checked against every other saved recipe. The lot's history comes from executed records: equil-a reached L-2026-1102 through L-2026-1101, and the procedure excludes it This recipe itself now uses equil-b. On the canvas: 4 Admit gates on the contended unit carry the finding, and the card shows the lot's history Today these two are authoring findings: a run's gates still ask the unit question Recorded from a local build on demonstration descriptors. Not a validated system.