compass-vault-template
Obsidian vault template for a life charter a Claude Code memory vault orients against: four notes, a deny hook, a work-org read gate
Compass vault template
An Obsidian vault for a life charter: who you are, what you are for, and how you want
to be helped. It is the fixed reference a Claude Code memory vault
(memory-vault-template) orients
against: the weekly review scores the week against Goals.md and How I Work.md,
and the daily close names the Call Me Out.md patterns the day's evidence shows.
Three rules keep it a charter rather than more memory:
- Read on request only, by personal sessions. Nothing here is injected at session start. A session reads Compass when the work is about you: planning, priorities, the weekly review, whether to take something on.
- Never written by a job, never quoted into the vault. Scheduled runs read it and name its headings; they never write here, and Compass text never migrates into the memory vault through a review.
- Gated by a hook that denies, not asks. Writes are denied unless the session
was opened by the
compassshell function; reads are denied from any work-org checkout. Everything else in the memory setup asks; this is the one place that denies.
The notes
| Note | Holds | Who reads it |
|---|---|---|
Compass.md | Purpose: who you are and what the next five years are for, in a page | You, and a session planning something large |
Goals.md | One entry per goal, with a horizon: date and a Done looks like: line | The weekly review (one line per goal: moved or no movement); the daily close's Goal: lines |
How I Work.md | Strengths, weaknesses, what drains you, what fuels you, what needs managing for you; each line a pattern and one example | The weekly review (the patterns the week's evidence shows) |
Call Me Out.md | One entry per pattern to flag, the evidence that triggers it, and how blunt to be | The daily close (one Evidence: line per pattern the day shows); the weekly review carries them through |
Headings are identifiers. The memory vault's skills name a goal or pattern by its heading and never quote the text under it, so keep headings short and stable, and rename one only on purpose.
Every line is terse, factual, and checkable against a week of evidence. No motivational prose.
The barrier
claude/hooks/compass-gate.sh runs on every Read, Grep, Glob, Write, Edit, and Bash
call:
- Write gate. A Write or Edit under the Compass path, or a Bash command that
names it, is denied unless
COMPASS_EDIT=1is set. Only thecompassshell function sets it; no scheduled job ever does, and the memory vault'sMEMORY_GROOM=1bypass does not apply here. - Read gate. A Read, Grep, or Glob under the Compass path is denied when the
session's cwd has a git origin owned by one of
WORK_ORGS. Sessions in personal repos and in the memory vault read freely; that includes the vault's scheduled jobs, which run from the vault.
WORK_ORGS is one variable at the top of the hook; a second employer is one edit.
Setup
Prerequisites: Claude Code, git, and (optionally) Obsidian pointed at the vault. The memory vault is optional; Compass stands alone, and the vault's weekly review skips its Compass section silently when these notes are absent.
-
Create your charter from this template and clone it:
gh repo create my-compass --template <this-repo> --private --clone -
Install the hook and the shell function:
cp claude/hooks/compass-gate.sh ~/.claude/hooks/ cat claude/shell/compass.zsh >> ~/.zshrcSet
COMPASSin the hook to your clone's path andWORK_ORGSto the GitHub owners whose checkouts must never read it; point the shell function at the same path. Register the hook in~/.claude/settings.json:{ "hooks": { "PreToolUse": [ { "matcher": "Write|Edit|MultiEdit|NotebookEdit|Bash|Read|Grep|Glob", "hooks": [ { "type": "command", "command": "$HOME/.claude/hooks/compass-gate.sh" } ] } ] } } -
Tell Claude what Compass is, in
~/.claude/CLAUDE.md:Who I am and what I am for lives in Compass (<compass path>), a separate vault. Read it only when the work is about me: planning, priorities, the weekly review, whether to take something on. Never write to it; the compass-gate.sh hook denies writes outside a `compass` shell session and denies reads from any work-org checkout. -
Check the gate before trusting it. From a work-org checkout, ask Claude to read
<compass path>/README.md: denied, naming the work-org rule. From a personal repo, the read succeeds and an edit is denied namingCOMPASS_EDIT. From acompasssession, the edit succeeds.
Filling it in
Compass starts empty. CLAUDE.md in this repo instructs the sessions that fill it:
run compass, and Claude runs an intake the way a coach would, one topic per
conversation, asked, reflected back, then distilled into the note that owns it. Take
the topics in whatever order comes naturally:
- Purpose: what you are for, what the next five years should have been about, what you would regret not doing.
- Goals: the concrete ones, with a horizon date and what done looks like.
- Strengths, with an example each; what people come to you for.
- Weaknesses: where you get stuck, what you avoid, where you burn time.
- What drains you and what fuels you: kinds of work, kinds of days, kinds of people.
- What you need managed for you: the things you drop when nobody is holding them.
- What you want called out: the patterns to flag when they show up in a week's evidence, and how blunt to be about it.
- How you want to be talked to.
Done when all four notes exist and read true, a weekly review can score a week
against Goals.md and How I Work.md without anything else from here, and nothing
duplicates a working rule in your agent config: behavior rules stay there, facts
about you stay here.
How the memory vault uses it
- The weekly review reads
Goals.mdandHow I Work.mdby name and writes anAgainst Compasssection: one line per goal (moved or no movement, naming the PR, ticket, or note), one line per pattern the evidence shows, and one line perCall Me Out.mdpattern carried through from the week's daily notes. - A daily close writes
Evidence: <Call Me Out heading>: <fact>andGoal: <Goals.md heading>: done | moved | untouchedlines into the day's note, heading and fact only. - Nothing writes back. Reading three or four reviews in which a goal never moves is
the signal to open a
compasssession and change the goal or the plan by hand.
Keeping it honest
- Record only what you confirm. A goal or pattern you did not say stays out, however obvious it looks from the memory vault or from work activity.
- Compass points at nothing in the memory vault. Project notes, people, and work activity live there; this is your memory about you.
- Commit straight to
mainwith one plain sentence naming the topic. It is a journal, not a codebase.
How to Install
- Download the ZIP or clone the repository
- Open the folder as a vault in Obsidian (File → Open Vault)
- Obsidian will prompt you to install required plugins
Stats
Stars
0
Forks
0
Last updated 1mo ago