From vault-session
Save the current Claude Code session as a dated log in an Obsidian vault exposed via an MCP filesystem server. Use when the user types /save, says "save this session", "save my progress", "log this", "end of session", or otherwise asks you to persist what was done so a future session can resume it. On first run on a machine, bootstraps by registering the vault MCP server.
How this skill is triggered — by the user, by Claude, or both
Slash command
/vault-session:saveThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Write a session log into the user's Obsidian vault so a future `/resume` can pick up where this session left off.
Write a session log into the user's Obsidian vault so a future /resume can pick up where this session left off.
A network-accessible Obsidian vault exposed via an MCP filesystem server. See the resume skill for the canonical setup. This skill writes to the same MCP server.
Same procedure as the resume skill's bootstrap. Check claude mcp list for a registered vault MCP. If absent or disconnected, prompt for URL / name / transport and run claude mcp add --transport <transport> --scope user <name> <url>. Write the sentinel at ${XDG_CONFIG_HOME:-$HOME/.config}/vault-session/config.json.
If /resume ran earlier in this session and already bootstrapped, the sentinel will be present — skip to Step 2.
Same derivation as resume:
git remote get-url origin → basename without .git.basename $PWD.Call this $PROJECT_KEY.
The log is a single markdown file. Synthesize content from the current conversation:
[[note-name]] syntax so Obsidian's graph picks them up.Do NOT include:
Frontmatter to prepend:
---
title: <one-line summary, sentence case>
project: <PROJECT_KEY>
date: <YYYY-MM-DD>
tags: [session-log, <PROJECT_KEY>]
type: log
---
Format: YYYY-MM-DD-<slug>.md.
YYYY-MM-DD.-. Drop stop words. Example summary "Wired Clerk auth into the web app middleware" → slug clerk-auth-web-middleware.If a log with this exact name already exists for today (same date and slug), append -2, -3, etc. Do NOT overwrite.
Path: <vault-root>/<PROJECT_KEY>/logs/<filename>.
Before writing, ensure the directory exists. Use the MCP's create_directory tool if available; harmless to call when the directory already exists.
Write the file via the MCP's write_file tool. The MCP-namespaced tool name depends on the server name the user registered — typically mcp__<server-name>__write_file.
After writing, confirm by reading the file back and verifying the byte count matches.
If the current working directory is inside a git repository AND has uncommitted changes that match the work described in the log:
One short line: Saved: <vault-relative-path>. That is all. Do not summarize the log content — the user just lived it.
-2, -3, etc.<vault-root>/<PROJECT_KEY>/logs/ during /save.Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub sapoepsilon/pragmatic-skills --plugin vault-session