portfolio-optimiser/docs/knowledge-base-recipe.md
Kjell Tore Guttormsen d44305cda9 docs(s53): knowledge-base recipe (D-H item 1) — team process, honest 1-2 week expectation, no wizard
New English docs/knowledge-base-recipe.md grounded strictly in the D-H decision record
(revisjonspakke-DF-DI.md §3): setup is always a small team (technical + domain expert), the
deliverable is a recipe NOT a wizard (B9 onboarding interview + guided verdict command rejected),
domain expert delivers files in their own formats never schema/JSON, phased process (inventory ->
skeleton -> seed verdicts -> iterate), reading via Obsidian/VS Code. The honest 1-2 week
expectation is stated early and SOURCED verbatim to the record. Factory-dependent parts
(free-format verdict translation, clone-to-demo) are explicitly marked future/blocked-on-toolkit
so the doc never claims above the evidence level. Linked from README's Docs section with the
1-2 week expectation in context. SC5 (ASCII-only greps): file exists, '1-2 weeks' x2,
'knowledge-base-recipe' in README. src/ untouched; 431 passed.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KNNiJRk1sSwxgVLS5AobT1
2026-07-23 21:53:53 +02:00

72 lines
4.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Building a knowledge base — the team recipe
> **This is a documented team process, not a wizard.** Setting up a knowledge base for
> portfolio-optimiser is always done by a small team — a technical person and a domain expert
> working together — because the framework side (MAF configuration, bundle structure) is
> genuinely involved. There is deliberately **no onboarding interview and no guided verdict
> command**: both were evaluated and rejected (operator decision D-H,
> [`docs/plan/2026-07-14-revisjonspakke-DF-DI.md`](plan/2026-07-14-revisjonspakke-DF-DI.md) §3).
## The honest expectation
A good knowledge base takes **1-2 weeks of dedicated work**, and the quality of that investment
determines the quality of the result. This is not a limitation to engineer around — it is the
realistic cost of curating a body of knowledge an agent can reason over. Budget for it up front.
> Sourced, not invented: this is verbatim in the operator decision record
> (`docs/plan/2026-07-14-revisjonspakke-DF-DI.md` §3, item 1 — «en god base tar 12 uker dedikert
> arbeid — kvaliteten på investeringen avgjør resultatet»).
## Who does what
The team is always **two roles** — never one person, and never a self-service form:
- **The domain expert** contributes subject-matter knowledge. Their interface is deliberately
minimal: *what* to contribute, *how*, and *where* — nothing more. They deliver **files in their
own formats** (documents, spreadsheets, notes) — **never schemas or JSON**. What they should
contribute next is steered by the evaluator's sufficiency feedback ("is this comprehensive
enough to be useful? what is missing?"), which becomes the expert's worklist during buildup.
- **The technical person** runs the pipeline: builds the OKF bundle, runs ingest and the
evaluator, and manages the framework configuration.
The verdict is always the human's; the machine only ever translates and structures.
## The process, in phases
1. **Inventory** — the domain expert gathers the source material in whatever formats they already
have it in. No reformatting into schemas — that is the technical side's job.
2. **Bundle skeleton** — the technical person builds the OKF bundle: `index.md`, the concept
files, and the cross-links, from the inventoried material.
3. **Seed verdicts** — prior expert judgements are seeded so the first run's hypotheses start from
what experts actually decided (the ExpeL fold reads them). *See the factory note below: today
verdicts are authored directly in the strict format; free-format translation is a future
capability.*
4. **Iterate** — run the evaluator, read its sufficiency feedback, and have the domain expert fill
the gaps it names. Repeat until the base is comprehensive enough to be useful. This iteration
loop is where most of the 1-2 weeks is spent.
## Reading the bundle
Bundles are plain markdown, so **Obsidian or VS Code** are enough to read and navigate them — no
dedicated tool is required. (A dedicated reading view is a possible future toolkit building block,
not a prerequisite — per D-H §3 item 5.)
## Future / factory-dependent (not available today)
The following are part of the intended process but depend on the **bundle factory** and the
external toolkit repo, which are not built yet (D-G / T0). They are named here so the recipe stays
honest about what ships today versus what is planned — never claiming above the evidence level:
> - **Free-format verdict translation.** The intended flow: the expert delivers a free-format file
> and the factory AI-translates it into the strict verdict format (manual translation does not
> scale to large volumes), with the structured verdict always pointing back to the expert's
> original file so a spot-check can compare "what the expert wrote" against "what the system
> understood". Until the factory exists, verdicts are authored directly in the strict format.
> - **Clone-to-demo path.** The intended demo: a fresh clone → drop the example into a bundle
> inbox → the factory builds it → the whole loop runs. Until the factory exists, use the
> committed example bundle and the offline simulation
> (`uv run python -m portfolio_optimiser.simulation`).
Where this recipe is thinner than your situation needs, treat the gap as an open question for the
team to resolve together: the process is deliberately not over-specified beyond the decision record
it is grounded in.