cognitives/skills/integrations/obsidian/SKILL.md
Unified Obsidian vault operations: sync documents to vault, read notes for context, search knowledge, and validate markdown standards. Filesystem-based, no MCP required. Trigger: When user wants to read from or write to Obsidian vault.
npx skillsauth add synapsync/synapse_registry obsidianInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This skill uses a modular assets architecture. Detailed workflows, templates, and helpers are in the assets/ directory:
See assets/README.md for the directory index.
Metadata note: This file's YAML frontmatter defines runtime behavior (auto_invoke triggers, allowed-tools, scope). The
manifest.jsondefines registry metadata (version, tags, providers, dependencies). The frontmatter is consumed by the Claude Code skill loader; the manifest is consumed by theskillsCLI for installation and updates.
Unified skill for all Obsidian vault operations. Acts as a bidirectional knowledge bridge between the agent workspace and your Obsidian vault (MCP preferred, filesystem fallback when unavailable):
Combines the capabilities of the former obsidian-sync and obsidian-reader skills into one cohesive tool with progressive disclosure.
This skill supports bilingual operation (English + Spanish):
sync, read, search) and Spanish (guardar, lee, busca) are recognized for mode detection.## Referencias section header: Uses the Spanish form intentionally as an Obsidian convention adopted by this project. All documents produced by this skill use ## Referencias (not ## References).Convention:
## Referenciasis a fixed section header. Never translate it to## Referencesin generated documents.
RULE 1 — MODE DETECTION: AUTO-SELECT FROM USER INTENT
Detect the operation mode from the user's input. Never force a mode that doesn't match the scenario.
RULE 2 — PRESERVE CONTENT INTEGRITY (SYNC mode)
Read source files completely before writing. Never modify document body content (headings, paragraphs, tables, code blocks,
## Referenciassection). Only add/merge frontmatter metadata. Cross-reference fixes update therelatedfrontmatter array only — never the document body.
RULE 3 — NEVER FABRICATE CONTENT (READ mode)
Only report information that exists verbatim in notes. Quote sources with paths. Distinguish between "the note says X" and "I interpret X based on notes".
RULE 4 — FOLLOW OBSIDIAN MARKDOWN STANDARD
All operations follow the Obsidian markdown standard specification for frontmatter, wiki-links, types, and cross-references.
This skill uses native Claude Code tools only: Read, Write, Edit, Glob, Grep, Bash, AskUserQuestion. No MCP or external dependencies required.
Auto-detect from user intent using these signals:
| Mode | Signals (EN) | Signals (ES) | Example Inputs | |------|-------------|-------------|----------------| | SYNC | "sync", "save", "store", "write", "move" + "obsidian" | "guardar", "sincronizar" + "obsidian" | "sync this report to obsidian", "guardar en obsidian" | | READ | "read", "search", "find", "check", "consult", "what do my notes say" + "obsidian"/"vault"/"notes" | "lee", "busca", "consulta" + "obsidian"/"vault"/"notas" | "read my vault notes about X", "busca en obsidian" |
Ambiguous intent resolution: If the user's intent does not clearly match SYNC or READ signals (e.g., "help me with obsidian", "manage my notes", "obsidian" with no verb), ask the user to clarify:
AskUserQuestion:
question: "What would you like to do with your Obsidian vault?"
header: "Mode"
options:
- label: "Read / Search"
description: "Read notes, search for information, or get project context from your vault"
- label: "Sync / Write"
description: "Save or sync documents from your workspace to your vault"
| Capability | SYNC Mode | READ Mode | |-----------|:---------:|:---------:| | Write to vault | ✅ | ❌ | | Read from vault | ❌ | ✅ | | Search vault | ❌ | ✅ | | Generate frontmatter | ✅ | ❌ | | Cross-ref fix (frontmatter) | ✅ | ❌ | | Cross-ref diagnose | ✅ | ✅ | | Batch operations | ✅ | ✅ | | Vault browsing | ✅ | ✅ | | Priority ranking | ❌ | ✅ | | Standard compliance check | ❌ | ✅ | | Delete/archive notes | ✅ | ❌ | | Move/reorganize notes | ✅ | ❌ | | Patch notes (partial edit) | ✅ | ❌ | | Metadata-only reads | ❌ | ✅ |
After detecting the mode, read ONLY the assets listed for that mode. Do NOT read assets for other modes — they waste context tokens.
| Mode | Read These Assets | Do NOT Read |
|------|-------------------|-------------|
| SYNC | assets/modes/SYNC.md | READ.md, priority-ranking.md, obsidian-linter.md |
| READ | assets/modes/READ.md | SYNC.md, frontmatter-generator.md, cross-ref-validator.md, batch-sync-pattern.md |
Each mode asset references its required helpers and standards internally. Read them on-demand as the mode workflow instructs — not upfront.
For MCP tool parameter contracts (needed in both modes), see assets/helpers/tool-reference.md — read only if ToolSearch output is insufficient.
Use to save documents from workspace to your Obsidian vault:
Sync this report to obsidian.
Assets to read now: assets/modes/SYNC.md (references frontmatter-generator, cross-ref-validator, batch-sync-pattern on-demand)
Use to read, search, and reason over your vault notes:
Read my vault notes about the architecture.
Assets to read now: assets/modes/READ.md (references priority-ranking, obsidian-linter on-demand)
Sync markdown documents from workspace to Obsidian vault with proper frontmatter and cross-reference validation.
Assets to read now: assets/modes/SYNC.md (references frontmatter-generator, cross-ref-validator, batch-sync-pattern on-demand)
Quick summary:
mcp__obsidian__write_noteRead, search, and reason over vault notes to provide contextual knowledge for decision-making.
Assets to read now: assets/modes/READ.md (references priority-ranking, obsidian-linter on-demand)
Quick summary:
{vault_destination} is resolved at runtime — SYNC mode browses the vault and asks the user where to save. No pre-configuration or persistence needed. See SYNC.md Step 3.
Staging-aware: When the user says "sync my output to vault", SYNC mode detects .agents/ directories from producer skills (universal-planner, code-analyzer), lists available output, lets the user pick, and syncs to the chosen vault destination.
All operations follow the internal Obsidian markdown standard:
[[note-name]] format, never markdown linksFor compliance validation, see assets/validators/obsidian-linter.md.
| Producer Skill | How obsidian Integrates |
|---------------|------------------------|
| universal-planner | SYNC: Saves planning docs to vault. READ: Provides historical plans as context |
| code-analyzer | SYNC: Saves technical reports. READ: Surfaces architecture notes |
| universal-planner (EXECUTE mode) | READ: Retrieves sprint plans and progress |
Composition pattern:
Producer skill generates docs → obsidian SYNC mode writes to vault
Agent needs context → obsidian READ mode retrieves from vault
When another skill or agent needs to invoke obsidian, use this priority order:
If running in Claude Code with skills loaded:
Skill("obsidian")
Then describe the operation (e.g., "sync the files in .agents/staging/code-analyzer/ to the vault").
Say a phrase that matches auto_invoke:
If the Skill tool is unavailable (e.g., team subagents via Task tool), read the SKILL.md directly:
Read: cognitives/skills/integrations/obsidian/SKILL.md
Then follow the SYNC or READ mode workflow. NEVER call mcp__obsidian__* tools without reading this skill first.
SYNC mode:
READ mode:
.md files, not binary assets/images| Issue | Mode | Solution |
|-------|------|----------|
| "Tool not found: mcp__obsidian__*" | Both | Run ToolSearch query: "+obsidian write" first |
| "MCP server not connected" | Both | Skill automatically falls back to filesystem mode. Provide vault path when prompted. |
| "Note already exists" | SYNC | Confirm with user before overwriting |
| "No results found" | READ | Broaden search, check different folders, verify vault path |
| "Empty content" | SYNC | Verify source file path with Glob |
| "Confirmation path mismatch" | SYNC | delete_note requires confirmPath to exactly match path |
| "Multiple matches found" | SYNC | patch_note with replaceAll: false fails on multiple matches; set replaceAll: true or refine the string |
| "Frontmatter merge conflict" | SYNC | update_frontmatter with merge: true preserves existing; use merge: false to replace entirely |
| Slow metadata queries | READ | Use get_frontmatter or get_notes_info instead of reading full notes |
development
Rigorous dead code audit for any module, folder, or file in any programming language. Detects orphan files never imported anywhere, classes/functions/ methods declared but never called, constructor parameters received but never consumed, unused imports/requires, private fields with no references, and commented-out code blocks. Use this skill whenever the user asks to: review unused code, clean up a feature after a refactor, find dead code, detect orphan files or classes, audit what can be deleted, find what's left over after a big change, or any variation of "what's not being used / what can I remove". Also triggers when the user says they made large changes and wants to know what became obsolete. IMPORTANT: This skill only reports — it never deletes anything. At the end it always offers to generate a removal plan with /plan.
tools
Registers new cognitives (skills, agents, prompts, workflows, tools) into the SynapSync Registry with proper structure, manifest, and registry index. Trigger: When the user says "GUARDA", "REGISTRA", "AGREGA" followed by a cognitive type and name, or asks to save/register/add a cognitive to the registry.
testing
Adaptive sprint workflow: deep analysis, evolving roadmap, one-at-a-time sprints, formal debt tracking, and re-entry prompts for context persistence. Trigger: When the user wants to analyze a project, create a roadmap, generate/execute sprints iteratively, or check project status and technical debt.
documentation
Session memory for AI agents — load context at the start, save sessions at the end, evolve knowledge across sessions. Like a professional's notebook: open before work, write a summary when done, persist between sessions. Trigger: When starting a session and need to recover context, or ending a session and want to save what happened.