Back to build log

ziksaka-mcp/2025-09-10

Shipped

Typed edges over naive vault links

CostEvery capture step got slower for humans.

MCPknowledge-graphschema

Constraint

Agents querying the vault needed causal truth, not a bag of wikilinks. A dossier that treated "attended" and "blocked-by" as the same edge type would invent precedence the notes never claimed. The schema had to force a type and a timestamp on every edge before tools like get_dossier shipped.

Options

  1. Keep Obsidian's native links as-is and let the model infer relationship type from surrounding prose.
  2. Require typed edges (relation + timestamp) at write time, and reject or quarantine untyped links from agent-facing tools.
  3. Store a separate "agent graph" beside the vault and sync it on a schedule, leaving human notes untouched.

Chose

Option 2. The tradeoff: every capture step got slower. Seeds and meeting notes that used to be a quick [[Name]] now need a relation. Humans feel the friction. Agents stop hallucinating causality. I accepted the write-time tax because the read-time lie was more expensive once an agent acted on it.