From claude-rudder
Write a comprehensive point-in-time session log into `<repo>/planning/session-logs/YYYY-MM/YYYY-MM-DD-<slug>.md` for archival rather than immediate continuation. Captures everything achieved, the current overall state, decisions, surprises, and follow-ups for the distant future. Use when the user says "log this session", "wrap up with a record", "write today's session out", "record what we did", "we may not come back to this for a while — capture it", "session log", or otherwise signals they want a journal entry rather than a handover.
npx claudepluginhub danielrosehill/claude-code-plugins --plugin claude-rudderThis skill uses the workspace's default tool permissions.
A point-in-time archival record of a working session. Distinct from `handover` and `context-gate` — those are for **immediate continuation** ("next session picks this up soon"). This skill is for **eventual return** ("I might not be back to this for weeks; capture everything").
Mandates invoking relevant skills via tools before any response in coding sessions. Covers access, priorities, and adaptations for Claude Code, Copilot CLI, Gemini CLI.
Share bugs, ideas, or general feedback.
A point-in-time archival record of a working session. Distinct from handover and context-gate — those are for immediate continuation ("next session picks this up soon"). This skill is for eventual return ("I might not be back to this for weeks; capture everything").
| You're about to... | Use |
|---|---|
| Start a fresh Claude session in the next few hours/days to continue | context-gate / handover / handover-with-tasks |
| Step away from this work and may not revisit for weeks/months | log-session |
| Wrap up a milestone that's "done for now" — proud of progress, no immediate next step | log-session |
| Park work indefinitely but want a complete record | log-session |
If the user is uncertain ("I'm not sure when I'll come back"), default to log-session — it's a superset of a handover (more context, written for the cold reader). They can layer on context-gate if a near-term session is also expected.
<repo-root>/planning/session-logs/YYYY-MM/YYYY-MM-DD-<slug>.md
2026-04/) for navigability — sessions group naturally by monthls reads chronologically<slug> is a short kebab-case summary of the session (e.g. loose-skills-migration, auth-refactor, viz-dashboard-prototype)If the user is outside a git repo, ask where to save. Default offer:
${CLAUDE_USER_DATA:-${XDG_DATA_HOME:-$HOME/.local/share}/claude-plugins}/claude-rudder/session-logs/YYYY-MM/YYYY-MM-DD-<slug>.md
If <repo-root>/planning/ is missing, run scaffold-planning first (silently).
Use the canonical structure below. Frontmatter is YAML; body is markdown.
---
schema: claude-rudder/session-log/v1
session_started_at: <ISO-8601 with timezone, if known — else null>
session_ended_at: <ISO-8601 with timezone — when this log was written>
agent_model: <e.g. claude-opus-4-7>
agent_harness: claude-code
repo: <absolute path>
branch: <branch name at session end>
final_commit: <short sha at session end>
followups_count: <count of items written to leftover-tasks.md during this session, or 0>
followups_file: planning/leftover-tasks.md # only if followups_count > 0
related_handover: planning/handovers/handover-<ts>.md # only if a handover was also written
slug: <slug used in filename>
title: <human-readable title>
---
# Session Log — <YYYY-MM-DD> — <Title>
## TL;DR
<2–3 sentences. What was the session about, what was achieved, where it ended. Written for someone reading this 6 months from now with no other context.>
## What we did today
<Chronological-ish list of accomplishments. Be specific — include file paths, commit hashes, plugin names, version bumps. This is the meat of the record.>
- <bullet — completed work item with concrete reference>
- <bullet — another, with file path or sha>
- <...>
## Where we got to overall
<Not just "today's work" but the broader state of the project / initiative / migration. The reader needs to understand the cumulative position, not just incremental progress. Multiple paragraphs is fine.>
## What's left for the future
<Tasks deferred to later, with enough context to pick up cold. If items were already captured in `leftover-tasks.md`, summarise them here AND link.>
- <task — with brief why-it-matters and enough context to start cold>
- <task — same>
If anything urgent must happen before resuming this work (decisions, external dependencies, prerequisite changes), surface it here.
## Decisions and rationale
<Key choices made during the session. Explain why one path over another — the cold reader needs to understand the reasoning, not just the outcome. Include rejected options.>
- **<decision>:** <why we chose it / what we rejected>
- <...>
## What we learned / surprises
<Things worth remembering even if we never come back. Gotchas, dead ends, "this thing turns out to work differently than expected", references that were unexpectedly useful.>
## Pointers
- **Repo:** <absolute path>
- **Branch:** <name>
- **Last commit:** <sha + first line of message>
- **Files touched this session:** <list, condensed if long>
- **External references:** <links, docs consulted, related issues>
- **Related session logs:** <link any prior logs in this thread, by relative path>
## (Optional) Resume guidance
<Only include if there's a non-obvious starting point for resuming. e.g., "Start by re-reading `migration-plan-v2.md`; the next batch is the new public mgmt plugins." Skip this section if the leftover tasks are self-explanatory.>
Before writing, ask the user:
Title for this log? (a short phrase — I'll slugify for the filename)
If they're terse or want you to pick, propose one based on session content and confirm.
repo_root=$(git rev-parse --show-toplevel 2>/dev/null) || repo_root="$PWD"
date_part=$(date +%Y-%m-%d)
month_part=$(date +%Y-%m)
slug=<from-user-or-inferred>
target="$repo_root/planning/session-logs/$month_part/$date_part-$slug.md"
mkdir -p "$(dirname "$target")"
If <repo-root>/planning/ is absent, run scaffold-planning first.
If target already exists (rare — same date, same slug), append a numeric suffix: -2, -3, etc.
Reconstruct from conversation memory:
planning/leftover-tasks.md during this session if any. The frontmatter records the count and the file linkage.Write the full document. Use the user's preferred date format if you've recorded one (Daniel's is DD/MM/YY in display, but filename uses ISO YYYY-MM-DD for sortability).
After writing, ask once:
Want to also write a handover (
context-gate) in case you do come back to this in the next few days?
context-gate, then update this log's frontmatter related_handover to point at the handover file.Print:
✓ Session logged: <relative path from repo root>
Title: <title>
Achievements: <count>
Followups captured: <count>
Decisions: <count>
<if related handover: "Paired handover: <path>">
| Aspect | handover | log-session |
|---|---|---|
| Audience | Next session, days away max | Future-self, weeks-to-months out |
| Length | Tight — Outstanding section is the focus | Comprehensive — full record is the point |
Done section | Cumulative work in current session | Same, but also "Where we got to overall" frames the broader state |
Outstanding | Active work to resume | "What's left for the future" — colder, more contextual |
Decisions | Briefly mentioned | Explained with rationale and rejected options |
| Filename | handover-<timestamp>.md | <date>-<slug>.md (date-first for chronological browsing) |
| Folder | planning/handovers/ | planning/session-logs/<YYYY-MM>/ |
handover / handover-with-tasks / context-gate — for immediate-continuation usescaffold-planning — creates planning/session-logs/capture-leftover — fine-grained mid-session capture; this skill rolls up the cumulative sessionreferences/handover-template.md — companion format spec for handovers (this skill has its own structure above; same claude-rudder/<type>/v<n> schema convention)