# Egg Vault This repository is an **Obsidian vault** — a bullet journal with a reference library attached — hybridized with a Claude Code project. Every file is plain Markdown; git is the safety net. The authoritative blueprint is [`reference/Obsidian/Vault Schema.md`](reference/Obsidian/Vault%20Schema.md). If this file and that note ever disagree, the Vault Schema note wins — and both should be fixed. ## This vault is a website The entire vault publishes to **https://jeffs.link** via Obsidian Publish — including this file. Two consequences: - **Everything is public-facing writing.** Write every note, log line, and frontmatter field as something a stranger will read on the web. Flag anything that looks sensitive (names, addresses, credentials) before committing it. - **Git and the live site are independent.** Publishing happens manually from the Obsidian app's publish dialog; nothing committed here goes live until Jeff pushes it there. Commits are safe — but they're staging for the public site, not private storage. ## Layout ``` journal/ daily writing (one note per day + one Yearly Log per year) 2026/07_July/ one folder per month (MM_MMMM) Index/ one index note per year reference/ evergreen notes, filed by topic (Obsidian, Markdown, …) templates/ Templater templates (the only place <% %> syntax belongs) images/ attachments .obsidian/ Obsidian machine settings — treat as read-only .claude/ this Claude Code project (skills, scripts, settings) .github/ automation: vault-check runs on every push (read-only, never commits) ``` ## Conventions - **Daily notes**: `journal/YYYY/MM_MMMM/YYYY-MM-DD dddd.md` (e.g. `journal/2026/07_July/2026-07-10 Friday.md`). Frontmatter carries `previous`/`next` wikilinks, `created`, `week` (`'W28'`), `tags: [☀️]`, `resources:`, `stakeholders:`. Body has three sections: `## Routine` (checklist), `## Log` (timestamped bullets `- **HH:MM** — text`), `## Notes`. - **Yearly Log** (`journal/2026/Yearly Log.md`): one line per notable event, filed under the month's `##` heading. - **Links are wikilinks** (`[[2026-07-09 Thursday]]`) and must match filenames exactly. - **Indentation in checklists uses tabs**, not spaces (see the daily template). - Reference notes start with YAML frontmatter (`tags`, `created`) and often an `> [!abstract]` callout stating what the note is. - Archives get a `z_` prefix so they sort last (`journal/z_Archives/`). ## Rules for Claude 1. **Never put Templater syntax (`<% … %>`) in a real note.** Templater only runs inside Obsidian. When creating a daily note from here, render the dynamic values yourself — use `.claude/scripts/new-daily-note.sh` (or the `daily-note` skill), which reproduces the template exactly. 2. **Don't edit `.obsidian/` unless explicitly asked.** Obsidian reads those JSON files only at startup; a stray comma breaks the app. If you do edit them, tell the user an app reload is required. 3. **Renaming or moving a note requires updating its backlinks.** Obsidian's `alwaysUpdateLinks` only works in-app; from here, grep the vault for `[[Old Name` (including `[[Old Name|` and `[[Old Name#` forms) and update every hit. 4. **Match the vault's voice**: frontmatter first, callouts for asides, wikilinks between related notes, a `## Related` section at the bottom of reference notes. 5. **The journal's clock is US Eastern** (`America/New_York`). The daily-note script pins `TZ` accordingly; do the same for any ad-hoc timestamp (`TZ=America/New_York date '+%H:%M'`). 6. When the vault's structure changes, update `reference/Obsidian/Vault Schema.md` in the same commit. 7. **Run `.claude/scripts/vault-check.py` before committing.** It verifies wikilink integrity, Templater containment, checklist tabs, daily-note frontmatter, and scans for sensitive content. Errors block; warnings are for human judgment. 8. **Log coworking sessions.** When a working session here changes the vault, end it with a timestamped line in today's `## Log` (the `log-entry` skill), and a Yearly Log line if it's milestone-worthy. ## Skills - **daily-note** — create today's (or any date's) daily note with correctly rendered frontmatter and folder path. - **log-entry** — append a timestamped entry to a daily note's `## Log`, and optionally a one-liner to the Yearly Log. ## Git - Commit messages in plain English, present tense, describing the change to the vault ("Add July 12 daily note", "File hypermedia note under Noise"). - `.obsidian/workspace.json` is ignored — it's UI state and churns constantly.