Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/kimon1230/claude_extensions/savenpx skills add kimon1230/claude_extensions --skill savegit clone --depth 1 https://github.com/kimon1230/claude_extensionsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/kimon1230/claude_extensions/save)<a href="https://agentmods.dev/skills/kimon1230/claude_extensions/save"><img src="https://agentmods.dev/badge/skills/kimon1230/claude_extensions/save.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00024 | $0.01290 |
| Opus 5 | $0.00012 | $0.00645 |
| Sonnet 5 | $0.00005 | $0.00258 |
| Haiku 4.5 | $0.00002 | $0.00129 |
Grade A, and why
save scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 6d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 90 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Save Progress
This skill must only be invoked from the main session, never from a subagent.
-
Determine the project name (used for file paths in all later steps): a. If a
~/.claude/status/*/session-progress.mdwas written earlier this session, reuse that project name. b. Else if inside a git repo with a remote, use theoriginremote. Parse the last path component, stripping any trailing.git(e.g.,my-libfrom[email protected]:user/my-lib.gitorhttps://github.com/user/my-lib.git). c. Else use the basename of the git root (git rev-parse --show-toplevel). d. Else use the basename of the current working directory. e. If still ambiguous, ask the user. -
Capture test state (do NOT run tests yourself — a Stop hook already runs pytest automatically):
- If tests ran recently in this session, reference those results (pass/fail counts).
- If no test results are available, record "No test results available this session."
- Do NOT invent results.
-
Create the directory
~/.claude/status/<project-name>/if it does not exist. -
Write/update
~/.claude/status/<project-name>/session-progress.mdwith:-
Timestamp:
YYYY-MM-DD HH:MM UTC -
Current task: what you were working on
-
Completed: detailed progress using typed entries. Each entry is classified and formatted as follows:
Entry types:
- Decision: The change involved choosing between alternatives or a non-obvious approach. MUST include a
Why:line. - Observation: A factual record of what happened with no meaningful alternatives considered. Plain body, no
Why:required. - When in doubt, prefer
decision— better to over-document rationale than lose it.
Entry format:
### [decision] Title describing the choice <!-- id:a1b2c3d4e5f6a7b8 --> Why: Rationale for this decision (SACRED — never compress or paraphrase). What: Implementation details (optional). ### [observation] Title describing what happened <!-- id:e5f6a7b8c9d0e1f2 --> Plain body text describing the change.Entry IDs: Generate a unique ID for each new entry — 16 hex characters (e.g.,
a1b2c3d4e5f6a7b8). Just produce a random-looking 16-char hex string.Appending to existing files: When updating an existing
session-progress.md, preserve all existing entries verbatim — only append new ones.Auto-captured entries: If a
## Auto-capturedsection exists (added by the auto-capture hook), review those entries:- Promote useful ones to the main Completed section.
- Upgrade observations to decisions with a
Why:line where appropriate. - Remove the
## Auto-capturedsection after processing.
Entry body content — draw from these details as appropriate:
- Per-batch/phase breakdown when following a plan — what each batch accomplished
- Files created, modified, or deleted — explicit paths (e.g.,
src/foo/bar.py— addedMyClass, refactoredprocess()) - Implementation specifics — functions, classes, modules, config options added or changed
- Issues encountered and workarounds — anything the next session should know about (e.g., "ruff F401 requires atomic edits", "had to retry due to X")
- Prior session context — when resuming multi-session work, summarize what earlier sessions completed so the file is self-contained
- Decision: The change involved choosing between alternatives or a non-obvious approach. MUST include a
-
Remaining: bullet list of what's left, with enough detail to pick up without re-reading the plan
-
Test state: from step 2
-
Key decisions: any architectural or design choices made
-
Active plan: path to the current plan file in
~/.claude/plans/<project-name>/, or "None" -
Context needed to continue: anything a fresh session needs to know (key file paths, uncommitted state, critical checkpoints, next batch to start)
-
-
Update or create
~/.claude/status/<project-name>/project-status.md— the cumulative project history across all sessions:
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 6d ago First seen · 90 lines · 24 tokens per session scan A 754f6893f60f
save is a skill published in the GitHub repository kimon1230/claude_extensions (4 stars, last pushed 2mo ago), licensed MIT. It adds 24 tokens to every session and 1,290 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
hook-template
Generate hook script from template. Use when adding a new hook, wiring a PreToolUse/PostToolUse/Stop/Notification hook, or scaffolding hook config for settings.json.
agent-template
Generate custom agent from template. Use when creating a new subagent from scratch, or scaffolding an agent file with correct frontmatter.
workflow
Run the complete 5-step development workflow: focus problem → prevent over-development → test-first (TDD) → document → smart commit. Use when starting a new feature, or when the user runs /workflow or asks for the full development flow.
check-environment
Verify Claude, Codex, and Grok availability plus Director guidance, relay, agents, and skills. Audit optional hooks only when selected. Use after installation or when a native surface misbehaves.
doc-writer
Documentation templates and standards: README structure, API reference format, changelog (Keep a Changelog), and comment guidelines. Use when creating or updating documentation. Loaded automatically by the doc-writer agent.
smart-commit
Create clean Conventional Commits: inspect the diff, group related changes, run quality checks, and write type(scope) messages. Use when committing work, or when the user runs /smart-commit or asks to commit changes.