This release is a pre-release and may not be stable for production use.
ProDocuX Kernel
Deterministic document kernel for ProDocuX. Runtime does not call any LLM API (semantic drafting stays on the solver side).
License: Apache-2.0. See LICENSE.
Current prerelease: 0.3.0rc1. It adds product-neutral evidence
verification, bounded JPEG/PNG profiling, deterministic normalized profile
diffs, and a host-injected opaque artifact boundary while preserving HTTP API
/v1 and the frozen 0.2.0 compatibility surface.
Documents
ARCHITECTURE.md— public architecture overviewCONTRACT.md— boundaries, API, scoring contractCAPABILITY_REQUESTS.md— capability request templatedocs/RELEASE.md— release-candidate boundary and checkscompatibility/pdx_prodocux_compatibility_v2.json— active prerelease versions, operations, and schema digestscompatibility/pdx_prodocux_compatibility_v1.json— frozen historical compatibility evidence
Install
git clone https://github.com/prodocux/prodocux.git
cd prodocux
.\runtime\install.ps1 -Fresh
.\runtime\verify.ps1
Or:
python -m venv .venv
.\.venv\Scripts\python.exe -m pip install -e ".[dev]"
.\.venv\Scripts\python.exe -m pytest -q
Install the published GitHub prerelease wheel with:
python -m pip install "https://github.com/prodocux/prodocux/releases/download/v0.3.0rc1/prodocux-0.3.0rc1-py3-none-any.whl"
See runtime/INSTALL.md for environment variables and
private-sidecar notes.
Release maintainers can verify a wheel from an isolated temporary directory:
python scripts/verify_clean_install.py
Test
.\.venv\Scripts\python.exe -m pytest -q
Start API
.\.venv\Scripts\python.exe run_kernel.py # http://localhost:8900/v1
P1 delivered
| Component | Endpoint | Status |
|---|---|---|
| Structure invariants (L0) | POST /v1/validate-structure |
shipped |
| Scorer (L0–L3) | POST /v1/score |
shipped |
| Review capture | POST /v1/review/start, /commit |
shipped |
| Version | GET /v1/version |
shipped |
| Semantic extract/render/learn | — | 501 (later) |
| Deterministic PDF page intake | POST /v1/intake/extract-pages |
shipped |
| JPEG/PNG technical profile | POST /v1/intake/profile-image |
shipped |
| Typed evidence verification | POST /v1/verify/evidence-bundle |
shipped |
| Normalized structured diff | POST /v1/compare/normalized-profiles |
shipped |
The PDF intake endpoint accepts only a bounded base64 payload and a plain
.pdf basename. It returns source SHA-256, bounded page text, truncation
disclosure, and an explicit ocr_required status without persisting the
source document or calling an LLM.
GET /v1/intake/capabilities is the authoritative machine-readable source
for available intake operations and their raw-byte/page ceilings. Clients
should discover these limits instead of copying constants into adapters.
The evidence verifier accepts already-extracted typed evidence and declarative
presence, equality, numeric-range, and date/version checks. It returns stable
pass/fail/review reasons without interpreting product claims or regulations.
Image OCR is available only through an explicitly injected bounded backend;
otherwise the profile reports ocr_unavailable. Normalized diff reports
source-linked structural/value changes but leaves business impact to the host.
Library hosts may inject an opaque artifact:// resolver. ProDocuX rejects
network/local-path identities at this boundary and verifies declared media
type, size, and SHA-256 before returning bytes; storage authorization and
tenant isolation remain host responsibilities.
Flagship pipeline
Deterministic template extract → field mapping → precise write → structure repair → L0 gate.
Content drafts are supplied by the solver as drafts.json.
See examples/pif_tw/ for curated synthetic fixtures (no customer documents).
Skills (first-party)
| Skill | Module |
|---|---|
| Structure health | skills.structure_health |
| Number audit | skills.number_audit |
| Version diff | skills.version_diff |
| Clause diff | skills.clause_diff |
| Doc assemble | skills.doc_assemble |
| PIF audit (TW) | skills.pif_audit |
| PDF extract | skills.pdf_extract |
All first-party skills are deterministic. CLI messages support en and zh-TW.
Acknowledgments
Codex and Cursor contributed implementation support, contract hardening, and cross-review for the multi-format intake upgrade. Final design and release decisions remain with the project maintainers.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file prodocux-0.3.0rc1.tar.gz.
File metadata
- Download URL: prodocux-0.3.0rc1.tar.gz
- Upload date:
- Size: 119.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
01120b5703bd02548438a21b1496418e3ba13916493a74c658baca6863fc81c4
|
|
| MD5 |
172311007ecf6763f9582ab5fdca2538
|
|
| BLAKE2b-256 |
98da2a9789fc076003bc373c48cea3b837743d73462058d9651a571695c6ff63
|
Provenance
The following attestation bundles were made for prodocux-0.3.0rc1.tar.gz:
Publisher:
release.yml on prodocux/prodocux
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
prodocux-0.3.0rc1.tar.gz -
Subject digest:
01120b5703bd02548438a21b1496418e3ba13916493a74c658baca6863fc81c4 - Sigstore transparency entry: 2564773196
- Sigstore integration time:
-
Permalink:
prodocux/prodocux@1ed66348e82d6885a82db7141d4f21388d7bbd00 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/prodocux
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@1ed66348e82d6885a82db7141d4f21388d7bbd00 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file prodocux-0.3.0rc1-py3-none-any.whl.
File metadata
- Download URL: prodocux-0.3.0rc1-py3-none-any.whl
- Upload date:
- Size: 120.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
941295867b3fe1f5253e4c97220237920e26182cdfd25caabf7203e6f49afd9b
|
|
| MD5 |
a1a1c015da2439d764ceabca6ee4f1b2
|
|
| BLAKE2b-256 |
97d7361737191e2bb8814a33812c16b8d33167abdac9a5c1e3362db795dcf0e5
|
Provenance
The following attestation bundles were made for prodocux-0.3.0rc1-py3-none-any.whl:
Publisher:
release.yml on prodocux/prodocux
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
prodocux-0.3.0rc1-py3-none-any.whl -
Subject digest:
941295867b3fe1f5253e4c97220237920e26182cdfd25caabf7203e6f49afd9b - Sigstore transparency entry: 2564773788
- Sigstore integration time:
-
Permalink:
prodocux/prodocux@1ed66348e82d6885a82db7141d4f21388d7bbd00 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/prodocux
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@1ed66348e82d6885a82db7141d4f21388d7bbd00 -
Trigger Event:
workflow_dispatch
-
Statement type: