The claim surface behind the certificate.
Every number on cejel.dev traces to a command below. Distribution routes, the calibration record, rubric versions, source verification, and the changelog — read or re-run any of it yourself.
← Back to cejel.dev · Repository Evidence Review (Barg Labs)
Current · v0.6.10 npm, Docker / OCI, the Official MCP Registry, GitHub Releases, standalone binaries, Homebrew, and the GitHub Action now point to the current release. Verify the source record →
Cejel free-core rubric v17 was scored on a frozen, untouched 200-repository open-source calibration it never trained on. We committed to publishing the result either way, before we saw it.
Every criterion and abstention gate passed. Scope: public repositories on the v17 free-core rule set — this measures whether a codebase's claims are backed by inspectable evidence, not vulnerability detection. Separate calibrations (e.g. the Quant pack) carry their own claims.
The defect-class census publishes the coverage-breadth boundary: which defect classes any shipped rule targets. It is not a recall claim.
Why v17 is still the public default.
Prospective v19 changes only B4's numeric freshness reference from scan wall clock to
the scanned commit's year. Its preregistered paired rescore completed all 24 rows with
zero score, status, coverage, placement, or non-B4 changes. That GO published the delta;
it did not authorize replacing holdout-calibrated v17. The current leaderboard rows were
generated by executing published @cejel/cejel@0.6.3
(last regenerated 2026-10-11) with no rubric pin, so they run
the calibrated v17 default; prospective rubrics remain explicit-only.
v17 in-scope detection recall: 41.1% (95% CI 20.6–67.8%), measured on a 193-repository untouched cohort under a preregistered protocol and design-weighted to 3,163 eligible public repositories; measurement valid, no decidability ceiling tripped.
Detection precision 64.3% (95% CI 38.4–87.6%). Abstention share 11.4% (95% CI 3.6–20.0%).
Instrument. Measured with the published @cejel/cejel@0.4.11 (gitHead d30ac4ba).
Later releases have changed scoring under v17, including the evidence fix in
(#433), so this figure does not describe the
current release; a re-measurement on the current release is owed.
Rater. Labelled by one rater, who authored the rubric. On 40 cases re-labelled after a washout of at least seven days, he agreed with his own first labels on 85% of cases (Cohen’s kappa 0.73).
No independent second rater adjudicated cycle 13. This figure is the operator’s agreement with his own labels on a 40-case subsample re-labelled after a washout of at least 7 days. It measures consistency, not independence from the detector; the independent-rater requirement is not met for this cycle.
Low agreement means the recall interval understates total uncertainty, because it contains sampling variance only.
Scope. v17 is the calibrated default. This is a measurement publication. The same cycle measured the prospective v23 beside it; under the signed promotion policy v23 was not promoted, and v17 remains the default.
They count different things, under different raters and instruments. Neither is a restatement of the other, and neither can be substituted for the other in either direction.
Different measurements; the gap between them is not yet explained.
v22 in-scope detection recall: 34.0% (95% CI 21.0-53.5%), measured across seven rules on a 200-repository untouched cohort under a preregistered protocol; measurement valid, no decidability ceiling tripped (aggregate control insufficient-context 7.94% against a 20% ceiling).
False-positive rate 0.77% (95% CI 0-2.1%).
Instrument. Measured on an engine built from source at commit
e434a40e, between releases 0.4.5 and 0.4.6; no published package reproduces this
instrument. The measurement predates cejel
#276,
#277 and the 0.4.8 abstention-scoring
change, so a re-measurement on the current release is owed and this figure does not describe it.
Scope. v22 is prospective and explicit-only: it is not what a default scan runs, and it is not what produced any certificate or any row on the published board. v17 is the calibrated default. This is a measurement publication and not a promotion — the signed cycle-12 promotion decision is NO-GO and v22 stays unreleased. v17’s cycle-13 figure is not comparable with v22’s 34.0% on its 200-repository untouched cohort: different rubric, cohort, rule set and instrument; the two intervals overlap almost entirely.
They come from different instruments, different populations and different rubric versions. None of them is a restatement of another, and none can be substituted for another in either direction.
Each figure answers its own question on its own instrument. None of the four stands in for another, and no two of them form a trend.
Read the v22 detection-recall record →
Cejel is published across the command line, CI, containers, and MCP discovery surfaces. Each card names the exact version or installation route it serves.
Distribution note
v0.6.10 is current on npm, Docker / OCI, the Official MCP Registry, GitHub Releases, standalone binaries, Homebrew, and the GitHub Action v1 source route below.
Every row was read or executed live at the timestamp shown; no prior release result was
copied forward.
This table records a live check on 2026-11-04. It distinguishes an attested artifact from a reference to one. Consumer tools are pinned in the linked workflow: Node 24.15.0, npm/npx 11.17.0, pnpm 11.21.0, Bun 1.3.14, GitHub CLI 2.97.0, Git 2.50.1, and Docker Buildx 0.34.1.
| Surface or route | Version served today | Carries provenance? | Command that proved it | Route check |
|---|---|---|---|---|
| npm package | 0.6.10 | Yes — the published npm attestation record | npx --yes npm@11.17.0 view @cejel/cejel@0.6.10 version gitHead dist.attestations --json | npm record · checked 2026-11-04 |
| npx, pinned | 0.6.10 | Yes — the published npm attestation record | npx --yes @cejel/cejel@0.6.10 --version | consumer run · checked 2026-11-04 |
| npx, latest | 0.6.10 | Yes — the published npm attestation record | npx --yes @cejel/cejel@latest --version | consumer run · checked 2026-11-04 |
| npx, unpinned | 0.6.10 | Yes — the published npm attestation record | npx --yes @cejel/cejel --version | consumer run · checked 2026-11-04; pin 0.6.10 for reproducibility |
| pnpm dlx, pinned | 0.6.10 | Yes — the published npm attestation record | npx --yes pnpm@11.21.0 dlx @cejel/cejel@0.6.10 --version | consumer run · checked 2026-11-04 |
| pnpm dlx, unpinned | 0.6.8 from a fresh resolution | Yes — the published npm attestation record | npx --yes pnpm@11.21.0 dlx @cejel/cejel --version | consumer run · checked 2026-11-04; pnpm release-age policy observed |
| bunx, pinned | 0.6.10 | Yes — the published npm attestation record | Bun 1.3.14: bunx @cejel/cejel@0.6.10 --version | consumer run · checked 2026-11-04 |
| Docker / OCI | 0.6.10 | Yes — GitHub-hosted attestation names e3f1a047fbd263d93b39b1a1434af34d751dec30… | Docker Buildx 0.34.1: docker buildx imagetools inspect ghcr.io/barglabs/cejel:0.6.10 | release-chain readback · checked 2026-11-04 · sha256:9dff91f6eee17acab1d30bc945f74710de36ca87e5850bb7b0541d4a9c3d435d |
| Official MCP Registry | v0.6.10 via immutable OCI digest | Yes — the live record names ghcr.io/barglabs/cejel@sha256:9dff91f6eee17acab1d30bc945f74710de36ca87e5850bb7b0541d4a9c3d435d | curl -sS 'https://registry.modelcontextprotocol.io/v0.1/servers/io.github.BargLabs%2Fcejel/versions/latest' | live registry record · checked 2026-11-04 · isLatest: true |
| GitHub Releases | v0.6.10 published | Yes — release includes the Sigstore provenance bundle | GitHub CLI 2.97.0: gh release view v0.6.10 --repo BargLabs/cejel --json isDraft,publishedAt,assets | release record · checked 2026-11-04 · published 2026-11-04T18:51:49Z · 12 assets |
Standalone binaries + SHA256SUMS | 0.6.10 · five targets | Yes — release carries per-asset SBOMs, checksums, and signed provenance over the checksum set | gh release download v0.6.10 --repo BargLabs/cejel --pattern SHA256SUMS | published checksums · checked 2026-11-04 |
| Windows standalone binary | 0.6.10 · x86_64 | Release carries cejel-v0.6.10-provenance.sigstore.json plus SHA256SUMS; the guarded build verifies the executable is intentionally not code-signed | GitHub CLI 2.97.0: gh release download v0.6.10 --repo BargLabs/cejel --pattern cejel-Windows-x86_64.exe --pattern SHA256SUMS | fresh native Windows stranger-check · checked 2026-11-04 · exit 0 · binary SHA-256 c033c6e36e189ff7d89f2926ffaa5e0600027bd8999148586488d2d7bf0f9bd2 · report parity c7e0e6550bf9357e23618920018be38d3c05bd15c8b775db6be88f3bbb8553ce |
| Homebrew | 0.6.10 | Checksums in the live tap formula match the GitHub Release digests | GitHub CLI 2.97.0: gh api 'repos/BargLabs/homebrew-tap/contents/Formula/cejel.rb?ref=main' | tap commit 7fb00c73fff18a2d868c7f2ae72a4e65ee841c1b · checked 2026-11-04 · consumer-routes check passed |
GitHub Action root @v0.6.10 | 0.6.10 consumer runtime | Immutable source-tag route; not an artifact-provenance surface | uses: BargLabs/cejel@v0.6.10 | consumer run · checked 2026-11-04 |
GitHub Action root @main | 0.6.10 consumer runtime | Floating source route; not an artifact-provenance surface | uses: BargLabs/cejel@main | consumer run · checked 2026-11-04 |
GitHub Action action@v1 | 0.6.10 consumer runtime | Floating compatible-v1 source route; not an artifact-provenance surface | uses: BargLabs/cejel/action@v1 | consumer run · checked 2026-11-04 |
| Smithery | Directory record; no separate Cejel artifact | No — anonymous discovery references the published server; connecting requires an account | npx --yes @smithery/cli@latest mcp search cejel --json | anonymous stranger-check · checked 2026-11-04 · listed; unauthenticated add stopped at the login boundary |
| OpenClaw MCP | 0.6.10 through the npm package | Yes — the published npm attestation record | npx --yes openclaw@latest mcp add cejel --command npx --arg -y --arg --package=@cejel/cejel@latest --arg cejel-mcp | Node 22 + 24 stranger-check · checked 2026-11-04 · add and probe passed on Node 24; Node 22.23.2 failed the client engine requirement |
Pinned and unpinned package-client routes were executed independently. The three Action rows read the runtime version from each produced attestation; they do not claim artifact provenance for source references. Smithery's anonymous boundary is recorded as a boundary, not upgraded to a successful authenticated install.
npx @cejel/cejel@0.6.10 .
Standalone binariesmacOS, Linux, and Windows · five native targets
SHA256SUMS + provenance
Docker / OCIPublic, non-root, multi-platform image
ghcr.io/barglabs/cejel:0.6.10
GitHub ActionSource tag · v0.6.10
BargLabs/cejel/action@v1
HomebrewNative install from the Barg Labs tap · v0.6.10
brew install barglabs/tap/cejel
SmitheryDiscovery is free; connecting requires a Smithery account
npx -y @smithery/cli@latest mcp add cejel
Official MCP RegistryActive digest-pinned server record · v0.6.10
io.github.BargLabs/cejel
OpenClawVerified on Node 24 · pin openclaw@latest
npx -y openclaw@latest mcp add cejel …
For the v0.6.10 npm and OCI release, Cejel’s report.json and
summary.json are byte-identical across runs on the same commit. The independently verified OCI
provenance record names commit e3f1a047fbd263d93b39b1a1434af34d751dec30.
The npm attestation endpoint answered for this version on 2026-11-04. Read its source identity independently of the OCI record.
The OCI image has separately verified provenance. The MCP Registry accepts an OCI digest reference, which provides provenance by reference; Cejel’s current record names the immutable v0.6.10 image digest.
Read the current MCP Registry record:
curl -sS 'https://registry.modelcontextprotocol.io/v0.1/servers/io.github.BargLabs%2Fcejel/versions/latest'
Check the Registry’s accepted OCI digest-reference form:
curl -sS https://raw.githubusercontent.com/modelcontextprotocol/registry/main/internal/validators/registries/oci.go |
rg 'registry/namespace/image@sha256:digest'
Read the package metadata, then fetch npm’s published attestation record:
npm view @cejel/cejel@0.6.10 --json
curl -s "https://registry.npmjs.org/-/npm/v1/attestations/@cejel%2fcejel@0.6.10"
The npm attestation endpoint answered for this version on 2026-11-04. Read its source identity independently of the OCI record.
Fetch the GitHub-hosted provenance bundle for the image digest and read the source it names:
gh api 'repos/BargLabs/cejel/attestations/sha256:9dff91f6eee17acab1d30bc945f74710de36ca87e5850bb7b0541d4a9c3d435d' --jq '.attestations[].bundle.dsseEnvelope.payload' |
tr -d '\n' | base64 -D | jq '{source: .predicate.buildDefinition.resolvedDependencies}'
The returned source record names the v0.6.10 tag and commit
e3f1a047fbd263d93b39b1a1434af34d751dec30.
Cejel runs its own deterministic, offline repository checks and issues an evidence-bound certificate. It can also fold in findings you already have — SARIF reports (Semgrep, CodeQL, Snyk, Trivy, or Codex Security), OpenSSF Scorecard, or any internal tool mapped to Cejel's documented JSON signal contract — into that one verifiable result. The scanners find; Cejel certifies, and abstains when the evidence does not support a verdict.
npx @cejel/cejel@0.6.10 . --ingest results.sarif --ingest scorecard.json
Offline, deterministic, inspectable. No model call, no source upload. View the generic JSON contract →
v0.6.10 · November 4, 2026
Changed, under every rubric: a scan whose git history Cejel could not read gives no score. A shallow clone, or a checkout whose history depth Cejel cannot read, now abstains under v17, the default, as it has under v27 since 0.6.9: no score and no verdict, labelled “Unrated: shallow clone” or “Unrated: history depth unknown”, with the instruction to run git fetch --unshallow or check out with fetch-depth: 0. A directory with no .git, such as an uploaded snapshot or an archive export, is “Unrated: no git history”. Each criterion is still read and shown. Before, v17 scored a depth-1 clone, on which A2 cannot see a secret committed and later deleted, so a shallow clone could score higher than the full clone of the same commit and pass a --min-score gate the full clone fails. This is visible to every default user of the GitHub Action, because actions/checkout makes a shallow clone unless fetch-depth: 0 is set. BargLabs/cejel/action@v1 now declares the limited, limitation-count and limitations outputs the root action declares, and an Unrated run sets limited to true. This change leaves a complete clone’s score exactly as before, byte for byte, under v17 and v27.
Added: a plain-language first page. certificate.html now opens with a verdict line and four lists in plain words: what holds, what is wrong, what is not known, and what to check next, with a line saying what the result does not cover (Cejel does not run the code or its tests). Each item links to its source further down. An area that was not examined, or that the report says could not be fully read, is listed as not known, never as holding. The lists come from report.json alone; the terminal prints the four headings after the verdict, and summary.json gains one key, plainSummary. The certificate below the first page is unchanged apart from the anchor ids the links point to, and report.json, attestation.json, scores and verdicts are byte-identical for the same input, which tests pin against 644 renders captured before the change.
Changed, under the prospective v27 rubric only: A1 and B3 read more of what CI actually runs. A1 places every pytest collection hook that touches items in one of three outcomes (deselects everything, puts the items back, or not read and named), reads the pytest runs, options and configuration search pytest itself uses, through nox, tox, make, just and hatch, and names a run it cannot read instead of rating its files hollow. B3 credits a check before a publish only where it follows the check to a known test runner, or a lint form that fails on a finding, with flags and an environment known not to change what runs. Measured on 393 synthetic repositories: v17 to v26 byte-identical, and v27 never above v17. v27 stays opt-in through --rubric-pin, the default stays v17, and it carries no precision, recall or calibration claim; no holdout or calibration ran.
Fixed: the timing guard that stopped the 0.6.9 npm publish. A guard that times a v27 scan of very long CI lines against a 2,000 ms budget measured 2,063 to 2,165 ms on GitHub’s runners and failed the verify step of the 0.6.9 npm publish before the publish step ran. The shell-word scanner it exercised now compares character codes and copies the characters it keeps a run at a time; locally the guard’s scan fell from 650 ms to 520 ms, with the budget unchanged. A scaling check that could fail on a loaded host now times alternating pairs in CPU time (#642). No report, score, note or fingerprint changes under any rubric. The published leaderboard, scored from full-history clones, is not re-run for this release and declares a scorer version pin at 0.6.3.
Every certificate names the rubric version that produced it — so you can see exactly what you got. Certificates stay valid under the rubric that issued them; a recalibration does not invalidate an older one.
| Rubric | Status | What changed |
|---|---|---|
v17 | Current default | Archetype-aware calibration; abstains instead of scoring absent evidence. Passed a preregistered, untouched 200-repository holdout (96.43% finding precision / 95.64% rubric-agreement recall / 0.66% false-positive rate). This is not detection precision — two different things on this site are called precision — and not detection recall — four different things on this site are called recall, compared side by side. |
v9 | Prior default | Process/CI-weighted scoring with calibrated pinned-dependency guidance. Tended to read clean libraries low when a checkout lacked CI or history — the bias v17 corrects. |
Version 0.6.10 is published on the canonical GitHub Release. Each public binary was executed against the source build and run with networking denied before publication, and the Windows and Linux arm64 assets were separately re-verified as downloaded — the same way a stranger downloads them — on a real Windows runner and a real (non-emulated) Linux aarch64 runner.
The Windows executable is not code-signed. Windows SmartScreen will show an "unrecognized publisher" warning the first time you run it — that warning is expected, not a sign of tampering. What you can check instead of a publisher signature: the SHA-256 checksum and the signed Sigstore provenance attestation below, which show the file is byte-for-byte what this release published and how it was built. Neither is code signing, and neither is a claim that Microsoft, Apple, or any other authority has signed or vetted this binary.
Download SHA256SUMS · Download signed provenance · View the successful guarded build
set -eu asset="cejel-$(uname -s)-$(uname -m)" curl -fsSLO "https://github.com/BargLabs/cejel/releases/download/v0.6.10/$asset" curl -fsSLO https://github.com/BargLabs/cejel/releases/download/v0.6.10/SHA256SUMS if command -v sha256sum >/dev/null; then grep " $asset$" SHA256SUMS | sha256sum -c - else grep " $asset$" SHA256SUMS | shasum -a 256 -c - fi chmod +x "$asset" && "./$asset" .
00650b4d0aa58c902a8c2c2e92f1151eda2fb24bae926b030043f0606d8bc0b3 cejel-Darwin-arm64 e7a8ba2add5bdcc85a8c49a99528ec8ed58e743b3f9290993add15e7cb4d86e8 cejel-Darwin-x86_64 4a624b1248075aae977ac10ca2870aa6a4db3a8b3042c7c95845842046b08125 cejel-Linux-aarch64 6146624cb840413c944aec12bc0de9b78a8488a502d474a99e3ae0b54aefb8dc cejel-Linux-x86_64 c033c6e36e189ff7d89f2926ffaa5e0600027bd8999148586488d2d7bf0f9bd2 cejel-Windows-x86_64.exe
Don't take "offline" on trust — turn your network off and run it anyway.
It will still score your repo and write you a certificate.
Scores restored — 2026-08-19.
The republication condition was met. Every row now published was regenerated by executing
@cejel/cejel@0.6.3 end to end through
npx on 2026-10-11, with default settings, calibrated
rubric v17, no rubric pin, and no internal engine in the path. The board retains the
complete 2026-08-18 withdrawal record and marks it resolved.
The board publishes the package spec, pinned repository commits, and exact reproduction recipe beside the restored results.