dalek-ed25519-verified/verification
mrwulf a6e5e89120 verification: lifted phases run under the buttons shell options, enforced in lift-guard
A lift is evidence about the shipping gate only if it executes the way the
shipping gate executes. Every button here runs `set -euo pipefail`. Eighteen
lift sites prefixed their driver with `set -uo pipefail` and no -e — four per
fork (selftest-harness, selftest-scalar-statements, selftest-statements twice)
and both accumulator lifts — while sixteen other sites got it right. The estate
did it both ways, which is what made this a defect and not a convention.

Without -e a failing command does not abort: execution continues and the driver
returns the LAST command status. A lifted phase can therefore reach a verdict
the shipping phase would never reach while the self-test reports the gate
"works". selftest_statements.sh:27 claims the tested logic IS the shipping
logic; in this respect it was not.

NO VERDICT CHANGED. Every self-test that passed before passes now, at the same
timings, so -e was not masking a false green at these commits. The defect was
fidelity and the claim is no larger than that.

The durable part is not the 18 edits. lift-guard.sh already inspects every
driver, so it now REFUSES any lift whose driver does not enable errexit and
prints the drivers actual shell options. Negative-tested four ways: no -e
rejects, `set -euo` passes, bare `set -e` passes, no set line at all rejects.
Byte-identical across the four forks. The nineteenth lift someone writes fails
closed rather than silently testing a more permissive shell.

Certified by the round-15 sweep: 50/50 GREEN, six repositories, both buttons
and every self-test, exit 0.

Registered and NOT fixed here: ltl-accumulator-verified has no lift-guard.sh
at all and calls it zero times, so its two lifts remain unguarded — the one
place this class can still recur silently.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-04 12:58:28 +02:00
..
gen correspondence: a named section is not a namespace; an extra axiom is a failure 2026-08-02 21:29:54 +02:00
Proofs audit: bind the scalar statements, and make the accounting identity mean audit 2026-08-03 12:15:26 +02:00
AUDIT-MANIFEST.txt verification: bind the statements, the specifications, and the model (P1-a) 2026-07-29 00:38:17 +02:00
check-scalar.sh audit: bind the scalar statements, and make the accounting identity mean audit 2026-08-03 12:15:26 +02:00
check.sh verification: separate the two accounting questions (round-9 review, Claude N2) 2026-08-04 03:17:05 +02:00
CurveField.llbc Phase 2, brick 3 opened: decompress extracted for real (gen green) 2026-07-05 18:04:04 +02:00
CurveSig.llbc Phase 2, brick 3 opened: decompress extracted for real (gen green) 2026-07-05 18:04:04 +02:00
driver-allowlist.txt audit: bind the scalar statements, and make the accounting identity mean audit 2026-08-03 12:15:26 +02:00
extract.sh P2-c: classify and pin the extraction boundary 2026-07-31 17:53:31 +02:00
GEN-MODEL.sha256 correspondence: a named section is not a namespace; an extra axiom is a failure 2026-08-02 21:29:54 +02:00
HARNESS.sha256 verification: lifted phases run under the buttons shell options, enforced in lift-guard 2026-08-04 12:58:28 +02:00
inventory-allowlist-scalar.txt audit: bind the scalar statements, and make the accounting identity mean audit 2026-08-03 12:15:26 +02:00
inventory-allowlist.txt verification: pin the whole declaration surface (P1-b) 2026-07-30 01:20:15 +02:00
inventory_gate.sh audit: bind the scalar statements, and make the accounting identity mean audit 2026-08-03 12:15:26 +02:00
lean-guard Coherence pass 3: post-apex accuracy sweep, hygiene, guard ladder 2026-07-05 11:48:17 +02:00
lift-guard.sh verification: lifted phases run under the buttons shell options, enforced in lift-guard 2026-08-04 12:58:28 +02:00
model-correspondence.py correspondence: a named section is not a namespace; an extra axiom is a failure 2026-08-02 21:29:54 +02:00
MODEL-CORRESPONDENCE.txt correspondence: a named section is not a namespace; an extra axiom is a failure 2026-08-02 21:29:54 +02:00
SCALAR-AUDIT-MANIFEST.txt audit: bind the scalar statements, and make the accounting identity mean audit 2026-08-03 12:15:26 +02:00
selftest-auditonly.sh verification: --audit-only mode, and the guard that keeps it from becoming evidence (T1) 2026-07-30 19:16:17 +02:00
selftest-axgate.sh verification: derive lift dependencies instead of hand-keeping them 2026-08-02 13:07:28 +02:00
selftest-correspondence.sh verification: derive lift dependencies instead of hand-keeping them 2026-08-02 13:07:28 +02:00
selftest-harness.sh verification: lifted phases run under the buttons shell options, enforced in lift-guard 2026-08-04 12:58:28 +02:00
selftest-inventory.sh verification: pin the whole declaration surface (P1-b) 2026-07-30 01:20:15 +02:00
selftest-scalar-statements.sh verification: lifted phases run under the buttons shell options, enforced in lift-guard 2026-08-04 12:58:28 +02:00
selftest-shapes.sh verification: derive lift dependencies instead of hand-keeping them 2026-08-02 13:07:28 +02:00
selftest-statements.sh verification: lifted phases run under the buttons shell options, enforced in lift-guard 2026-08-04 12:58:28 +02:00
selftest-tiers.sh verification: derive lift dependencies instead of hand-keeping them 2026-08-02 13:07:28 +02:00