The placement intervention
It replaces the workaround of making a second frame just to move one span, which loses a paired in-frame comparison and doubles setup.
Need
The essay treats each intervention as a change to the declared relation that keeps the rest of the encounter. presentation changes wording with a one-to-one rename, so it cannot test whether a span's place matters: a grant before or after an instruction, a caveat moved out of its section, or a code invariant moved away from the operation it governs.
Interface
It is one optional key of interventions:
json
{
"interventions": {
"ablation": true,
"placement": {"span": "grant", "after": "audit"}
}
}The trial works like this:
spanandaftername distinct body spans.- The trial removes
spanfrom its current position and inserts it immediately afterafter; all span text is unchanged. - The frame is refused if the resulting order is identical to baseline.
- The plan appends a
placementtrial afterpresentationand beforebypass. judgechecks it immediately after the presentation rule. A changed level iscoupled but misaligned: structure, not just wording, drove the observation.- The cost is one trial times
quorum.
Contracts
- The key is additive. Existing frame hashes and records are unchanged until a frame declares
placement. - A new frame that uses it has a new hash.
- The record format is unchanged;
trialisplacement. - The battery still never sees the trial id.
- The
After the Poemreplay has no placement trial and its rule path is unchanged. frame.py,interventions.py,verdict.py, the frame table, the trials table and the JSON Schema all know the key.
Tests
- A placement that reorders the body yields a distinct
body_hashand aplacementtrial, planned after presentation and before bypass. - A placement that leaves the order as it is, names itself or names a span not in the body is a
FrameErrorbefore a call. - A scorer whose label changes only under placement is
coupled but misaligned, and a carried finding names placement among what held. - A frame without placement keeps its hash.