-
Notifications
You must be signed in to change notification settings - Fork 28
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]].
| 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 |
| 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 |
| 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 |
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
|
Every record must have:
-
type— the record type (one of the 20 types above) -
name(or type-specific name field likesubjectfor decisions) — the record title -
status— current status -
created— ISO date of creation
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]]
Each record type has a template in the vault's _templates/ directory. Templates define:
- Default frontmatter — all fields with sensible defaults
- Body structure — heading, description placeholder
-
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.
-
{{title}}— replaced with the record name -
{{date}}— replaced with today's ISO date
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.
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
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.
Getting Started
Architecture
Workers
Reference