mirror of
https://github.com/saymrwulf/anza-ed25519-verified.git
synced 2026-09-03 20:13:46 +00:00
Round-8 review (Claude, register key `lift-guard-regex-both-directions`).
Every class reproduced here before fixing, and re-tested after.
THREE FALSE NEGATIVES — the payload reads a name and the guard stayed silent,
which is the direction that costs something, because silence is what the tool
exists to prevent:
echo $((X + 1)) arithmetic expansion reads X without a `$` before the
(( Y > 0 )) name, and the read pattern cannot match it: the
character after `$` is `(`. Both contexts are now
tokenised. `if [ $((inm + ins)) -eq 0 ]` is already live
at check.sh:464 — not lifted today, so latent, not absent.
n=Q; ${!n} indirect expansion defeats text analysis outright. The
guard now REFUSES the lift rather than passing it. Its
contract is "does not miss a dependency"; where it cannot
honour that it must say so, not shrug.
SIX FALSE POSITIVES — the driver defines the name and the guard cried wolf.
This direction matters too: a guard that raises false alarms gets edited away,
and then it guards nothing.
case x in a) FOO=1 ;; `)` added to the assignment delimiters
if …; else FOO=1; fi `else` added
! FOO=1 `!` added
mapfile -t FOO binds a name with no `=` at all
readarray -t FOO likewise
printf -v FOO "x" likewise
The banner also over-claimed. It read as a completeness statement about
LIFTING; it is a completeness statement about VARIABLES. A lifted payload also
inherits functions, shell options, traps and a working directory, and this tool
models none of them — loud failures under `set -e`, but the header now says so
rather than implying otherwise.
Verified: all nine classes behave correctly, a genuine missing variable is
still caught by name, and the seven lifting self-tests pass in dalek plus the
four fast ones in each ported fork.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
||
|---|---|---|
| .. | ||
| gen/CurveField | ||
| Proofs | ||
| AUDIT-MANIFEST.txt | ||
| check-scalar.sh | ||
| check.sh | ||
| CurveField.llbc | ||
| driver-allowlist.txt | ||
| extract.sh | ||
| GEN-MODEL.sha256 | ||
| HARNESS.sha256 | ||
| inventory-allowlist-scalar.txt | ||
| inventory-allowlist.txt | ||
| inventory_gate.sh | ||
| lean-guard | ||
| lift-guard.sh | ||
| model-correspondence.py | ||
| MODEL-CORRESPONDENCE.txt | ||
| SCALAR-AUDIT-MANIFEST.txt | ||
| selftest-auditonly.sh | ||
| selftest-axgate.sh | ||
| selftest-correspondence.sh | ||
| selftest-harness.sh | ||
| selftest-inventory.sh | ||
| selftest-scalar-statements.sh | ||
| selftest-shapes.sh | ||
| selftest-statements.sh | ||
| selftest-tiers.sh | ||