All docs · North OS2026-09-14

Continuous Clio source ingestion and explicit NetDocuments matter correspondence — design spec

Status: implemented on branch (PR authorized; not merged or deployed) · Author: cross-source-intelligence orchestrator (transcribed by a Fable seat) · Date: 2026-09-14 · Repo: north-os, branch feat/cross-source-intelligence · Related: NetDocuments MCP federation. No issue ID.

Intent

Agents must not rediscover implicit Clio-to-NetDocuments links each turn. North ingests the populated Clio sources continuously, records explicit NetDocuments correspondence as a bounded evidence cache with provenance, and binds it server-side in matter-scoped search. No graph, no ontology, no task storage while Tasks are empty.

Evidence

Read-only probes, 2026-09-13/14: 4,697 matters, 80,307 readable custom-field entries, zero redactions; 78,933 visible activities (77,598 time entries), 1,048 dated 2026-08-15 to 2026-09-14 inclusive; Tasks HTTP 200 with zero visible records; 81 distinct explicit workspace references, unverified as NetDocuments objects. Live NetDocuments samples: one document matched Matter = Clio source ID and Client = Clio client ID; a second matched Matter only. No global coverage claim.

A. Association storage: matter_netdocs_association

B. Clio provider metadata projection

C. Activities: clio_activity

D. Activity checkpoint: connectors.activity_sync_state

E. NetDocuments authorization epoch

F. Deterministic bindings

G. Matter-scoped search

H. Matter view

The existing MatterSummary, apps/web/lib/matters/{types,read}.ts, components/matters/matter-table.tsx and the embedded connection table use batched local firm-connection and source checks, never raw metadata, never a per-row remote fetch. A discreet status shows Profile keys matched, Reference only, Not checked or Unavailable or stale, with keyboard- and touch-accessible details: evidence scope, checked-at, explicit workspace-unverified distinction. No mapping editor or dashboard; DESIGN.md governs tokens and themes.

Verification

Routing and lane boundary

Config defaults: code Fable high, schema serialized on one Fable high worker. Reviews on the eventual diff: Astra high and fresh Fable high in Claude Code; RLS Sol max; deletions Grok xhigh. The study implementation is complete. PR creation is authorized; merging, deployment and worktree retirement still require explicit approval.

Implementation and verification (2026-09-14)

Implemented on feat/cross-source-intelligence with generated migration 0116_orange_spitfire. Independent reviews (Astra high, fresh Fable high, Grok deletions, Sol RLS) returned clean. The branch is prepared for pull request review; it is not merged or deployed.

Reconciliation with main (2026-09-15)

origin/main at 26e09860 (#423, direct-first research and resumable escalation) was merged locally into this branch, PR #431, and the scoped recorded-research fix was applied on top. The generated migration 0116_orange_spitfire is unchanged: no schema drift from the merge. Focused proof on 2026-09-15: 406 agent-runtime NetDocuments tests, 316 MCP-server tests and 269 NetDocuments connector tests passed, with both package typechecks green. Those counts are focused proof of the scoped recording path over typed fixtures; they are not reconciliation or CI evidence, and no full scoped model escalation was exercised. PR #431 carries the final reconciliation and CI evidence. The gate and suite counts recorded above are historical, measured on 2026-09-14 before this merge, and stand as written.

Operational limitations

Changelog notes (draft; the published changelog is updated only with a real commit)