Metadata-Version: 2.4
Name: vahtian
Version: 0.1.0
Summary: Reproducible, provenance-first evidence tooling — freeze a corpus, verify it, keep a hash-chained audit trail. Human-first, auditable, local-first.
Project-URL: Homepage, https://vahtian.com/
Project-URL: Documentation, https://vahtian.com/agents/
Project-URL: Source, https://github.com/heidihelena/vahtian
Author: Heidi Helena Andersén
License: Apache-2.0
Keywords: audit trail,evidence synthesis,provenance,reproducibility,research integrity,systematic review
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Scientific/Engineering :: Information Analysis
Requires-Python: >=3.9
Description-Content-Type: text/markdown

# vahtian (Python)

Reproducible, provenance-first evidence tooling. **Freeze** a record set into a
content-hashed, provenance-stamped, date-locked corpus; **verify** reproducibility;
keep a **hash-chained audit trail**. Stdlib-only.

The same core and on-disk format exist in the R package **`vahtian`**, so a corpus
frozen in Python verifies in R and vice versa.

```python
import vahtian
corpus = vahtian.freeze(records, search_date="2026-06-23")
corpus.save("frozen-corpus")          # frozen-corpus.jsonl + .manifest.json
assert vahtian.verify(corpus)         # tamper-evident

L = vahtian.Ledger()
L.append("human:hha", "rate", {"record_id": "pmid:12345", "value": "supported"})
L.append("ai:opus/pv1", "advise", {"record_id": "pmid:12345", "value": "supported"})
assert L.verify()                     # retro-edits break the chain
```

`vahti` (Finnish) = sentinel / guard. Human-first. AI-second. Auditable. Apache-2.0.
