Raw view — PROCEDURE-FAULT-1@v3
sha256: 8c567e847eeeb908c76f68a8c588d76fad5c8f3881939e3ec6cc8ab3ab3181ec
Published law page — ← laws index — raw .md
# PROCEDURE-FAULT-1 — v3
Word Of Clout, LLC · published as the ARCHIVE-1 supersession re-cut (attribution lines removed, rule text identical; WO-20261003-01 U0) · supersedes the v2 text (bytes archived) · stable path: /laws/procedure-fault-v3.md · sha256 (this file's bytes): see the parity receipt — LAW-SHA256 quoted there.
## The Rule
**A re-derivation that is not performed, and a re-derivation that differs
because the source moved, are both procedure faults: recorded, excluded
from the error rate, never counted as agree.**
The sampler's fault classification carries TWO classes, each with a
sub-cause code emitted by the sampler itself:
1. **NOT-REDERIVED** — the sampler did not perform an independent
re-derivation for the row, or could not. Sub-causes:
- `rule-short-circuit` — the run's rule blanketed a verdict class
and skipped the row's re-derivation. HISTORICAL CODE: emitted
only by samplers before acn b11668c; no current code path emits
it. (LAW-IS-GENERAL-1: the law
states the rule; the classification of any specific row lives
where instances live — the run receipt, the sample-audit page,
and the @3 successor's procedure_faults proposition.)
- `dangling-source` — the row cites an observation absent from the
ledger.
- `missing-proposition` — the row cites a proposition absent from the
ledger.
2. **PROCEDURE-DRIFT** — the re-derivation WAS performed and differs from
the recorded verdict because observations, ruleset, or cutoff changed
(the sampler's detectable form: a drift-trail row `…@old` whose
re-derivation differs from its era verdict — the source moved, not the
verdict). Sub-cause: `observations-changed`.
Both classes are RECORDED (the fault row carries its class + sub-cause
code in the run receipt), EXCLUDED from the error-rate denominator, and
NEVER counted as agree.
## The run is the run (RECEIPT-IS-THE-RUN-1)
The error bound describes the run that produced the receipt. If in that
run the sampler did not re-derive a drawn row, that is a procedure fault
OF THAT RUN — even if today's sampler, re-deriving the same row, would
reach an agree. Re-deriving the row today is a new run; it cannot be
attributed to the old receipt, and the old receipt's counts cannot be
re-attributed to today's sampler. The 2026-09-07 n=50 sample stands at
49 re-derived · 0 disagreements · 1 procedure fault
(NOT-REDERIVED / rule-short-circuit), bound 1 − 0.05^(1/49) ≈ 5.9%.
## Why the distinction exists
A self-audit that counts a not-performed re-derivation as an agree
overstates its own work; one that counts source drift as an error
measures procedure change, not verification accuracy. Excluding both —
and recording them — keeps the error rate an error rate and keeps the
audit honest about what it did and did not do.
## The limit, stated plainly
- The classification is emitted by the sampler in the run receipt, one
class + sub-cause code per fault row; the published law's classes and
codes map ONE-TO-ONE onto the sampler's emitted vocabulary
(LAW-CODE-PARITY-1 — the parity test refuses a law text carrying a code
the sampler does not emit, and refuses a sampler code missing from the
law).
- `rule-short-circuit` is the one historical code: it exists so the law
can classify the 2026-09-07 receipt in the same vocabulary; no current
code path emits it.
- A third party repeating the re-derivation with the same observations,
ruleset, and cutoff reaches the same classification for
PROCEDURE-DRIFT; NOT-REDERIVED rows are named in the receipt by id.
- The classification is NOT a claim about the original verification's
correctness — it is a claim about the difference's cause, and for
NOT-REDERIVED, about the run's own procedure.
- The error bound applies ONLY to re-derived rows (agree + disagree);
procedure faults of both classes are recorded and excluded, never agree.
## Parity
LAW-CODE-PARITY-1: classes {NOT-REDERIVED, PROCEDURE-DRIFT}; sub-causes
{missing-proposition, dangling-source, rule-short-circuit} under
NOT-REDERIVED; {observations-changed} under PROCEDURE-DRIFT. 1:1 with
`FAULT_VOCABULARY` exported by the sampler
(acn-mcp-server kernel/sample_audit.ts, acn b11668c). Parity runner:
`node lib/records/r14-3-procedure-fault-v2-parity.test.mjs` —
exit code quoted in the commit receipt.
The law's machine-readable code block (the parity test parses THIS block
and compares it 1:1 with the sampler's exported vocabulary — the prose
above is for the reader, this block is the law):
```law-codes
NOT-REDERIVED:
- missing-proposition
- dangling-source
- rule-short-circuit (historical)
PROCEDURE-DRIFT:
- observations-changed
```