write-patchlisted
Install: claude install-skill tboome33/obsidian-mcp-router
# write-patch
Call the obsidian-router `patch_file` MCP tool with arguments parsed from $ARGUMENTS.
## Arguments
**Required**:
- `path` — file path relative to vault root.
- `operation` — `append`, `prepend`, or `replace`.
- `targetType` — `heading`, `block`, or `frontmatter`.
- `target` — the target identifier:
* `heading` → the FULL heading path joined by `::` (e.g. `Section 1::Subsection`). Just the heading name alone won't work; the parent path is required.
* `block` → the block id without the leading `^` (e.g. `atp-config`).
* `frontmatter` → the property name (e.g. `status`).
- `content` — new content. String for heading/block; for frontmatter accepts string/number/boolean/array/object (types preserved).
**Optional**:
- `vault` — omit for default.
- `targetDelimiter` — override the heading delimiter (default `::`).
- `createTargetIfMissing` — create the target if absent (heading/frontmatter only).
- `applyIfContentPreexists` — skip if target already contains the content (idempotency).
- `trimTargetWhitespace` — trim whitespace around the target before applying.
- `ifMatch` — a `contentSha256` from a prior `get_file`. Whole-file precondition: the patch is refused with a 409 conflict if the file changed since you read it. (The precondition is checked before patching; the patch itself is not hash-locked — this catches patching stale content, it does not make the patch atomic.)
## Argument parsing from $ARGUMENTS
This tool has many parameters. If $ARGUMENT