It turns a thesis into claims that can be checked.
crucible is the cognition organ of the constellation. Where gather brings evidence in and records how it was obtained, crucible tests what that evidence supports. A thesis is registered as claims, each with its falsification condition and a content hash. The registry stores those bodies content-addressed, so tampering is caught by re-hashing the exact claim.
A witnessed assessment folds every per-claim verdict into a seal. Re-checking an assessment does not ask the engine whether it was honest; it re-derives the verdicts from the thesis and the measurements on disk. A confident assertion cannot fake the shape.
The output is a standing, not a vibe: what matched, what drifted, and what could not be measured.The loop is register, steelman, measure, refine, witness.
The verdict has no model in the deciding step.
A model can propose a refutation later, or an oracle can measure a substrate later, but the verdict step is a pure function. It receives a claim and a measurement. If the measurement is absent, mismatched, non-numeric, negative, or outside a positive tolerance, the result cannot silently become trust. It is UNVERIFIABLE or DRIFT.
A claim that cannot be measured is never read as holding.
That is why the refine loop matters. A short thesis does not get blessed. crucible reports the weakest claim and the cohesion trajectory, then gives the next round a precise place to improve: strengthen the substrate, sharpen the measurement, or amend the thesis.
Standard library at the core. Impure edges behind seams.
The 0.13.0 line ships the claim and thesis receipts, the content-addressed registry, witnessed assessments, the steelman seam, the measure seam, the refine adapter over a thesis, drift tracking across witnessed rounds, measurement recheck descriptors, Gather/index interop, and Markdown assessment reports. The core has no third-party runtime dependency. Clocks are injected, JSON is canonical, and Null defaults keep the organ standing alone when a model, browser, or proof oracle is absent.
$ crucible register examples/thesis-binary-search.json --registry .crucible registered thesis ... $ crucible measure examples/thesis-binary-search.json --substrate examples/substrate-binary-search.json MATCH 1 DRIFT 1 UNVERIFIABLE 1 $ crucible refine examples/refine-discovery-loop.json refined thesis "Discovery loop margins" over 2 round(s): correct
Current state. What is honest to claim.
Version 0.13.0 is public on GitHub as a release candidate: refine loop, drift tracking, thesis adapter, measurement rechecks, Markdown reports, CLI commands, README, architecture note, changelog, and regression tests. It is not being called packaged until the PyPI publication gate is deliberately run. The next increments are batch operations, model-backed edges, package publication, and the 1.0 whole-system review.