docs(scope): expand roadmap to cover all eight OKF surfaces
Operator decision: the initial v1 boundary (portfolio pair only) left five of eight OKF surfaces uncovered. CLAUDE.md/README now define a four-phase roadmap: door A, doors B/C, configurable bundle contract (wiki strict-v1), and a zero-dep Node/ESM half for the second-brain plugin world. Halves share contract and fixtures, never code. Security stays with llm-ingestion-guard in both runtimes. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QeqhJpYQyghASjiJo5EhGg
This commit is contained in:
parent
47df0aeb4b
commit
e57afecf72
2 changed files with 58 additions and 28 deletions
50
CLAUDE.md
50
CLAUDE.md
|
|
@ -34,29 +34,40 @@ side of the boundary something belongs on: ask the operator.
|
|||
pre-mutation collision gate, validated `ingested_at`, typed `IngestError`)
|
||||
are the library baseline. First consumer: `portfolio-optimiser-claude`.
|
||||
|
||||
### Open crossroads: the Node second-brain world (decision deferred)
|
||||
### Roadmap (committed phases — all known OKF surfaces get covered)
|
||||
|
||||
The OKF second-brain plugins (okr, linkedin-studio, ms-ai-architect, and the
|
||||
marketplace catalog spec) are deliberately Node/ESM zero-dependency and
|
||||
cannot consume a Python library directly. okr has documented it does not
|
||||
want a Python bridge. v1 therefore aligns with the catalog's
|
||||
`okf-second-brain/spec.md` as a *contract* only and ships no Node code.
|
||||
Revisit when any of these become true:
|
||||
1. **Phase 1 — Door A (Python).** ingest-spec implementation + the §11
|
||||
golden fixtures. Consumers: `portfolio-optimiser-claude` first, then
|
||||
`portfolio-optimiser`.
|
||||
2. **Phase 2 — Doors B/C (Python).** Bundle inbox and external-bundle
|
||||
import, guard-gated.
|
||||
3. **Phase 3 — Configurable bundle contract.** Types, layers, frontmatter
|
||||
sets, and reserved-file policy become config instead of constants;
|
||||
proving consumer is `claude-code-llm-wiki` (`strict-v1` profile).
|
||||
4. **Phase 4 — Node half (`node/`).** Zero-dependency Node/ESM package
|
||||
(importable *and* CLI-invokable, vendorable per plugin — matching the
|
||||
marketplace precedent) for the second-brain world: bundle check, index
|
||||
generation, inbox split/frontmatter/write, and doc conversion
|
||||
(docx/pdf/eml/html → md). Covers okr, linkedin-studio, ms-ai-architect,
|
||||
and the marketplace catalog.
|
||||
|
||||
1. A second Node consumer needs shared ingestion *code*, not just the
|
||||
catalog conventions (`okf-check.mjs`/`okf-index.mjs`).
|
||||
2. okr's doc-conversion layer (docx/pdf/eml/html → md) gets built and
|
||||
duplicates Door B's extraction logic.
|
||||
3. The catalog's convention-level alignment proves insufficient to keep
|
||||
bundle forms interoperable.
|
||||
The two halves share the OKF contract and fixture suite, **not code**.
|
||||
|
||||
### Non-goals (v1)
|
||||
Phase 4 preconditions (coordination, not unilateral moves):
|
||||
- Lifts okr's reference implementations (`okf-check.mjs`, `okf-index.mjs`,
|
||||
innboks libs) in agreement with okr and the marketplace catalog; the
|
||||
catalog remains the convention owner and re-pins its shared gate here.
|
||||
- linkedin-studio's `ingest/published/` provenance-record grammar stays
|
||||
plugin-local by design (different lifecycle) — do not normalize it.
|
||||
- The Node-side persist gate remains security territory: guard-as-contract
|
||||
(per okr's adoption doc) until a Node guard exists in the security repo.
|
||||
No security reimplementation here, in either runtime.
|
||||
|
||||
### Non-goals (all phases)
|
||||
|
||||
- `strict-v1` wiki bundle profile (`claude-code-llm-wiki`) — v2 candidate;
|
||||
requires a configurable bundle contract (types/layers/frontmatter sets/
|
||||
reserved-file policy as config, not constants).
|
||||
- Verdict/feedback machinery (method-spec) — stays in consumer repos.
|
||||
- Embedding/RAG/retrieval layers.
|
||||
- Security functionality — always the guard's domain.
|
||||
|
||||
## Stack
|
||||
|
||||
|
|
@ -66,6 +77,11 @@ The only permitted future runtime dependency is `llm-ingestion-guard`
|
|||
(itself zero-dep), added when the first persist gate is implemented.
|
||||
Binary extraction parsers live behind the `[extract]` extra only.
|
||||
|
||||
Phase 4 adds a `node/` half: Node/ESM with zero npm dependencies
|
||||
(`node:` builtins only), both importable and CLI-invokable, consumed by
|
||||
vendoring per plugin rather than npm publishing. The halves share contract
|
||||
and fixtures, never code.
|
||||
|
||||
## Conventions
|
||||
|
||||
- Type hints everywhere; `mypy --strict` target.
|
||||
|
|
|
|||
28
README.md
28
README.md
|
|
@ -40,20 +40,34 @@ Security is owned by the sibling package
|
|||
|
||||
No security functionality is reimplemented here.
|
||||
|
||||
## Non-goals (v1)
|
||||
## Roadmap
|
||||
|
||||
The library is built in four phases so that every known OKF surface in the
|
||||
ecosystem is eventually covered:
|
||||
|
||||
1. Spec-based ingestion (Python) with byte-exact golden fixtures.
|
||||
2. Bundle inbox and external-bundle import (Python), guard-gated.
|
||||
3. Configurable bundle contract (types, layers, frontmatter sets, and
|
||||
reserved-file policy as configuration), enabling stricter bundle
|
||||
profiles such as `strict-v1`.
|
||||
4. A `node/` half: a zero-dependency Node/ESM package (importable and
|
||||
CLI-invokable, vendored per consumer) providing bundle checking, index
|
||||
generation, inbox processing, and document conversion for the OKF
|
||||
second-brain plugin ecosystem. The Python and Node halves share the OKF
|
||||
contract and fixture suite, not code.
|
||||
|
||||
## Non-goals
|
||||
|
||||
- The `strict-v1` bundle profile used by `claude-code-llm-wiki` (candidate
|
||||
for v2; requires a configurable bundle contract).
|
||||
- A Node/JavaScript port for the OKF second-brain plugin ecosystem, which is
|
||||
deliberately Node/ESM zero-dependency. See CLAUDE.md for the recorded
|
||||
decision criteria.
|
||||
- Verdict/feedback machinery from the method specification (stays in the
|
||||
consuming repositories).
|
||||
- Embedding- or retrieval-layer functionality.
|
||||
- Security functionality, in either runtime — that is always
|
||||
`llm-ingestion-guard`'s domain.
|
||||
|
||||
## Requirements
|
||||
|
||||
Python 3.10+. The core has zero runtime dependencies.
|
||||
Python 3.10+. The core has zero runtime dependencies. The planned Node half
|
||||
targets Node/ESM with zero npm dependencies.
|
||||
|
||||
## License
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue