executing-plans
executing-plans
Use when executing an implementation plan in the current session as the implementer yourself — your human partner chose inline execution, or no subagent tool is available
obsidianRead, search, create, or edit notes in an authorized Obsidian vault while preserving frontmatter, wikilinks, and unrelated notes.
Independent GitHub snapshot · Automated classification · Original documentation governs
Use this skill for filesystem-first Obsidian vault work: reading notes, listing notes, searching note files, creating notes, appending content, and adding wikilinks.
Use a known or resolved vault path before calling file tools.
The documented vault-path convention is the OBSIDIAN_VAULT_PATH environment variable, for example from ${HERMES_HOME:-~/.hermes}/.env. If it is unset, use ~/Documents/Obsidian Vault.
File tools do not expand shell variables. Do not pass paths containing $OBSIDIAN_VAULT_PATH to read_file, write_file, patch, or search_files; resolve the vault path first and pass a concrete absolute path. Vault paths may contain spaces, which is another reason to prefer file tools over shell commands.
If the vault path is unknown, terminal is acceptable for resolving OBSIDIAN_VAULT_PATH or checking whether the fallback path exists. Once the path is known, switch back to file tools.
Use read_file with the resolved absolute path to the note. Prefer this over cat because it provides line numbers and pagination.
Use search_files with target: "files" and the resolved vault path. Prefer this over find or ls.
pattern: "*.md" under the vault path.Use search_files for both filename and content searches. Prefer this over grep, find, or ls.
search_files with target: "files" and a filename pattern.search_files with target: "content", the content regex as pattern, and file_glob: "*.md" when you want to restrict matches to markdown notes.Use write_file with the resolved absolute path and the full markdown content. Prefer this over shell heredocs or echo because it avoids shell quoting issues and returns structured results.
Prefer a native file-tool workflow when it is not awkward:
read_file.patch for an anchored append when there is stable context, such as adding a section after an existing heading or appending before a known trailing block.write_file when rewriting the whole note is clearer than constructing a fragile patch.For an anchored append with patch, replace the anchor with the anchor plus the new content.
For a simple append with no stable context, terminal is acceptable if it is the clearest safe option.
Use patch for focused note changes when the current content gives you stable context. Prefer this over shell text rewriting.
Obsidian links notes with [[Note Name]] syntax. When creating notes, use these to link related content.
This supplement is maintained by the repository sync pipeline. It keeps the imported upstream skill usable inside this curated collection when the upstream source is intentionally concise.
1. Confirm that the user's task matches the skill trigger.
2. Read the relevant project files or user-provided context before acting.
3. Choose the smallest reversible action that advances the task.
4. Run the verification command or manual check that proves the result.
5. Report the outcome, evidence, and any remaining risk.
The tool names above describe the upstream Hermes surface. On another client,
discover its actual file-read, search, and patch capabilities before constructing
arguments. Do not invent read_file or search_files tools if they are absent.
The fallback vault path is a discovery hint, not permission to create a vault or
modify whichever directory happens to exist.
Resolve the requested vault to an absolute path and confirm the target note stays inside it after resolving symlinks. If more than one vault matches, ask the user which one owns the task. Avoid reading the whole environment or secret-bearing configuration merely to locate a path; inspect only the necessary setting.
1. Identify the vault and one target note by full path.
2. Read the note and preserve its frontmatter, line endings and trailing content.
3. Locate a unique heading or paragraph that anchors the requested change.
4. Re-read before writing if another application may have edited the note.
5. Apply only the authorized change with the client's supported patch operation.
6. Read the resulting note and compare the exact before/after diff.
7. Report the edited path, changed section and unresolved link ambiguities.
Do not rebuild an entire note from an earlier summary. A missing or non-unique anchor means re-read and refine the patch, not overwrite the file. For a new note, check that the intended path does not already exist; preserve the existing file and choose a non-conflicting name only with the user's agreement.
Retain YAML frontmatter, tags, aliases, code fences, attachment references, and
existing [[note#heading|label]] links unless the request specifically changes
them. A note rename may require inbound-link updates across the vault; inventory
those links first and obtain scope for the wider edit instead of assuming a
filesystem rename updates them. Duplicate note titles need path-aware resolution.
.obsidian configuration, plugins, attachments and sync state remain untouched.