Works with Claude Code and Kiro

Notes your AI agent can't make a mess of.

A plain-Markdown vault for Obsidian. It comes with hooks that keep the agent following your rules: it files notes in the right folder, appends instead of rewriting, and archives instead of deleting.

~/my-vault — claude
$ claude SessionStart hook success: Vault context loaded. === CLAUDE.md === # Personal Vault ... > Process my inbox UserPromptSubmit hook: VAULT REMINDER - 5 folders only: _inbox/, projects/, daily/, people/, _archive/ 3 notes in _inbox/. Proposed destinations: pricing-idea.md -> projects/launch/ call-with-sam.md -> people/sam-lee/meetings/ old-todo.md -> _archive/ Move these? (y/n)
daily/2026-11-01.md
_archive
_inbox
daily
2026-11-01
people
projects
CLAUDE.md
tags: daily
date: 2026-11-01

2026-11-01

Notes
  • Prep for 1:1 with sam-lee
  • Draft pricing page for launch
Vault Activity
  • 09:14 Write: projects/launch/pricing-idea.md
  • 09:14 Write: people/sam-lee/meetings/2026-10-30.md
  • 09:15 Write: _archive/old-todo.md

Illustration of a session: the agent proposes where to file inbox notes, and a hook logs each edit to today's daily note.

Structure

Five folders. That's the whole system.

Every note has one obvious home, so you and the agent always file things the same way.

_inbox/

Quick captures. Process within 7 days.

daily/

One note per day, YYYY-MM-DD.md. Append-only.

projects/

Active work only. Archive after 2 weeks untouched.

people/

One folder per regular contact. Used for 1:1 prep.

_archive/

Dormant material. Archive is not delete.

How it works

Plain files, clear rules, hooks that enforce them.

CLAUDE.md tells the agent where things go. Hooks make sure it sees those rules and records what it did.

You Obsidian Claude Code or Kiro writes notes asks Vault folder (plain Markdown) CLAUDE.md the rules Your notes _inbox daily projects people _archive Hooks .claude/hooks .kiro/hooks reads rules inject rules, log Your storage Git, cloud, Sync

Hooks

Guardrails at every step of a session.

Small scripts in .claude/hooks/ run at fixed points, so the rules don't fade during a long session.

Session start

session-start.sh

Loads CLAUDE.md into context.

Claude CodeKiro
Every prompt

user-prompt-submit.sh

Adds a folder-rules reminder.

Claude CodeKiro
After each edit

post-tool-use.py

Logs file edits to today's daily note.

Claude CodeKiro: not yet
End of turn

stop.sh

Asks the agent to log decisions.

Claude CodeKiro: not yet
Before compaction

pre-compact.sh

Asks the agent to log decisions before context is summarized.

Claude CodeKiro: n/a

Everyday use

Ask for the chores you keep putting off.

These workflows are built into CLAUDE.md. The agent proposes changes and waits for your approval.

Process my inbox

Process inbox

Proposes a destination for each capture, then moves it once you approve.

Prep my 1:1 with sam-lee

1:1 prep

Reads the person's folder and summarizes recent meetings and open asks.

Run my weekly review

Weekly review

Flags inbox notes older than 7 days and projects untouched for 2 weeks.

Optional: a weekly review for your role

Example slash commands in .claude/commands/. Keep the ones that match how you work and delete the rest.

/weekly-review-pm

Product manager

Sprint changes, 1:1 prep for each direct report, and stakeholder updates.

/weekly-review-founder

Founder

Decisions, shipped work ready for an investor update, and open questions.

/weekly-review-freelancer

Freelancer

Hours and scope drift per client, matched to how each one is billed.

/weekly-review-kw

Knowledge worker

Meetings, decisions, and asks that have gone quiet, however old.

Setup

Up and running in four steps.

Requires bash, jq and python3. gh is optional.

Create your vault from the template

Keep it private, since it will hold your notes.

$ gh repo create my-vault --private --template shaynemeyer/vault-template --clone

No gh? Click Use this template on GitHub, or download the ZIP to keep the vault local.

Open it in Obsidian

Open the my-vault folder as a vault in Obsidian.

Make the rules yours

Edit CLAUDE.md to set the title and adjust the rules to taste.

Start your agent from the vault root

Run Claude Code or Kiro in the vault folder. It should report "Vault context loaded".

macOS · Supported, tested with Claude Code
Windows · Work in progress

Start with a vault that stays tidy.

Plain Markdown you own, with an assistant that follows your rules.