Build1 publisher3 min readPublished
Ed25519 tells you which key signed which bytes. A slice log from the Ranex project shows how a policy path read from the working tree let the gated side pick the rules, and what pinning the trust root to the evaluated commit cost.
The Engineer · Build desk

Compiled by The EngineerSomething wrong?How this is made
Begin with what a verifier does when it loads a keyring. It resolves a path, reads bytes, parses keys, then checks a signature against one of them. Ed25519 either verifies or it does not, and what it establishes is which private-key holder signed which bytes [1]. Nothing in that step says the keyring you just parsed is the one anyone reviewed.
In the first Ranex build the keyring and the gate catalog could be read from the working tree, so an uncommitted edit was a valid input to a verdict [4]. The project's stated control was review of the committed keyring, and the code had not made that true [4]. A control that lives only in a review checklist is a comment.
The second reopening is the more instructive failure. According to the record, the trust-root check skipped itself when the evaluated commit had no such path, and the path came from a flag, so the party being gated could name a catalog or keyring the commit did not carry and have it read unchecked [5]. Every reproduced route reduced to the same early return: absence got a pass, and the code returned without comparing anything [7]. The symlink case is the one worth copying into your own tests. A committed symlink sat at a reviewed name, and resolution followed the link before Git was asked, so the reviewed name was never the thing being checked [6].
ADR-002's answer is a bytes compare rather than a path check. It refuses any trust-root path the evaluated ref does not carry, compares the bytes Git records for the path as named against the bytes that would decide the verdict, and hands the committed bytes to the loaders [8]. The second half carries more weight than the first: the loader does not reopen the mutable path afterwards, because a compare followed by a second read gives two chances for different bytes to appear [9]. The project measured the change with strace, reporting one open per trust-root file after the fix where there had been three and two [10]. Count the gaps instead of the opens. Three reads leave two intervals in which the file can change underneath you, two reads leave one, one read leaves none [1].
This design depends on the trust root being a file whose bytes Git records, and on verification running against a ref rather than a directory [8]. Where policy lives in a service and keys in a KMS, the same question has a different shape: not which bytes decided, but which policy version answered and whether the caller chose it. The part that transfers without translation is the inventory the post asks for, which is every config that declares required checks, trusted identities, allowed commands or approval rules, plus the flags and environment variables that select those files, plus any loader that checks one path and reopens it later [12].
What the evidence here is: one project's own slice log, on a slice closed and reopened twice, where the reopenings came from audits showing the tests were narrower than reality rather than from failing tests [11][15]. No exploit in the wild, and no third-party reproduction of the strace counts [15]. The narrow claim it does support is the one worth carrying: signature verification answers who produced an observation, and only the evaluated commit can answer under which rule it was admitted [1][13].
Ranked by verification strength, evidence, and original report placement.
An Ed25519 signature proves that the holder of a private key signed specific bytes; it does not prove that the claim inside those bytes is true. A CI record can say who produced an observation but cannot, by signature alone, say whether the rule that admitted it was trustworthy, whether the command meant what the claim says, or whether an approver was independent.
The post's TL;DR states that Ed25519 proves who signed specific bytes and not whether the claim is true, and that verdict policy must come from the evaluated commit.
In Ranex, evidence is signed and bound to a producer in a committed public keyring, and the verifier holds public keys rather than the private keys used to sign, which is useful when evidence is produced on one machine and verified on another.
The first version of Ranex allowed the keyring and gate catalog to be read from the working tree, so an uncommitted edit could decide a verdict. The project said review of the committed keyring was the control; the code had not made that true.
SLICE-002 was reopened a second time on 2026-08-02 because the trust-root check skipped itself when the evaluated commit had no such path. The path came from a flag, so the party being gated could name a catalog or keyring that the commit did not carry, and Ranex would read it unchecked.
The slice record reproduced an attacker-named gate catalog that could rewrite the gate after the work, a keyring at a gitignored path where a producer could register itself while git status stayed clean, and a committed symlink at a reviewed name where resolution followed the link before Git was asked, so the reviewed name was never the thing being checked.
Follow any of these and your For You feed starts watching them — no settings page required.
Evidence-backed comparisons of source perspectives and observed adoption signals. Read the methodology
Which Builder, Operator, and Investor concerns the observed source mix emphasized—not a truth score.
Evidence, demonstrated adoption, hype gap, incentives, and confidence are assessed independently, each on its own current evidence. How these are measured.
Specific but entirely self-reported
The particulars are not the kind anyone invents casually: a reopen date, the decision record that closed it, the exact early return, and syscall counts on either side of the change. They also all come from one project writing about itself, with no commit, repository or release a reader can open and nobody outside reproducing the three routes. The cryptographic premise about what a signature covers is checkable independently; the Ranex specifics have to be taken as reported.
No outside use disclosed
This reporting never says who runs Ranex. There is no install figure, no downstream user, and no outside report of the same defect in another pipeline, so there is no basis on which to score uptake.
Generalized a step past the record
The post is harder on itself than on anyone else, publishing two premature closes and a test that compared the same string to itself. Where it reaches is scope: a hunt list addressed to your own pipeline generalizes from a single loader without one example of the same defect elsewhere, and the phrase four independent audits does a lot of work for a project whose auditors are never named.
Author auditing his own tool
The tool being examined is the author's, on a platform where a detailed write-up builds a byline, and Ranex ends the story as the project that found and closed the hole. Pulling the other way, the disclosure costs something real: it admits the shipped design let an uncommitted edit decide a verdict and that the test suite had been checking an easier world than the code inhabits.
Coherent account, unverifiable particulars
The mechanism holds together and the fix follows from the failure, which is why we carry it as reported rather than as doubtful. What keeps the number mid-range is that every checkable detail, the dates, the defect count, the syscall counts, the auditors, sits in one self-published log, and a reader who wants to verify any of it has nothing to open.
build
Claude Code walks the whole process table to inherit one shell's environment1 publisher
build
A deterministic kernel outside the agent loop, because "all tests pass" is not evidence1 publisher
security
Proving supply-chain provenance takes more than a week at 48% of firms JFrog surveyed1 publisher
build
Your meter now runs on someone else's machine: signed receipts, fsync, and failing open1 publisher
Publishers with included, body-backed reporting in this cluster.
1 article · September 7, 2026