A patch release carrying round 16's ranking rule and nothing else. No behaviour changes in `src/`: the version string is the only line touched there, and it is touched because it is the second half of the version -- `tests/test_packaging.py` holds `pyproject.toml`'s declaration and `__init__.__version__` equal, and a tag whose package reports the previous number lies to every consumer that installs it. - `pyproject.toml` and `src/llm_ingestion_okf/__init__.py`: 0.8.0 -> 0.8.1. - `CHANGELOG.md`: round 16's own entry closes as `[0.8.1]`, with a new empty `[Unreleased]` above it and no comparison link, because the file has published none since `[0.6.0]`. The entry gains one bullet it did not carry: the rule's MEASURED DOWNSIDE, reproduced here on a five-document folder -- a constructed known-negative question demotes the answering section from delivered rank 1 to rank 2 because a neighbouring concept titled with a single common process word has its WHOLE title accounted for. Written as a known limitation of short generic titles, not as a fix. - The five install lines (`README.md` 4, `llms.txt` 1) move to `@v0.8.1`. Measured after: `okf.git@v0.8.0` 0 hits, `okf.git@v0.8.1` 5 hits as the known-positive control, and the two remaining bare `v0.8.0` occurrences are the tag-history row and the test-count history -- both are statements about the past and both stay. - The tag-history list gains `v0.8.1` as the current tag and demotes the `v0.8.0` row to what it was; `v0.7.0` is untouched, and `docs/` is not rewritten at all. - The test-count history sentence named the `v0.8.0` release as the last one and would have become false on this tag: it now records 1582 through `v0.8.1` as well. The published figures 1583 collected / 1582 passed / 1 skipped were re-measured here and stand. 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.1"
|
|
```
|
|
|
|
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.
|