Frontmatter Schema
Every file in wiki/ requires YAML frontmatter. The schema is defined at _meta/schemas/frontmatter.yaml.
KB Articles (Full Schema)
Files in KB type directories (defined by entity_types in config — default: wiki/concepts/, wiki/people/, wiki/tools/, wiki/sources/):
---
title: "Article Title"
type: <entity_types[].name from config> # default: concept | person | tool | source-summary
created: 2026-04-04
last_updated: 2026-04-04
last_verified: 2026-04-04
decay_rate: fast | medium | slow
confidence: high | medium | speculative
tags: ["domain-1", "domain-2"]
sources: ["raw/internal/source.md"]
related: ["[[concepts/related]]"]
summary: "One-line summary for index"
---Note: The sources field uses plain strings (raw file paths), not [[wikilinks]]. This is because raw/ is outside the Obsidian vault.
Evidence Locators
KB articles use visible evidence locators after factual paragraphs:
The API issues short-lived access tokens.
Evidence: raw/rfcs/authentication.md#Token LifetimeEach locator must point to an existing raw Markdown file and an exact heading in that file. In KB articles, the raw file must also appear in the sources: list. Use Inference: for unsourced reasoning and Open question: for unresolved information. System context packs under wiki/workspaces/knowledge-maintenance/context/ and generated actor files under wiki/workspaces/<actor>/answers/ follow the same rule; ordinary workspace notes do not.
Type-Specific Fields
| Type | Extra Fields |
|---|---|
concept | domain, prerequisites |
person | role, affiliations, follows |
tool | category (framework/platform/service/product), repo, maintained |
source-summary | source_url, source_type, author, source_date |
Custom entity types don't require type-specific field definitions. The LLM infers appropriate fields from the type's description in config during /compile. For stricter /lint validation, you can optionally define type-specific fields in _meta/schemas/frontmatter.yaml.
Workspace Files (Light Schema)
Files in wiki/workspaces/:
---
title: "My Research Notes"
created: 2026-04-05
author: "shubh"
tags: ["ai"]
---Only title and created are required. Optional fields: author, tags, summary, related, sources.
Raw Source Frontmatter
Files in raw/ use a simpler schema:
---
title: "Source Title"
source_url: "https://..."
source_type: internal | blog | paper | tweet | substack | github | podcast | video
source_date: 2026-04-01
author: "Author Name"
ingested: 2026-04-04
ingestion_tool: tavily | firecrawl | local
tags: ["domain-1"]
---Confidence Levels
| Level | Definition |
|---|---|
high | Well-sourced from multiple references or authoritative primary sources |
medium | Single source, or well-known but not independently verified |
speculative | Inferred, opinion-based, from unverified sources, or emerging claims |
Filename Convention
- Kebab-case, derived from article title
- Max 60 characters
.mdextension- Examples:
model-context-protocol.md,andrej-karpathy.md