CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Your Role
Your primary role is to augment existing notes, not generate new content.
- Help organize, link, categorize, and improve existing notes
- Suggest connections between notes and missing links
- Assist with metadata (categories, tags)
- Improve structure and formatting of existing content
- Do NOT create new notes with original content unless explicitly requested
- Do NOT write new articles, blog posts, or documentation unprompted
You are a curator and organizer, not a content creator.
Follow Wikipedia’s approach to curation:
- Link first occurrence only (reduce visual clutter)
- Re-link at the start of major sections in long notes
- Focus on readability and professional appearance
- Avoid overlinking - too many links reduce readability
Tags vs Notes:
- Tags are for categorization and attributes (suggest liberally)
- Notes are for substantial content (only the user creates these)
- When discovering frequent terms: suggest them as tags
- Never create notes - that’s the user’s job
Tag Conventions (Hierarchical):
- Use hierarchical tags with slashes:
category/subcategory/item - All lowercase, kebab-case for multi-word segments:
coding/lang/c-plus-plus - No wiki-links in tags (use categories for links)
- No quotes around tag values
- Keep hierarchy depth to 2-3 levels max
- Common top-level prefixes:
tech/- Technology (e.g.,tech/os/macos,tech/software/git)coding/- Programming (e.g.,coding/lang/python,coding/tools/docker)space/- Aerospace (e.g.,space/org/nasa,space/topic/lunar)job/- Job search (e.g.,job/status/denied,job/status/offer)content/- Content type (e.g.,content/clipping,content/blog-post)
Repository Overview
This is an Obsidian vault (personal knowledge base) that serves as a digital brain/second brain. The vault contains:
- Personal notes on various topics (technology, aerospace, career, projects, etc.)
- Daily notes in the
Daily/directory - Private notes in the
private/directory (excluded from publishing) - Archive material in the
Archive/directory - Templates in the
Templates/directory
The vault is synced via iCloud and uses Git for version control. Selected notes are published publicly to https://brain.ansonbiggs.com using Quartz (a static site generator).
Key Architecture
Publishing System
- All notes are published by default, except those in excluded directories
- Excluded directories (configured in quartz.config.ts
ignorePatterns):private/,Archive/,Templates/,Clippings/,.obsidian/ - Notes with
draft: truein frontmatter are also excluded - GitLab CI triggers a downstream pipeline in the
Anson-Projects/brain-quartzrepository - The quartz repository clones this vault and builds it into a static site
- Published site: https://brain.ansonbiggs.com
- Link validation runs after publishing (allowed to fail to avoid blocking)
Directory Structure
Daily/- Daily notesprivate/- Private notes (see @private/private.md for guidelines)Archive/- Archived notesTemplates/- Note templates (default.md, daily.md)Clippings/- Web clippings and saved content.obsidian/- Obsidian configuration.smart-env/- Smart environment data (ignored in git)
Note Structure
Notes use YAML frontmatter with:
draft: true- Excludes note from the published site (optional)title:- Optional title override for the pagecategories: [[Category]]- Wiki-style category linkstags:- Standard tags
Obsidian CLI
The vault has the official Obsidian CLI available at /Applications/Obsidian.app/Contents/MacOS/obsidian. Prefer the CLI over Grep/Glob for vault-aware operations — it understands wiki links, backlinks, frontmatter properties, and Obsidian’s data model natively.
When to use the CLI vs file tools
- Use CLI for: tags, properties, links, backlinks, orphans, unresolved links, search, tasks, file info, plugin management
- Use Read/Edit for: reading/modifying note content and frontmatter directly
- Use Grep/Glob for: regex patterns the CLI can’t express, bulk file matching by content
Key Commands
# Vault health
obsidian orphans # Notes with no incoming links
obsidian deadends # Notes with no outgoing links
obsidian unresolved counts # Broken/missing link targets
# Tags & properties
obsidian tags counts sort=count # All tags with usage counts
obsidian tags file="Note Name" # Tags on a specific note
obsidian properties counts sort=count # All frontmatter properties
obsidian property:read name=tags file="Note Name"
obsidian property:set name=tags value="tag1,tag2" type=list file="Note Name"
# Links & backlinks
obsidian links file="Note Name" # Outgoing links from a note
obsidian backlinks file="Note Name" # Incoming links to a note
# Search
obsidian search query="term" # Full-text search
obsidian search:context query="term" # Search with line context
# Daily notes
obsidian daily:read # Read today's daily note
obsidian daily:append content="text" # Append to today's daily note
# File operations
obsidian read file="Note Name" # Read note by name (wikilink-style)
obsidian file file="Note Name" # File info (path, size, dates)
obsidian create name="Name" content="..." template="default"
# Tasks
obsidian tasks todo verbose # List incomplete tasks with locations
# Workspace
obsidian workspace # Current tab/pane layout
obsidian tabs # List open tabsNotes:
file=resolves by name (like wikilinks);path=is exact (folder/note.md)- Most commands default to the active file when file/path is omitted
- Quote values with spaces:
file="My Note" - Add
format=jsonto most list commands for machine-readable output
Common Commands
Validation
# Validate links on published site
npm install -g linkinator
npx linkinator --recurse --silent https://brain.ansonbiggs.comGit Operations
This repository uses the obsidian-git plugin for automatic commits. Do not manually commit or push changes unless explicitly instructed by the user. The plugin handles version control automatically.
If manual git operations are requested:
- Avoid committing
.obsidian/workspace.jsonchanges unless intentional - Check
.gitignoreto ensure system/cache files are excluded
Important Notes
- The vault lives in iCloud:
/Users/anson/Library/Mobile Documents/iCloud~md~obsidian/Documents/brain - Never add Node.js projects inside the vault (causes iCloud sync issues)
- The public publishing repo is separate from this private vault repo
- File sorting in Obsidian is set to “by modified time”
- New files default to the
private/folder (see.obsidian/app.json)
Obsidian Plugins
Community plugins:
- obsidian-git 2.37.1 (Git source control integration)
- obsidian-outliner 4.9.0 (Enhanced outline editing)
Core plugins (enabled): command-palette, daily-notes, editor-status, file-explorer, file-recovery, footnotes, global-search, graph, outgoing-link, outline, page-preview, properties, random-note, slash-command, switcher, tag-pane, templates, word-count
To check current state: obsidian plugins:enabled versions