一键导入
obsidian-vault
Используй, когда нужно читать, искать, создавать, редактировать, организовывать или поддерживать заметки в Obsidian vault через файловые инструменты.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Используй, когда нужно читать, искать, создавать, редактировать, организовывать или поддерживать заметки в Obsidian vault через файловые инструменты.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Analyze post-call materials such as recordings, transcripts, meeting notes, therapy/coaching sessions, study calls, and voice notes. Use for aftercall/post-call workflows: transcribe recordings, label speakers, summarize decisions, extract action items/owners, draft follow-ups, export notes, and reflect on themes after a conversation.
Run deep research through the Parallel Task API for complex, multi-step questions that need synthesis, source grounding, market/technical analysis, or a full research report rather than a quick web lookup. Use for /deep, deep research, comprehensive investigation, current market research, and high-stakes decisions.
Assess whether an unfamiliar webshop, checkout page, ecommerce domain, or product listing is likely legitimate before a user buys. Use for scam checks, suspicious stores, fake-shop concerns, checkout URL sanity, EU cross-border ecommerce, payment-risk review, and safe-buying advice.
Multi-model decision workflow for Hermes: Conductor plans and synthesizes, Worker does high-volume work, and Critic red-teams the result. Use for important strategy, research, content, niche, product, business, and high-stakes decisions; triggers include троица, используй троицу, через 3 модели, GPT + DeepSeek + Gemini, council, red team this, plan-execute-critique.
Web design workflow for landing pages, SaaS frontends, conversion-oriented pages, and non-generic UI. Use when building or improving a website, landing page, SaaS UI, hero section, pricing page, conversion funnel, shadcn/ui interface, or when the user invokes /webd or @webd.
| name | obsidian-vault |
| description | Используй, когда нужно читать, искать, создавать, редактировать, организовывать или поддерживать заметки в Obsidian vault через файловые инструменты. |
| version | 1.0.0 |
| author | Hermes Agent |
| license | MIT |
| platforms | ["linux","macos","windows"] |
| metadata | {"hermes":{"tags":["obsidian","notes","knowledge-management","markdown","vaults"],"related_skills":[]}} |
Используй этот скилл для filesystem-first работы с Obsidian vault: читать заметки, выводить список файлов, искать по заметкам, создавать новые заметки, добавлять контент в существующие, организовывать папки, переносить или переименовывать заметки, создавать MOC/index notes, поддерживать теги и добавлять wikilinks.
Цель — вести себя как аккуратный хранитель базы знаний, а не как генератор текста, который разбрасывает заметки куда попало. Сохраняй существующую структуру пользователя, если он явно не попросил реорганизацию.
Используй этот скилл, когда пользователь просит:
Не используй этот скилл для:
Перед вызовом файловых инструментов всегда определи путь к vault.
Предпочтительная конвенция:
OBSIDIAN_VAULT_PATH="/absolute/path/to/Obsidian Vault"
Переменная может быть задана в shell environment, project .env или agent-specific environment file. Если она не задана, используй fallback только если такая папка существует:
~/Documents/Obsidian Vault
Если нет ни environment variable, ни fallback-папки, спроси пользователя путь к vault перед изменением файлов.
Важные правила:
$OBSIDIAN_VAULT_PATH/Note.md в read_file, write_file, patch или search_files.OBSIDIAN_VAULT_PATH, используй terminal только для discovery, а затем вернись к file tools.Для работы с vault предпочитай структурированные file tools:
| Задача | Предпочтительный tool | Избегать |
|---|---|---|
| Прочитать заметку | read_file | cat, less, editor UIs |
| Показать список заметок | search_files(target="files") | find, ls |
| Искать по содержимому | search_files(target="content") | grep, rg, если file tool доступен |
| Создать заметку | write_file | shell heredocs, цепочки echo |
| Точечная правка | patch | sed, ручные shell-rewrites |
| Проверить структуру | terminal с маленьким скриптом допустим | ручные догадки |
Используй shell-команды только для того, что действительно требует shell behavior: запуск verification script, проверка environment variables, git или массовое перемещение файлов после понятного плана.
Используй read_file с абсолютным путём к заметке. Он даёт line numbers и pagination, что делает будущие patch-правки безопаснее.
Если пользователь дал неполное название:
search_files(target="files", pattern="*partial*.md").search_files(target="content", file_glob="*.md").Используй search_files с target: "files" и абсолютным путём к vault.
Примеры:
*.md внутри vault;*MOC*.md, *Index*.md или folder-specific names.Используй search_files с target: "content".
Хорошие defaults:
file_glob: "*.md", когда ищешь по заметкам;Когда сообщаешь результаты поиска, дай достаточно контекста, чтобы пользователь узнал заметку, но не выгружай большие тела заметок без просьбы.
Используй write_file с полным Markdown-контентом и абсолютным путём внутри vault.
Перед созданием заметки:
Рекомендуемая форма заметки:
---
tags: [topic/example]
status: draft
created: YYYY-MM-DD
---
# Clear Note Title
## Summary
Короткое summary или назначение заметки.
## Notes
Основной контент.
## Links
- Related: [[Existing Related Note]]
Используй frontmatter только если это подходит стилю vault. Если соседние заметки не используют frontmatter, не вводи его без необходимости.
Предпочитай workflow через file tools:
read_file.patch для anchored append, когда это возможно.write_file, если переписать всю заметку понятнее и безопаснее, чем строить хрупкий patch.Для простого append без стабильного контекста shell append допустим, но только после проверки точного абсолютного пути и shell quoting.
Если добавляешь dated entries, следуй существующему date format в vault. Если конвенции нет, используй ISO dates: YYYY-MM-DD.
Используй patch для сфокусированных изменений, когда текущий контент даёт стабильный контекст.
Хорошие anchors для patch:
Избегай broad replace-all edits, если пользователь явно не попросил bulk cleanup и ты не проверил, что pattern безопасен.
Obsidian связывает заметки через синтаксис [[Note Name]].
Правила:
[[Example Note]]: они создают unresolved nodes и загрязняют graph.[[Long Canonical Note Title|short label]].Перед массовым добавлением links поищи существующие filenames, чтобы найти canonical note names.
Используй теги сдержанно и последовательно.
Правила:
#project/name, #topic/ai или frontmatter tags: [...].Перемещение или переименование заметок может ломать links в Markdown, embeds, canvases или внешних references. Считай это операцией повышенного риска.
Workflow:
Если vault использует Obsidian automatic link update, не считай, что он сработает при filesystem-only edits. Обновляй links явно, когда нужно.
MOC, maps of content и index notes должны помогать навигации, а не дублировать весь vault.
Хорошая структура MOC:
# Topic MOC
## Core notes
- [[Important Note]] — почему важно
- [[Another Note]] — короткий контекст
## Related areas
- [[Adjacent Topic MOC]]
## Open questions
- ...
Создавай MOC, когда:
Когда пользователь просит собрать или наполнить test/demo vault, где должны быть отдельные, но связанные области знаний:
MOC hub note на папку..obsidian/graph.json с colorGroups по path:<folder> и hideUnresolved: true, сохранив важные пользовательские настройки, если редактируешь реальный vault.Для проверки graph hygiene достаточно маленького Python regex pass по [[...]] links.
Запусти из vault root или передай vault root в маленький скрипт:
import pathlib, re
vault = pathlib.Path("/absolute/path/to/vault")
notes = {p.stem for p in vault.rglob("*.md")}
unresolved = {}
for path in vault.rglob("*.md"):
text = path.read_text(encoding="utf-8", errors="ignore")
for raw in re.findall(r"\[\[([^\]]+)\]\]", text):
target = raw.split("|", 1)[0].split("#", 1)[0].strip()
if target and target not in notes:
unresolved.setdefault(str(path.relative_to(vault)), set()).add(target)
for note, targets in sorted(unresolved.items()):
print(note)
for target in sorted(targets):
print(f" - {target}")
import collections, pathlib
vault = pathlib.Path("/absolute/path/to/vault")
counts = collections.Counter(str(p.relative_to(vault).parent) for p in vault.rglob("*.md"))
for folder, count in sorted(counts.items()):
print(f"{folder}: {count}")
$OBSIDIAN_VAULT_PATH в file tools. Сначала resolve в absolute path.Перед финальным ответом по Obsidian-задаче: