Claude Done
English | 中文
Your sessions with Claude Code are full of decisions, discoveries, and context that vanish the moment you close the terminal. Claude Done fixes that.
Two skills. One saves. One recalls. That's it.
How It Works
/done — Saves a structured summary of your current session to ~/.claude-done/
/recall — Searches and browses your past session summaries
Summaries are plain Markdown files with consistent naming and structure. Over time, you build a searchable knowledge base of everything you've worked on — decisions made, alternatives rejected, problems solved, and what's next.
Optionally, summaries can be auto-synced to Notion as child pages — zero dependencies, powered by a bundled Python script using only the standard library.
Installation
Claude Code (via Plugin Marketplace)
In Claude Code, register the marketplace first:
/plugin marketplace add Genuifx/claude-done
Then install the plugin from this marketplace:
/plugin install claude-done@done
Codex
curl -fsSL https://raw.githubusercontent.com/Genuifx/claude-done/main/install.sh | sh
Then restart Codex.
Verify
In a new session:
/done — should offer to save a session summary
/recall — should search your past summaries
The Workflow
Work on something → /done → summary saved
Next day → /recall → pick up where you left off
- Work normally with Claude Code
/done when wrapping up — Claude reviews the full conversation and captures:
- What was accomplished and key decisions
- Alternatives explored and why they were rejected
- Problems encountered and how they were resolved
- Questions raised (resolved and unresolved)
- Files changed and next steps
/recall in a future session to search your history
- Keyword search:
/recall auth flow
- By date:
/recall last 7 days
- By branch:
/recall branch feat-auth
- Recent:
/recall with no arguments lists the latest entries
What Gets Saved
Each summary is a Markdown file in ~/.claude-done/ with this structure:
Filename: 2026-02-18_feat-auth_a1b2c3d4_fix-token-refresh.md
# Fix Token Refresh Logic
**Date:** 2026-02-18
**Branch:** feat-auth
**Session:** a1b2c3d4-...
## Summary
Investigated and fixed the token refresh race condition...
## Key Decisions
- Switched to mutex-based locking — simpler than the queue approach
- Kept backward compat with v1 tokens — migration too risky mid-sprint
## What Changed
- `src/auth/refresh.ts` — added mutex lock around refresh calls
- `src/auth/token.ts` — extended TTL buffer from 30s to 60s
## Problems & Solutions
- Race condition under concurrent requests — resolved with mutex pattern
## Questions Raised
- Should we add retry logic for failed refreshes? (unresolved)
## Next Steps
- [ ] Add integration tests for concurrent refresh scenarios
- [ ] Monitor error rates after deploy
Empty sections are omitted automatically.
Skills Reference
| Skill | Trigger | What It Does |
|---|
| done | /done, "wrap up", "save session" | Reviews the full conversation and writes a structured summary |
| recall | /recall, "search history", "what did we do last time" | Searches ~/.claude-done/ by keyword, date, branch, or recency |
Recall Search Options
| Flag | Example | Description |
|---|
--keyword | --keyword "auth flow" | Full-text search across summaries |
--date | --date today, --date 7d, --date 2026-01:2026-02 | Filter by date range |
--branch | --branch feat-auth | Filter by branch name (fuzzy match) |
--last | --last 5 | Show N most recent entries |
Flags can be combined: --keyword auth --date 7d
Notion Sync (Optional)
/done can automatically sync each summary to Notion as a child page. First time you run /done, it will ask if you want to set this up. You can also configure it manually:
1. Create a Notion Integration
- Go to notion.so/profile/integrations
- Click "New integration", give it a name (e.g. "Claude Done")
- Copy the Internal Integration Token (starts with
ntn_ or secret_)