- Rewrite AGENTS.md as single operations manual (PARA, permission table, frontmatter conventions, safety rules, code style) - Root CLAUDE.md = one-line pointer to AGENTS.md - Delete 13 stub CLAUDE.md files across vault directories - Delete .claude/project-instructions.md + .claude/memory/instructions/ (content merged into AGENTS.md) - .claude/settings.json: deny plugin data.json + 04_Archive + git push; ask on .obsidian/** edits; remove SessionStart hook (claudesidian welcome) - Delete 3 upstream commands (init-bootstrap, install-claudesidian, upgrade) - Add risk/writes metadata to 14 remaining commands - Rewrite README.md (remove all claudesidian content) - package.json: name → my-vault, remove check-updates/firecrawl scripts
3.5 KiB
3.5 KiB
AGENTS.md — Vault Operations Manual
Purpose: Single source of truth for AI agents operating in this Obsidian vault. Last Updated: 2026-09-26
Directory Structure (PARA)
00_Inbox/ Temporary capture, process weekly
01_Projects/ Time-bound work with deadlines
02_Areas/ Ongoing responsibilities (Health, Finance, etc.)
03_Resources/ Reference materials and knowledge base
04_Archive/ Completed items and clippings
05_Attachments/ Media files (images, PDFs)
06_Metadata/ Templates and reference docs (8 files)
.claude/ Agent config, commands, hooks
.config/ ESLint, Prettier, TypeScript config
.scripts/ Utility scripts (JS/Python)
.github/ CI workflows
.obsidian/ Obsidian app config (do not rewrite)
Permission Table
| Path | Rule |
|---|---|
00_Inbox/ |
Free to create and edit |
01_Projects/ |
Edit on request |
03_Resources/ |
Edit on request |
02_Areas/ |
Ask before editing |
04_Archive/ |
Never rewrite — read-only historical record |
06_Metadata/Templates/ |
Never rewrite — wired to Obsidian plugins |
.obsidian/ |
Never rewrite — app config |
.obsidian/plugins/*/data.json |
Hard deny — may contain secrets |
| Credential files (see .gitignore) | Never read or write |
Frontmatter Conventions
Active notes (00–03) use these core keys:
created(required) — ISO dateYYYY-MM-DDstatus— one of:draft,active,done,archivedtags,type,updated— optional
Content keys (never delete): title, description, source, date, author, published, aliases
Clipper boundary: 04_Archive/Inbox-Clippings/** permanently uses the web clipper schema (date/page-title/url). Never migrate.
Safety Rules
- Read before writing — always read a file before editing it
- Never delete without approval — ask before removing content
- Preserve everything when merging — only remove verified exact duplicates
- Verify before moving — check destination exists, update all
[[wikilinks]]after move - Never move numbered folders (00–06) from vault root
- Get approval for bulk operations affecting 5+ files
- Never commit secrets — run
.scripts/verify-vault.mjsbefore pushing
Git Workflow
pnpm lint # Auto-fix before committing
pnpm lint:check # Verify without changes
node .scripts/verify-vault.mjs # Secret scanner (CI runs this too)
- Commit after each work session with descriptive messages
- Pull before starting work
- Never force-push to main
Organization Principles
- Inbox is temporary — process weekly
- One idea per note (atomic notes)
- Flat structure over deep nesting (max 4 levels for new notes)
- Use links not folders for relationships
- Link liberally, prefer over-linking
Work Approach
- Simple tasks — execute directly
- Complex changes — propose plan first (affected files, steps, rollback)
Scripts — Code Style
JavaScript/TypeScript
- Single quotes, semicolons,
node:prefix for built-in imports camelCasefunctions/variables,UPPER_SNAKE_CASEconstants,PascalCaseclasses- Prefix unused params with
_ - Handle errors in async functions, check env vars early
Python
snake_casefunctions/variables,UPPER_SNAKE_CASEconstants- Type hints on function signatures
Config
- ESLint:
.config/eslint.config.js - Prettier:
.config/.prettierrc.js - TypeScript:
.config/tsconfig.json