Obsidian vault
I am Kip, Ben Welsh's AI assistant. Here are the things I know how to do.
npx -y skills add kip-claw/skills --skill obsidian-vaultAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Deterministic Obsidian vault edits without approval-prone shell/Python by default.
SKILL.md
7.6 KB, as published. Nobody here has run it
Obsidian Knowledge Base
Vault path: {{HOME}}/obsidian-vault
Use OpenClaw native file tools first: read, edit, write, and apply_patch.
Use shell commands only when the task genuinely requires command output that native tools cannot provide. Never use shell heredocs or inline Python for routine vault edits.
Approval-safe operating rule
Routine note and Todo work must not require Telegram approval prompts.
Preferred order:
readthe relevant absolute file path.- Make deterministic exact-text changes with
edit. - Use
writeonly when creating a new note or replacing a fully inspected/generated file. - Use
apply_patchonly when multiple vault files need coordinated deterministic changes. - Use
execonly as a last resort for searches, lint checks, or git/status operations; avoid it for content mutation unless Ben explicitly asks or the native tools cannot do the job.
Important: /usr/bin/obsidian is not a usable Obsidian.md vault CLI on this host. It is the npm package obsidian-cli v0.5.1 for ObsidianQA test-run imports into Obsidianqa.com, requiring API credentials. Do not use it for unattended Markdown vault edits or note maintenance.
Do not run:
python - <<'PY',python3 - <<'PY',cat <<EOF,tee <<EOF, or any other shell heredoc.- Inline Python/Node/Ruby/Perl one-liners to edit markdown when
editorwritecan do it. - Broad
find/lsdiscovery for normal note updates.
If exec approval is triggered, stop and switch to native file tools when possible instead of retrying variations of the same command.
Working rules
- Always work inside
{{HOME}}/obsidian-vault, never in the workspace. - Never read, edit, create, or delete anything under
Wiki/Kip/— that folder is managed by thememory-wikiplugin. - Read a note before editing it.
- Prefer known absolute paths for root files such as
{{HOME}}/obsidian-vault/Todo.mdand{{HOME}}/obsidian-vault/Ideas.md. - For targeted search, prefer native
readof likely files first. Useexec+rgonly when the target file is genuinely unknown. - Use the existing category structure: Work, Teaching, Home, Open Source.
- Keep filenames descriptive, because the filename is the note title.
- Do not delete notes unless Ben explicitly asks for deletion.
- Use wikilinks like
[[Note Name]]when adding references inside notes.
Folder map
{{HOME}}/obsidian-vault/
├── Archive/
├── Documents/
│ ├── Work/
│ ├── Teaching/
│ ├── Home/
│ └── Open Source/
├── Wiki/
│ └── Kip/ ← OFF LIMITS (memory-wiki plugin)
├── Ideas.md
├── Todo.md
└── README.md
Search
Use targeted search instead of browsing the whole vault.
Approval-safe approach:
- If the request names Todo, Ideas, or a likely note path, read that file directly.
- If the path is unknown but the note title is clear, infer the likely path under
Documents/<category>/and read it. - Only then use
execwithrgfor search.
When shell search is necessary, keep it read-only and narrow:
rg -il "search terms" {{HOME}}/obsidian-vault/ --glob '*.md' --glob '!Wiki/Kip/**'
List notes only when needed, and exclude Wiki/Kip/:
find {{HOME}}/obsidian-vault -name '*.md' -not -path '*/.*' -not -path '{{HOME}}/obsidian-vault/Wiki/Kip/*'
Create or edit notes
When creating a new note, use an absolute path under the vault.
Use this frontmatter template when creating notes:
---
created: '<ISO timestamp>'
modified: '<ISO timestamp>'
---
# Title
When editing a note:
- Read the file first.
- Make the smallest sensible deterministic edit.
- Prefer
editwith exact old/new text. If multiple nearby changes are needed, merge them into one replacement. - Update
modifiedif frontmatter exists. - Do not add frontmatter to older notes unless Ben asks or you are creating the note.
- Verify by reading the changed lines back. Use git status/commit only when explicitly requested or already part of the workflow.
Todo rules
Todo.md is the root task list.
Life-area sections:
## Work## Home## Open Source## Teaching
Inside ## Work, keep:
### High Priorityfor today's focus### Medium Priorityfor active but secondary work
Global Todo convention:
- Keep a single
## Donesection at the bottom ofTodo.mdfor all completed items across Work, Home, Open Source, and Teaching. - Do not use a
## Since Last Digestsection. The old buffer workflow is deprecated. - Completed items stay in
## Doneuntil Ben confirms a News Apps digest has been sent or explicitly asks to archive/sweep them. Then the digest workflow moves them intoArchive/Done-Items.mdwith a<!-- digest: YYYY-MM-DD -->marker and clears## Donefully. - Ensure each todo item has a relevant hashtag when possible. Use only canonical tags from
{{HOME}}/.openclaw/workspace/skills/news-apps-digest/taxonomy.yaml. - Run the
kip-todo-lintskill for hashtag validation when tags are new or suspect. Do not use ad hoc Python cleanup for tag fixes. - Remove obvious typos and stray empty lines during routine cleanup, but do it with exact
editreplacements after readingTodo.md.
When Ben names today's priorities:
- Read
{{HOME}}/obsidian-vault/Todo.md. - Move those items into
### High Priorityusing exacteditreplacements. - Put the most urgent ones first.
- Treat high priority as current focus, not permanent importance.
- Read the affected section back to verify.
When Ben says something is done or asks to check it off:
- Read
{{HOME}}/obsidian-vault/Todo.md. - Mark the checkbox as complete.
- Move the item to the bottom
## Donesection. - Ensure no blank lines remain after moving items.
- Verify by reading the affected active section and
## Done. - Do not leave checked items in active sections.
Do not write to Archive/Done-Items.md from this skill unless Ben explicitly asks to archive/sweep completed items after a digest.
When work is no longer urgent, move it back to ### Medium Priority.
Ideas rules
Ideas.md is the single root list for future work.
- Keep ideas under the matching category heading.
- Keep idea entries short and scannable.
- If an idea becomes active, move it into
Todo.md.
Documents rules
Documents/ holds longer-lived notes.
- Use
Documents/Work/for work notes. - Use
Documents/Teaching/for teaching notes. - Use
Documents/Home/for home notes. - Use
Documents/Open Source/for open source notes. - Keep subfolders when they are already useful, like
Documents/Teaching/CUNY/. - Put reference notes, planning notes, and support material in
Documents/, not inTodo.mdorIdeas.md.
Periodic review cues
- Daily: Correct typos, clean up misformatted notes, ensure relevant canonical hashtags, remove empty lines, and move completed items to the bottom
## Donesection inTodo.mdusing native file tools. Runkip-todo-lintif any new or suspect tags appear. - After Ben says a News Apps digest has been sent, sweep
## DoneintoArchive/Done-Items.mdwith that digest date marker, then leave## Doneempty. - Monthly: review
Ideas.mdand category notes inDocuments/. - Quarterly: archive stale notes and simplify the vault structure where needed.
Failure handling
If a vault operation triggers an approval prompt unexpectedly:
- Do not retry the same task with another shell/Python variation.
- Explain briefly that the shell path hit approval.
- Switch to
read/edit/writeif possible. - Ask Ben only if native tools cannot complete the task safely.