Skip to content
Back to skills

Session Log

ASecurity

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`.

  • 68 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added May 28, 2026
ai-agentsgobashgit

Security analysis

A100/100

Scanned May 28, 2026

npx -y skills add Filip-Podstavec/claude-leverage --skill session-log --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Session Log?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Session Log
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/filip-podstavec-session-log/badge)](https://www.skillsdirectory.com/skills/filip-podstavec-session-log)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: session-log
description: >
  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`.
allowed-tools:
  - Read
  - Write
  - Edit
  - Glob
  - Bash(git rev-parse:*)
  - Bash(git log:*)
  - Bash(git branch:*)
  - Bash(date:*)
  - Bash(ls:*)
argument-hint: "[topic-one-liner] [--noninteractive]"
---

# /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

1. **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`](../../docs/sessions/README.md)).

2. **Get topic.** If `$ARGUMENTS` has 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`.

3. **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.

4. **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.

5. **Generate the file** using the template
   ([`docs/sessions/template.md`](../../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.

6. **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.

7. **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

- **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).

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.