Ranex
The vocabulary, the tools, the real incidents

Understand Ranex before you install it

A glossary for the vocabulary the rest of the site assumes, two things you can run against any AI coding tool today (including this one), a straight comparison against what you might already be using, and real incidents from building the kernel. For the CLI and governance files themselves, read the source. That's what it's for.

11
Commands in the published CLI
1657
Frozen test IDs it gates itself against
0
Model calls in any verdict
MIT
Licence on the whole kernel
Start here

The vocabulary

Every page on this site uses these words without defining them. This is where they're defined, once.

Verdict
The output of gate evaluate: PASS or FAIL, computed as a pure function of (gate, evidence, subject, approver). Same inputs, always the same verdict, never a model's opinion.
Gate
A named rule with required claims and the exact command that can satisfy each one. A gate that cannot block is refused at construction: there is no such thing as an advisory gate here.
Subject-bound evidence
Evidence pinned to the exact commit digest it describes. The same command run against a different commit proves nothing about this one; stale evidence stops counting automatically.
Absence blocks
A required claim with no satisfying evidence is FAIL, never a default, never a skip. On a fresh clone the gate fails, and that is correct.
No self-approval
Whoever produced the evidence cannot approve it. Enforced on every evaluation, with no exception path, including for the kernel's own worker. The honest limit: approver identity is a plain string today, unauthenticated, so this compares unverified names.
The journal
An append-only, hash-chained record of every verdict. Database triggers prohibit ordinary updates and deletes; journal verify recomputes the chain for an operator. The honest limit: it doesn't yet detect a rollback or truncation of the journal itself: an internally consistent earlier prefix still verifies after later rows are removed.
The kernel
The code, not a model, that evaluates gates. It never asks a model what to do next; models can propose, critique, and translate, and none of those roles can pass a gate.
Run this yourself

The credential test

A named, free, repeatable check. It costs nothing, needs no vendor's cooperation, and belongs to you, not to Ranex.

  1. Pull every model credential off the machine.
  2. Re-run the check.
  3. If a single verdict changes, it was never a verdict. It was a report, and the report came from the thing that did the work.

Run it against any AI coding tool on the market, including this one, and see for yourself whether the scoring ever left the loop that did the work.

Give these away

Four questions to ask any AI coding tool

Ask a vendor these, including us. Take the answers with you.

  1. Who wrote the test that passed, and can you show it was frozen before the code existed?
  2. What commit digest is that green check actually bound to?
  3. When evidence is missing, does the check fail, or does it skip?
  4. Can the actor that produced the evidence also approve it?

The tell: a real answer gets shorter and more specific. A bluff gets longer and warmer.

On question four, Ranex's own honest answer is not a clean win: the kernel enforces no-self-approval in the sense that whoever produced the evidence cannot also record the approval, but approver identity is unauthenticated today, so that check compares unverified strings. We're saying that limit out loud before anyone else finds it.

A straight comparison

Ranex vs. what you might already have

GitHub rulesets, Copilot hooks, and a plain CI pipeline aren't nothing: they solve real, adjacent problems. This is where they differ.

DimensionRanexGitHub rulesetsCopilot hooksGeneric CI
What it actually checksEvidence bound to the exact commit digest, judged by a pure functionThat a named status check reported success, not what it measuredWhether a specific tool call is allowed during an agent sessionWhatever the pipeline runs, typically just an exit code
Missing evidenceBlocks. Absence is FAIL, never a defaultOnly if you required that exact check by nameNot applicable: governs actions, not outcomesOften invisible: a skipped test can read as a pass
Self-approvalNever possible: enforced in the kernel itselfPossible by default; a repo admin can bypassNot applicableUsually possible: the author can merge their own green run
Independent of the modelStated invariant: removing every model credential must not change a verdictNot model-aware either wayCoupled to Copilot specificallyGenerally yes, if you built it that way yourself
Where it livesYour repository, MIT-licensed, the worker port is replaceableGitHub's platformGitHub Copilot's platformYour own pipeline config

The kernel doesn't need to outcompete these. It's designed to sit underneath any of them. The worker port is replaceable by design; the kernel stays outside the loop regardless of which agent or platform fills it.

Ranex gates Ranex

What building this has actually turned up

Real incidents, cited to the slice that closed them, not illustrative examples. Full history in docs/slices/done/.

SLICE-0112026-08-07

A ~12% flaky test suite, approved twice before the gate caught it

Every gate was re-run against the worktree on disk rather than read from the session that produced it. That is the only reason the fifth durability claim's suite was caught being unstable after it had already been reported stable and approved by two independent reviewers; a fixture discarded the stderr that would have said so.

SLICE-004closed, reopened, closed again

59 refusals that no test executed at all

The first close rested on a cleanup control that had never worked on any supported Python, covered by a test that monkeypatched out the very function it was named for, and on a mutation check run by hand by the same actor who wrote the code. Measuring the general form of that found 59 refusals no test executed at all.

SLICE-009closed

A skipped test read as a pass, until it couldn't

Exit-code satisfaction let a skipped or vanished test read as success; the measured failure destroyed 27 tests while the remainder stayed green. The gate now compares signed structured outcomes against a frozen manifest. An undeclared skip, xfail, xpass, error, or missing ID blocks it; a zero exit code alone does not satisfy the gate.

See it for yourself

A fresh clone fails, and that is correct

There is no init that scaffolds a passing state. Absence blocks: with no evidence yet, the only honest verdict is FAIL.

Terminal
$ git clone https://github.com/anthonykewl20/ranex.git && cd ranex
$ uv run --frozen pytest -q # the full suite
$ PYTHONPATH=src uv run python -m ranex.cli.main gate evaluate HEAD \
--approver reviewer_alice
FAIL: no evidence exists yet for tests-executed, so the verdict is FAIL with a nonzero exit, naming the missing claim.
Absence blocks. This is the kernel working, not a setup error: producing evidence needs a signing identity of your own, provisioned dependencies, and the bound command. The full sequence is in README.md.

Ranex is pre-release. Watch it get built, or help.

v0.1.0 was released on 2026-09-03: a source-run kernel with a working verdict path, and the repository says its limits first. If you find a hole in the code that decides pass or fail, that is a contribution.