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…
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.
/save-topicContext 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.
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.
Repo: hatawong/claude-recap
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…
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.