docs/constitutional-review-final.md
Final Constitutional Review — before Step 2
Verdict: the Constitution remains unchanged. No amendment is required.
Two candidate conflicts were found and tested. Neither meets the Constitution's own evidentiary bar, so neither is proposed. Both are recorded as watch-items with the exact runtime evidence that would justify revisiting them — which turns a hypothesis into a tripwire rather than leaving it as a worry.
Method
Every article was tested against what the core, universality and evolution proofs established. The bar, per Article X.1.5, is that the burden of proof lies with the amendment, and per Article X.1.4 that evidence must be runtime evidence, not argument.
An article that is merely awkward, verbose, or written before a later insight does not qualify. It must prevent a correct model of reality.
Resolved without amendment
I.3 — "No renderer may create, classify, infer, aggregate or interpolate state"
The 3D renderer advances agent position between polls. I previously justified this as "re-evaluating the server's own function", which was close to a reinterpretation of a rule that plainly says interpolate.
The new core removes the tension rather than arguing it away. worldAt(facts, { validAt, knownAt }) is a core function. A renderer asking for the world at
t + 16ms is not interpolating; it is calling the core. The computation moved
to where the rule always implied it belonged.
No amendment. The article was right and the implementation was wrong.
II.2 — mentions "code size, file counts"
The Constitution uses software examples while the core may name no domain.
But II.2's operative clause is "how much has been written rather than done", which is domain-independent: a plant that has cut more steel has not necessarily shipped more orders. The examples illustrate; the rule generalises.
The no-domain rule binds core source, enforced by test. A governance document explaining itself to humans is a different artefact with different constraints. Amending for tidiness would fail the burden of proof.
V — Agent civilisation, after Actor was reduced to a subject kind
All six requirements were re-tested against Subject + Fact: identity (URN),
movement (placement over time), history (append-only timestamped facts), memory
(facts about an actor subject), collaboration (exchange between actor subjects),
ownership (a declared relation in tenant data). All survive.
Article V demands the world support these without redesign. It does not prescribe a module. No amendment.
III — Spatial stability, after geometry left the core
Article III governs plot permanence. With place in the projection layer,
Article III governs that layer. This is consistent with the document's own name:
the Spatial Constitution describes how reality is shown. Articles I, VI and
XI describe what is true. Both bind, at different layers.
No amendment. This was a clarification of scope, not a change of meaning.
Watch-items — real, but not demonstrable today
W1 — II.5 enumerates movement causes as a closed list
"An agent moves only for: a task, a delegation, an investigation, a meeting, a transport, an observation, an incident response, or a maintenance action."
Eight causes, stated as closed ("only for"). The universality proof produced a plausible movement with an operational cause outside all eight: a rostered shift reassignment — a nurse moving ward at handover. It is neither a task nor a delegation nor a transport, yet it plainly has an operational cause and a row behind it.
Why no amendment is proposed: I have no rostering connector, therefore no runtime evidence. A hypothetical nurse is exactly the "speculation" Article X.1.4 excludes. The purposive reading — that the rule forbids ambience, not rostering — may well be correct, but Article X forbids me from reinterpreting to find out.
Tripwire. Propose an amendment when a registered connector emits a placement whose declared cause maps to none of the eight, and the gap is recorded. One real gap report is sufficient evidence; zero is not.
W2 — the legend has a row for agent position, not subject position
| **Agent position** | Actual execution locus | Runtime placement | Per task |
The shipping proof made placement subject-at-subject: a container has a
position, and a container is not an agent. Article II requires every measurable
property to map to exactly one visual property, and the legend has no row for a
non-agent subject's position.
Read strictly, this creates an internal tension with IV.5 ("every fact must be reachable"): a container placement would be a fact the legend cannot display.
Why no amendment is proposed: no connector today emits a placement for a non-actor subject. The tension is derived from the specification, not observed in a running system. Proposing on that basis would invert the burden of proof.
Tripwire. Propose when a connector emits a placement whose subject kind is
not actor and the projection layer has no legend row to render it. That is a
concrete, checkable condition — and it is worth noting that W2 will almost
certainly fire before W1, because the first non-software connector will move
something that is not a person.
Disposition
The Constitution is unchanged. Step 2 proceeds under it as immutable.
Neither watch-item is a licence to reinterpret in the meantime. If W1 or W2 fires, the Article X protocol runs with the gap report as its evidence. Until then the rules stand exactly as written, including the readings that are inconvenient.