Assertion ingestion engine — executes the URBA-0003 lifecycle as Neo4j + S3 mutations (ADR-TECH-STRAT-001).
Project description
kmint
The Assertion ingestion engine — one installable, one console script (kmint) that
executes the URBA-0003 micro-decision lifecycle as graph + lake mutations. It is the
write engine of the sovereign Knowledge map's Assertion face; kledger is the
read appliance it writes into.
Implements ADR-TECH-STRAT-001 (§"kmint — the Assertion ingestion engine") and
ADR-TECH-STRAT-004 (the 5-state / 4-event machine + actor model), both in
banking-knowledge.
Where kmint sits
| Repo | Org | Role |
|---|---|---|
banking-knowledge |
papeete-consulting-lab |
The contract — schema v1 + lifecycle ADRs. Documentary. |
kledger |
papeete-consulting-lab |
The appliance — schema + deploy + read-only resolver + validation. |
kmint (this repo) |
papeete-consulting |
The ingestion CLI — writes both planes. Sibling of kpack. |
kmint is to Assertion what kpack is to packaging: a single shared engine, run against a
running kledger appliance over the same env-var substrate contract (NEO4J_*, S3_*). It
does not import kledger; the appliance owns schema application and the read path.
The lifecycle it executes (the URBA-0003 spine)
S0 Capture → S1 Distillation (N→1) → S2 Refinement → S3 Archival / Purge
- S0 Capture — store verbatim bytes in the immutable lake (content-addressed by
checksum), mint a
:Capture+:Capturingactivity. Bytes are immutable from here. - S1 Distillation — read 1..N sources (
:Capture, thePublishedcorpus, prior candidates) and mint a brand-new:MicroDecisioninSubmittedForRefinement(sources never mutated),DERIVED_FROMall of them,GENERATED_BYa:Distillationcarrying the disposition. Non-Candidatedispositions are recorded but do not advance. Idempotent oncontentHash = sha256(text + sorted(lineage))+ the sequential id. - S2 Refinement —
SubmittedForRefinement → Published, gated by the transition policy. Only the deterministic actor may auto-advance; everything else is human-gated (a recorded validator basis is required). Human refinement addsVALIDATED_BYwithout changingprimalProvider(provider ≠ validator). - S3 Archival / Purge — supersede/amend (prior →
Archived, on atemporalorauthorityaxis) or end-of-retention (Purgedtombstone). Never deletes.
Three distillation modes behind one interface
Selected by the source-type binding (URBA-0004), one per transition actor:
deterministic (the :Script actor — reproducible, audited, may auto-advance) /
llm (LLM-bounded, defaults to human-gated) / human (human-gated). Conservative
default: origin uncertain ⇒ llm-tool ⇒ human-gated.
Ingestion is cadence-driven and hybrid: the URBA-0004 cadence selects batch
(one-shot | static) vs streaming (recurring-stream | continuous).
Append-never-erase
kmint is the only writer, and it never deletes: graph.GraphWriter refuses any query
containing DELETE/REMOVE as a hard backstop (Rule F). Discard/replace is a state change
plus a SUPERSEDES / REVISION_OF edge.
Install & use
pip install -e ".[dev]" # or: pip install -e ".[dev,lake]" for the S3 writer
make test # unit tests — no engine needed
kmint capture transcript.txt --form verbatim --capture-id cap-1 --domain MEMORY --dry-run
kmint distill --text "Retention defaults to 7 years." --domain MEMORY \
--actor human --source cap-1 --source-confidence 3
kmint refine BNK.KNOW.MD.MEMORY.001 --actor human --validator alice
kmint archive BNK.KNOW.MD.MEMORY.001 --by BNK.KNOW.MD.MEMORY.005 --axis authority
make smoke runs an end-to-end capture→distill→refine against a throwaway
neo4j:5-enterprise (point KLEDGER_SCHEMA at kledger/schema/schema.cypher to exercise
the LOCKED constraints too).
Design
See docs/kmint-design.md for the ADR → implementation map and the
scaffold's deferred internals.
Project details
Release history Release notifications | RSS feed
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 kmint-0.1.0.tar.gz.
File metadata
- Download URL: kmint-0.1.0.tar.gz
- Upload date:
- Size: 29.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7155ed17bc6ab2595fcd96bd63767f93a1b6cda5e7ee00ff97214fb0d9047fff
|
|
| MD5 |
96cb2ca9cff040631fb474a1b99866d2
|
|
| BLAKE2b-256 |
9a536aebfa118508a1ee4079d34ec2aba174addbfa9fee9bb55ace2a3e2979b4
|
Provenance
The following attestation bundles were made for kmint-0.1.0.tar.gz:
Publisher:
release.yml on papeete-consulting/kmint
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
kmint-0.1.0.tar.gz -
Subject digest:
7155ed17bc6ab2595fcd96bd63767f93a1b6cda5e7ee00ff97214fb0d9047fff - Sigstore transparency entry: 2057522321
- Sigstore integration time:
-
Permalink:
papeete-consulting/kmint@b7fa84fd74504bc08e5f1f24282cd43c842dd8ee -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/papeete-consulting
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@b7fa84fd74504bc08e5f1f24282cd43c842dd8ee -
Trigger Event:
push
-
Statement type:
File details
Details for the file kmint-0.1.0-py3-none-any.whl.
File metadata
- Download URL: kmint-0.1.0-py3-none-any.whl
- Upload date:
- Size: 29.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d82c654192336a5137ce16c6fcda956dc0f871c1281622294cd1d6ebcc919d2a
|
|
| MD5 |
e1da96ed632b9ac097de9301f6c3e6ba
|
|
| BLAKE2b-256 |
7f6a6e2957234eec7a190e6512a0eb3e98c07e44d9948dde5121fadc8ef20d1a
|
Provenance
The following attestation bundles were made for kmint-0.1.0-py3-none-any.whl:
Publisher:
release.yml on papeete-consulting/kmint
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
kmint-0.1.0-py3-none-any.whl -
Subject digest:
d82c654192336a5137ce16c6fcda956dc0f871c1281622294cd1d6ebcc919d2a - Sigstore transparency entry: 2057522673
- Sigstore integration time:
-
Permalink:
papeete-consulting/kmint@b7fa84fd74504bc08e5f1f24282cd43c842dd8ee -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/papeete-consulting
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@b7fa84fd74504bc08e5f1f24282cd43c842dd8ee -
Trigger Event:
push
-
Statement type: