Proofwright
Deterministic, zero-LLM structural tooling for an LLM Wiki — the Karpathy
raw/ → LLM → wiki/ research-synthesis pattern.
Proofwright is the deterministic layer: it checks the wiki against invariants and rebuilds derived artifacts, but never authors content. A "wright" is a maker/keeper — it builds the index, link graph, and report, not just flags problems.
What it checks
- Structural — orphan pages, missing pages, broken
[[wikilinks]], stale index, missing provenance. - Frontmatter — required keys, types, allowed tag/grade vocabularies.
- Citation integrity — every
[n]resolves to a source that maps to a real file inraw/; prose lacking a citation is flagged. (The primary defense against hallucination-baking.) - Source grades — every source graded, grades from a fixed vocabulary.
- Graph — phantom hubs, hub stubs, fragile bridges.
- Freshness — stale-page candidate list from recency markers.
Everything semantic (synthesis, meaning-level contradiction, supersession) stays with the LLM and is out of scope by design.
Usage
uv run proofwright check --config wiki.toml # run all checks → report
uv run proofwright check --format json # machine-readable findings
uv run proofwright index --check # is the committed index stale?
uv run proofwright index --write # regenerate the index
uv run proofwright graph --report # graph-health report
uv run proofwright search "your query" # rank pages (BM25 + graph, RRF)
uv run proofwright search "your query" --format json # ranked results with provenance
Retrieval
search ranks pages with two deterministic streams — BM25 (exact terms) and graph
expansion (structural links, seeded by the top BM25 hits) — fused with reciprocal rank
fusion. Each result reports which stream surfaced it. Tune it under [retrieval] in
wiki.toml.
The LLM rerank of the top slice is a bounded, injectable step (a Reranker protocol);
the package default is a no-op, so search stays zero-LLM. A vector stream can fuse in
later without changing the fusion.
proofwright is a library, not a framework: all per-wiki variance (paths, vocabularies,
thresholds) lives in wiki.toml; custom rules register via the plugin hook. No
subject-matter knowledge lives in the package.
See templates/ for a starter wiki.toml, CLAUDE.md schema, and page templates.
Metadata
Release files for proofwright 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| proofwright-0.3.0.tar.gz | 23.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| proofwright-0.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 59.3 kB
Release files / proofwright-0.3.0.tar.gz
| Download URL | proofwright-0.3.0.tar.gz |
|---|---|
| Size | 23.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
69bdeefa2ed202bf08810ffdfecea2e46e1bf3463909fdadf3b1a806d5a38090
|
|
BLAKE2b-256 checksum How to use checksums |
303b890ddc500b2e7c618a63c339e85a91bc8686dc61a5ec3b599f0d7e1f66d9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / proofwright-0.3.0-py3-none-any.whl
| Download URL | proofwright-0.3.0-py3-none-any.whl |
|---|---|
| Size | 35.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d64315d9fa7ded83789a2b56b50b69ea3e81c72a323324501f7404e9f2e17b47
|
|
BLAKE2b-256 checksum How to use checksums |
53ed96a4de5105bd539cb9f7c7ed6a127f8480536fe7bb958a867df5b94fb500
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|