Nine roles, a symmetry that decides what may be pooled, and one intervention that costs nothing
A run plan is a directed acyclic graph of turns. This paper reads the org chart off that graph rather than declaring one. Degree gives nine roles, complete by a counting argument. The automorphism group gives the pooling rule: two turns may be averaged exactly when a symmetry of the plan exchanges them, which restates H4 as a property of the design instead of an assumption about agents.
Six shapes are then catalogued, all costing six turns. Across them, depth and the ken ratio are near-orthogonal, r = 0.05, so the two can be told apart. Within any one run they are collinear, which corrects the first version of this design and is the reason only one shape supports the cheap test.
Two results fall out. A star run holds four structurally interchangeable turns and a
chain holds none, so at the measured ICC a star buys 1.79 times the effective replication
for the same six turns. And chain against briefed differ at
exactly one turn, by four added edges and no added turns, which is the cheapest
manipulation in the programme so far.
The catalogue then generalises: a layered plan is a composition of n, so the family is
2n−3 shapes and the depth-against-width trade is isoperimetric. Hashing a turn's
ancestry, after this repo's own Merkle construction in hoop, pools across
shapes as well as within them and turns 36 catalogue turns into 7.65 effective
observations.
All of which holds only under strict isolation, a precondition that went unstated for five revisions and is now §10b. §10c then dissolves that dichotomy: isolation and inheritance are λ = 0 and λ = 1 of one attenuation parameter, the published ken ratio is the λ = 0 corner, and the middle discriminates better than either end. What remains is to measure λ, which one chain run does.
Every measurement this site has priced is bounded by sample size. At the measured ICC of 0.413 a 96-turn budget reaches an effect of d = 1.07 and stops. Adding runs is the obvious response and it is the one we cannot afford.
Shape is the alternative. Six turns admit many graphs, and rewiring them changes the position of every agent while the bill stays six turns. The question is whether position does anything, and before that, whether position can be described precisely enough to vary on purpose.
This is an old experiment. Bavelas wired human groups into fixed communication patterns and treated the pattern as the treatment; Leavitt ran circle, chain, Y and wheel on five-person groups and found the wheel fastest and most accurate and its peripheral members least satisfied. Shaw then complicated it: centralised networks win on simple tasks and lose on complex ones. WP2 is that design with agents in the seats, and the prior literature is a reason to expect an interaction with task difficulty rather than a clean main effect.
Four duties are forced by degree and nothing else is. In-degree zero means nothing feeds the node, so it supplies its own brief. In-degree of two or more means several upstream products must be reconciled. Out-degree of two or more means briefs must be written. Out-degree zero means the output goes to the principal.
Originate and merge cannot co-occur, since in-degree is not both zero and at least two, and neither can report and split. So a node's duties are one in-duty crossed with one out-duty: three by three, nine roles, total on every node of every finite DAG. That is a counting argument, not a survey of cases we happened to think of, and it is what makes an arbitrary shape staffable.
| reports (out 0) | hands off (out 1) | splits (out ≥2) | |
|---|---|---|---|
| originates (in 0) | solo | brief | principal |
| carries (in 1) | deliver | relay | delegate |
| merges (in ≥2) | integrate | funnel | broker |
One cell is worth naming. broker is the only role that both merges and
splits, so it is the only seat that can substitute its own judgment for the brief and
have the substitution propagate. That is Aghion and Tirole's real authority
arriving as a degree condition, and Garicano's
escalation layer is the same node counted
differently.
An automorphism of the plan is a relabelling that preserves every edge. Two turns in the same orbit are structurally indistinguishable: no property of the plan separates them, so nothing but the treatment assignment can. Exchangeability is invariance under a group action , and here the group is the automorphism group of a graph we wrote down ourselves.
This does not make H4 true. An agent can still drift inside an orbit, and that is the empirical part. What it settles is which comparisons were ever estimable, before any data exists. The orbits also bound how far the argument goes: a six-turn orbit is a finite exchangeable sequence, not an infinite one, and carries the corresponding correction .
The search is colour refinement followed by backtracking inside the refined cells, which is nauty in miniature. Refinement alone is a coarsening of the orbit partition and could be wrong; on all six shapes it happens to be exact, and the selftest asserts that so it keeps being checked rather than assumed. A step cap guards the search, because graph isomorphism has no known polynomial bound . On a dozen nodes it has never fired.
The quantity the programme is named after turns out to be one pass over the graph. An agent's ken is its in-neighbours and itself, the only state it holds. Its ancestry is every turn whose product it inherits. The ratio of the two is 1 at a source, by definition, and falls as work accumulates upstream of a narrow inlet.
It is not depth. The last turn of a six-turn chain holds two turns of state and answers for six, at 0.333. The assembly turn of a six-turn star holds five and answers for six, at 0.833. Same budget, same number of agents, ratio different by a factor of two and a half. Blast radius and betweenness come from the same two passes and are reported alongside.
Not one coordinate below was placed by hand. Each figure is the relaxed layout of the
graph, so a shape added to shapes.mjs arrives with its own picture.
briefed rendered identically to
chain — this paper's own central contrast was invisible in its own figure.catalogue().| Shape | Depth | Width | Max in | Sink ken | Mean ken | |Aut| | Orbits | Largest orbit |
|---|---|---|---|---|---|---|---|---|
| chain the naive loop: turn N reads turn N-1 | 5 | 1 | 1 | 0.333 | 0.65 | 1 | 6 | 1 |
| standard ken R14, the current unit of work | 3 | 2 | 2 | 0.5 | 0.806 | 2 | 4 | 2 |
| lattice the wiring bug of revision 13, kept as a deliberate arm | 3 | 2 | 2 | 0.5 | 0.833 | 4 | 4 | 2 |
| star the bake-off: parallel entries judged together | 2 | 4 | 4 | 0.833 | 0.972 | 24 | 3 | 4 |
| bottleneck a lead who reports up on behalf of a team | 3 | 3 | 3 | 0.333 | 0.856 | 6 | 4 | 3 |
| briefed cc the final agent on every intermediate turn — free, and the point of the test | 5 | 1 | 5 | 1 | 0.761 | 1 | 6 | 1 |
Two contrasts in the catalogue are controlled rather than incidental.
standard and star have identical role censuses, one
principal, four relays, one integrate, and differ in depth and in symmetry by a factor of
twelve. If a role census were the whole model they would behave alike. And
standard and lattice hold the same turns at the same depths with
the same sink ken, differing only in whether wave B is wired in lanes or completely. That
was last revision's bug, kept deliberately, because an accident run on purpose is an arm.
Across the catalogue depth and ken ratio are near-orthogonal, r = 0.05, and all four
cells of the two-by-two are occupied. chain is deep and blind,
briefed deep and sighted, bottleneck shallow and blind,
star shallow and sighted. That is what licenses telling them apart.
Within a single run they are collinear, and the first version of this design assumed
otherwise. A chain gets deeper and blinder at every step, r = −0.966, so a regression
on both estimates one position effect and reports it under whichever term it loads on. One
shape escapes: briefed advances depth while the last turn keeps full ken, and
its variance inflation is 1.171 against the chain's 14.758.
| Shape | r(depth, ken) | VIF | Ken spread | Separable within one run |
|---|---|---|---|---|
| briefed | -0.382 | 1.171 | 0.6 | yes |
| star | -0.775 | 2.5 | 0.167 | no |
| bottleneck | -0.899 | 5.213 | 0.667 | no |
| standard | -0.933 | 7.678 | 0.5 | no |
| lattice | -0.934 | 7.857 | 0.5 | no |
| chain | -0.966 | 14.758 | 0.667 | no |
The cheap design and the free intervention turn out to be the same shape. That was luck, and it is recorded as luck.
The largest orbit is the number of turns in a run that are replicates by symmetry rather than by assertion. A star holds four. A chain holds one, and no care in running a chain will produce a second, because every orbit in a chain is a singleton.
They sit in one run and are correlated, so the gain is the design effect rather than the raw count: deff = 1 + (m − 1)ρ. At ρ = 0.413 four raw replicates are worth 1.787 effective ones, against a chain's 1.000. A star buys 1.79 times the replication of a chain for the same six turns and the same number of agents. This was not the point of the catalogue and it is the more useful half.
H5 and H6.| Claim | Outcome | Refuted by | |
|---|---|---|---|
| H5 position | Fidelity to the original brief falls with the ken ratio, and depth acts only through it. | Of k constraints planted in the setup brief, how many the sink still honours. unit: undefined |
|
| H6 symmetry | Turns in one automorphism orbit are exchangeable, so the largest orbit is replication the run already contains. | The standard error of a within-run contrast, measured, against the value deff predicts from orbit size. unit: undefined |
|
H6's headline is arithmetic and is fixed before any data: SE(star) / SE(chain) = 0.75. Only one step in it is empirical, and that step is H4 asked at the turn level with the graph pointing at where to look. The failure to expect is the second refutation. A graph automorphism says the plan cannot tell two turns apart. It says nothing about the runner. If turns are dispatched in a fixed order, or share a rate limit, or one reads a file the other wrote, the symmetry is in the drawing and not in the world.
| Design | Runs | Turns | What it estimates |
|---|---|---|---|
| unpaired, chain against briefed | 50 | 300 | chain against briefed on independent tasks |
| paired on task | 30 | 180 | the same task run as chain and as briefed; the pair is the block; saves 40% |
| within-run ken slope | 15 | 90 | the ken slope across the six positions of a briefed run, with depth as a covariate. only briefed supports this; every other shape in the catalogue inflates variance 2.5x to 15x |
The paired row is the design. chain and briefed match at every
turn but the last, so the same task can be run as both and the pair is the block. That is a
stronger match than pairing usually affords and is the reason to prefer this contrast over
any other in the catalogue. The within-run row is a slope, not a shape contrast, and is
priced on briefed runs only.
The catalogue was built by hand at six turns. It generalises with no new idea, because a layered plan is a composition of n: the layer widths with source and sink pinned to one. There are exactly 2n−3 of them, so the family can be enumerated outright to about n = 16 and every member drawn. The shape explorer does that live, running these same modules in the page.
Stating it that way makes the trade visible and it is isoperimetric. The interior holds n−2 turns over d−1 layers, so peak width ≥ ⌈(n−2)/(d−1)⌉, with equality exactly when the interior layers are balanced. The floor is reached at all 52 depth-and-n pairs the selftest checks. Read n as volume, depth as time and peak width as surface: fixing what a run costs fixes the product of its latency and its concurrency.
Two things are not fixed by it, which is why the family is worth computing rather than eyeballing. Sink ken is free at every depth, because briefing changes no width, no depth and no cost. And free replication is concave in depth: at n = 12 the balanced middle at depth 6 keeps 92% of the maximum replication at a fifth of the peak concurrency, so the star is rarely worth its width.
Corrected at revision 17. This section claimed the Pareto frontier held exactly 2n−4 points at every n from 5 to 14, labelled an observation rather than a theorem. Widening the family broke it, which is what that label was for.
With skip edges off and no briefing the frontier holds n−2 points: one per achievable depth, since depth runs from 2 to n−1. Briefing doubled it to 2n−4, which is the number we published. Add skip policies and the pattern dissolves — 8, 12, 16, 21, 26, 32, 38, 45 for n = 5 to 12, with no clean formula.
The regularity was a property of the generator, not of the space. And it is the same fact as a complaint about the explorer's first table, which showed one row per depth and so looked like a single shape stretched: within the narrow family the frontier is one shape per depth. The UI symptom and the structural fact were one thing.
And the layered family is a sliver. There are 1,960 distinct shapes on six turns with
one source and one sink; the family reaches 33 of them, and only ten of the 1,960 are strictly
layered at all. In every other one some turn feeds something more than one stage later.
briefed was the first such shape we wanted and it was special-cased into the
generator rather than expressed by it, which was the signal. Skip edges are inside the family
now and it is still two per cent. The explorer therefore enumerates the
true space exactly up to seven turns, and says which mode it is in.
A precondition this paper needed from its first revision and did not state. An edge is a permission. The absence of one is a prohibition, and nothing in the plan enforces it. A turn learns things by three channels and the plan controls one: the brief it is handed, the files an earlier turn left in its worktree, and the history it can read.
| Regime | Effective shapes | Sink ken values | chain vs briefed |
|---|---|---|---|
isolated — in-edges and nothing else | 1960 | 5 | 0.333 against 1.000 |
lineage — worktree inherited upstream | 16 | 1 | 1.000 against 1.000 |
shared — one worktree throughout | 8 | 1 | 1.000 against 1.000 |
Under either sharing regime the ken ratio is 1.000 for every turn of every shape, and
chain and briefed become the same fifteen-edge graph. The contrast
§7 prices at 180 turns is exactly zero, at any sample size. H5 is then undefined rather than
underpowered.
The reason is definitional, and it was sitting in the definition from §4. Ken is the in-neighbourhood over the ancestry; a turn that inherits its ancestry has an in-neighbourhood equal to it. Nobody asked when the numerator and denominator could differ. They differ exactly when the plan withholds, and withholding needs a mechanism.
lineage is the one worth dwelling on, because it is what a per-lane worktree
with merges at joins actually gives, and most people would call that isolated. It leaves 16
of 1,960. Only the strict regime — fresh context, fresh tree, handoff by explicit artefact —
preserves the question. That is now R16, and the three shape
hypotheses carry it as a stated requirement rather than a caveat.
§10b posed a dichotomy and the dichotomy is false. It offered either a turn seeing only what its in-edges hand it, or a turn inheriting the whole accumulated tree. Neither is how work reaches anyone. A parent hands over a product, and that product was shaped by what the parent received, so a grandparent does reach a grandchild: narrowed, summarised, lossy, but it reaches. You know your grandfather's output because it was your father's input.
Let λ be the share of an input that survives one summarisation hop. Fidelity from u to v is then λd−1, where d is the shortest path: the best-preserved copy is the one that went through fewest hands, and a direct edge costs nothing.
At λ = 0 this is exactly the ken ratio this site has published since revision 14,
asserted on all 1,960 shapes rather than argued. At λ = 1 it is 1 for every turn of every
shape, which is §10b's lineage. The two regimes were the endpoints of a
segment, and the argument about which was right was an argument about a number nobody had
measured.
The middle discriminates better than either end. Across the 1,960 shapes, sink ken takes 5 distinct values at λ = 0 and 1 at λ = 1. In between it takes 16. Smooth decay separates shapes that a cliff could not.
| λ | 0.0 | 0.4 | 0.6 | 0.8 | 0.95 | 1.0 |
|---|---|---|---|---|---|---|
chain sink ken | 0.333 | 0.442 | 0.551 | 0.727 | 0.921 | 1.000 |
briefed sink ken | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 |
| gap | 0.667 | 0.558 | 0.449 | 0.273 | 0.079 | 0.000 |
So whether skip edges matter is not a modelling argument, it is a question about λ, and λ is a quantity that can be measured. That is H8 in the register, and it should be run before H5 because it prices H5. How to measure it is §12, and the obvious method there does not work.
The value of one skip follows directly. Adding an edge takes a distance d to 1, so fidelity goes from λd−1 to 1. At λ = 0.9 a two-hop skip is worth 0.10; at λ = 0.2 it is worth 0.80. The same edge, an eightfold difference in what it buys.
One structural note, since the shape of the ancestry order is what makes this work. The ancestor sets of a plan, ordered by inclusion, are closed under intersection on every shape we have enumerated at four, five and six turns, and under union on 100%, 100% and 99.0% of them. So it is always a meet-semilattice here and usually a lattice; the twenty exceptions at six turns are the shapes with two branches sharing no join before the sink. The general statement is Birkhoff's — the downsets of a poset form a distributive lattice — and the closure of the image is a narrower claim, so it is reported as a measurement rather than cited.
A turn's state is its precedents. Nothing downstream can affect what it does, so the equivalence that licenses pooling behaviour is the ancestry, not the orbit. An orbit is defined by in- and out-structure; an agent reads only the in-structure. That makes the orbit argument of §3 slightly wrong about the agent while staying right about the graph.
So hash the ancestry. The construction is taken from this repo's own Merkle work in
hoop-archive/js/postal.js, which folds a quadtree of world chunks into one digest
per region: a leaf hashes contents, an internal node mixes its own coordinates into the
accumulator before folding its children, and a sector "at this genome" gets one hash,
derived on demand and never stored. Both features transfer. Arity is folded first, or a turn
fed by one parent collides with a turn fed by two identical ones. And nothing persists the
digest, so nothing can disagree with it.
Within a shape this changes no published number: orbits and ancestry classes coincide on all six, which the selftest asserts. Across shapes it changes a great deal. A turn fed by exactly one setup turn is fed by exactly one setup turn whichever plan it sits in, so the chain's first turn, both A-wave turns of the standard run, all four star workers, all three bottleneck workers and the briefed chain's first turn are one pooling cell of thirteen. No automorphism relates those graphs; the digest does not need one.
Priced honestly, those thirteen sit in six runs and are therefore clusters of unequal size, so the design effect takes Kish's average cluster size, Σm²/Σm = 35/13 = 2.69. At the measured ρ that is 7.65 effective observations, against 1.79 for a star run alone. Running the whole catalogue once, 36 turns, yields more than four times the replication of the best single shape, and the six sources form a second cell whose design effect is exactly 1.
What the digest does not do is restore ken, and the temptation to claim otherwise should be resisted. hoop says it plainly for its own case: a Merkle tree does not speed up routing, the quadtree index does that, and the hash is purely for verifiable and forkable state. The same limit binds here. An agent handed a root instead of five upstream reports learns only whether it has seen this state before; it cannot act on the contents. Briefing still costs in-degree n−1 at the last turn and no hash makes that cheaper. What the digest buys is identity, which is cheaper and different.
Stated as a hypothesis this is H7, and it is the cheapest one in the register: it costs nothing beyond running the catalogue, which H5 already pays for. It loses if cross-shape pooling shows more variance than within-shape pooling of the same digest, and that failure would be informative in a specific way. It would mean the runner leaks something the plan does not contain, which is a fact about our harness rather than about agents.
It also converts into a requirement on the runner rather than on the graph, which is R15: the brief handed to a turn must be a function of its ancestry alone. If the runner tells an agent which shape it is in, or dispatches in a fixed order, or lets two turns share a file, then turns with equal digests were not fed equally and the pooling licence is void. That is the same failure H6 names, with a sharper instrument pointed at it.
§10c said λ was measurable from a single chain run, and described a method that measures nothing. Plant k constraints in the setup brief, say carry these forward, count the survivors at each depth. Tell a chain to preserve π to twenty places and it will preserve π to twenty places. λ comes back at 1, and what has been measured is compliance with an instruction to copy.
The quantity we want is the one you would fail on if asked today how the literature search for module three went. It was doing real work when it happened. Nobody told you to keep it. It is not your current task, and you cannot bluff it, because there was a specific answer.
So the probe asks about residue: something a turn produced in the course of doing its job, which no brief ever mentioned. Four properties, and dropping any one breaks the measurement. It must be incidental, never named anywhere as something to carry forward. It must have been doing work when it was made, because noise decays too and its decay says nothing about handoff. It must be recoverable, meaning there is a well-posed question whose answer is a set, scoreable by overlap without a judge, which keeps B3 off the critical path. And it must be hard to guess. That last one is not assumed. It is measured, and subtracted.
lab/probe.mjs. Each is a set rather than a token: a single memorable token is
the salience trap that sank the first design.| Residue | Where it comes from | Why it is incidental | How it is scored | Guessable? |
|---|---|---|---|---|
readSetfiles read and not changed | the harness already logs every file each turn opened. The first turn reads a dozen and changes two; the ten it read and left alone are residue. | no brief mentions reading, only the task; the decision was made by reading them | set overlap against the tool log, which is ground truth and needs no annotation | partly — a later turn can name plausible files, which is what the floor arm measures |
rejectedalternatives considered and rejected | the first turn is asked to weigh several approaches and proceed with one. Its handoff carries the choice. The others, and the ground for dropping them, are residue. | the brief asks for a choice, never for a record of the rejects; the choice was made against them | set overlap against the first turn`s own stated list | a fresh agent can propose alternatives, and some will coincide. The floor arm measures exactly that coincidence. |
obstacleserrors hit and worked around | failures the first turn recovered from without the fix reaching the artefact: a wrong path, a stale cache, a flag that did not exist. | never mentioned; the artefact records the fix, not the stumble; they cost real turns | set overlap against the transcript | least of the three, since a fresh agent has no reason to invent our exact errors |
The floor arm is the design. A descendant asked which files the first turn read can guess, and some guesses land, because the plausible files often are the real ones. Score that guessing rate as memory and λ inflates toward 1 by a quieter route than π but the same one. So every probe runs an arm with no lineage at all: an agent given the task statement only, asked the same question. Its recall f is what the question is worth to somebody who was never there, and retention is measured above f rather than against zero.
R13 says simulate the design before spending turns on it, and the simulation refuted the claim in §10c a second time. One chain does not identify λ. At k = 10 residue items and depth 6, the 95% interval on λ̂ is 0.361 wide, which is nearly as wide as the parameter, and 92 of 1500 replications produce no estimate at all.
| Chains | Turns | 95% width on λ | Bias | Failed to identify λ |
|---|---|---|---|---|
| 1 | 6 | 0.361 | +0.065 | 92 of 1500 |
| 2 | 12 | 0.328 | +0.025 | 19 of 1500 |
| 3 | 18 | 0.298 | +0.007 | 6 of 1500 |
| 5 | 30 | 0.273 | +0.001 | 1 of 1500 |
| 8 | 48 | 0.234 | -0.006 | 0 of 1500 |
| 12 | 72 | 0.228 | -0.009 | 0 of 1500 |
| 20 | 120 | 0.208 | -0.012 | 0 of 1500 |
More residue per chain is cheaper than more chains. Six chains at k = 40, or 36 turns, reach a width of 0.193 with a bias of −0.01 and nothing unidentified; eight chains at k = 10, which costs 48 turns, only reach 0.234. So the register prices H8 at 36 turns, and the residue kinds in Table 8 are chosen partly for how many items each yields.
Depth beyond six hurts, which a geometric fit would not suggest. Recall has reached the floor by then and the extra points are noise on a quantity that has stopped moving, so they drag the slope: at three chains of k = 20 the width goes from 0.254 at depth 6 to 0.297 at depth 12, and the bias from −0.005 to +0.073. Long chains are the wrong purchase.
| True λ | Median estimate | 95% interval | Width | Failed to identify λ |
|---|---|---|---|---|
| 0.20 | 0.446 | [0.157, 0.6] | 0.443 | 280 of 1500 |
| 0.50 | 0.532 | [0.34, 0.659] | 0.319 | 10 of 1500 |
| 0.70 | 0.697 | [0.552, 0.77] | 0.218 | 0 of 1500 |
| 0.95 | 0.95 | [0.927, 0.967] | 0.04 | 0 of 1500 |
The asymmetry is the honest characterisation. At true λ = 0.95 the interval is 0.04 wide and unbiased. At true λ = 0.2 the median estimate is 0.446, biased up by 0.229, and 280 of 1500 replications fail outright, because a curve that has hit the floor by depth 2 has no slope left to fit. This is a threshold test, not an estimator. What it does reliably is exclude the top of the range: at true λ of 0.3, 0.5 and 0.7 the interval excludes 0.9, so the claim that skips buy nothing is refutable, which is the claim §10c needs settled to price H5.
Three things void the result rather than making it null. A brief that names the residue anywhere turns the probe back into the π test. A floor arm that scores as well as the descendants means the question was guessable and no retention was measured. And recall that does not decay geometrically above the floor means one rate does not describe the handoff, in which case the model is wrong rather than imprecise, and Table 7 is arithmetic on a parameter that does not exist. All three are in H8's refutation list, and the estimator refuses to return a number in the cases where it cannot support one.
ken/lab/roles.mjs · ken/lab/shapes.mjs · 189 known-answer checksnode ken/lab/figures.mjs --write.