agentleFS
krishagelkrishagel/geoffrey/skills/obsidian-manager/SKILL.md

obsidian-manager

Skill9 starsChanged 11 months agoMITView on GitHub

Manage Obsidian vault for persistent knowledge storage, search, and retrieval

The file

Show its rules and text

We split this skill into the rules it gives an agent

20 rules. About 0 are common, 15 are distinctive, and 5 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈15

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 5

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Always validate folder placement before writing any files to Geoffrey folder.

    line 73
  2. Very specific:

    All scripts use Python via uv run with inline dependencies.

    line 77
  3. Distinctive:

    Search across the vault for keyword matches.

    line 86
  4. Distinctive:

    Search Readwise highlights by topic, author, or category.

    line 105
  5. Distinctive:

    Search Snipd podcast transcripts and snips.

    line 124
  6. Distinctive:

    Create a new note with proper frontmatter and optional backlinks.

    line 142
  7. Very specific:

    CRITICAL: When creating content, use these destinations.

    line 162
  8. Distinctive:

    All images/infographics MUST include date in filename

    line 176
  9. Very specific:

    All Geoffrey-created notes should include:

    line 200
  10. Distinctive:

    Before research tasks: Check if user has relevant Readwise highlights or existing notes

    line 215
  11. Distinctive:

    When people mentioned: Look up context in People folder

    line 216
  12. Distinctive:

    For context: Search Snipd transcripts for podcast discussions on topic

    line 218
  13. Very specific:

    Major decisions: Document with rationale in Geoffrey/Decisions/

    line 224
  14. Distinctive:

    Always create backlinks to existing content:

    line 229
  15. Distinctive:

    Use Actions URI to interact with Obsidian app:

    line 280
  16. Distinctive:

    Search before creating: Always check for existing content

    line 292
  17. Distinctive:

    Link generously: Create connections between notes

    line 293
  18. Distinctive:

    Include sources: Always cite Readwise/Snipd sources

    line 296
  19. Distinctive:

    Respect existing structure: Don't reorganize user's folders

    line 297
  20. Distinctive:

    When completing Obsidian operations:

    line 301

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Obsidian Manager Skill

Manage the user's Obsidian vault as a persistent second brain. Read existing knowledge, write new content, and search across years of highlights and notes.

Vault Configuration

Path: ~/Library/Mobile Documents/iCloud~md~obsidian/Documents/Personal_Notes/

Write Mode: Auto-create new files, confirm before updating existing files.

Vault Structure

Personal_Notes/
├── Geoffrey/              # Geoffrey-generated content
│   ├── Mission Control.md # Central dashboard (Dataview queries)
│   ├── Scheduled Tasks.md # Scheduler dashboard
│   ├── Research/          # Research task outputs
│   │   ├── Daily AI Briefings/  # Daily automated research
│   │   ├── {Project}/     # Other research projects
│   │   └── attachments/   # Research images
│   ├── Reports/           # Generated reports and artifacts
│   │   ├── PSD/           # Peninsula School District reports
│   │   │   ├── Discipline/    # Discipline reports and infographics
│   │   │   ├── Enrollment/    # Enrollment reports
│   │   │   ├── Tech Support/  # Tech support dashboards
│   │   │   └── {topic}/       # Other PSD topics
│   │   ├── HRG/           # Hat Rack Group (consulting LLC) reports
│   │   │   └── {topic}/       # HRG topics
│   │   ├── Personal/      # Personal reports
│   │   │   └── {topic}/       # Personal topics
│   │   └── {org}/         # Other organizations as needed
│   ├── Daily-Logs/        # Session summaries (YYYY-MM-DD.md)
│   ├── Learnings/         # Extracted patterns (YYYY-MM-DD-topic.md)
│   └── Decisions/         # Major decisions with rationale (YYYY-MM-DD-topic.md)
├── Meetings/              # Meeting notes (YYYY-MM-DD format)
├── People/                # Contact profiles with metadata
├── Readwise/              # Synced highlights (368 articles, 34 books)
│   ├── Articles/
│   ├── Books/
│   ├── Podcasts/
│   └── Tweets/
├── Snipd/                 # Podcast highlights (58+ episodes)
│   └── Data/              # Podcast folders > episodes
└── Templates/             # Note templates

CRITICAL: See CLAUDE.md "Obsidian Organizational Rules" section for:

  • Strict folder structure requirements
  • File naming conventions
  • Routing rules by content type
  • Validation checklist before writing

Always validate folder placement before writing any files to Geoffrey folder.

Scripts

All scripts use Python via uv run with inline dependencies.

Search Scripts

search.py - General Vault Search

uv run scripts/search.py "query" [folder] [--limit N]

Search across the vault for keyword matches. Returns file paths and matching excerpts.

Examples:

# Search entire vault
uv run scripts/search.py "prompt engineering"

# Search specific folder
uv run scripts/search.py "leadership" People

# Limit results
uv run scripts/search.py "AI" Readwise/Articles --limit 10

search-readwise.py - Search Highlights

uv run scripts/search-readwise.py "query" [--author "name"] [--category articles|books|podcasts]

Search Readwise highlights by topic, author, or category.

Examples:

# Search by topic
uv run scripts/search-readwise.py "second brain"

# Search specific author
uv run scripts/search-readwise.py "AI" --author "Andrej Karpathy"

# Search books only
uv run scripts/search-readwise.py "habits" --category books

search-snipd.py - Search Podcast Transcripts

uv run scripts/search-snipd.py "query" [--show "podcast name"]

Search Snipd podcast transcripts and snips.

Examples:

# Search all podcasts
uv run scripts/search-snipd.py "machine learning"

# Search specific show
uv run scripts/search-snipd.py "leadership" --show "Huberman Lab"

Creation Scripts

create-note.py - Create New Note

uv run scripts/create-note.py "title" "content" [--folder Geoffrey/Research] [--tags tag1,tag2] [--related "[[Note]]"]

Create a new note with proper frontmatter and optional backlinks.

Examples:

# Create research note
uv run scripts/create-note.py "AI Model Comparison" "Content here..." --folder Geoffrey/Research --tags research,ai

# Create with backlinks
uv run scripts/create-note.py "Meeting Notes" "Content..." --folder Meetings --related "[[John Smith]],[[Project Alpha]]"

open-in-obsidian.py - Open Note in Obsidian

uv run scripts/open-in-obsidian.py "path/to/note.md"

Opens the specified note in Obsidian using Actions URI.

Content Routing

CRITICAL: When creating content, use these destinations. NEVER dump files directly into Geoffrey/ - always use proper subfolders.

Content TypeFolderNaming Pattern
Research resultsGeoffrey/Research/YYYY-MM-DD-topic.md
ReportsGeoffrey/Reports/{org}/{topic}/Descriptive name with date
Images/InfographicsSame as parent reportDescriptive Name YYYY-MM-DD.png
Meeting notesMeetings/Topic - YYYY-MM-DD.md
Daily summariesGeoffrey/Daily-Logs/YYYY-MM-DD.md
LearningsGeoffrey/Learnings/topic-slug.md
DecisionsGeoffrey/Decisions/YYYY-MM-DD-decision.md
Person updatesPeople/Existing file name

Naming Rules:

  • All images/infographics MUST include date in filename
  • Format: Descriptive Name YYYY-MM-DD.png or Descriptive Name YYYY-MM-DD to YYYY-MM-DD.png for date ranges
  • Example: Peninsula High School Discipline Report 2025-11-17 to 2025-11-20.png

Reports Folder Structure: Pattern: Geoffrey/Reports/{organization}/{topic}/

Organizations:

  • PSD - Peninsula School District reports
    • Geoffrey/Reports/PSD/Discipline/
    • Geoffrey/Reports/PSD/Enrollment/
    • Geoffrey/Reports/PSD/Attendance/
    • Geoffrey/Reports/PSD/{topic}/
  • HRG - Hat Rack Group (consulting LLC) reports
    • Geoffrey/Reports/HRG/{topic}/
  • Personal - Personal reports
    • Geoffrey/Reports/Personal/{topic}/
  • {org} - Other organizations as needed

Frontmatter Standard

All Geoffrey-created notes should include:

---
created: 2025-11-23
tags: [geoffrey, research]
source: geoffrey
related:
  - "[[Related Note 1]]"
  - "[[Related Note 2]]"
---

When to Read from Vault

  • Before research tasks: Check if user has relevant Readwise highlights or existing notes
  • When people mentioned: Look up context in People folder
  • For meeting prep: Find past meetings and related notes
  • For context: Search Snipd transcripts for podcast discussions on topic

When to Write to Vault

  • After research: Save results to Geoffrey/Research/
  • Learned patterns: Extract insights to Geoffrey/Learnings/
  • Major decisions: Document with rationale in Geoffrey/Decisions/
  • Session summaries: Optional daily logs to Geoffrey/Daily-Logs/

Creating Backlinks

Always create backlinks to existing content:

  1. Search before creating: Find related notes first
  2. Use wiki-links: [[Note Title]] format
  3. Add to frontmatter: List in related: field
  4. Reference sources: Link to Readwise/Snipd sources when relevant

Example:

Based on insights from [[Readwise/Articles/Building a Second Brain]],
and discussed in [[Snipd/Data/Huberman Lab/episode-123]],
the key pattern is...

Readwise Content Format

Readwise notes have this structure:

---
Author: "Author Name"
Full Title: "Article Title"
Category: #articles
Summary: "AI-generated summary"
---

## Highlights
- Highlight text with optional tags like [[topic]]

Snipd Content Format

Snipd episodes have rich metadata:

---
episode_show: "Podcast Name"
episode_publish_date: 2024-01-15
mentioned_books: ["Book 1", "Book 2"]
snips_count: 5
---

### Snip 1
**Timestamp:** 00:15:30
> Quote text here

**Transcript:** Full context...

Actions URI Integration

Use Actions URI to interact with Obsidian app:

# Open a note
open "obsidian://actions-uri/note/open?vault=Personal_Notes&file=Geoffrey/Research/note.md"

# Create and open
open "obsidian://actions-uri/note/create?vault=Personal_Notes&file=path&content=..."

Best Practices

  1. Search before creating: Always check for existing content
  2. Link generously: Create connections between notes
  3. Use consistent tags: Match existing tag patterns
  4. Keep notes atomic: One idea per note in Learnings
  5. Include sources: Always cite Readwise/Snipd sources
  6. Respect existing structure: Don't reorganize user's folders

Output Format

When completing Obsidian operations:

## Summary
What was done

## Files
- Created: `path/to/new.md`
- Updated: `path/to/existing.md` (if confirmed)

## Related Content Found
- [[Relevant Note 1]] - why it's relevant
- [[Relevant Note 2]] - why it's relevant

## Next Steps
- Recommendations if any

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.