Price the OVMX-EXECUTIVE claim on which code a defect edits, not on what an assertion says (vms-ecf, vms-f26) - #47
Conversation
…-spelling universe (vms-ecf, vms-f26) Two escapes from tests/integration/test_userspace_service_register.sh, both reproduced end-to-end on 5e69609 before the fix, both now caught, and both added to the gate's own control set (34 -> 39 controls, 0 failed). vms-ecf -- THE OVMX-EXECUTIVE PRICE WAS PAYABLE IN A COMMENT. All four checks on the only full exemption the register grants were source greps, and the fourth was `grep -qF "$service" "$proof"`. MEASURED: one ignored `(void)vms_kif_readef(0u,&s)` inside sys$gettim (whose answer is still 100% clock_gettime) plus the single line `/* also covers sys$gettim */` appended to an otherwise untouched proof took the register AND the kif caller census to rc=0, printing 11 EXECUTIVE claims. A fifth check is added: the named proof must contain an assertion that NAMES the service and that tests/qemu/facility_defects.sh names in a require_fail or knock_on_fail set -- an assertion an injected defect is known to redden. It is deliberately NOT priced in runtime PASS lines: those are buyable for one more line, a vacuous CHECK(1, "sys$gettim ..."). A manifest entry is not, because run_facility_negctl.sh requires the complete red set under each defect to EQUAL require_fail + knock_on_fail exactly, and a vacuous assertion cannot go red. The gate's own header sentence "gaming it costs a test in the suite that boots the executive, instead of one ignored function call" is DELETED, not corrected. It was measured false: it cost a comment. sys$readef was the one OVMX-EXECUTIVE claim of ten with no mutation-backed assertion (setef 10, ascefc 6, dacefc 3, clref 2, dlcefc 2, enq 2, waitfr 2, enqw 1, deq 1, readef 0). It is NOT downgraded to OVMX-PARTIAL: the service is fully executive-resident and naming a process-local half it does not have would be the invented third answer Rule 10 forbids. Instead the three cross-process readback assertions in test_syssvc_ef_mproc.c -- each of which is asserted on the status AND state word sys$readef returned -- now name the reader as well as the writer, in lockstep with the four texts facility_defects.sh carries for them. `facility_defects.sh selftest` confirms every manifest text still exists in a suite source. sys$readef now scores 3. vms-f26 -- THE UNIVERSE WAS DERIVED FROM SOURCE SPELLING. MEASURED: renaming the definition sys$gettim -> ovmx_gettim, renaming its prototype in lockstep and restoring the public name with `__asm__("sys$gettim")` plus a #define took the universe silently from 88 services / 88 declared / 87 protos to 87 / 87 / 86 with rc=0 and PASS -- every existing check saw a consistent smaller tree, and the object stayed symbol-identical to pristine (nm shows `T sys$gettim` in both). The universe now has a third member that is not source text: the gate compiles every product .c file it scans (src/kernel excluded and declared) and reads the defined global sys$* symbols out of the objects with nm. A service exported under a name its source does not spell joins the universe under its EXPORTED name and must still declare. Under the same rename the gate is now RED naming sys$gettim, with the universe still 88. Residuals stated in the header rather than claimed away: the scan does not read assembly (measured: no sys$ token in any .S/.s in the tree today), and the call graph still cannot follow an alias, so an aliased service shows "-" in the exec/state columns. New controls (the gate's own machinery is now controlled too): the comment-paid price; an EXECUTIVE claim with the manifest entry withheld; a fully paid claim (green) which has to add a manifest entry; the manifest emptied out (the price must be computable, not skipped); the asm-label rename; and a product file that does not compile (a symbol scan that broke must say so, not certify). Verified by execution on this branch: register gate rc=0 (88 services, 88 exported, 127 objects) register negative controls rc=0 (39 controls passed, 0 failed; coverage 24/24 failure messages) vms_kif caller census rc=0 vms_kif census negative controls rc=0 (23 passed) facility_defects.sh selftest rc=0 test_runtime_target.sh rc=0 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…hat an assertion says (vms-ecf)
ROUND 2 REPLACED A COMMENT-PAYABLE PRICE WITH A PROSE-PAYABLE ONE. Its rule --
"an OVMX-EXECUTIVE claim must name an assertion facility_defects.sh has proven
reddenable, that mentions this service" -- bound the mutation to the service
through an assertion's WORDING, and that string lives in exactly two files, both
editable in one commit. Measured settling command: append ", clock via
sys$gettim" to a proven assertion in tests/qemu/test_syssvc_ef_mproc.c AND
tests/qemu/facility_defects.sh, flip sys$gettim to OVMX-EXECUTIVE, add one
ignored vms_kif_readef() -- gate rc=0, "sys$gettim x1" printed as a paid claim.
If editing an assertion's words is how a service becomes covered, coverage is a
naming convention. Worse, that was the instrument round 2 used to take
sys$readef from 0 mutation-backed assertions to 3.
THE PRICE IS NOW CHARGED AGAINST THE SERVICE'S ANSWER PATH -- the set of source
files its answer can come from, derived in four hops that are all code:
sys$readef (src/libvms/syssvc/sys_event.c)
-> vms_kif_readef the call graph the gate already has
-> VMS_IOCTL_READEF the constant that wrapper references
-> vms_ioctl_readef the `case` arm src/kernel/vms_module.c
dispatches it to
-> src/kernel/vms_eflag.c where that handler is defined
The ioctl is the one hop no call graph can walk, so it is read out of the
executive's own dispatch switch. A claim is paid when some defect's `targets`
land inside that set AND one of its require_fail/knock_on_fail texts appears in
the named proof, comment-stripped. The assertion never has to mention the
service. Check 4 is also upgraded: the proof must CALL the service (same
comment-stripping scanner), not mention it.
WHAT IT COSTS NOW, MEASURED BY EXECUTION RATHER THAN CLAIMED (method 5 applied
to this fix). Buying sys$gettim an OVMX-EXECUTIVE claim takes THREE edits, none
of them prose: the declaration flip; `(void)vms_kif_readef(0u,&s)` in its body;
`(void)sys$gettim(&t)` in the proof. Two are ignored calls. Step A (first two
only) is RED "PROOF NEVER CALLS THE SERVICE"; step B is PASS. THE PRICE IS
STILL PURCHASABLE and the header says so -- what changed is the currency. The
residual is vms-d89's, unchanged: "contains a call" is a syntactic proxy and
every syntactic proxy is purchasable. Closing it needs per-assertion service
attribution measured at RUNTIME by run_facility_negctl.sh; filed as vms-38c.
sys$readef IS RESOLVED WITHOUT RENAMING ANYTHING, and round 2's three renamed
assertion texts are REVERTED in lockstep across the proof and the manifest --
tests/qemu/ is now byte-identical to its pre-round-2 state. Under the new rule
sys$readef pays exactly like the other nine: eflag-clref-noop and
eflag-waitfr-eintr-normal both edit src/kernel/vms_eflag.c, which is in its
answer path, and both redden assertions in the proof it names. The measured
"sys$readef has 0 mutation-backed assertions" was an artefact of the metric:
eflag-clref-noop's require_fail already names two assertions that read
sys$readef's own return ("readef(5) after clear returns WASCLR",
"sys$readef(1) reported WASCLR after the clear") -- they live in
test_kmod_eflag.c and test_syssvc_ef_local.c, single-process suites an
OVMX-EXECUTIVE proof may not point at.
Controls 39 -> 42, 0 failed, coverage 24 -> 25 messages. New: the round-2
settling command itself; a claim whose proof is reddened by defects but none
editing its answer path; the same with the most favourable defect an adversary
could fabricate (real assertion from that proof, real executive target file,
wrong facility); and the ioctl bridge made unreadable -- a gate that cannot
compute its check must refuse, and that refusal is conditional on there being
an EXECUTIVE claim to price, because making it unconditional turned the gate's
own floor fixture into a bridge failure (measured).
Verified by execution (container with libssh-dev; the host lacks it, so the
symbol scan honestly refuses there):
register gate rc=0 (88 services, 10 EXECUTIVE, all paid)
register negative controls rc=0 (42 passed, 0 failed, coverage 25/25)
facility_defects.sh selftest rc=0
vms_kif caller census rc=0
vms_kif census negative controls rc=0 (23 passed)
test_runtime_target.sh rc=0
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…futes a full exemption (vms-ecf)
Round 3 priced an OVMX-EXECUTIVE claim on which code a proven defect edits, but
every check it added was evidence that the executive is REACHED -- and an
OVMX-PARTIAL service reaches it by definition. So a service that was already
PARTIAL satisfied all of them before any edit, and the upgrade to a full
exemption cost exactly one thing: deleting its own OVMX-LOCAL half. Measured by
an adversary on sys$creprc: one edit, no calls added, no test file touched,
PASS with 11 exemptions -- paid for by creprc-handshake-eintr, which edits
src/libvms/syssvc/sys_process.c, pure userspace.
The answer path is now SPLIT and the two halves do opposite things:
- the EXECUTIVE half (files holding the handlers for the ioctls the service's
reachable functions issue) PAYS, as before;
- the USERSPACE REMAINDER (the translation unit that DEFINES the service --
the same unit this register already requires the OVMX-LOCAL half to live
in) REFUTES. A defect that changes an observable public-API answer by
mutating code running in the calling process is evidence that a remainder
exists, which is the negation of "all of it is the executive's".
The remainder is deliberately NOT the transitive userspace closure: the call
graph is name-keyed product-wide and the first draft pulled src/imgact/imgact.c
into sys$enq's remainder and src/libvmssys/vms_kif.c -- the transport -- into
every event-flag claim, which would have manufactured refutations.
The disqualifier is not scoped to the named proof, because that would be
proof-shoppable.
CONSEQUENCE, and it is a finding rather than a cost: sys$enq/sys$enqw/sys$deq
are DOWNGRADED to OVMX-PARTIAL + OVMX-LOCAL. kstat-deadlock-mismapped,
kstat-ivlockid-mismapped and kstat-cvtungrant-mismapped each mutate
src/libvms/syssvc/sys_lock.c ONLY -- no executive code -- and each changes what
a public-API caller sees. The hand-written defence that sat in that file
("a translation of the executive's answer, not a substitute for it") is exactly
the prose the register is not allowed to read, and the manifest contradicts it.
The change to src/ is comment-only: preprocessed output is byte-identical.
DELETED, not restated: the header's "THREE edits, two of them ignored calls"
measurement. Four consecutive revisions stated a per-site price and all four
were broken by execution. The residuals are named instead of costed.
MEASURED AFTER THE FIX (Method 5 on my own price), stated because it is still
purchasable: all five named PARTIAL->EXECUTIVE upgrades (sys$creprc, sys$getjpi,
sys$assign, sys$qio, sys$qiow) are now RED. The remaining buy is FOUR edits --
delete the three manifest entries targeting src/libvms/syssvc/sys_process.c,
then flip the declaration -> register rc=0, PASS, 8 exemptions, and
facility_defects.sh selftest rc=0 does not notice the deletion. Recorded on
vms-38c.
Verified (container, libssh-dev present): register rc=0 -- 88 services, 88
exported, 0 symonly, 127 objects, 7 EXECUTIVE all paid, 13 PARTIAL; register
negctl 44/0 with coverage 26/26; facility_defects selftest rc=0; kif census
rc=0; census negctl 23/0; runtime_target rc=0. tests/qemu/ is byte-identical to
origin/main (diff is empty), so eflag-clref-noop and eflag-waitfr-eintr-normal
are untouched and were not re-run.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Four statements in the 2026-08-01 revision were measurably wrong and are corrected in a new section 0: podman (the host has docker), vms-a30 being outside the closure (it blocks vms-150), the lab path (/data/training/vax), and main's SHA (moved to ce11330). Several origin branches are duplicate refs at the same SHA, so the doc now says to establish a round by SHA. Frontier state: vms-fbe is draft PR #46 at 35/35 green; vms-ecf + vms-f26 are draft PR #47, adversary-cleared but CI-red on a source-scan refusal that is the gate working correctly; vms-cb5 round 4 is pushed and in verification. The executive-resident count is now 7, not 10 -- sys$enq/sys$enqw/sys$deq were demoted to PARTIAL on measured evidence (vms-82a). Section 5 gains the lessons earned this round: open the draft PR early because CI is a different and cheaper oracle; a passing test can conceal the failure mode it was written to detect; distinguish a container's exit status from a suite's; a gate printing a confident wrong cause is worse than one printing none; test a disqualifier for over-firing, since under-claiming is also a wrong measurement; and go to the lab before declaring a VMS value unpinnable. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…ry product source (vms-ecf) CI went red on PR #47 and the gate was RIGHT to refuse: FAIL: BROKEN SYMBOL SCAN: 126 of 127 product source file(s) compiled. src/vmsssh/vmssshd.c:37:10: fatal error: libssh/libssh.h: No such file The build-derived universe (vms-f26) compiles every product .c file and reads the exported sys$ symbols with nm, because both source-text readings of the universe were escaped together by one asm-label rename. So this gate's dependencies are the whole product's dependencies -- including sources CMake would skip. src/vmsssh/vmssshd.c is a real product source; without libssh-dev one file contributes no symbols and a service could hide behind a build error. That refusal is the same property as the -Wno-* flag probe beside it: a price that cannot be computed must refuse, not certify. TAKEN: the first legal answer -- make the condition unreachable. libssh-dev is added to the Build & Test job, the only job that runs ctest and therefore the only one that runs these two entries. NOT taken: skipping the file, allowlisting it, tolerating a short count, or downgrading the refusal. The gate's header now says so where the exclusion mechanism is documented, so the next person meets the reason before the workaround. MEASURED, AND IT CORRECTED THE EXPECTATION I WENT IN WITH: libssh-dev adds NO test entries. ctest -N reports 53 with it and 53 without -- identical. What CMake skips without libssh is src/vmsssh (the daemon), which registers no tests; tests/vmsssh (term_mapping) has no libssh dependency and is configured either way, deliberately (CMakeLists.txt:171). The "39 -> 41" figure this commit was first written around is wrong and is not in the tree. The one thing the package changes that ctest can see is 126/127 -> 127/127. VERIFIED by execution in a container mirroring the job (ubuntu:24.04 + the job's apt list): configure rc=0, build rc=0, ctest 53/53 passed 0 failed, with entry 8 userspace_service_register and entry 9 userspace_service_register_negctl both Passed. The same tree in the same image WITHOUT libssh-dev reproduces the CI failure exactly, so the fix is load-bearing rather than incidental. Register rc=0 -- 88 services, 88 exported, 0 symonly, 127 objects, 7 EXECUTIVE all paid, 13 PARTIAL, 68 USERSPACE; register negctl 44/0 with coverage 26/26; kif census rc=0; census negctl 23/0; runtime_target rc=0; facility_defects selftest rc=0. origin/main has moved to ce11330; it merges clean and the register is rc=0 with 127 objects on the merge result too. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Round 5 —
|
The eight defects found in passing while settling the three branches were filed unwired; this records where triage put them. A new parent vms-95f groups the four harness-integrity items (vms-b1f, vms-c9c, vms-215, vms-008) and blocks vms-150. vms-38c also blocks vms-150. vms-82a, vms-e60 and vms-2f8 block vms-042; vms-2d37 blocks vms-898. The harness parent blocks vms-150 and deliberately NOT vms-b33: Phase 2 rests on per-suite evidence these defects do not corrupt, and it is the near-term unblock. Phase 3 veracity is exactly the claim that our measurements mean what they say, so it waits. Closure goes 17 -> 26 open, no cycles. That is a sequencing decision, not a scope decision, and section 3 records the undo: un-wiring the five items returns it to 17 and ships the epic sooner on softer evidence. That trade is the operator's. All three branches are now PRs #46, #47 and #48, marked ready for review. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
PR #46 (vms-fbe, c243992) and PR #47 (vms-ecf + vms-f26, 57fc164) are merged; main is eff4fe3 and all three items are closed. PR #48 (vms-cb5) remains open at 1598ef5 with main merged in and the knock_on_fail fix for the two scenario-G/OPCOM+ reds under bind-client-no-register. vms-b33 is unblocked and active: its last two blockers closed with #47, so the fifth Phase 2 verdict is the next thing to run. vms-150 does NOT unblock when #48 merges -- vms-a30, vms-95f and vms-38c also block it. Closure is 23 open, not 26: eight defects triaged in against three items closed on merge, from a starting 17. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
* docs: handoff for the vms-14f executive-residency dispatch Records the execution pointer, the three open branches and their named blockers, the method rulings that were paid for during the dispatch, and the harness arithmetic reconciled in vms-215. Wave 47 outcomes are appended in a follow-up commit. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> * docs vms-14f: rewrite the handoff after the 2026-08-02 frontier round Four statements in the 2026-08-01 revision were measurably wrong and are corrected in a new section 0: podman (the host has docker), vms-a30 being outside the closure (it blocks vms-150), the lab path (/data/training/vax), and main's SHA (moved to ce11330). Several origin branches are duplicate refs at the same SHA, so the doc now says to establish a round by SHA. Frontier state: vms-fbe is draft PR #46 at 35/35 green; vms-ecf + vms-f26 are draft PR #47, adversary-cleared but CI-red on a source-scan refusal that is the gate working correctly; vms-cb5 round 4 is pushed and in verification. The executive-resident count is now 7, not 10 -- sys$enq/sys$enqw/sys$deq were demoted to PARTIAL on measured evidence (vms-82a). Section 5 gains the lessons earned this round: open the draft PR early because CI is a different and cheaper oracle; a passing test can conceal the failure mode it was written to detect; distinguish a container's exit status from a suite's; a gate printing a confident wrong cause is worse than one printing none; test a disqualifier for over-firing, since under-claiming is also a wrong measurement; and go to the lab before declaring a VMS value unpinnable. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * docs vms-14f: record the PM triage of the eight items found this round The eight defects found in passing while settling the three branches were filed unwired; this records where triage put them. A new parent vms-95f groups the four harness-integrity items (vms-b1f, vms-c9c, vms-215, vms-008) and blocks vms-150. vms-38c also blocks vms-150. vms-82a, vms-e60 and vms-2f8 block vms-042; vms-2d37 blocks vms-898. The harness parent blocks vms-150 and deliberately NOT vms-b33: Phase 2 rests on per-suite evidence these defects do not corrupt, and it is the near-term unblock. Phase 3 veracity is exactly the claim that our measurements mean what they say, so it waits. Closure goes 17 -> 26 open, no cycles. That is a sequencing decision, not a scope decision, and section 3 records the undo: un-wiring the five items returns it to 17 and ships the epic sooner on softer evidence. That trade is the operator's. All three branches are now PRs #46, #47 and #48, marked ready for review. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * docs vms-14f: two of the three frontier branches are merged PR #46 (vms-fbe, c243992) and PR #47 (vms-ecf + vms-f26, 57fc164) are merged; main is eff4fe3 and all three items are closed. PR #48 (vms-cb5) remains open at 1598ef5 with main merged in and the knock_on_fail fix for the two scenario-G/OPCOM+ reds under bind-client-no-register. vms-b33 is unblocked and active: its last two blockers closed with #47, so the fifth Phase 2 verdict is the next thing to run. vms-150 does NOT unblock when #48 merges -- vms-a30, vms-95f and vms-38c also block it. Closure is 23 open, not 26: eight defects triaged in against three items closed on merge, from a starting 17. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * docs vms-14f: rewrite the handoff for the seventh Phase 2 verdict The 2026-08-02 revision named PR #48 as its only loose end; #48 merged twelve minutes after that revision was committed, so the document was stale within the hour. Main has since moved eff4fe3 -> 8e8be98 through eight merges closing vms-b33 blockers, plus four SCS merges from another dispatch. vms-b33 is blocked again, by exactly five items -- vms-c79, vms-004e, vms-659, vms-d894, vms-35f -- every one a two-edit escape from a static gate, all filed by the seventh verdict's adversary. Closure re-derived by DAG walk from vms-14f: 35 open, counting the epic, up from 23. Numbers re-derived rather than carried: the eight merge SHAs against gh api (all green on Build & Test and the per-facility negative control job); the ctest counts at 44870ac / 8552c29 / d9b69cc / 8e8be98 (56 / 56 / 58 / 59) by configure-only enumeration, which is what makes "a green on a stale base is not evidence" a measurement rather than an assertion; the CI timeout raise 20 -> 35; the ledger's 22 rows checked against rd's live open set by hand. What was NOT re-measured is labelled as such -- the ctest 2-failure pair and the rd_citations_fresh flake are carried from run 7, and the round ran under a no-builds constraint at 95% disk. Keeps visible: 13 of 44 entry points remain unwired, so Phase 2 closing means what is wired is proven, not that the executive is complete; and the vms-1e1 (B) ruling with its one-command undo, whose binding side condition is now itself under attack by vms-004e and vms-35f. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5 <noreply@anthropic.com> Co-authored-by: alice <alice@workspace.local>
Closes
vms-ecfandvms-f26— the last two open blockers onvms-b33's Phase 2 verdict.Four rounds. Rounds 1–3 were each refused by an adversary. Round 4 is the first whose central claim the adversary could not break.
The problem
The userspace service register grants exactly one full exemption,
OVMX-EXECUTIVE, and the price kept being purchasable:grep -qF "$pname" "$proof"— a comment satisfies itOVMX-PARTIAL, so both checks were pre-satisfiedvms-38cRound 2's instrument is the one that mattered: if editing an assertion's words is how a service becomes covered, coverage is a naming convention and not a measurement — and that was the same instrument used to make
sys$readef"pay".What lands
The universe is derived from the build, not from source text. The gate compiles all 127 product
.cfiles and reads exportedsys$*symbols withnm— 88 services, 88 exported, 0 symbol-only. On main the symbol set and the source set are equal, so nothing was papered over; an asm-alias rename now goes red. No hand-maintained cardinal anywhere.The price is derived from which code a proven-reddening defect actually edits, in four code-only hops: call graph → the
VMS_IOCTL_*constant the kif wrapper references → thecasearm insrc/kernel/vms_module.c→ the file defining that handler. No check reads a service name out of prose.The answer path is split, and the halves do opposite things. The executive half pays. The userspace remainder — the translation unit defining the service — refutes: a defect that changes an observable public-API answer by mutating code in the calling process is evidence a remainder exists, which is the negation of "all of it is the executive's." Check 6 is a disqualifier, not a sixth thing to buy, and the printed remedy is
OVMX-PARTIAL+OVMX-LOCAL— never deletion.sys$readefwas resolved without renaming. Round 2's three renamed assertion texts are reverted in lockstep;git diff origin/main -- tests/qemu/is empty. It pays like the others:eflag-clref-noop→ 24/4, red set equal torequire_failexactly, one red attest_syssvc_ef_mproc.c:221asserting onsys$readef's own return and out-param, cross-process;eflag-waitfr-eintr-normal→ 27/1, both reds in that same proof.The disqualifier's first result: three services demoted
sys$enq/sys$enqw/sys$deqdrop fromOVMX-EXECUTIVEtoOVMX-PARTIAL+OVMX-LOCAL, taking the EXECUTIVE count 10 → 7.That is a measurement, not a regression, and it was settled by execution rather than argument. All three
kstat-*defects hit onecasearm inkstat_to_ss(). Compiling the product TU verbatim, pristine vs. all-three-injected:diff -rqoversrc/shows one file differs, zero executive code, while the public status the caller receives changes 3594→2488, 8484→2488, 8508→2488.SS$_DEADLOCKbecomingSS$_NOTQUEUEDis a different answer, not a different spelling — a caller branching on it behaves differently.No
/dev/vmswas needed to prove that, which is exactly the point being claimed. The underlying defect is now filed asvms-82a: the executive uses a private numbering (100/108/116) and never produces anssdef.hvalue, so the VMS-visible status is manufactured in userspace. Note the lock manager is the precedent the whole executive ruling rests on — so the one facility cited as proof OVMX does this properly is the one still finishing its answer outside.Disclosed residual — not claimed closed
Buying a claim still costs two edits, and the round says so in the gate's own text rather than measuring it away. Four successive price statements have each been broken by execution, so no number is carried — the comment explains why and names the residuals instead. Tracked as
vms-38c, corrected twice: the cheap route is addition (sys$wflor— flip itsPARTIAL+LOCALblock, add one ignored(void)sys$wflor(0u, 0u)to a proof), not deletion, so flooring the manifest against deletion would not close it. The weak hop is check 4, "the proof calls the service" — a call that asserts nothing satisfies it. Only per-assertion runtime attribution closes that, which is whatvms-38cexists to do.Adversarial verification
executive answer path is: (empty).-Wno-*flags are ignored, measured otherwise (gcc rejects one atcc1, all 127 files failed), and the gate refused rather than certifying on an empty symbol set.facility_defects.shselftest rc=0 · kif census rc=0 · census negctl 23/0 ·test_runtime_target.shrc=0.src/change is comment-only — cpp output byte-identical.tests/qemu/byte-identical toorigin/main, so notest_syssvc_*suite changed and the negative-control job's inputs are unchanged.🤖 Generated with Claude Code