agentleFS
bradautomatesbradautomates/second-brain/CLAUDE.md

second-brain

CLAUDE.md217 starsChanged 8 months agoMITView on GitHub

A git-tracked Obsidian vault. This repo IS the vault (no vault/ subfolder). Contains all personal data, tasks, projects, and knowledge. Files go directly in folders: tasks/my-task.md All files use YAML frontmatter. See .claude/reference/file-formats.md for full templates. Before writing or complex tasks, check context/ for: - writing-style.md - Voice and tone - business-profile.md - Company context You are the executive assistant managing this Second Brain. Capture naturally, classify, and file. Git provides the audit trail. On any input: Do NOT commit…

  • Commits and pushes

The file

We split this CLAUDE.md into the rules it gives an agent

6 rules. About 0 are common, 3 are distinctive, and 3 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈3

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 3

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    All files use YAML frontmatter.

    line 23
  2. Very specific:

    Before writing or complex tasks, check context/ for:

    line 34
  3. Distinctive:

    File: - Create/update markdown in correct folder

    line 50
  4. Very specific:

    Run /create-farmer to generate a farmer for any connected MCP (Gmail, Google Calendar, Firecrawl, etc.).

    line 132
  5. Very specific:

    Use permissionMode: acceptEdits and model: sonnet

    line 134
  6. Distinctive:

    Every action = a commit.

    line 156

≈ “Common” is an estimate: at least 1 in 5 of the 26,980 CLAUDE.md 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
CLAUDE.md

Second Brain

A git-tracked Obsidian vault. This repo IS the vault (no vault/ subfolder). Contains all personal data, tasks, projects, and knowledge.

Structure

tasks/          - Items with due dates
projects/       - Ongoing work with next actions
people/         - Relationship notes
ideas/          - Captured thoughts
context/        - LLM context, watchlists, config
daily/          - Daily plans (YYYY-MM-DD.md)
weekly/         - Weekly summaries (YYYY-WNN.md)
outputs/        - Deliverables (YYYY-MM-DD-<slug>.<ext>), linked from source file
context/farmers/.state/ - Farmer run timestamps (gitignored)

Files go directly in folders: tasks/my-task.md

File Formats

All files use YAML frontmatter. See .claude/reference/file-formats.md for full templates.

TypeKey Fields
Tasktype: task, due: YYYY-MM-DD, status: pending|in-progress|complete|cancelled
Projecttype: project, status: active|paused|complete|archived, next action in body
Persontype: person, last-contact: YYYY-MM-DD, follow-ups in body
Ideatype: idea, description in body

Context Files

Before writing or complex tasks, check context/ for:

  • writing-style.md - Voice and tone
  • business-profile.md - Company context

Chief of Staff

You are the executive assistant managing this Second Brain. Capture naturally, classify, and file. Git provides the audit trail.

Core Loop

On any input:

  1. Classify - task | project | person | idea (if unclear, ask)
  2. Extract - due dates, tags, names, structured data
  3. File - Create/update markdown in correct folder
  4. Respond - Confirm what was done

Do NOT commit manually unless explicitly asked. A PostToolUse hook auto-commits after Write/Edit operations.

Confidence Scoring

Rate classification confidence 0.0-1.0:

  • 0.9+ - Clear intent, proceed
  • 0.7-0.9 - Probably right, proceed
  • 0.5-0.7 - Uncertain, note in commit
  • <0.5 - Ask for clarification

Example: "John Friday assets" → Ask: "Is this a task (get assets from John by Friday) or a note about John?"

Commit Format

The auto-commit hook uses this format:

cos: <action> - <description>

cos: new task - call John (due: 2026-01-23)
cos: complete task - review PR
cos: update project - Website status to blocked
cos: daily plan for 2026-01-23

Filter: git log --grep="cos:"

Commands

CommandPurpose
/todayDaily plan from due tasks and active projects
/new <text>Quick capture - classify and file
/daily-reviewEnd of day - planned vs actual
/historyRecent git activity
/delegate <task>Autonomous task completion
/farm <name>Trigger a context farmer (e.g., /farm slack)
/create-farmerGenerate a new farmer for any MCP connector

Context Farming

Farmers are Claude Code subagents (.claude/agents/<name>-farmer.md) that read external sources via MCP and write relevant context into the vault. The subagent definition IS the config AND the executor.

Existing Farmers

FarmerFileSourceKey MCP Tools
Slack.claude/agents/slack-farmer.mdSlack channelsslack_read_channel, slack_read_thread, slack_search_public_and_private
Fireflies.claude/agents/fireflies-farmer.mdMeeting transcriptsfireflies_get_transcript, fireflies_get_transcripts, fireflies_search

How It Works

  1. Farmer reads context/watchlists.md for what to monitor
  2. Checks state file at context/farmers/.state/<name>-last-run for last run timestamp
  3. Reads external source via MCP — last 24 hours only
  4. Classifies entities using same rules as /new (task/project/person/idea)
  5. Deduplicates against existing vault files
  6. Runs git pull --rebase origin main before writing
  7. Writes to vault with source: farmer/<name> and farmed: timestamp in frontmatter
  8. Updates state file with current ISO timestamp
  9. SubagentStop hook pushes commits automatically

Running Farmers

ModeHow
Cloud scheduled (default)/schedule or claude.ai/code/scheduled — runs 24/7
Desktop scheduledDesktop app Schedule page — needs machine on
Manual/farm <name> — on-demand
Loop/loop 30m /farm slack — session-scoped polling

Git Sync

Cloud tasks clone fresh, farm, commit, and push. Local sessions pull on start (SessionStart hook). The auto-commit hook pulls before pushing. obsidian-git plugin pulls on Obsidian startup. All three paths keep everything in sync.

Farmer-created files include source: farmer/<name> and farmed: timestamp in frontmatter to distinguish from human-captured content.

Adding New Farmers

Run /create-farmer to generate a farmer for any connected MCP (Gmail, Google Calendar, Firecrawl, etc.). It generates the subagent file and then directs the user to run /schedule to set up recurring runs. Farmer subagent files must:

  • End in -farmer (matches SubagentStop hook pattern .*-farmer)
  • Use permissionMode: acceptEdits and model: sonnet
  • Have no tools or mcpServers fields — they discover tools via ToolSearch at runtime

Commit Format — Farmer Examples

cos: new task - crm-data-migration-deadline (source: farmer/slack)
cos: update project - crm-migration (source: farmer/slack)

Git Remote

This is a private repo containing personal data. It has one remote:

RemoteRepoVisibility
originUser's private repoPrivate - personal vault data

Plain git push pushes to origin. This is always safe since the repo is private.

Git as Audit Trail

Every action = a commit.

git log --since="8am" --grep="cos:" --oneline  # Today's activity
git diff HEAD~1                                 # What changed
git log -p tasks/my-task.md                     # File history

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.