Dossier — Decision & Audit Log
dossier-log
Decision & Audit Log
2026-06-14
- Project framed. Deep research done (ingestion, OKF, VoidZero/Vite, multi-tenant, GraphRAG); positioning elevated to "owned, compounding learning loop", anchored to Nadella. See Dossier — Mission & North Star.
- DEC-0001 — Adopt OKF as the canonical knowledge format. See Adopt OKF as Dossier's canonical knowledge format.
- DEC-0002 — Learning-loop & audit architecture (trace hook + log-auditor agent). See Establish the learning-loop & audit architecture.
- DEC-0003 — Knowledge Model v0 (role / process / workflow / decision + supporting types). See Knowledge Model v0 and Dossier — The Knowledge Model (v0).
- DEC-0004 — Claude-primitives-first build strategy (subagents, skills, hooks, MCP, Agent SDK, plugins). See Claude-primitives-first build strategy.
- Audit capture live. PostToolUse hook records tool calls to
journal/traces/; the log-auditor distills that signal into records + this log. - DEC-0005 — Expert/principal agent team (7 subagents + log-auditor) + first skills (author-okf, verify-kb, scaffold-vertical, ingest-client). See Establish the expert/principal agent team and first skills.
- Note (process): subagents/skills/audit-hook register but activate on next session start; trace hook verified working via manual test.
- Auto-capture confirmed live. A new session's tool calls write to
journal/traces/2026-06-14.jsonlautomatically — raw layer operating end-to-end. - First reference implementation scaffolded. The DXA vertical — 3 foundation files + 50 conformant OKF stubs; zero dangling links, full manifest conformance, clean security. See dxa-vertical.
- DEC-0006 — DXA vertical as first reference implementation; validates the model under load (v0 held). See Digital Experience Agency vertical as the first reference implementation.
- DEC-0007 —
producesedge is canonical on the producing process only; capabilities link artifacts viarelates_to. See The produces edge is canonical on the producing process only and Dossier — The Knowledge Model (v0). - DEC-0008 — Extraction runtime architecture (the moat): pnpm monorepo,
@dossier/okfkeystone +@dossier/extractiontyped staged pipeline on forced tool use. See Extraction runtime architecture — the moat. - Extraction runtime built + verified green — the moat exists in code. TS monorepo on VoidZero stack;
@dossier/okf+@dossier/extractionbuilt, 152 tests pass, first offline eval green. DEC-0008 review met → confidence promotedasserted → verified. See Extraction runtime architecture — the moat. - Model clarification:
indexandlogdocumented as first-class reserved structural types (no taxonomy change, no new atom). See Dossier — The Knowledge Model (v0). - Reference captured (no decision): TS-toolchain competitive-landscape scan (TypeScript Toolchain Competitive Landscape — June 2026 Scan,
inferred); validates but does not change DEC-0008. Watch-items deferred: Oxfmt formatter slot,tsgo/TS 7 typecheck speed, Turborepo orchestration. - DEC-0010 — Design system & UX-engineering function: built
@dossier/design, a tokens-first design language (generated CSS as drift-tested cache) + theux-engineersubagent. See Establish the design system and the UX-engineering function. - DEC-0009 — Extraction eval methodology (the measurement layer): live harness scoring real emitted OKF against a gold corpus (P/R/F1, edge faithfulness, validity, graph integrity, LLM-judge faithfulness). See Live extraction eval harness — what we measure is what extraction optimizes for.
- DEC-0011 — MCP agentic foundation: tenant-scoped server exposing OKF via explainable GraphRAG (search-seed + typed-graph-expand); one-server-one-tenant isolation. See MCP agentic foundation — tenant-scoped GraphRAG over the OKF KB.
- DEC-0012 — Runtime orchestration & per-tenant control plane:
@dossier/runtimewires provision→ingest→extract→OKF→serve, git-per-tenant; all four architecture layers now integrated. See Runtime orchestration & per-tenant control plane — the learning loop becomes a runnable system. - DEC-0013 — Ingestion connector seam (the front door):
@dossier/ingestionships theConnectorcontract +LocalFilesConnector; web/docx/M365 connectors reserved. Data flow now complete end-to-end. See Ingestion connector seam — assemble, don't build, and ingestion owns the input contract. - DEC-0014 — Plugin + marketplace packaging (distribution as the agency wedge): Dossier as a
claude plugin validate --strict-clean Claude Code plugin + marketplace, built from.claude/primitives. See Plugin + marketplace packaging — distribution as the agency wedge, built from the canonical .claude/ primitives. - DEC-0015 — Docs-site generator chosen (Astro Starlight) + product/docs functions added (product-owner, starlight-engineer, documentation-engineer subagents + github-markdown skill). See Astro Starlight as the docs-site generator + the product-owner, starlight-engineer, and documentation-engineer functions.
- DEC-0016 — Forward Deployed Engineer function + the repo's first slash command
/fde: a principal whole-repo generalist deployed onto Dossier itself (cross-layer integration/glue), not onto clients. (Two same-day corrections are in the ADR §Correction.) See Add a Forward Deployed Engineer function (subagent) + the first slash command (/fde). - DEC-0015 realized — docs-site surface built & dogfooded. New
@dossier/site(Astro + Starlight) renders our ownknowledge/OKF repo: sovereign zero-copy, consumes@dossier/design, OKF-native rendering (badges/confidence/provenance/wiki-links/typed-edge nav). See Astro Starlight as the docs-site generator + the product-owner, starlight-engineer, and documentation-engineer functions §Review. - OKF integrity audit — dogfooded the keystone parser. Ran
@dossier/okfparse()overknowledge/**: fixed 2 YAML-malformed atoms; surfaced 9 schema failures (thereversibilityenum gap, now routed to DEC-0017). Full run: OKF Integrity Audit — knowledge/ against @dossier/okf parse() (2026-06-14). - DEC-0017 (draft) — Reversibility field: free-text prose vs the OKF enum; flagged for Principal Knowledge-Format Architect, records not yet rewritten. See Reconcile the decision reversibility field — free-text prose vs. the @dossier/okf enum.
- Toolchain watch-items (no decision).
pnpm-workspace.yamlgainedallowBuildsfor esbuild/sharp. Astro prefers Vite 7 but repo standardizes on Vite 8 (both green; did NOT downgrade — watch-item). Astromarkdown.remarkPluginsdeprecated — migration to@astrojs/markdown-remarkis a follow-up.
2026-06-15
- DEC-0018 (approved direction) — Recalibrate the brand (near-monochrome warm stone, demote the clay accent; warmth from type+restraint not tint), then build the showcase landing. See Recalibrate the Dossier brand identity — demote color, promote type + restraint + craft — then build the showcase landing and Establish the design system and the UX-engineering function.
- Reference captured (no decision): brand-identity & premium-surface research behind DEC-0018 (Brand Identity & Premium-Surface Research — June 2026; 22 sources, 19 confirmed / 6 refuted). See Brand Identity & Premium-Surface Research — June 2026.
- DEC-0018 realized — brand recalibration built & verified (Phase 1+2). Paper ramp neutralized to warm stone (fixes the pink/brown tint), clay demoted to detail-only, monochrome three-tier identity, showcase landing shipped at
/. See Recalibrate the Dossier brand identity — demote color, promote type + restraint + craft — then build the showcase landing §Review. - DEC-0018 #4 closed — abstract animated learning-loop hero shipped (
HeroLoop.astro, dependency-free SVG, reduced-motion-safe). See Recalibrate the Dossier brand identity — demote color, promote type + restraint + craft — then build the showcase landing. - DEC-0018 #2+#3 closed — libre font trio adopted + logo refined. Newsreader/Inter/IBM Plex Mono self-hosted (no CDN); wordmark outlined to path data. See Recalibrate the Dossier brand identity — demote color, promote type + restraint + craft — then build the showcase landing and Establish the design system and the UX-engineering function.
- DEC-0019 — Subscription-backed extraction as a first-class transport (no API keys):
ClaudeCodeClientrunsclaude -pbehind the sameClaudeClientseam. See Subscription-backed extraction is a first-class transport — ClaudeCodeClient (no API keys). - DEC-0020 — Fixed git-per-tenant isolation when a tenant root is nested inside another git repo (ground-truth bug fix protecting the sovereignty guarantee). See Fix git-per-tenant isolation when a tenant root is nested inside another repo and Runtime orchestration & per-tenant control plane — the learning loop becomes a runnable system.
- MILESTONE — first real external website run through the whole loop, on the subscription. Drove rbaconsulting.com end-to-end (3 pages): 48 atoms / 0 rejected / 138 edges, dangling-edges surfaced, provenance intact, served via MCP. A noisy single run; surfaced the DEC-0020 bug. See Subscription-backed extraction is a first-class transport — ClaudeCodeClient (no API keys).
- Repo-wide verification. typecheck clean, lint 0 errors, 8 packages build, 277 passed / 1 skipped (+9 new),
plugin:checkin sync. - DEC-0021 — Web ingestion: keyless
HttpConnectorby default + Firecrawl wired as the premium path + a CLI web-ingest mode (run --url).@dossier/ingestionnow ships two real connectors. See Web ingestion — a keyless HttpConnector by default, Firecrawl wired as the premium path, and a first-class CLI web-ingest mode and Ingestion connector seam — assemble, don't build, and ingestion owns the input contract.
2026-06-16
- DEC-0022 — Ship the landing public now behind a reversible
DOCS_ENABLEDflag (Starlight KB held back, not deleted); capture demand through two honest doors (early-access + design-partner) into an owned, exportable Buttondown list. See Ship the landing publicly behind a docs-gate flag, capture demand through two honest doors, into a list we own. - DEC-0023 — Market to every organization; agencies are the highest-leverage channel, not a gate (founder direction; direct/self-serve adoption is first-class). See Market to every organization; agencies are the highest-leverage channel, not a gate, Dossier — Mission & North Star, Ship the landing publicly behind a docs-gate flag, capture demand through two honest doors, into a list we own.
- DEC-0025 — OKF upstream relationship: complement at the format layer, competitor at the serving layer; DEC-0001 confirmed, not changed. See OKF upstream relationship — complement at the format layer, competitor at the serving layer, OKF Upstream — GoogleCloudPlatform/knowledge-catalog — June 2026 Scan, Adopt OKF as Dossier's canonical knowledge format.
- Reference captured (no decision): OKF upstream / Google Knowledge Catalog scan (OKF Upstream — GoogleCloudPlatform/knowledge-catalog — June 2026 Scan); confirms but does not change DEC-0001. See OKF Upstream — GoogleCloudPlatform/knowledge-catalog — June 2026 Scan.
- DEC-0024 — Agentic "sprint board" architecture (DIRECTION, not built): a git-resident OKF
taskboard worked by bounded, hook-governed Agent SDK loops; git board is the source of truth, loops always self-bounded, governance via hooks. See Agentic "sprint board" architecture — a git-resident OKF task board worked by bounded, hook-governed Agent SDK loops. - DEC-0026 — KB-agnostic
@dossier/site(renders ANY tenant's OKF viaDOSSIER_KB) + runtime-driven site rendering + a Node-26 Windows build fix. See KB-agnostic @dossier/site (renders any tenant's OKF KB) + runtime-driven site rendering + the Node-26 Windows build fix, Astro Starlight as the docs-site generator + the product-owner, starlight-engineer, and documentation-engineer functions, Runtime orchestration & per-tenant control plane — the learning loop becomes a runnable system, Adopt OKF as Dossier's canonical knowledge format. - DEC-0027 — Vercel Web Analytics on the marketing landing only — a cookieless, no-lock-in, landing-surface-only demand signal. See Add Vercel Web Analytics to the public marketing landing (a cookieless demand signal — landing surface only, not the KB or product), Ship the landing publicly behind a docs-gate flag, capture demand through two honest doors, into a list we own, Adopt OKF as Dossier's canonical knowledge format.
taskconcept type designed + the agentic board seeded (DEC-0024 hand-off closed). Principal Knowledge-Format Architect added the OKFtasktype to Dossier — The Knowledge Model (v0) +@dossier/okf(free-textstatus;dependenciesan ordering hint; theclaimed_by/lease_expirescoordination pair) + seededknowledge/tasks/. See Agentic "sprint board" architecture — a git-resident OKF task board worked by bounded, hook-governed Agent SDK loops.- DEC-0029 — A motion language for the public landing (entrance choreography, the section-4 loop diagram alive, micro-interactions); tokens-only, reduced-motion-safe, no-JS progressive enhancement. See A motion language for the public landing — make the compounding learning-loop story kinetic while holding the brand bar (and a documented exception for the section-4 loop diagram).
- Integration-seam defect (routed, not a decision) —
taskstatus enum blocks the site build. Seededtaskstatuses fall outside the site content schema'sstatusenum, blocking the build; a throwaway-KB workaround unblocked QA. Routed to Astro Starlight Engineer to accept the free-textstatus. - DEC-0030 — Agentic board v1 (build): built the git-resident OKF
taskboard, resolving DEC-0024's four open questions (host = GitHub Actions dispatch-only; lease =claimed_by+lease_expires; layered kill switch; direct edits via a PreToolUse hook). Offline-verified, no real dispatch yet. See Agentic board v1 — build the git-resident OKF task board (deterministic offline core, SDK reserved), resolving DEC-0024's four open questions and dogfooding Dossier's own repo first. - DEC-0028 — The compounding merge: the per-tenant loop now accumulates by id + confidence via pure
@dossier/okfreconcile()(the curation guard — a lower-confidence pass never clobbers human-curated atoms; vanished atoms flagged not deleted). Prerequisite for the board. See The compounding merge — the per-tenant learning loop accumulates by id + confidence instead of overwriting (okf reconcile() + opt-in reconcile in extraction/runtime). - DEC-0030 follow-ups resolved — 3 routed integrity gaps closed. Authored 8
type: roleatoms inknowledge/roles/(dangling role edges); unified the 5-min lease-grace constant across site/runtime/hook; corrected the hook-doc race-backstop overclaim. See Agentic board v1 — build the git-resident OKF task board (deterministic offline core, SDK reserved), resolving DEC-0024's four open questions and dogfooding Dossier's own repo first. - DEC-0031 — The read-only
/boardredesigned as "The Ledger of Work" (loop-health legibility over task management; pulse strip, lifecycle rail, lease heartbeat animating real state,reviewas a literal human gate). See The read-only /board redesigned as "The Ledger of Work" — reframe the surface from task-management to loop-health legibility, with motion that animates only real git state. - DEC-0032 — Build a fully-owned hosted control plane (do NOT adopt the Vercel starter); system of record = hybrid / thin-control-plane, client-owned OKF git repo canonical, host stores only derived state. See Build a fully-owned hosted control plane (do NOT adopt the Vercel claude-managed-agents starter); settle the system of record as hybrid / thin-control-plane with the client-owned OKF git repo canonical.
- DEC-0033 — OKF edge vocabulary is registry-driven: a vertical declares its own traversable edges (extend the graph, never fork it); found serving a real client KB through GraphRAG. See OKF edge vocabulary is registry-driven — a vertical declares its own traversable edges.
- DEC-0034 — First full-loop SERVE on a real external client (RBA), capturing the reusable method: reconcile divergent runs to one canonical KB on a quality (graph) rubric not volume; lexical retrieval sufficient at this scale (vector seam not yet needed). See First full-loop SERVE on a real external client — reconcile divergent extraction runs to one canonical KB on a quality rubric; lexical retrieval sufficient (VectorRetriever seam not yet needed).
- DEC-0035 — Decouple the read-only
/boardfromDOCS_ENABLED— ship/boardpublicly while the KB reading surface stays gated dark. Refines (not supersedes) DEC-0022. See Decouple the agentic board from DOCS_ENABLED — ship /board publicly in production while the /knowledge reading surface stays gated dark. - DEC-0036 — The log-auditor becomes a recorder + standing auditor that closes the improvement loop (four jobs: file findings as board tasks, a forward audit pass each run, verify-before-write, a structured return). See Upgrade the log-auditor from a backward-looking recorder into a recorder + standing auditor that closes the improvement loop.
- DEC-0037 — The marketing landing becomes a tailorable per-client TEMPLATE: a typed
LandingContentmodel rendered by oneLandingPage, Dossier render kept byte-for-byte; theme is never tailorable; the hero artifact is a real round-tripped atom. See The marketing landing becomes a tailorable per-client template — a typed LandingContent model rendered by LandingPage.astro; the Dossier render stays byte-for-byte identical; client instances are values of the same type, canonical in the client's own repo, generated by the generate-landing skill. - DEC-0038 — Site chrome unified into shared
SiteHeader/SiteFooter/ThemeToggleAND the docs/KB surface made fully open (removed theDOCS_ENABLEDgate). Encodes the standing rule: surfaces fully open by default, built atomically. See Site chrome unified into shared SiteHeader + SiteFooter + ThemeToggle components, and the docs/KB surface made fully open — DEC-0022's DOCS_ENABLED landing-only gate is removed so /knowledge ships publicly alongside the landing/board/graph. - DEC-0039 —
/client-new— a thin operator slash command turning the control-plane CLI into one-command client onboarding (scaffold-only, or scaffold-and-learn from a URL on the keyless+subscription path). See /client-new — a thin operator slash command over the control-plane CLI. - DEC-0040 — Codebase ingestion as the 4th connector: a three-layer deterministic code-graph substrate + git-mined "why", gated on a de-risk spike, dogfooded on this repo first (LLM never authors structure; code enters as a graph; OKF stays system of record). See Codebase ingestion as the 4th connector — a three-layer deterministic code-graph substrate + git-mined "why", gated on a de-risk spike and dogfooded on this repo first.
- DEC-0041 — Dumb-fast trace capture + off-hot-path distill/prune: narrow the PostToolUse matcher to mutating calls, replace the per-call node spawn with a win32
.cmd, move distillation off the hot path (pnpm trace:prune). Evolves DEC-0002 for latency + bloat. See Dumb-fast trace capture + off-hot-path distill/prune. - DEC-0042 — Deterministic edge-invariant repair stage (extraction Stage 5.5): a pure offline pass making the DEC-0007 invariants true by construction (downgrade mis-labeled edges, promote
outputs→produces, mint stubs for dangling ids); every repair recorded, never silent. See Deterministic edge-invariant repair stage (extraction Stage 5.5).- Amended 2026-06-16 (audit reconciliation, not a new decision): brought this line + the ADR into SSOT agreement with the shipped code (the commit landed three-repair code under a two-repair doc/log). Process note: a record that undercounts its code is a drift signal — count parity now checked.
- DEC-0043 — Migrate chrome-light app surfaces to SvelteKit; docs stay on Astro/Starlight (two apps, one origin), extract a shared
@dossier/okf-viewleaf. Driven by an un-killable Astro<ClientRouter/>view-transition flash. See Migrate chrome-light app surfaces to SvelteKit; docs stay on Astro/Starlight (two apps, one origin).
2026-06-17
- Expert team grew —
sveltekit-engineerrole atom authored + wired in. A new subagent owned the SvelteKit app surface but had noknowledge/roles/accountability atom; authored Principal SvelteKit Engineer, the parallel to Astro Starlight Engineer. See Principal SvelteKit Engineer and Establish the expert/principal agent team and first skills. - Roster-integrity gap closed —
documentation-engineer+mcp-engineerrole atoms authored. The last two agents lacking accountability atoms; agents↔roles now 1:1 exceptlog-auditor(the recorder, intentionally excluded). Closes Author the two missing role atoms — documentation-engineer and mcp-engineer — so every accountability agent has a knowledge/roles/ atom. See Establish the expert/principal agent team and first skills. - DEC-0044 — Lenient KB-atom reader in
@dossier/okf-view(readKbAtoms): faithfully reproduces Astro'sgetCollectionfor the SvelteKit app (strictparse()would silently drop ~⅓ of id-bearing atoms). See Lenient KB-atom reader in @dossier/okf-view (readKbAtoms) — faithful getCollection reproduction for the SvelteKit app, Migrate chrome-light app surfaces to SvelteKit; docs stay on Astro/Starlight (two apps, one origin), Execute the SvelteKit app migration (DEC-0043) — phased, no big-bang, apex domain moved only at final cutover. - DEC-0045 — Persistent read-only chrome via an
(app)route-group layout so the shared header mounts once and no longer re-animates on intra-app nav. See Persistent read-only chrome via an (app) route-group layout — stop the header re-animating on intra-app nav, Migrate chrome-light app surfaces to SvelteKit; docs stay on Astro/Starlight (two apps, one origin), Execute the SvelteKit app migration (DEC-0043) — phased, no big-bang, apex domain moved only at final cutover. - DEC-0043 Phase 4 landed — landing +
/preview+/api/subscribeported to@dossier/app(landing content model moved byte-identical; pixel-faithful Svelte ports). See Migrate chrome-light app surfaces to SvelteKit; docs stay on Astro/Starlight (two apps, one origin) and Execute the SvelteKit app migration (DEC-0043) — phased, no big-bang, apex domain moved only at final cutover. - DEC-0043 EXECUTED (Phases 0–5) — the SvelteKit migration is built and verified; the Astro view-transition flash is proven dead (
startViewTransition0× on client nav). Phase 6 (apex cutover) prepared, not executed. See Migrate chrome-light app surfaces to SvelteKit; docs stay on Astro/Starlight (two apps, one origin) and Execute the SvelteKit app migration (DEC-0043) — phased, no big-bang, apex domain moved only at final cutover. - DEC-0043 VERIFIED — the SvelteKit migration is LIVE on production; both surfaces unified on one origin via a guarded catch-all rewrite. Promoted
asserted → verified; Execute the SvelteKit app migration (DEC-0043) — phased, no big-bang, apex domain moved only at final cutover closed. See Migrate chrome-light app surfaces to SvelteKit; docs stay on Astro/Starlight (two apps, one origin) §Review and Execute the SvelteKit app migration (DEC-0043) — phased, no big-bang, apex domain moved only at final cutover. - DEC-0046 —
SiteHeaderrestructured into a three-zone information architecture (+ accessible mobile disclosure + a stacking-context fix for a real see-through-panel bug). See Restructure the shared SiteHeader into a three-zone information architecture — brand far-left, Board·Graph optically centered, Docs·GitHub·CTA·theme far-right — plus an accessible mobile disclosure and a stacking-context fix. - Landing polish pass — two universal beats added to the
LandingContentcontract (extends DEC-0037, not a new ADR). An "OKF, the Open Knowledge Format" explainer beat + a "live surfaces" Board/Graph showcase ("nothing here is a mockup"); all five DEC-0037 invariants hold. See The marketing landing becomes a tailorable per-client template — a typed LandingContent model rendered by LandingPage.astro; the Dossier render stays byte-for-byte identical; client instances are values of the same type, canonical in the client's own repo, generated by the generate-landing skill. - Landing length/rhythm pass — a full screen removed; the loop diagram merged up into the hero (continues DEC-0037 polish, not a new ADR). Section rhythm tightened, OKF lead de-duplicated, loop section deleted; invariant #3 holds (loop message re-homed to the OKF beat). Filed Delete or formally park the now-unused HeroLoop.svelte (its only import was removed when the loop diagram merged into the hero).
- DEC-0047 — The dev-only client landing preview renders the client's REAL OKF graph inline (three atomic no-copy extractions:
readKbAtoms(dir?),buildGraphView,<GraphExplorer>); read-only over the client's own git. See The dev-only client landing preview renders the client's REAL OKF knowledge graph inline — via three atomic no-copy-paste extractions (readKbAtoms(dir), buildGraphView, GraphExplorer) that read the client's served OKF directly without perturbing the process-wide DOSSIER_KB or the prerendered /graph. - DEC-0047 amended (placement correction) — the inline client graph was stranded below the footer; a generic production-empty
afterMainslot now places it above the footer (Dossier render byte-identical). See The dev-only client landing preview renders the client's REAL OKF knowledge graph inline — via three atomic no-copy-paste extractions (readKbAtoms(dir), buildGraphView, GraphExplorer) that read the client's served OKF directly without perturbing the process-wide DOSSIER_KB or the prerendered /graph (Placement correction note). - DEC-0049 — Landing flow + cohesion rework: Features beat cut (a duplicate restatement), hero reframed stakes-first, get-started restructured into two equal doors; cohesion polish tokens-only. See Landing flow + cohesion rework — cut the Features beat (re-home its guarantees to the OKF beat + loop and its one net-new card to a direct-adopter door), reframe the hero stakes-first, and restructure get-started into two equal doors.
- DEC-0048 — Dev-aware linking to the split
@dossier/docssurface (no dev proxy — two Vite dev servers can't share one origin); link the docs origin directly in dev, same-origin in prod viadocsUrl(). Filed Document that local dev needs BOTH servers running (app + @dossier/docs on :4321) — root dev-script note or README. See Link to the split @dossier/docs surface dev-origin-aware (same-origin in prod, docs dev origin in dev) via an SSOT $lib/docs module — NOT a Vite dev proxy, which two Vite dev servers cannot share one origin for.
2026-06-18
- DEC-0050 — Do NOT scan/mirror Anthropic's docs into the KB — distill curated references instead ("reference, don't absorb"); generalizes the DEC-0025 stance. See Do not scan/mirror Anthropic's docs into the KB — distill curated references instead.
- Reference captured (no decision): Claude primitives & model family — June 2026 snapshot (Claude Primitives & Model Family — June 2026 Snapshot); confirms but does not change DEC-0004. See Claude Primitives & Model Family — June 2026 Snapshot.
- DEC-0051 — Removed the "For agencies" design-partner door (and its hero affordance) from the landing — single self-serve door now; a landing-surface call, NOT a reversal of DEC-0023 (shared
/api/subscribe+ Buttondown infra retained). See Remove the "For agencies" design-partner door (and its hero affordance) from the landing — single self-serve door. - DEC-0052 — North-star product direction "one loop, three faces": the Brain (OKF Company Brain), the Agency (agent teams grounded in the Brain), the Ladder (adoption-readout wedge); moat = act-and-learn vs act-and-forget; dogfood-first. Filed 4 follow-up tasks. See One loop, three faces — ship an agentic Digital Experience Agency "in a box" (the Agency) plus an adoption-ladder readout product (the Ladder) over the OKF Company Brain, dogfood-first.
- DEC-0053 — Agentic-agency runtime topology: compile personas from the OKF graph + activate the reserved
BoardWorkerover the deterministic spine; seven non-negotiable invariants pinned. Closes Author the agentic-agency runtime topology DEC + spec (OKF→persona/runbook/team; coordinator/dispatch; per-tenant fleet isolation; Atrium+board+reconcile+MCP composition). See Agentic-agency runtime topology — compile personas from the OKF graph and activate the reserved BoardWorker over the deterministic spine. - DEC-0055 — First live
FirecrawlConnectorrun against a real client source (rbaconsulting.com, 75 pages): field evidence for the reserved web seam; 494 atoms / 654 edges / 0 rejected / 4 structural graphIssues; three integration learnings pinned. Filed 3 tasks. See First live FirecrawlConnector run against a real client source — field evidence for the reserved web seam. - DEC-0054 — Atrium: the live co-working room over git — Yjs + self-hosted Y-Sweet, one doc namespace per tenant persisting into the tenant's OKF git via a
reconcile()snapshot bridge; host pick gated on human cost/ops sign-off. Closes Author the "Atrium" DEC — the live-layer-over-git co-working room (Yjs + self-hosted Y-Sweet; snapshot bridge → reconcile). See Atrium — the live co-working room over git, on Yjs + self-hosted Y-Sweet, snapshotting through reconcile() (host pick gated on human sign-off).
2026-06-19
- DEC-0056 — Concept identity =
type+ (canonical-title OR prefix-stripped id), exact-match — dedup owned by the@dossier/okfkeystone; the moat-integrity fix the scaled RBA run forced (faithfulness over coverage). Field-measured 494→453 atoms, 32→0 clusters. See Concept identity = type + (canonical-title OR prefix-stripped id), exact-match closure — dedup owned by the @dossier/okf keystone, in-pass + opt-in reconcile + loop default. - Firecrawl confidence promotion (scoped) — DEC-0021 hosted-API path →
verified. Acting on DEC-0055's field evidence, the owner promoted theFirecrawlConnectorhosted-API path (both#resolveClientbranches) on DEC-0021 only; DEC-0013 staysasserted. See Web ingestion — a keyless HttpConnector by default, Firecrawl wired as the premium path, and a first-class CLI web-ingest mode. - RBA reference-tenant cleanup closed — 4 tasks
done, conformance + graph clean (a log entry, not a new ADR; deterministic surgery within DEC-0056's frame). Its three durable curation lessons are now captured in the ADR's Consequences (§Operational lessons). See Concept identity = type + (canonical-title OR prefix-stripped id), exact-match closure — dedup owned by the @dossier/okf keystone, in-pass + opt-in reconcile + loop default. - DEC-0059 — Untrusted-by-default ingestion & serve boundary (proposed): defense-in-depth to keep regulated data out + contain prompt injection — guarantees live in architecture not detection (fail-closed; assume injection succeeds; "don't ingest" wins). See Untrusted-by-default ingestion & serve boundary — defense-in-depth to keep regulated data out and contain prompt injection.
- DEC-0057 — Capability→delivery (
delivered_by) grounded by a deterministic practice→delivery-workflow bridge — a one-time CURATION pass (discipline-specific workflows beat the universal lifecycle; no bridge → empty, never fabricated). Field-applied 9/187 → 88/187. See Capability→delivery (`delivered_by`) is grounded by a deterministic practice→delivery-workflow bridge — a one-time curation pass, not an extraction-loop change. - DEC-0059 ratified
draft→active(owner approval). Now the standing security/privacy posture for regulated-tenant onboarding; confidence staysasserted(not yet built/measured). The p0 egress sandbox is the load-bearing first build. See Untrusted-by-default ingestion & serve boundary — defense-in-depth to keep regulated data out and contain prompt injection. - DEC-0060 — Fast deterministic KB integrity check (
pnpm kb:check): a ~600 ms read-only gate (parse/schema, dangling edges, wiki-link rot) running the real@dossier/okfkeystone. Sibling to DEC-0041 on the curation tier. See Fast deterministic KB integrity check (kb:check) — make SSOT cheap to uphold. - DEC-0053 — Agency Phase-0 IMPLEMENTED & verified OFFLINE. Built
compilePersona+ activatedAgentSdkBoardWorker(bounded session → capinferred→ reconcile →review); offline dogfood proving Inv 1/2/3/6/7. Confidence heldasserted(reserved seams + Inv 4/5 unproven). See Agentic-agency runtime topology — compile personas from the OKF graph and activate the reserved BoardWorker over the deterministic spine §Review. - DEC-0061 — Defer the curation tier off the hot path: terse
log.mdone-liner +[[id]]+pnpm kb:checknow,pnpm log:audit(deferredclaude -p) later;kb:checkwired pre-commit + a soft log-line lint. See Defer the heavy curation pass off the hot path — terse log stub + kb:check now, pnpm log:audit later. - Loose end closed. Filed Docs home must resolve for every served KB (synthesize an overview when there is no root index) (the DEC-0058 dangling ref) + the optional Retro-shrink the legacy knowledge/log.md essays to true one-liners (terse line + wiki-link). See Task Board — Audit Log (2026-06-19).
- DEC-0017 resolved — Option 3 (strict door classifier + body
**Reversibility:**line) chosen & applied across 40 ADRs + okf schema in6b1d662; KB clean. See Reconcile the decision reversibility field — free-text prose vs. the @dossier/okf enum (2026-06-19). - DEC-0053 — Phase-0 now runs LIVE; the three reserved seams are PROVEN (live session + Inv 4 + Inv 5). Built the live
BoundedSession, per-tenant drain lock, and per-tenant budget envelope; ran live once (~$0.016). Promotion scoped + flagged for the Principal Platform Architect. See Agentic-agency runtime topology — compile personas from the OKF graph and activate the reserved BoardWorker over the deterministic spine §Review.
2026-06-20
- DEC-0053 promoted
asserted → verified(SCOPED) — principal-architect gate met. Implemented act→emit→cap→reconcile→reviewcore (Inv 1–7, live Inv 4/5) field-proven; reserved items (human-merge hop, scale, SDK transport) carried forward. See Agentic-agency runtime topology — compile personas from the OKF graph and activate the reserved BoardWorker over the deterministic spine §Promotion. - DEC-0052 inherits the SCOPED
verified. The Agency-face act-and-learn runtime core is verified via Agentic-agency runtime topology — compile personas from the OKF graph and activate the reserved BoardWorker over the deterministic spine; the wider three-faces thesis (Ladder/Atrium, the market/channel bet) stays asserted/forward work. See One loop, three faces — ship an agentic Digital Experience Agency "in a box" (the Agency) plus an adoption-ladder readout product (the Ladder) over the OKF Company Brain, dogfood-first §Promotion. - DEC-0053 — three carried-forward seams advanced (human-merge tool built/act stays human; per-team budget split built; worktree mechanism built, NOT activated; SDK-transport adapter built, NOT run live). Filed Activate parallel intra-tenant drains via per-task git worktrees, or stay serialize-only? (one-way-door topology call). See Agentic-agency runtime topology — compile personas from the OKF graph and activate the reserved BoardWorker over the deterministic spine §Review.
- DEC-0053 —
@anthropic-ai/claude-agent-sdktransport now run LIVE (~$0.024, parity with the CLI path; capped→reconcile→review; offline gates green with the dep installed). SDK-transport reservation closed;verifiedscope extended to both transports — only scale remains. See Agentic-agency runtime topology — compile personas from the OKF graph and activate the reserved BoardWorker over the deterministic spine §Review. - DEC-0062 — Stay serialize-only for intra-tenant drains; keep the proven per-task worktree mechanism built-but-dormant (YAGNI — no throughput pressure today). Records a measured revisit trigger; disposes Activate parallel intra-tenant drains via per-task git worktrees, or stay serialize-only? (one-way-door topology call). See Stay serialize-only for intra-tenant drains — keep the per-task worktree mechanism built-but-dormant until a measured throughput trigger fires.
- DEC-0063 — The proven agentic loop gets an operator front door: a first-class
dossier-runtime drainsubcommand, offline-by-default with explicit--agenticopt-in (auth-gated, no silent network). Built + proven e2e through the CLI. See Give the proven agentic board-drain an operator front door — a first-class `dossier-runtime drain` subcommand, offline-by-default with explicit `--agentic` opt-in. - DEC-0064 — Governed disposition topology (disposes DEC-0063's question): the public
/boardholds NO mutation authority (read-only); governed approve/reject lives with the operator control plane (CLI now, dashboard later). No mutating public-app server-action. See DEC-0064. - DEC-0065 — Patched
@sveltejs/adapter-vercel(committedpnpmpatch) to fall back to Windows junctions/copy on EPERM, sopnpm -r buildis green on Windows without Developer Mode. win32-only + deploy-safe (Vercel rebuilds on Linux). See Patch `@sveltejs/adapter-vercel` to fall back to Windows junctions on EPERM — so `pnpm -r build` is green on Windows without Developer Mode. - DEC-0066 — Personas ground on teammates via an injected cross-surface resolver (
.claude/agents/.claude/skillsread as ephemeral nodes), NOT by minting team atoms intoknowledge/(sovereignty + SSOT). The fde dogfood persona now grounds 89/89. See Personas ground on teammates via injected cross-surface resolution — never by minting team atoms into knowledge/. - DEC-0067 — The L2 adoption-readout spec (DEC-0052's Ladder/wedge): a deterministic 4-axis scorer (VALUE/RISK/READINESS/MOMENTUM) over process/workflow atoms → Payoff×Ease 2×2 → Now/Next/Later roadmap, emitted as a sovereign OKF
artifact. Built + verified on RBA. See The L2 adoption-readout spec — a deterministic 4-axis scorer (VALUE/RISK/READINESS/MOMENTUM) over process/workflow atoms → a Now/Next/Later roadmap emitted as a sovereign OKF artifact. - DEC-0059 — deny-by-default egress sandbox BUILT + measured at the model layer (the p0):
egress-sandbox.ts(allow-list + denylist + PreToolUse deny-hook + fail-closed quarantine); a red→green test proves a simulated injection exfiltrates ZERO. Staysasserted(OS guarantee + 3 sibling controls unbuilt). See DEC-0059. - DEC-0068 — Built DEC-0064 Option D: the v0 governance dashboard is a non-prerendered
(operator)SvelteKit route group reusing the runtime approve/reject seam (the CLI's exact seam — SSOT, no fork), gated behindDOSSIER_OPERATORso the public/boardkeeps no mutation authority. Proven LIVE + offline-tested. See DEC-0068. - DEC-0069 — The WATCH face of DEC-0052's triad: a read-only
(operator)/activityledger showing the loop's compounding return, via one SSOT runtime read (readActivityLedger) over two real sources — the board snapshot + the tenant'sgit log. Counts purely derived; provenance separates human vs agent. See DEC-0069. - DEC-0070 — Lighten the curation tier + right-size execution: four CLAUDE.md tightenings — raise the ADR bar (direction-setting only), enforce the true one-line log,
log:auditdeterministic-by-default + incremental, and match effort to scope; plus aqa-reviewer↔verify-kbde-dup. See DEC-0070. - DEC-0052 Phase-0 closed ON OURSELVES —
scripts/dossier-self-loop.mjsruns our own loop on our own board end to end (offline canned transport;--agentic-livewired+gated within Agentic-agency runtime topology — compile personas from the OKF graph and activate the reserved BoardWorker over the deterministic spine's frame), emits a sovereign readoutartifact+ producingprocess, flips Build the runtime BoardWorker seam (DefaultBoardWorker + reserved AgentSdkBoardWorker) → done. Within One loop, three faces — ship an agentic Digital Experience Agency "in a box" (the Agency) plus an adoption-ladder readout product (the Ladder) over the OKF Company Brain, dogfood-first's frame.
2026-06-21
- DEC-0071 — Egress substrate =
@anthropic-ai/sandbox-runtime, proxy-first; gVisor/Firecracker escalation-only — the OS-layer mechanism within Untrusted-by-default ingestion & serve boundary — defense-in-depth to keep regulated data out and contain prompt injection's frame, grounded in Claude-primitives-first build strategy; sharpens Deny-by-default egress sandbox around the extraction agent — break the lethal trifecta so a hijacked agent structurally cannot exfiltrate (the single load-bearing build finding). See DEC-0071. - DEC-0072 — Three content registers on ONE renderer:
/knowledge/*stays the pristine sovereign OKF KB (zero marketing prose, ever),/docs/*= a SEPARATE authored Starlight collection,/blog/*later; a one-way-door provenance lock executed on by DEC-0073. See DEC-0072. - DEC-0073 — Visibility & GTM: fix the floor before widening the mouth — comprehension+activation over awareness; product docs + hygiene P0-now, awareness instruments later, page-farm/paid-ads NO. Filed 4 board tasks. See DEC-0073.
2026-06-22
- DEC-0072 REFINED (renderer-assignment only; invariant intact). Two renderers split by register — product docs repurpose Starlight, the dogfood KB renders app-native near /graph; filed Render the dogfood OKF KB app-native in @dossier/app near /graph (the prerequisite that frees Starlight for product docs). See DEC-0072 §Refinement.
- KB renders app-native (
(app)/[...slug]over the shared okf-view reader; 159 atoms, URLs byte-preserved; proxy flipped); browser-verified after fixing a node:fs-in-client hydration leak (OkfMeta → types-only + server-resolved props) — within Three content registers — the OKF KB stays a pristine sovereign showcase; product docs and blog are SEPARATE authored collections (REFINED 2026-06-22 — TWO renderers split by register, not one)'s frame. Filed Split @dossier/okf-view into a client-safe entry (view-model + types) vs a server-only entry (the fs readers) + guard against node:fs leaking into the client. - Product-docs register stood up (Track 2): the Starlight
@dossier/docssurface renders authored docs at/docs/*by default (Astrobase:'/docs'+src/content/docs/**viadocsLoader()+ a Diátaxis sidebar), branched onDOSSIER_KBso the KB-agnostic mode (DEC-0026) is preserved intact (src/docs-mode.mjssingle-sources the switch); both modes build green (6 product-docs / 161 KB pages); 4 Diátaxis pages + index scaffolded with TODO command placeholders for the documentation-engineer — within Three content registers — the OKF KB stays a pristine sovereign showcase; product docs and blog are SEPARATE authored collections (REFINED 2026-06-22 — TWO renderers split by register, not one)'s frame; builds Stand up the product-docs register — REPURPOSE the @dossier/docs Starlight surface to official product docs at /docs/* (new-tab "Docs"). - Product docs now render on the repurposed Starlight surface at
/docs/*(4 Diátaxis pages + index, commands verified against live--help; KB-agnostic mode preserved behindDOSSIER_KB; header "Docs" →/docs/new tab); built + locally browser-verified, not yet prod-deployed — within Three content registers — the OKF KB stays a pristine sovereign showcase; product docs and blog are SEPARATE authored collections (REFINED 2026-06-22 — TWO renderers split by register, not one)'s frame. Closes Stand up the product-docs register — REPURPOSE the @dossier/docs Starlight surface to official product docs at /docs/* (new-tab "Docs"). - KB-link fixes (within Three content registers — the OKF KB stays a pristine sovereign showcase; product docs and blog are SEPARATE authored collections (REFINED 2026-06-22 — TWO renderers split by register, not one)'s frame): okf-view routes now slash-less to match the app's
trailingSlash:'never'(no 308 round-trip); fixed product-docs/knowledge/decisions/…→/decisions/…404s; newremark-app-linksplugin makes docs→app "see it live" links hit the app origin in dev (root-relative in prod). - Fixed: clicking "Knowledge" rendered BLANK until refresh — the atom page's pure-CSS
animation … forwardsreveal only fires on full load, so client-nav stranded all.revealblocks at opacity:0; switched to the landing's visible-by-default.reveal/.reveal--intransition armed inonMount(CDP-verified: 0/4→4/4 reveals visible on client nav, refresh/board/graph/deep-atom intact) — within Three content registers — the OKF KB stays a pristine sovereign showcase; product docs and blog are SEPARATE authored collections (REFINED 2026-06-22 — TWO renderers split by register, not one)'s frame. - Consolidated the duplicated (and drifted)
.revealentrance-motion into ONE SSOT: sharedsrc/styles/reveal.css(@imported by landing.css + atom.css) + oneuse:revealSvelte action (src/lib/actions/reveal.ts;'mount'|'view'triggers) replacing both bespoke onMount armers; also fixed the latent:global(html.js)no-op the plain-CSS-imported atom.css never scoped (→ bare.js). CDP-verified: all 4 routes end visible+armed, entrance plays transient-hidden→1 under no-preference, static under reduce, header chrome untouched;app check0/0 — within Three content registers — the OKF KB stays a pristine sovereign showcase; product docs and blog are SEPARATE authored collections (REFINED 2026-06-22 — TWO renderers split by register, not one)'s frame. - Deploy fix: a
"comment"key added to bothvercel.jsonfiles failed Vercel'sadditionalProperties:falseschema → BOTH prod deploys (dossier-app + dossier-docs) errored at 0ms before build (local builds never read the schema); removed — both green again. Within Three content registers — the OKF KB stays a pristine sovereign showcase; product docs and blog are SEPARATE authored collections (REFINED 2026-06-22 — TWO renderers split by register, not one)'s frame. - Docs serving topology CHANGED: product docs now serve at ROOT on their own origin (
dak-dossier-docs.vercel.app/), dropping the same-origin/docsAstro base + apex/docs/*proxy + 19 hardcoded/docs/content links (the proxied/docs/*404'd; root + sub-pages all 200, links root-relative); header/footer "Docs" → docs-origin root, new tab. Supersedes DEC-0073's same-origin-/docsSEO sub-point (trade-off: docs on a separate subdomain) — within Three content registers — the OKF KB stays a pristine sovereign showcase; product docs and blog are SEPARATE authored collections (REFINED 2026-06-22 — TWO renderers split by register, not one)'s frame.