llm-ingestion-okf/llms.txt
Kjell Tore Guttormsen 4d1f9d3a5a chore(release): 0.8.0
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>
2026-09-10 21:09:22 +02:00

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.