llm-ingestion-okf/docs/plan
Kjell Tore Guttormsen ddc8f76446 docs(mcp): Q2 gains upstream's tool surface as measured prior art
sources/base.py plus tools/source_tools.py is the same problem phase 5 option
(A) contemplates, already solved in ADK-specific form: a data system exposed as
model-callable tools. Recorded under Q2 because that question calls the tool
surface the real design work, and this is a worked example of it.

Three signals, each with the reason it is a signal: enumerate and read are
abstract while sample_rows defaults to None, so sampling is advisory; the
surface is per-concept, which is evidence that Door B's per-run collision gate
and index generation are the side that has to give; and two things not to copy
— an untyped dict[str, Any] return that only a model can interpret, and a find()
that linear-scans list_concepts() and so assumes total enumeration is cheap,
against this library's rule that nothing enumerates unless a profile says
derived.

Read at the pinned commit, not vendored.
2026-07-27 20:16:47 +02:00
..
execution-order.md docs(okf-v0.2): requirement 1 re-sized -- the emitter does not change at all 2026-07-26 19:57:29 +02:00
mcp-bundle-population.md docs(mcp): Q2 gains upstream's tool surface as measured prior art 2026-07-27 20:16:47 +02:00
okf-v0.2-alignment.md docs(okf-v0.2): U7 resolved — the 'not:' family is an example, not a field 2026-07-27 16:32:40 +02:00
phase-1-door-a.md docs(plan): add detailed phase 1-4 implementation plans 2026-07-16 10:58:08 +02:00
phase-2-doors-b-c.md feat(guard): wire Doors B and C to the real guard (Phase 2 step 4) 2026-07-25 07:32:45 +02:00
phase-3-configurable-contract.md docs(okf-v0.2): the alignment track lands before the contract freezes 2026-07-26 11:42:37 +02:00
phase-4-node-half.md docs(phase-4): record linkedin-studio's two named requirements before the freeze 2026-07-25 20:34:54 +02:00