Fix the 41 KB load errors degrading Phase-0 persona grounding (dangling persona-grounding targets)
task-persona-grounding-kb-load-errors
Fix the 41 KB load errors degrading Phase-0 persona grounding
DONE — 2026-06-19, post commit 6b1d662 (DEC-0017 Option 3). The reversibility-enum prose form was the root cause of the load-error class; normalizing it to a strict door classifier + body line swept the errors. Post-sweep dogfood (scripts/agency-phase0-dogfood.mjs, exit 0): KB load errors 41 → 0, and unresolved fde persona-grounding targets 11 of 34 → 3 (the fde persona now grounds on ~57–60 concepts). pnpm kb:check reports the KB clean.
The Phase-0 dogfood (DEC-0053, scripts/agency-phase0-dogfood.mjs) had reproduced 41 KB load errors in the live knowledge/ tree. An atom that fails @dossier/okf load is invisible to compilePersona, so it showed up as a dangling persona-grounding target: for the forward-deployed-engineer role, 11 of 34 reachable targets did not resolve to a loaded atom. The compiled persona is built from the role's traversed subgraph (Agentic-agency runtime topology — compile personas from the OKF graph and activate the reserved BoardWorker over the deterministic spine Invariant 7), so every unloaded atom was a hole in the persona — directly degrading fidelity.
Residual (genuine follow-up, not re-scoped here)
The post-sweep dogfood still shows 3 unresolved fde grounding targets. These are not @dossier/okf load failures (load errors are 0 and kb:check is clean) — they are reachable edge targets that don't resolve to a loaded atom for another reason (e.g. an edge pointing at an id that isn't authored as an atom). They do not block Phase-0 (the floor clears, exit 0) and are below this task's load-error scope. If they warrant cleanup, that's a small graph-lint follow-up for the Principal Knowledge-Format Architect; flagging rather than inventing scope.
It does not block Phase-0. The persona degrades gracefully: the floor (Invariant 6) still clears on the 23 atoms that do load, the dogfood exits 0, and Inv 1/2/3/6/7 are all proven. This is a fidelity fix, not a correctness blocker — hence p1, not p0.
Concrete repro (verified)
Re-running the dogfood, two of the role's depth-1/2 grounding targets print with an empty concept-type ([] instead of [decision]) because they fail to load:
- Claude-primitives-first build strategy —
reversibility: one-way door (sets core architecture) - Add a Forward Deployed Engineer function (subagent) + the first slash command (/fde) —
reversibility: two-way door (a subagent + a slash command are easily changed or removed; ...)
Both fail on the reversibility enum mismatch — expected one of: one-way door | two-way door | one-way | two-way — the strict z.enum rejects the prose-with-parenthetical form.
Why a task, and why distinct from Resolve the decision `reversibility` schema conformance gap
The reversibility enum is the largest class of the 41 errors, and its schema call (relax / split / normalize) belongs to Resolve the decision `reversibility` schema conformance gap / Reconcile the decision reversibility field — free-text prose vs. the @dossier/okf enum — already on the board, owned by Principal Knowledge-Format Architect. This task is the runtime-impact close-out that task does not cover:
- once the schema/data decision lands, sweep the full 41 (the FDE counted 41 total load errors, a superset of the
reversibilityprose set — identify and fix the remainder); and - re-verify persona grounding by re-running the dogfood and confirming 0 dangling grounding targets for the
fderole.
Ordering-hint dependencies: [task-resolve-reversibility-conformance] — the schema adjudication should land first so the bulk fix follows one consistent rule; the dangling-dep is a hint, not a hold (Dossier — The Knowledge Model (v0)). Owned by Principal Knowledge-Format Architect because resolving it changes data and/or the model. confidence: inferred (agent-filed from the DEC-0053 promotion pass).