Skip to content

Latest commit

 

History

7 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🧠 Fate

A lean, skill-driven Obsidian vault for AI agents. Small vault > big vault. Skills and templates over stored clutter.

No vector DB. No embeddings. No plugins. No dependencies. Markdown, three skills, and a janitor that keeps the vault from rotting.


Philosophy

Most second-brain setups hoard everything. This one does the opposite.

  • Small vault wins. 50 dense pages beat 500 thin ones. If info exists in two places, consolidate. If a note served its purpose, delete it.
  • Skills over storage. Templates and skills that automate processes are worth more than reference pages you'll never reread.
  • The janitor keeps it clean. Done tasks get swept. Orphan pages get flagged. The vault stays lean by design, not discipline.
  • Any agent can contribute. The intake skill is the single gate — every piece of information passes through it, gets structured, linked, and logged.

Structure

CLAUDE.md           → standing orders for any agent
AGENTS.md           → pointer to CLAUDE.md, for tools that look for this name
inbox/              → raw input lands here
  _done/            → processed originals (provenance)
tasks/              → task database (status + deletable flags)
wiki/               → processed knowledge
  index.md          → master catalog
  hot.md            → session memory (≤500 words)
  log.md            → append-only operations journal
.claude/skills/     → agent skills, auto-discovered by Claude Code
  intake/           → the gate — how info enters the vault
  ingest/           → process inbox into structured pages
  janitor/          → cleanup done tasks and orphan pages
_templates/         → page skeletons (task, note, project)

Skills

Intake

The single entry point for adding anything to the vault. Classifies input, checks for duplicates, applies templates, links to existing pages, updates the index and log.

Trigger: "save this", "add to vault", "remember this", or any agent output that should persist.

Ingest

Processes everything sitting in inbox/. Reads raw notes, classifies them, creates structured wiki pages or tasks, preserves originals in inbox/_done/.

Trigger: "ingest", "process inbox"

Janitor

Sweeps the vault clean. Deletes done+deletable tasks (after verifying info is preserved elsewhere), flags orphan pages, spots duplicates, reports what it did.

Trigger: "clean", "janitor", "sweep", "tidy"


Task Lifecycle

pending → in-progress → done → (deletable: true) → janitor deletes
                          ↓
                   (deletable: false) → stays forever (reference value)

Tasks use YAML frontmatter:

status: pending | in-progress | done
deletable: false | true
source: which-agent-or-context

The janitor only deletes tasks marked done + deletable: true, and only after confirming the useful info already lives in a wiki page.


Quick Start

One command. No git, no build step, no dependencies.

npx degit Nathan5674312/fate my-vault
cd my-vault

That copies the vault into my-vault without any git history — the folder is yours from the first commit, not a fork of this one. Name it whatever you like.

Prefer it on GitHub? This repo is a template, so Use this template gives you your own repo with the same clean start. Or grab the ZIP from the green Code button. All three land the same 20 files.

Then point an agent at it

claude

The three skills live in .claude/skills/, so Claude Code discovers them on launch — /intake, /ingest and /janitor work with no setup. Drop notes into inbox/ and say "ingest".

Any other agent: point it at CLAUDE.md, or let it find AGENTS.md, which points there. The standing orders, skills and templates work with any LLM that can read and write files. The skills are plain Markdown, so an agent that does not auto-discover them can just read the one it needs.

Obsidian: open the folder as a vault. Graph colours, folder colours and display settings are pre-configured. No plugins required.


Design Decisions

Why no vector DB? For a personal vault kept lean by the janitor, a flat index + wikilinks handles retrieval. The index is always small because the vault is always small.

Why delete instead of archive? Archiving is hoarding with extra steps. If the info is in a wiki page, the task file is dead weight. The janitor verifies before deleting — nothing is lost.

Why one intake gate? Consistency. Every file gets frontmatter, links, an index entry, and a log line. No rogue files floating unlinked.

Why sequential ingest? Processing one inbox item at a time avoids merge conflicts, silent overwrites, and contradiction-hiding. A few extra seconds beats lost knowledge.


License

CC BY 4.0 — use it, change it, build on it, commercially or not. Just credit the source.

Copyright (c) 2026 Nathaniel Young (Divine Construc)

About

A lean, skill-driven Obsidian vault for AI agents. No vector DB, no embeddings, no plugins - markdown, three skills, and a janitor that keeps the vault from rotting.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors