§1The Gate — POST /v1/verify
Send an output and its sources. CRUCIBLE runs eta scoring and self_check in order: every sentence stated as fact is checked against the sources; anything with no source support and no citation marker is counted as an uncited claim and returned by exact text. Verdict is PASS when eta is at or above threshold and uncited count is zero. Otherwise FLAG.
Response
BriefThe Four Smoke Tests, Reproduced Live
The brief's shipped smoke results, run against this page's implementation of the same documented heuristic. The FLAG case reproduces the real Defense market brief pattern: factual claims, zero sources.
§7The Ledger — Hash-Chained, Tamper-Evident
Every verification above appends exactly one line here. Each receipt's hash covers the previous receipt's hash, starting from the genesis value (64 zeros). Edit any past line and every later line points at a hash that no longer exists. Prove it: verify the chain, then tamper with a sealed receipt and verify again.
§11The Live Map Feed — GATE Events
Every sealed receipt maps to one compact GATE event, the shape the galaxy ticker already shows. The map only ever reads: there is no endpoint that lets the visualization mutate the ledger or the gate. This surface writes nothing, and here that is literally true.
§2Architecture — Two Deploy Shapes, Same Core
Port 8600 sits clear of the stack: Bonsai 8100, IAR 8090, AXON 8788, landos-engine 8400, LandGraph 8500, AnythingLLM 3001.
Data and model never leave the machine. Cloudflare only ever sees the API contract. The verification has to run where the model and the private data live; competitors who send data to their cloud cannot make that promise.
Files (on the Mac, per the brief): crucible_service.py (the FastAPI app), receipt.py (hash-chained receipt + ledger, pure stdlib, zero third-party dependencies on purpose: if the rest of the stack breaks, the provenance math still runs), crucible_config.json (white-label config, the only file you edit), requirements.txt, ledger/ (one .jsonl per tenant), logs/.
§5Endpoint Reference
| Method | Path | Auth | Purpose |
|---|---|---|---|
| GET | /healthz | none | Liveness and current provider mode |
| POST | /v1/verify | key | Gate one output. The core call. |
| POST | /v1/verify/batch | key | Gate a list of outputs |
| GET | /v1/receipt/{receipt_id} | key | Retrieve one sealed receipt |
| GET | /v1/ledger/verify | key | Prove the whole chain is intact |
| GET | /v1/events?limit=N | key | Recent GATE events for the live map |
| GET | /v1/events/stream | key | SSE tail of GATE events, live |
Auth is the header X-API-Key. The tenant is derived from the key, never trusted from the request body. Different keys write to different ledgers, fully isolated. Provider modes (§8): heuristic (default; deterministic, no model, no network) or iar (routes through the local model with a strict JSON contract; on any model error the gate falls back to the heuristic and stamps the checker name heuristic-v1(iar-fallback:...) so the receipt records exactly what happened. The gate never hard-fails).
§7The Receipt Format and the Hash, Step by Step
Verify offline, no server running (from the brief): python3 -c "import receipt; print(receipt.Ledger('~/crucible/ledger/neuruh.jsonl').verify_chain())" — intact returns ok true, reason intact; tampered returns ok false, reason hash_mismatch, and the exact line index.
§12Security, Access Control, Audit, Privacy
§13-14The Recursive Loop and White-Label
§15Monetization — Structure, Not Valuation
The gate is horizontal: the same endpoint verifies a real estate lead brief, a resale listing, and a defense market brief. Four pricing surfaces, lowest to highest margin. The brief's honesty stamp applies verbatim: no dollar figure here is current or claimable pre-MRR. This section is structure, not valuation.
Metered API
Per-verify pricing, billed on receipt count. The ledger already is the usage meter. Simplest to stand up, lowest margin.
Subscription
A monthly seat or volume tier per tenant. The per-tenant key and ledger are the account boundary.
White-label license
Another operator runs CRUCIBLE under their own brand: license plus per-tenant fee. Config separation makes this a contract, not a rebuild.
On-prem / sovereign license
The highest tier and the real edge. Defense, healthcare, finance, and legal buyers run it inside their own perimeter. Nobody else in the slop-generation race can sell this, because their architecture assumes the cloud.
Who buys, ranked by pain: compliance and legal teams that must source every claim, regulated operators that must keep an audit trail, and any high-volume publisher that refuses to become a slop factory with their name attached.