ignore-topic
Use when the user wants to ignore, skip, or exclude specific topics from being archived. Triggers on "ignore topic", "don't…
Use when the user wants to save or checkpoint topic progress, persist current discussion state, or save all topics before ending a session.
Claude Code
$ npx -y skills add hatawong/claude-recap --skill save-topic --agent claude-code
Codex
$ npx skills add hatawong/claude-recap --skill save-topic -a codex -y
Cursor
$ npx skills add hatawong/claude-recap --skill save-topic -a cursor -y
Gemini CLI
$ npx skills add hatawong/claude-recap --skill save-topic -a gemini-cli -y
GitHub Copilot
$ npx skills add hatawong/claude-recap --skill save-topic -a github-copilot -y
OpenCode
$ npx skills add hatawong/claude-recap --skill save-topic -a opencode -y
Windsurf
$ npx skills add hatawong/claude-recap --skill save-topic -a windsurf -y
name: save-topic description: Use when the user wants to save or checkpoint topic progress, persist current discussion state, or save all topics before ending a session.
Saves a structured summary of a topic to a persistent file. Supports saving the current topic, a specific topic by slug, or multiple topics at once.
1. Get the **session ID** from the SessionStart injection in your context: `[SessionStart] session=SESSION_ID source=...`
2. Get the **plugin scripts path** from the SessionStart injection: `Plugin scripts path: /path/to/scripts`
3. Determine **which topics** to save:
1. Get the **current topic slug** from your topic tag (the `› \`slug\`` you've been outputting).
2. Write a structured summary using the format below (section headings in English, content in user's language, skip empty sections):
## Status What was done, key progress. ## Decisions What was chosen, why, what was rejected. ## Failures What was tried, why it failed, the fix or workaround. ## Next Steps What to do next. Be specific and actionable.
3. Run:
bash "<plugin_scripts_path>/save-topic.sh" "<slug>" "<session_id>" "<summary>"
For topics you are NOT currently discussing, your LLM context is likely incomplete. Use the `--cold` flag to force cold-read from JSONL:
bash "<plugin_scripts_path>/save-topic.sh" --cold "<slug>" "<session_id>" ""
The script will extract the conversation from JSONL and generate a summary via `claude -p`. The third argument (summary) is ignored when `--cold` succeeds.
1. Get all topic slugs by running extract-topic.js (same as list-topics skill step 4): `node "<plugin_scripts_path>/extract-topic.js" "$HOME/.claude/projects/<project_id>/<session_id>.jsonl" __all__` Filter out `__untagged__` from the output. 2. Save the **current topic** using the normal path (LLM writes summary). 3. Save each **non-current topic** using the `--cold` flag.
Topic-based automatic memory for Claude Code — never lose context across sessions or compactions.
Use when the user wants to ignore, skip, or exclude specific topics from being archived. Triggers on "ignore topic", "don't…
Use when the user asks about topics discussed in the current session, wants to see a topic list, or asks what has been talked…
Shape output for a reader with ADHD: lead with the next action, number multi-step work, restate state across turns, suppress…
Set up the owner profile so a personal agent knows who it works for (first-run setup, \"get to know me\"), or distill colleague,…