Round 13 (the `.xml` core file type read as NISO-STS, and the PDF arm's
collision counter) and round 14 (a section the source DECLARES takes the
declared-structure route: `.xml` goes from 15 of 2 761 to 2 761 of 2 761
boundaries and from 23 to 2 761 concepts at the shipped defaults, hit@1/8/50
0/6 - 0/6 - 0/6 to 3/6 - 5/6 - 6/6) are both landed. This commit adds no
functionality: it sets the version, closes the CHANGELOG entry, and points
every install line at the new tag.
- `pyproject.toml` and `src/llm_ingestion_okf/__init__.py`: 0.7.0 -> 0.8.0.
The second is the only line in `src/` this release touches. It is not a
code change but the other half of the version, written without a `v`
prefix, so a search for `v0.7.0` cannot find it;
`test_packaging.py::test_the_declared_version_agrees_with_the_packaged_one`
is what did. Left alone, the tag would report the previous release to every
consumer that installs it.
- `CHANGELOG.md`: `[Unreleased]` becomes `[0.8.0] - 2026-09-10`, with a new
empty `[Unreleased]` above it. The entries are round 13's and round 14's own
words, unchanged. No compare link is added: this file has carried none since
`[0.6.0]`, and inventing one here would be a claim about a URL nobody checked.
- The five install lines and the two prose lines naming the current tag move to
`v0.8.0`. The tag history list gains a `v0.8.0` row as the current tag and
KEEPS the `v0.7.0` row: that list states it is not install lines, so a
rewrite would delete history rather than update it.
- README's test count was 1515, measured 2026-09-09; this tree measures 1575
passed / 1 skipped with ruff 0.16.6. The surrounding sentence about the
earlier figure is repaired too, because changing the date alone would have
made it false.
`v0.7.0` stays on 1260fac. No lock change, no history rewrite in `docs/`.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
34 lines
1.5 KiB
Text
34 lines
1.5 KiB
Text
# llm-ingestion-okf
|
|
|
|
> Turn a folder of documents (PDF, DOCX, XLSX, PPTX, MD) into a bundle a model can answer from with a source on every claim. Offline and deterministic: no model call anywhere in the run path. Security is delegated to llm-ingestion-guard.
|
|
|
|
Requires Python 3.10+ and [uv](https://docs.astral.sh/uv/). Neither this package
|
|
nor the guard it depends on is on a package index yet; one command resolves both:
|
|
|
|
```sh
|
|
uv tool install "llm-ingestion-okf[extract] @ git+https://git.fromaitochitta.com/open/llm-ingestion-okf.git@v0.8.0"
|
|
```
|
|
|
|
Then, in the folder you want to work from:
|
|
|
|
```sh
|
|
okf project ~/my-documents
|
|
claude
|
|
```
|
|
|
|
`okf project` writes the bundle to `.okf/<id>/` and a Claude Code skill to
|
|
`.claude/skills/<id>-consume/` in the current directory. Start `claude` there
|
|
and ask in plain language. Three shapes of request are supported and the
|
|
generated skill states the rules for each: a **question**, a **hypothesis**
|
|
(answered per premise as `confirmed` / `refuted` / `undecidable-from-bundle`),
|
|
and a **task whose answer is a document** (every claim in the written file
|
|
carries its source; an ungrounded paragraph is written and marked, never
|
|
dropped).
|
|
|
|
## Docs
|
|
|
|
- [Consume in Claude Code](README.md#consume-in-claude-code): the same thing in
|
|
steps, several bundles in one project, and what was measured.
|
|
- [README](README.md): the pip-only fallback if uv is unavailable, the guard
|
|
pairing per tag, the build flags, phase status, and the upstream OKF version
|
|
policy.
|