agentleFS
fbdemefbdeme/claude-skills/obsidian-wiki/AGENTS.md

claude-skills / obsidian-wiki

AGENTS.md1 starsChanged 3 months agoMITView on GitHub

A skill-based framework for building and maintaining an Obsidian knowledge base. No scripts or dependencies — everything is markdown instructions that you execute directly. Resolve config using the Config Resolution Protocol in llm-wiki/SKILL.md: The resolved config sets OBSIDIANVAULTPATH (where the wiki lives). It may also set OBSIDIANWIKIREPO (where this repo is cloned) and other optional variables. **After reading config, always read $OBSIDIANVAULTPATH/AGENTS.md if it exists.** It contains owner-specific conventions (domain vocabulary, ingest preferences, writing style, project scoping) that override framework…

  • Reads credentials

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

7 rules. About 0 are common, 1 is distinctive, and 6 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈1

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 6

    Very specific

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

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

    Every wiki page has required frontmatter: title, category, tags, sources, created, updated.

    line 40
  2. Very specific:

    Write to $VAULT/projects/<project-name>.md, cross-linking to concept/entity pages as needed

    line 93
  3. Very specific:

    Update .manifest.json, index.md, and log.md

    line 94
  4. Distinctive:

    Only open page bodies when the index pass can't answer

    line 102
  5. Very specific:

    Track everything: Update .manifest.json after ingesting, index.md, log.md, and hot.md after any write operation.

    line 125
  6. Very specific:

    Connect with [[wikilinks]]: Every page should link to related pages.

    line 126
  7. Very specific:

    Frontmatter is required: Every wiki page needs: title, category, tags, sources, created, updated.

    line 127

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

Obsidian Wiki — Agent Context

A skill-based framework for building and maintaining an Obsidian knowledge base. No scripts or dependencies — everything is markdown instructions that you execute directly.

Configuration

Resolve config using the Config Resolution Protocol in llm-wiki/SKILL.md:

  1. Walk up from CWD — look for a .env file in the current directory, then each parent, up to $HOME. Stop at the first .env that contains OBSIDIAN_VAULT_PATH.
  2. Global config — if no local .env is found, read ~/.obsidian-wiki/config.
  3. Prompt setup — if neither exists, tell the user to run wiki-setup.

The resolved config sets OBSIDIAN_VAULT_PATH (where the wiki lives). It may also set OBSIDIAN_WIKI_REPO (where this repo is cloned) and other optional variables.

After reading config, always read $OBSIDIAN_VAULT_PATH/AGENTS.md if it exists. It contains owner-specific conventions (domain vocabulary, ingest preferences, writing style, project scoping) that override framework defaults for all skills. Apply it for the duration of the session.

Vault Structure

$OBSIDIAN_VAULT_PATH/
├── index.md                # Master index — every page listed, always kept current
├── log.md                  # Chronological activity log (ingests, updates, lints)
├── hot.md                  # Session hot cache — ~500-word semantic snapshot of recent activity
├── .manifest.json          # Tracks every ingested source: path, timestamps, pages produced
├── _meta/
│   ├── taxonomy.md         # Controlled tag vocabulary
│   └── *.base              # Obsidian Bases dashboard definitions (wiki-dashboard skill)
├── _insights.md            # Graph analysis output (hubs, bridges, dead ends)
├── _raw/                   # Staging area — drop rough notes here, next ingest promotes them
├── concepts/               # Abstract ideas, patterns, mental models
├── entities/               # Concrete things — people, tools, libraries, companies
├── skills/                 # How-to knowledge, techniques, procedures
├── references/             # Factual lookups — specs, APIs, configs
├── synthesis/              # Cross-cutting analysis connecting multiple concepts
├── journal/                # Time-bound entries — daily logs, session notes
└── projects/
    └── <project-name>.md   # One page per project synced via wiki-update

Every wiki page has required frontmatter: title, category, tags, sources, created, updated. Pages connect via internal links — [[wikilinks]] by default, or standard Markdown links when OBSIDIAN_LINK_FORMAT=markdown is set in config.

Skill Routing

Skills live in .skills/<name>/SKILL.md. Match the user's intent to the right skill:

User says something like…Skill
"set up my wiki" / "initialize"wiki-setup
"/wiki-history-ingest claude" / "/wiki-history-ingest codex" / "/wiki-history-ingest hermes" / "/wiki-history-ingest pi"wiki-history-ingest
"/ingest-url <url>" / "add this URL" / "ingest this link" / "save this page"ingest-url
"ingest" / "add this to the wiki" / "process these docs"wiki-ingest
"import my Claude history" / "mine my conversations"claude-history-ingest
"import my Codex history" / "mine my Codex sessions"codex-history-ingest
"import my Hermes history" / "mine my Hermes memories" / "ingest ~/.hermes"hermes-history-ingest
"import my OpenClaw history" / "mine my OpenClaw sessions" / "ingest ~/.openclaw"openclaw-history-ingest
"import my Copilot history" / "mine my Copilot sessions" / "ingest ~/.copilot"copilot-history-ingest
"import my Pi history" / "mine my Pi sessions" / "ingest ~/.pi"pi-history-ingest
"process this export" / "ingest this data" / logs, transcriptsdata-ingest
"ingest this obsidian wiki" / "ingest the obsidian-wiki project"obsidian-wiki-ingest
"what's the status" / "what's been ingested" / "show the delta"wiki-status
"wiki insights" / "hubs" / "wiki structure"wiki-status (insights mode)
"what do I know about X" / "find info on Y" / any questionwiki-query
"audit" / "lint" / "find broken links" / "wiki health"wiki-lint
"dedup my wiki" / "find duplicate pages" / "merge duplicates" / "identity resolution" / "consolidate my wiki"wiki-dedup
"rebuild" / "start over" / "archive" / "restore"wiki-rebuild
"link my pages" / "cross-reference" / "connect my wiki"cross-linker
"fix my tags" / "normalize tags" / "tag audit"tag-taxonomy
"update wiki" / "sync to wiki" / "save this to my wiki"wiki-update
"export wiki" / "export graph" / "graphml" / "neo4j"wiki-export
"color my graph" / "color code obsidian" / "color by tag/category/visibility"graph-colorize
"save this" / "/wiki-capture" / "capture this" / "file this conversation"wiki-capture
"/wiki-quick-chat-capture" / "quick capture" / "capture this finding" / "save this gotcha" / "drop to raw"wiki-quick-chat-capture
"/wiki-research [topic]" / "research X" / "find everything about Y"wiki-research
"create a dashboard" / "vault dashboard" / "show all X as a table" / "dynamic view"wiki-dashboard
"synthesize my wiki" / "find connections" / "what concepts keep coming up together" / "/wiki-synthesize"wiki-synthesize
"create a new skill"skill-creator
"/wiki-claude [topic]" / "/wiki-codex [topic]" / "/wiki-hermes [topic]" / "/wiki-openclaw [topic]" / "/wiki-copilot [topic]" / "/wiki-pi [topic]"wiki-agent
"/memory-bridge" / "browse codex memory" / "what did codex know about X" / "compare tool memories" / "cross-tool memory"memory-bridge
"/daily-update" / "morning sync" / "refresh the wiki index" / "set up the daily cron" / "install terminal notification"daily-update
"/impl-validator" / "check this implementation" / "validate what you did" / "is this correct?"impl-validator
"/wiki-switch NAME" / "switch to my work wiki" / "switch vault" / "change wiki" / "list my wikis" / "show my vaults" / "create a new vault config"wiki-switch
"/wiki-digest" / "what did I learn this week" / "weekly digest" / "knowledge summary" / "what's new in my wiki" / "summarize my recent learning" / "monthly review"wiki-digest

Cross-Project Usage

The main use case: you're working in some other project and want to sync knowledge into your wiki or query it. Two global skills handle this — wiki-update and wiki-query. They work from any directory.

wiki-update (write to wiki)

  1. Resolve config using the Config Resolution Protocol to get OBSIDIAN_VAULT_PATH
  2. Scan the current project: README, source structure, git log, package metadata
  3. Distill what's worth remembering (architecture decisions, patterns, trade-offs — not code listings)
  4. Write to $VAULT/projects/<project-name>.md, cross-linking to concept/entity pages as needed
  5. Update .manifest.json, index.md, and log.md

On repeat runs, it checks last_commit_synced in .manifest.json and only processes the delta via git log <last_commit>..HEAD.

wiki-query (read from wiki)

  1. Resolve config using the Config Resolution Protocol to get OBSIDIAN_VAULT_PATH
  2. Scan titles, tags, and summary: frontmatter fields first (cheap pass)
  3. Only open page bodies when the index pass can't answer
  4. Return a synthesized answer with [[wikilink]] citations

Visibility Tags (optional)

Pages can carry a visibility/ tag to mark their intended reach. This is entirely optional — untagged pages behave exactly as they always have (visible everywhere). The system stays single-vault, single source of truth.

TagMeaning
(no tag)Same as visibility/public — visible in all modes
visibility/publicExplicitly public — visible in all modes
visibility/internalTeam-only — excluded when querying in filtered mode
visibility/piiSensitive data — excluded when querying in filtered mode

Filtered mode is opt-in, triggered by phrases like "public only", "user-facing answer", "no internal content", or "as a user would see it" in a query. Default mode shows everything.

visibility/ tags are system tags — they don't count toward the 5-tag limit and are listed separately from domain/type tags in the taxonomy.

See wiki-query and wiki-export skills for how the filter is applied.

Core Principles

  • Compile, don't retrieve. The wiki is pre-compiled knowledge. Update existing pages — don't append or duplicate.
  • Track everything. Update .manifest.json after ingesting, index.md, log.md, and hot.md after any write operation.
  • Connect with [[wikilinks]]. Every page should link to related pages. This is what makes it a knowledge graph, not a folder of files.
  • Frontmatter is required. Every wiki page needs: title, category, tags, sources, created, updated.
  • Single source of truth. Visibility tags shape how content is surfaced — they don't duplicate or separate it.
  • Keep context warm. hot.md is a ~500-word semantic snapshot of recent activity. Every write skill updates it so the next session can pick up where the last one left off without crawling the full vault.

Architecture Reference

For the full pattern (three-layer architecture, page templates, project org), read .skills/llm-wiki/SKILL.md.

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.

Reviews can't be read right now.

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.