Skip to content
Back to skills

Save Topic

ASecurity

Use when the user wants to save or checkpoint topic progress, persist current discussion state, or save all topics before ending a session.

  • 38 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added May 26, 2026
toolsbashnode

Security analysis

A100/100

Scanned May 27, 2026

npx -y skills add hatawong/claude-recap --skill save-topic --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Save Topic?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Save Topic
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/hatawong-save-topic/badge)](https://www.skillsdirectory.com/skills/hatawong-save-topic)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
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
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
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.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.