← Vault Index
Source: frameworks/kit-knowledge-transfer/04-quality.md

04 — QUALITY: Knowledge Transfer

Format: two gates. Gate 1 is mechanical and binary (engine/qc.py — the build is gated on it; you cannot ship a fail). Gate 2 is a judgment checklist run by Claude + the advisor. When to run: after every Create or Update, before the capture is shared.

Why two gates, not 100-point scoring: the mechanical checks (gaps flagged, nothing fabricated, structure intact) are disqualifying — a binary gate is correct. The judgment checks (is the captured tacit knowledge actually the knowledge?) can't be mechanized — a checklist is correct.


Gate 1 — Mechanical (binary, blocking · engine/qc.py)

Run: py engine/qc.py ".docx". Must exit 0. It enforces:

#CheckBlocks ship
1Every template section is present in the outputYes
2No marker leaks — no [...], no FILL::, no FLAG:: in the rendered textYes
3Every gap and every risk is highlighted (highlight count == FILL + FLAG count)Yes
4Aptos font (matches the source-doc standard)Yes
5Filename matches - Capture .docxYes

Gate 1 is the anti-fabrication floor: a blank can't go un-flagged, and a flag can't go un-highlighted.


Gate 2 — Judgment (checklist · Claude + advisor)

Mechanical pass ≠ good capture. Verify by hand:

Substantiation

  1. Pick 5 lines at random — each traces to a specific moment in the source. Zero lines you can't source.
  2. No invented values dressed as fact. Anything uncertain is a FILL:: flag, not a confident guess.

The knowledge is actually captured

  1. Watch-outs carry judgment, not restated steps. At least the non-obvious calls a successor would otherwise learn the hard way are present.
  2. The single points of failure are flagged (FLAG:: RISK —), not buried.
  3. A competent successor who never met the expert could run one cycle from this doc + ask only the flagged questions.

Voice + boundary

  1. Plain operator language — no internal jargon, no AI-team names, no builder-speak (see 02 forbidden terms).
  2. If vault-visible: fully anonymized. No real client, person, or account number. Fictional names only.
  3. Alphabetized Rules + Standing-notes lists.

Ship Criteria


Common Failure Modes

FailureWhat HappensHow to Fix
Steps captured, judgment missedThe doc reads like an SOP; the successor still can't make the callsRe-mine the source for the watch-outs — the "this always…" / "don't do X before Y" moments. If the source doesn't have them, that's a facilitation gap (06), not a writing gap.
Blank filled with a guessA plausible value that isn't in the source slips inReplace with FILL:: . The gate can't catch a plausible fabrication — Gate 2 substantiation must.
Real client in a vault exampleAnonymization boundary violatedSwap to fictional names/data. Never lift a real subject into a vault-visible capture.
Gate gamed by removing flagsSomeone deletes a FILL:: to make the page "clean"The gap didn't close — the flag did. Restore it; an unflagged unknown is the exact failure this kit exists to prevent.
One capture, many subjectsA single doc tries to hold several people/processesOne capture per subject/process. Run the kit again.
Process content under a config headingOrdered steps (1, 2, 3…) render under "Rules — alphabetized"Pick the template shape that matches: template-process.json ("Sequence — run in order") for a method, template.json ("Rules — alphabetized") for standing config. See 05, Two capture shapes.