
retrospective
Interactive post-session retrospective that captures learnings, updates skills, and saves memories. Use when the user says "/retrospective", "let's do a retro", "what did we learn", "session review", "retro", or "wrap up". Also use at the end of long productive sessions when significant patterns or corrections emerged. Supports multi-session mode — by default processes all of today's sessions across projects.
- Installs
- 130
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/glebis/claude-skills --skill retrospective- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads retrospective automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Retrospective
Interactive post-session retro. Scans sessions, asks focused questions, proposes concrete actions the user approves in one step.
Modes
Single-session mode (default when inside a substantial conversation)
Scans the current conversation only. This is the original behavior.
Multi-session mode (default when invoked with no args, or with "today", or with a date)
Scans all sessions from a given day (default: today) across all projects. Extracts user corrections, skill failures, and patterns from JSONL transcripts.
Trigger: /retrospective at the start of a fresh session, or /retrospective today, or /retrospective 2026-05-24.
Multi-Session Discovery
Step 0 — Discover sessions
# Find today's sessions (default)
find ~/.claude/projects -maxdepth 2 -name "*.jsonl" -not -path "*/subagents/*" -mtime 0
# Or for a specific date, filter by file modification date
find ~/.claude/projects -maxdepth 2 -name "*.jsonl" -not -path "*/subagents/*" -newermt "YYYY-MM-DD" ! -newermt "YYYY-MM-DD + 1 day"
For each JSONL file found, extract a summary:
- Parse the project name from the path (the directory name after
projects/, decoded from the path-encoding) - Extract
userandassistantmessages (typeuserandassistant) - For user messages:
message.content(may be string or array of{type: "text", text: "..."}) - For assistant messages: collect text blocks from
message.contentarray wheretype == "text" - Build a condensed transcript: first 10 user messages + last 5 user messages (to capture corrections at the end)
- Skip sessions with fewer than 3 user messages (too short to have learnings)
Step 0b — Present session list
Show the user what was found:
Found N sessions today:
- project-name-1 (session-id[:8]) — "first user message preview..."
- project-name-2 (session-id[:8]) — "first user message preview..."
Then continue to Step 1a with the combined findings from all sessions. Each candidate action should note which session it came from (project name + short ID).
Single-Session Process
Step 0 — Gate Check (silent)
Scan the conversation and estimate session depth. Look for tool calls (Read, Edit, Write, Bash, Skill invocations), errors encountered, and back-and-forth exchanges. Don't try to count exactly — judge by feel:
- Short session (a quick question and answer, ~1-2 tasks) → Fast mode (Step 1b)
- Substantial session (multiple tasks, skill usage, errors, corrections) → Full mode (Step 1a)
Step 1a — Full Mode
Silently scan the conversation and collect:
- Skills invoked — which succeeded, which failed, workarounds applied
- User corrections — explicit "no, do it this way" moments (highest signal)
- Repeated patterns — same error hit multiple times, same workaround applied
- Cross-skill workflows — 3+ skills chained in sequence
Then read existing state:
- Find the current project's memory directory:
glob ~/.claude/projects/*/memory/MEMORY.mdand read it plus relevant memory files - Read skill files for any skills that were invoked (
~/.claude/skills/{name}/skill.md) - Check if Linear CLI exists:
test -f ~/.claude/skills/linear/scripts/linear && echo "configured" || echo "not configured"
Generate up to 5 candidate actions, ranked by signal strength:
- User corrections (highest priority)
- Failed/workarounded skills
- Repeated patterns
- Error patterns
- Workflow patterns (lowest)
Dedup rules:
- If a candidate's content overlaps with an existing memory file → drop it
- If a skill update candidate overlaps with existing skill file content → drop it
- If Linear is not configured → omit any Linear task candidates
Present everything in a single AskUserQuestion call (up to 4 questions):
| # | Question | Type |
|---|---|---|
| 1 | "Quick session check?" | Single select: Productive / Mixed / Rough / Skip retro |
| 2 | "What felt slow or broken?" | Free text via Other (optional) |
| 3 | "Anything to carry forward as a rule?" | Free text via Other (optional) |
| 4 | "Which of these should I save?" | Multi-select: generated candidates with descriptions. Always include a "Nothing / skip all" option. |
If Q1 = "Skip retro" → exit immediately.
If Q1 = "Rough" and Q2/Q3 are empty → exit with "Nothing to save — session closed." Don't add another question after the user already signaled they're done.
Step 1b — Fast Mode
Single AskUserQuestion call with one question:
- "Anything worth remembering from this session?" with options:
- "Nothing, we're done" (default)
- Other (free text)
If "Nothing" → exit. If free text → save as memory, exit.
Step 2 — Execute (silent, no re-confirmation)
For each approved item from Q4 (plus any insights from Q2/Q3 free text):
- Read the target file before writing
- Check for conflicts/duplicates against current content
- Write the change if clean
- Skip with warning if conflict detected
Action types and their targets:
| Type | Target | Tool |
|---|---|---|
| Skill update | ~/.claude/skills/{name}/skill.md | Edit |
| Memory (feedback) | Current project's memory/feedback_*.md + MEMORY.md | Write |
| Memory (project) | Current project's memory/project_*.md + MEMORY.md | Write |
| CLAUDE.md rule | ~/.claude/CLAUDE.md or project CLAUDE.md | Edit |
| Linear task | ~/.claude/skills/linear/scripts/linear issue create --title "..." --description "..." | Bash |
Step 3 — Summary (brief)
One-line per action taken:
Updated telegram skill — added chat type mismatch note
Saved memory — Qwen /api/chat not /api/generate
Skipped: pdf-generation update (already documented)
Done. No trailing commentary.
JSONL Transcript Format
Session transcripts are stored as JSONL files at ~/.claude/projects/{project-path}/{session-id}.jsonl.
Each line is a JSON object with a type field. Relevant types:
user— user message. Content atmessage.content(string or array of{type: "text", text: "..."})assistant— Claude's response. Content atmessage.content(array of content blocks; extract wheretype == "text")ai-title— auto-generated session title
To extract a readable transcript from a JSONL file, use a Python one-liner or read the file and filter for user/assistant types.
Project name decoding: The directory name uses the absolute path with slashes replaced by dashes, e.g., -Users-glebkalinin-ai-projects-foo → ~/ai_projects/foo.
Mode Selection Logic
When /retrospective is invoked:
- If the current conversation has 10+ user messages → single-session mode (retro this conversation)
- If the current conversation is short (just the
/retrospectiveinvocation) → multi-session mode (scan today's sessions) - If args contain a date (e.g., "today", "yesterday", "2026-05-24") → multi-session mode for that date
- If args contain "all" → multi-session mode for today
Candidate Description Format
Each candidate in Q4 must have a description showing the exact proposed content, not just a title. The user judges candidates by reading descriptions, not by opening files.
Good: "Add to telegram skill: get_chat_type() misclassifies private chats as channels — use Telethon client.send_message() directly for DMs"
Bad: "Update telegram skill with DM fix"
What This Skill Does NOT Do
This skill only captures session learnings. It does not review code quality, analyze PRs, create documentation, or run tests. For those, use the appropriate dedicated skills.
Rules
- Never write learnings into this skill file itself — distribute to relevant skills or memory
- Cap candidates at 5 even if more findings exist
- User corrections always rank above tool failures
- The multi-select in Step 1a IS the approval — do not ask again per action
- If the session used no skills, only offer memory and CLAUDE.md candidates
- Keep the entire interaction to 2 moments: one question call, then silent execution
Tools
- AskUserQuestion: Interactive questions (1-4 per call, single/multi select)
- Read: Check existing memory and skill files before proposing changes
- Edit: Update existing skill files and CLAUDE.md
- Write: Create new memory files
- Bash: Linear task creation, skill directory listing
- Glob: Find skill and memory files
Testing
Engine logic is tested in retro_engine.py with 9 scenario fixtures and 30 pytest tests.
Run: cd ~/.claude/skills/retrospective && python3 -m pytest test_retro_engine.py -v
FAQ
What does the retrospective skill do?
Interactive post-session retrospective that captures learnings, updates skills, and saves memories. Use when the user says "/retrospective", "let's do a retro", "what did we learn", "session review", "retro", or "wrap up". Also use at the end of long productive sessions when significant patterns or corrections emerged. Supports multi-session mode — by default processes all of today's sessions across projects.
How do I install retrospective?
Run npx skills add https://github.com/glebis/claude-skills --skill retrospective in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/retrospective/ (personal) or .claude/skills/retrospective/ (project).
Which AI agents can use retrospective?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is retrospective safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains retrospective?
It is published by glebis in glebis/claude-skills. It has 130 recorded installs.
More from glebis/claude-skills
google-image-search
glebis/claude-skills
Search and download images via Google Custom Search API with LLM-powered selection. This skill should be used when finding images for articles, presentations, research documents, or enriching Obsidian notes with relevant visuals. Supports simple queries, batch processing from JSON config, automatic config generation from terms, and full note enrichment with automatic image insertion below headings.
pdf-generation
glebis/claude-skills
Professional PDF generation from markdown using Pandoc with Eisvogel template and EB Garamond fonts. Use when converting markdown to PDF, creating white papers, research documents, marketing materials, or technical documentation. Supports both English and Russian documents with professional typography and color-coded themes. Mobile-optimized layout (6x9) by default for Telegram bot context, desktop/print layout (A4) for other contexts.
health-data
glebis/claude-skills
Open the skill to read its SKILL.md instructions.
firecrawl-research
glebis/claude-skills
This skill should be used when the user requests to research topics using FireCrawl, enrich notes with web sources, search and scrape information, or write scientific/academic papers. It extracts research topics from markdown files, creates research documents with scraped sources, generates BibTeX bibliographies from research results, and provides Pandoc/MyST templates for academic writing with citation management.
deep-research
glebis/claude-skills
This skill should be used when conducting comprehensive research on any topic using the OpenAI Deep Research API. It automates prompt enhancement through interactive clarifying questions, saves research parameters, and executes deep research with web search capabilities. Use when the user asks for in-depth analysis, investigation, research summaries, or topic exploration.
presentation-generator
glebis/claude-skills
Generate interactive HTML presentations with neobrutalism styling, ASCII art decorations, and Agency brand colors. Outputs HTML (interactive with navigation), PNG (individual slides via Playwright), and PDF. References brand-agency skill for colors and typography. Use when creating presentations, slide decks, pitch materials, or visual summaries.
Popular code quality & workflow skills
grill-me
mattpocock/skills
A relentless interview to sharpen a plan or design.
improve-codebase-architecture
mattpocock/skills
Scan a codebase for deepening opportunities, present them as a visual HTML report, then grill through whichever one you pick.
handoff
mattpocock/skills
Compact the current conversation into a handoff document for another agent to pick up.
domain-modeling
mattpocock/skills
Build and sharpen a project's domain model. Use when discussing codebase terminology, writing or editing a GLOSSARY.md, or recording or editing an ADR.
codebase-design
mattpocock/skills
Shared vocabulary for designing deep modules. Use when the user wants to design or improve a module's interface, find deepening opportunities, decide where a seam goes, make code more testable or AI-navigable, or when another skill needs the deep-module vocabulary.
diagnosing-bugs
mattpocock/skills
Diagnosis loop for hard bugs and performance regressions. Use when the user says "diagnose"/"debug this", or reports something broken/throwing/failing/slow.