The reading direction existed only for someone standing in a clone. `consume`, `contract_check` and `skill` moved from `tools/` into the package and are reachable as `okf consume`, `okf check` and `okf skill`; `okf project` is new and does the whole thing in one command. The red measurement: a consumption skill generated from a checkout carried 4 lines naming that checkout by absolute path, 2 of them the commands the skill tells a reader to run. It now names `okf consume` and `okf check`, and a test asserts this repository appears in it nowhere, with a known-positive so the zero is a measurement rather than a search that could not find. The `tools/` files stay as ALIASES, not re-exports: a re-export binds copies of the names into a second module object, so a caller patching one patches a binding the implementation never reads. Two tests that monkeypatch okf_consume went green again only under the alias. Every published reproduction block runs unchanged. The template and docs/consumption-contract.md (the section 7.4 known-positive) are force-included into the wheel from the file they are authored in, so both travel with the commands that cannot run without them and there is still one authored copy of each. Step 0, before any of it: okf build's default gained Arm E (--table-grid), with --no-table-grid as its opt-out. The default moved to D plus F earlier the same day on Arm F's published 5 of 12 -- a figure measured with Arm E ON. Without it the fold has no joined table to fold, and the shipped default scored 2 of 12 with docx 0 of 3. Measured on the operator's folder: 30 md / 15 concepts on the new default against 43 / 28 without Arm E. Install measurement from a fresh uv tool install, empty folder, this repository nowhere on PYTHONPATH: 5 documents in, 15 concepts out, 0 references to tools/ in the generated skill, okf check conformant (15 rules, 0 findings). Deviation stated rather than hidden: the order asked that tests/test_okf_consume.py be left untouched. Two assertions in it read a PATH, which is the one thing this work changes. Both were moved and the second made stronger -- it now asserts every command the README recipe names is a subcommand the CLI registers, which a file existing on disk never proved. Suite 1414 -> 1427. ruff clean, mypy --strict clean over 21 files. Record: docs/2026-09-08-o5-okf-project.md Co-Authored-By: Claude <claude-opus-5>
36 lines
1.6 KiB
Python
36 lines
1.6 KiB
Python
#!/usr/bin/env python3
|
|
"""Thin entry point. The implementation is `llm_ingestion_okf.consume`.
|
|
|
|
It moved into the package on 2026-09-08 (O5), for the reason the module's own
|
|
docstring states: a generated consumption skill named this file by absolute
|
|
path, so the skill could not be moved, shared, or run without this clone at
|
|
that exact path. The command is now `okf consume`, on PATH after an install.
|
|
|
|
This file stays because the published reproduction blocks and the measurement
|
|
scripts under `docs/` name it, and a measurement whose command no longer runs
|
|
is a measurement nobody can repeat. `tests/test_okf_consume.py` imports it by
|
|
this name and is the contract for the pre-pass.
|
|
|
|
No logic here, deliberately: a second copy of the ranking or the cut is a
|
|
second thing that can be right while the shipped one is wrong.
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
|
|
import sys
|
|
from pathlib import Path
|
|
|
|
sys.path.insert(0, str(Path(__file__).resolve().parents[1] / "src"))
|
|
|
|
from llm_ingestion_okf import consume as _impl # noqa: E402
|
|
|
|
if __name__ == "__main__":
|
|
raise SystemExit(_impl.main())
|
|
|
|
# ALIASED, not re-exported. `import okf_consume` must hand back the packaged module
|
|
# ITSELF: a re-export binds copies of the names into a second module object, so
|
|
# a caller patching one of them patches a binding the implementation never
|
|
# reads. Measured on the move: two tests that monkeypatch `okf_consume` went green
|
|
# again only under the alias. Guarded by the `__main__` branch above, because
|
|
# aliasing `sys.modules["__main__"]` would replace the running script.
|
|
sys.modules[__name__] = _impl
|