filip-podstavec/claude-leverage/session-log
Claude Code and agent skill by filip-podstavec/claude-leverage
- community
Checking that the SKILL.md file is still in the repository.
USE WHEN ending a substantial working session — user says "thanks/tomorrow/wrap up", or session shipped 3+ commits with no log today, or user asks for a summary. Distills the conversation into `docs/sessions/YYYY-MM-DD-<topic>.md` (context, what was done, key decisions, open questions, next steps). Hard cap ~80 lines. Distillate, NOT transcript. See `docs/sessions/README.md`.
Install
npx vskill@latest install filip-podstavec/claude-leverage/session-logSKILL.md
/session-log
What it does
At the end of a working session, writes a short distilled summary to docs/sessions/YYYY-MM-DD-<topic>.md following the standard template (context, what was done, key decisions, open questions, next steps, references). The next agent — yours tomorrow, or a different agent in a month — reads it to pick up the thread without re-discovering everything cold.
This is not a transcript dump. Raw chat is noise the next agent can't usefully consume. A session log is the distillate: 30–80 lines that compress a multi-hour conversation into actionable continuity.
Workflow
- Find target dir. Default
docs/sessions/from the current repo
root (via git rev-parse --show-toplevel). If it doesn't exist, ask "create it now?" — if yes, create with a stub README.md describing the convention (mirror the one shipped with this plugin at `docs/sessions/README.md`).
- Get topic. If
$ARGUMENTShas a positional, use it. Otherwise
ask: "what was this session about, in one line?" Convert to kebab-case for the filename: 2026-05-24-pivot-cleanup.md.
- Compute filename.
YYYY-MM-DD-<kebab-topic>.md. If a file with
the same name exists (multiple sessions on the same topic same day), suffix with -2, -3, etc.
- Gather facts from git and the conversation:
- Current branch:
git rev-parse --abbrev-ref HEAD. - Recent commits this session:
git log --oneline -10. Use the
first commit hash after the previous session's HEAD if you can infer it, otherwise show the last 5–10 with the human confirming which ones belong.
- Conversation summary: distill from the actual chat above (you,
the model, have access). Categorize into:
- What was done — concrete actions: code shipped, decisions
recorded, files moved, skills added. Bullet list.
- Key decisions — non-obvious calls made in conversation.
Link to ADRs if applicable (suggest /adr-new for any decision likely to be re-litigated).
- Open questions — anything deferred or unresolved.
- Next steps — what should happen first in the next session.
- Generate the file using the template
(`docs/sessions/template.md`). Substitute:
- Topic, date, branch, participants (you + model name).
- Each section filled from step 4. Use
<TODO>for anything you
genuinely can't infer; better an honest gap than a fabrication.
- Confidentiality pass. This file gets committed and pushed —
sometimes to a public repo. Before writing, scrub anything that shouldn't ship: secrets, credentials, client names, internal business reasoning, security details. Keep the decision, drop the sensitive specific ("chose vendor X for pricing reasons" → "chose the payments vendor; rationale in the private tracker"). See the Hard rule below.
- Hard cap on length. If your draft is over 80 lines, reduce. Cut
the "what was done" bullets to the load-bearing 5–8. Move tactical detail into commit messages, ADRs, or specs. The session log is pointers + decisions + next-actions, not a play-by-play.
- Report. Print the file path and one line:
> "Next session: start by reading docs/sessions/<filename> plus > the last 1–2 prior session logs."
Hard rules
- Logs are committed — write for a public reader.
docs/sessions/is
a tracked, durable artifact that gets pushed, sometimes to a public repo. Never put secrets, credentials, client names, internal business reasoning, or security details in a log. The block-secrets-precommit hook catches key-shaped secrets at commit time, but it cannot catch confidential prose — that judgment is yours. Distill the sensitive specifics out: write "the client" not the name; reference a private ticket by ID rather than pasting its content. Gitignore docs/sessions/ only as a last resort in a fully public repo where even the distilled narrative shouldn't ship (you lose cross-agent continuity if you do).
- Distillate, not transcript. If the user asks "include the full
conversation," push back. The full conversation is in Claude Code's session history; the journal is for future-agent consumption.
- No fabrication. If you don't know what "was done" because the
conversation was mostly planning, write that explicitly: "Session was planning-only — no code shipped. Plan landed in `docs/specs/<file>`."
- Link, don't duplicate. ADRs, specs, commits get linked by
number/hash — never copied into the session log body.
- Pre-existing session logs are immutable. If you're amending,
write a new dated file (-2, -3 suffix) rather than editing.
Tunables
--noninteractive— skip prompts; requires a topic positional.
Pulls everything else from git + the visible conversation context.
--dry-run— print the generated content to stdout, write nothing.
When to invoke
- End of a substantial working session. Substantial = anything
that shipped a commit chain or made a load-bearing decision.
- NOT after a quick one-shot fix. A 5-minute typo fix doesn't
need a journal entry; the commit message is enough.
- NOT after a pure-exploration session. If you didn't decide
anything and didn't ship anything, there's no continuity to preserve.
A useful rule of thumb: would the next agent benefit from knowing where this session left off? If yes, write the log. If no, skip.
Pairs with
- `/adr-new` — when a session produces a load-bearing decision,
record it as an ADR in addition to the session log. The session log is "what happened this session"; the ADR is "the durable reason for the choice."
- AIDEV-TODO anchors with deadlines — for "next steps" items that
bind to specific code paths, anchor them in code with AIDEV-TODO(by: YYYY-MM-DD): and reference from the session log.
What this skill does NOT do
- Doesn't read the future. The "next steps" section is what you
think should happen, distilled from the conversation. The model doesn't predict.
- Doesn't replace commit messages, ADRs, or specs. Each layer
serves a different purpose:
- Commit message: per-commit what.
- ADR: per-decision why (immutable).
- Spec: per-feature plan (lives through implementation).
- Session log: per-working-period narrative (continuity).
Security
- Security scanPassed, 90 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/session-log/SKILL.md
Popularity
- Repository stars
- 64
- Repository forks
- 2
- 7-day trend score
- 21
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/filip-podstavec/claude-leverage/session-log)