/save-topic
Use when the user wants to save or checkpoint topic progress, persist current discussion state, or save all topics before ending a session.
$ npx -y skills add hatawong/claude-recap --skill save-topic --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/save-topic
Context preview
The summary Claude sees to decide when to auto-load this skill.
Use when the user wants to save or checkpoint topic progress, persist current discussion state, or save all topics before ending a session.
SKILL.md
save-topic.SKILL.mdname: 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.
save-topic
Overview
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.
Instructions
Preparation
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:
- "save topic" / "checkpoint" → current topic only
- "save topic X" → the specified topic slug
- "save all topics" → all topics in this session
Saving the current topic
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>"
Saving a non-current topic
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.
Saving multiple topics
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.
Rules
- State facts only. No AI filler language.
- If an existing file for this slug exists, it will be overwritten with the new summary.
- This does NOT change the current topic — you continue with the same topic tag after saving.
- The summary should cover the entire topic from the start, not just recent progress.
- Do NOT copy or build upon any previous summary in your context. Write from scratch based on your full context each time.
- For non-current topics, always use `--cold` — do not attempt to write summaries from degraded LLM memory.
Read more
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.
save-topic
Overview
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.
Instructions
Preparation
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:
- "save topic" / "checkpoint" → current topic only
- "save topic X" → the specified topic slug
- "save all topics" → all topics in this session
Saving the current topic
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>"
Saving a non-current topic
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.
Saving multiple topics
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.
Rules
- State facts only. No AI filler language.
- If an existing file for this slug exists, it will be overwritten with the new summary.
- This does NOT change the current topic — you continue with the same topic tag after saving.
- The summary should cover the entire topic from the start, not just recent progress.
- Do NOT copy or build upon any previous summary in your context. Write from scratch based on your full context each time.
- For non-current topics, always use `--cold` — do not attempt to write summaries from degraded LLM memory.
Topic-based automatic memory for Claude Code — never lose context across sessions or compactions.
Repo: hatawong/claude-recap
Other skills on claude-recap.
- /ignore-topic
Use when the user wants to ignore, skip, or exclude specific topics from being archived. Triggers on "ignore topic", "don't archive", "skip topic", "stop remembering", "list ignored topics", "remove ignore rule".
Open skill - /list-topics
Use when the user asks about topics discussed in the current session, wants to see a topic list, or asks what has been talked about.
Open skill - /remember
Use when the user wants to persistently remember something across sessions (e.g., "always use bun", "never auto-commit", "my name is Alex"). Also use when you detect a clear user preference or constraint worth persisting.
Open skill

