Skip to content

Typed Edges and Frontmatter

Chris Sweet edited this page May 20, 2026 · 5 revisions

type: concept up: "Wiki-LLM-Pattern" tags: [conventions, frontmatter, edges]

Typed Edges and Frontmatter

Every wiki page has YAML frontmatter declaring its type:, parent up:, and optional typed edges to other pages. This frontmatter is what makes the wiki queryable (via the Knowledge-Graph-Pipeline) and what gives cross-references their semantic meaning.

Required fields

---
type: concept | entity | source-summary | synthesis | index | comparison | untyped
up: "[[Parent-Page]]"
tags: [topic-a, topic-b]
---
  • type:: what kind of page this is. Use untyped rather than omitting frontmatter.
  • up:: parent page in the hierarchy; the breadcrumb edge.
  • tags:: optional, for topical clustering.

Edges as interface operations

A typed edge is not a label that says "these two things are related." It is an interface contract that defines what the agent should do when it traverses the edge:

Edge What it licenses
extends: Inherit semantic context from the parent. Treat parent's claims as background.
supports: Evidence aggregation. Combine claims across supporting pages; consistency is desirable.
criticizes: Contradiction detection. Expect tension; conflict-resolution before combining.
source: Grounding check. Target is external; verify cited claims trace back.
up: Parent / breadcrumb. Navigate upward for category context.
related: Fallback, no specific operation. Prefer a more specific edge type.

The framing matters. Treating edges as operations forces them to do real work: a supports: edge tells a retrieval pipeline to aggregate, a criticizes: edge tells it to flag tension. A wiki where every cross-reference is related: collapses to undirected mentions and loses most of the graph's value.

Cross-reference notation

  • Frontmatter: use [[Page-Name]] wikilinks (Obsidian compatibility).
  • Body: use [Display Text](Page-Name) (GitHub wiki compatibility).

Bidirectionality

If A links to B, B should link back to A, either with the same edge type or with the natural inverse. The natural inverse of extends: is extended-by:, of supports: is supported-by:, etc.

The SCHEMA does not currently declare these inverses, which leads agents to degrade specific edges to the fallback related: when adding back-references. This is a real limitation; see Limitation-Inverse-Edges-Missing (issue #3).

See also

Clone this wiki locally