Skip to content

Vault Schema

ssd edited this page Feb 24, 2026 · 1 revision

Vault Schema

Alfred organizes vault records into 20 entity types plus 5 learning types. All records are Markdown files with YAML frontmatter and are linked together with Obsidian [[wikilinks]].

Record Types

Operational Records

Type Directory Purpose Key Fields
project project/ Bounded initiative with a goal status, client, owner, parent, location
task task/ Action item or to-do status, project, assignee, due_date
session session/ Work session log status, project, participants
conversation conversation/ Multi-turn exchange (meeting, chat, email) status, participants, project
input input/ External input (email, document, form) status, source, project
note note/ Free-form note or analysis status, project, subtype
process process/ Repeatable workflow or procedure status, owner
run run/ Instance of a process execution status, process, project
event event/ Scheduled or past event status, date, location, participants
thread thread/ Discussion thread status, project

Entity Records

Type Directory Purpose Key Fields
person person/ Individual person status, org, role, email
org org/ Organization or company status, org_type
location location/ Physical place status, address
account account/ Service account or subscription status, provider, org
asset asset/ Physical or digital asset status, owner, location

Learning Records (Epistemic)

Type Directory Purpose Key Fields
assumption assumption/ Belief being operated on status, confidence, claim, evidence_excerpt
decision decision/ Choice made with rationale status, confidence, claim, evidence_excerpt
constraint constraint/ Hard limit identified status, confidence, claim, evidence_excerpt
contradiction contradiction/ Conflicting information status, confidence, claim, evidence_excerpt
synthesis synthesis/ Pattern connecting multiple observations status, confidence, claim, evidence_excerpt

Status Values

Each record type has a defined set of valid statuses:

Types Valid Statuses
project active, paused, completed, abandoned, proposed
task todo, in-progress, done, blocked, cancelled
session, conversation, run active, completed
person, org, location, account, asset active, inactive
assumption, constraint active, retired, superseded
decision final, draft, superseded, reversed
contradiction unresolved, resolved
synthesis draft, final

Required Fields

Every record must have:

  • type — the record type (one of the 20 types above)
  • name (or type-specific name field like subject for decisions) — the record title
  • status — current status
  • created — ISO date of creation

Relationship Fields

Records connect through multiple relationship types:

Field Type Purpose
related list General relationships ([[type/Name]])
relationships list Typed relationships (added by surveyor)
supports list What this record enables
based_on list Assumptions/decisions this rests on
depends_on list Operational prerequisites
blocked_by list Active blockers
approved_by list Authority chain (person links)

All relationship values use wikilink syntax: [[type/Record Name]]

Templates

Each record type has a template in the vault's _templates/ directory. Templates define:

  1. Default frontmatter — all fields with sensible defaults
  2. Body structure — heading, description placeholder
  3. Base-view embeds — Dataview sections like ![[project.base#Tasks]]

When a record is created (via alfred vault create or the curator pipeline), the template is automatically applied. Even when custom body content is provided, base-view embeds are preserved and appended.

Template Placeholders

  • {{title}} — replaced with the record name
  • {{date}} — replaced with today's ISO date

Base Views

Base views live in _bases/ and contain Dataview query definitions. They are embedded into records via Obsidian's transclusion syntax:

## Tasks
![[project.base#Tasks]]

This renders a live table of all tasks linked to the current project. Each record type has its own base file with relevant sections.

Example: project.base

Sections in project.base:

  • Assumptions, Decisions, Constraints, Contradictions — learning records linked to this project
  • Dependencies — projects this depends on
  • Tasks — tasks assigned to this project
  • Sub-projects — child projects
  • Sessions, Conversations, Inputs, Notes — operational records linked to this project
  • Learnings — all learning records referencing this project

User Profile

The user-profile.md file in the vault root helps Alfred understand who the vault owner is. This enables context-aware entity extraction — the curator will only create records for entities relevant to the vault owner, not every person, company, or topic mentioned in source material.

The file is created during quickstart with a template. Fill it in with your name, work context, interests, and optionally things to ignore.

Clone this wiki locally