Automated summary
Summarizes the current agent session, writes a structured Obsidian note about it, and links that note from today's daily note.
Strengths
- Enforces a note template with YAML frontmatter (date, project, harness, agent-session tag) so every entry stays consistent
- Captures reasoning, not just output: decisions, trade-offs, and rejected alternatives
- Requires a complete file-change list of everything created, modified, or deleted, plus a section for deferred work
- Uses the obsidian CLI to locate the vault and append the link to the daily note without manual file handling
Limitations
- Requires the obsidian CLI to be installed and a vault to be configured; otherwise no writing step works
- The documented multi-byte CLI bug forbids emoji and non-ASCII characters in titles and content
- Manual invocation only (disable-model-invocation), so the agent will never trigger it on its own
- Summary fidelity is bounded by what actually appears in the conversation history
At the end of a work session, when you want a durable archived record of what was accomplished inside your Obsidian vault.
If you don't use Obsidian, or you need a shared team log or a journal updated continuously during the session.
Security analysis
CautionThe skill is benign in intent: it reads the session, writes a markdown note, and appends a link to today's daily note. Risk comes from the mechanics rather than malice — it shells out via Bash, writes outside the project tree into a synced vault, and passes model-generated text into a shell command with only double-quote escaping guidance. Worth a caution label and a note about avoiding secrets in summaries, but nothing here is destructive or exfiltrating.
- •Uses Bash to run the `obsidian` CLI and writes/creates files inside the user's Obsidian vault — filesystem writes outside the current project directory, which is a side effect the user may not expect from a 'summarize' skill.
- •Persists an entire session's conversation content (summaries, decisions, code snippets, file lists) into a vault that is often iCloud/Dropbox/git-synced — real risk of writing secrets, tokens, or internal paths mentioned earlier in the session into a synced location.
- •Constructs shell commands by interpolating generated note titles/content (`obsidian daily:append content="- [[...]]"`). Only escaping of double quotes is specified; `$`, backticks, `!`, and other shell metacharacters in a model-generated title could break or inject into the command.
- •No destructive, exfiltration, or obfuscated operations; no network calls beyond the local Obsidian CLI; scope is limited to note creation and daily-note append.
Examples
/done/done We refactored the auth middleware and fixed the token refresh bug — note that the staging deploy is still pending./done Capture the whole RabbitMQ retry investigation, including the two approaches we rejected.name: done description: Summarize the current agent session, create an Obsidian note for it, and link it from today's daily note. Use when the user is finished with a session and wants to log what was accomplished. disable-model-invocation: true allowed-tools: Bash argument-hint: [optional extra context]
Summarize this Claude Code session, create a dedicated session note in Obsidian, and link it from today's daily note.
Instructions
- Review the full conversation history for this session.
- Come up with a short summary title (2-6 words, no date) describing the overall theme.
- Write a detailed session note in markdown. The note MUST begin with YAML frontmatter and then use the sections described below. Skip any sections that don't make sense. The only non-negotiable is the frontmatter, which must always be present. Use this template:
---
created: YYYY-MM-DD
project: <working directory name or repo name>
harness: <who you are ('claude-code', or 'codex', or 'pi', etc)>
tags:
- note/agent-session
---
# <summary title>
## Summary
<1-3 sentence overview of the session>
## What was done
- <bullet list of key actions, changes, and outcomes>
## Decisions made
- <bullet list of decisions and the reasoning behind them>
- <include trade-offs considered, alternatives rejected, and why>
## Relevant code snippets
<relevant new commands that were created, code snippets that were mentioned, etc>
## File changes
- `path/to/file` -- <what changed and why>
- <list every file that was created, modified, or deleted>
## Deferred / Postponed
- <anything discussed but intentionally left for later>
- <known issues discovered but not addressed>
- <if nothing was deferred, write "None">
## Notes
- <any additional context, gotchas, or follow-up items>
- <if $ARGUMENTS was provided, incorporate that context here or in the relevant section above>
Be thorough -- err on the side of detail. The goal is a complete record of the session.
4. Get today's date in YYYY-MM-DD format and construct the note path:
Reference/Agent Sessions/YYYY-MM-DD <summary title>
5. Find the full path to the Obsidian vault by running obsidian vault - the path will be listed.
5. Create the session note file at <path>/Reference/Agent Sessions/YYYY-MM-DD <summary title>.md
6. Append a link to the session note in today's daily note by running:
obsidian daily:append content="- [[YYYY-MM-DD <summary title>]]" silent
Formatting rules
- Frontmatter is required -- every note must start with the YAML frontmatter block
- Always include the
agent-sessiontag - Be detailed and verbose in the body -- capture the full picture of the session
- Use plain markdown (no HTML)
- Escape any double quotes in the content so the shell command works
- Focus on outcomes but include reasoning and context behind decisions
- List every file changed, not just the "key" ones
- The daily note entry should be just a link:
- [[YYYY-MM-DD <summary title>]] - For the harness frontmatter property, choose one of 'claude-code', 'codex', 'pi', etc.
Known issues
- Obsidian CLI multi-byte character bug: The
obsidianCLI fails to create notes when the content or path contains multi-byte characters (e.g., emoji, non-ASCII Unicode). Avoid using emoji or non-ASCII characters in note titles and content. Stick to plain ASCII text.
From the file to a first result
The download contains exactly the content displayed on this page. This copy may differ from the latest version in the source repository.
View the source and supporting filesThis download contains SKILL.md only. Any scripts, references, templates and dependencies are not included. Get the required files from the source, preserving their directory structure, before continuing.
1. Download the file
Download SKILL.mdFrom the root of a test project, save the file as .skill-downloads/log-session-to-obsidian-mrx3xy0j/SKILL.md, or use the command below. This folder is for inspecting the skill before installation.
Command for macOS/Linux or WSL: requires a POSIX shell and curl. On Windows without WSL, use the download button and create the folder manually.
mkdir -p '.skill-downloads/log-session-to-obsidian-mrx3xy0j' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/log-session-to-obsidian-mrx3xy0j/download' --output '.skill-downloads/log-session-to-obsidian-mrx3xy0j/SKILL.md.part' && mv '.skill-downloads/log-session-to-obsidian-mrx3xy0j/SKILL.md.part' '.skill-downloads/log-session-to-obsidian-mrx3xy0j/SKILL.md'2. Check prerequisites
Read SKILL.md before using it. If it references scripts or external services, inspect them and prepare the required access in your test environment.
Tools declared by the author (check availability in your agent): Bash
No recognized prerequisites section in this file. This does not mean it is self-contained: libraries, tools and access requirements may be mentioned elsewhere in the content or source repository.
The platforms on this page are catalog indications. The paths below follow tool documentation; they do not prove this skill has been run in those tools. No minimum tool version is confirmed for this listing.
3. Load the skill
After inspection, copy the complete folder into your project using one of the commands below, then open a new tool session. The command stops if a folder with the same name already exists: compare the files before replacing it.
Claude Code
test -f '.skill-downloads/log-session-to-obsidian-mrx3xy0j/SKILL.md' && test -s '.skill-downloads/log-session-to-obsidian-mrx3xy0j/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/done' && cp -R '.skill-downloads/log-session-to-obsidian-mrx3xy0j' '.claude/skills/done'Codex
test -f '.skill-downloads/log-session-to-obsidian-mrx3xy0j/SKILL.md' && test -s '.skill-downloads/log-session-to-obsidian-mrx3xy0j/SKILL.md' && mkdir -p '.agents/skills' && test ! -e '.agents/skills/done' && cp -R '.skill-downloads/log-session-to-obsidian-mrx3xy0j' '.agents/skills/done'OpenSkills
OpenSkills must already be installed. The local install/read procedure is checked with OpenSkills 1.5.0, which requires Node.js ≥ 20.6.0. Catalog slugs are not resolved automatically.
Official OpenSkills installationopenskills install './.skill-downloads/log-session-to-obsidian-mrx3xy0j'openskills read 'log-session-to-obsidian-mrx3xy0j'Reading should display the installed file content and its base directory. It does not run the skill or install its dependencies.
For an agent that reads AGENTS.md, then sync the index. This command changes AGENTS.md: review the diff before using it.
openskills syncManual method or another tool: attach SKILL.md to a conversation, or open it in an agent that can read files. Include any required supporting resources. No universal folder is recognized by every tool.
4. Try a first task
Use a short, synthetic input: an API endpoint, a small document or an interface brief. In a new conversation, attach the file or give the agent its path, then adapt this request:
Read .skill-downloads/log-session-to-obsidian-mrx3xy0j/SKILL.md and apply its instructions to this example: [describe a test input]. Identify any missing files, dependencies or access. Produce the result requested by the skill without inventing data or running unreviewed scripts.Expected result: output matching the skill instructions, or a precise list of missing prerequisites. A read confirmation alone does not validate a first use. If an external resource is unavailable, that path remains untested.
PDF Reader
Productivity
Read and extract text from PDF files, including documents, reports, contracts, and spreadsheets. Works with local files, URLs, and WhatsApp attachments. Use whenever PDF content is needed, even if not explicitly requested.
Discord Messaging Workflows
Productivity
Use the message tool to send, edit, and moderate Discord messages with interactive components.
Interactive Verdict Preview
Productivity
Generate an interactive HTML preview of keep/drop verdicts for maintainer review, then process the pasted feedback JSON.