Skip to content

docs(adr): ADR-101/102/103 — autonomous KB link enrichment (design-only) - #682

Merged
cuttlefisch merged 2 commits into
mainfrom
feat/kb-link-enrichment-design
Aug 7, 2026
Merged

docs(adr): ADR-101/102/103 — autonomous KB link enrichment (design-only)#682
cuttlefisch merged 2 commits into
mainfrom
feat/kb-link-enrichment-design

Conversation

@cuttlefisch

Copy link
Copy Markdown
Owner

What

Design-only pass (no implementation) fleshing out the daemon AI-enrichment-of-KBs story to enterprise grade — the kb_agenda/kb_health decay signals + ADR-061 embeddings exist, but the actual link-derivation half was never built (ADR-061 §575: "no 'derive relationships' AI logic exists anywhere yet"). Grounded in code verification + a cited prior-art review.

ADRs (all Proposed, design-only)

  • ADR-101 — Links as first-class structured CRDT edges (prerequisite). Revives the dead links field into typed edges carrying provenance/status/confidence; the projector consumes the union of human inline links (ADR-030) and machine structured edges, so the CRDT stays source-of-truth and the cozo graph a dynamic projection. Fixes the trap that a machine link written to the graph is destroyed on the next projection.
  • ADR-102 — KB engine maturity & performance for the hosted daemon. Evidence-gated: benchmark Cozo-on-RocksDB at ~50 concurrent users / 100K nodes, escalate to a replace-Cozo evaluation only on a missed bar. Sled deprecated; daemon-less editor keeps sqlite. Extends ADR-004/012; supersedes ADR-054's ~8-session figure with new evidence.
  • ADR-103 — Autonomous local-LLM KB link enrichment (the feature). 24/7 Ollama sweep: judgment over a fixed relation vocabulary → multi-signal calibrated confidence → conservative three-band agent-unsettable gate → status-flip materialization → review buffer. Over-linking / staleness / trust-cliff guardrails. Grounded in docs/research/103-kb-link-enrichment-prior-art.md.

Plus docs/KB_ENRICHMENT_EPIC.md (dependency-ordered milestones M0–M6 with per-milestone adversarial-test gates) and the CLAUDE.md ADR-index update.

Notes for reviewers

🤖 Generated with Claude Code

…rerequisites

Design-only pass (no implementation). Fleshes out the daemon AI-enrichment-of-KBs story
to enterprise grade, grounded in code verification + a cited prior-art review.

- ADR-101: links become first-class structured CRDT edges (provenance/status/confidence);
  projector unions human-inline (ADR-030) + machine-structured edges. Prerequisite: today a
  machine link written to the graph is destroyed on the next projection.
- ADR-102: KB engine maturity/performance for the hosted daemon. Evidence-gated — benchmark
  Cozo-on-RocksDB at ~50 users/100K nodes, escalate to a replace-Cozo evaluation only on a
  missed bar. Sled deprecated; daemon-less editor keeps sqlite. Extends ADR-004/012,
  supersedes ADR-054's figure with new evidence.
- ADR-103: autonomous local-LLM link enrichment (the link half ADR-061 deferred). Judgment
  over a fixed relation vocabulary, multi-signal calibrated confidence, conservative
  three-band agent-unsettable gate, status-flip materialization, 24/7 sweep + review buffer,
  over-linking/staleness/trust-cliff guardrails.
- docs/research/103-...: cited Phase-0 prior-art review grounding 103's calibration/threshold.
- docs/KB_ENRICHMENT_EPIC.md: dependency-ordered milestones M0-M6 with adversarial-test gates.
- assets/mae-adr.cozo: regenerated (98 ADR nodes, corpus validated).

Renumbered clear of PR #669's ADR-097-100 (Browser MAE). CLAUDE.md ADR index updated.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Ten conflicts on the first attempt, two after #673 (untrack the ADR KB blob)
landed — this branch was a live instance of the churn #673 removes: adding
three ADRs regenerated the tracked 57 MB store and collided with main's copy.

Resolutions:

* assets/mae-adr.cozo/{db,blobs/*} — took the deletion. Post-#673 these are
  gitignored build artifacts derived from docs/adr/*.md; nothing reads the
  committed copy.

* CLAUDE.md — union, not a pick. Both sides appended to the same ADR-index
  sentence: main added ADR-095–100 (via #669), this branch added ADR-101–103.
  Kept main's text, then appended this branch's paragraph after the
  "holistic sharing story" sentence, where it deliberately placed it.
  Verified: all of ADR-095…103 present, and zero ADR references dropped from
  either side (main 59 refs, branch 57, merged 64).

* assets/mae-adr.cozo.sha256 — REGENERATED via `make adr-kb`, not taken from
  either side. This matters: the ADR-059 gate only checks that the file
  differs from base, so either side's value would have gone green. But this
  branch predates #669, so its checksum describes an ADR set missing
  ADR-097–100 — committing it would have produced a passing gate certifying
  something false. The regenerated value covers the merged corpus, and the
  build validated it (no dangling references, no Extends cycles).

No ADRs were lost: no docs/adr/*.md has ever been deleted in history, ADR-094
was never created, and the merged tree has all 103 files main had plus the
three new ones.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@cuttlefisch
cuttlefisch merged commit 14e5f07 into main Aug 7, 2026
23 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant