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 skills add jkm-4314/claude-code-skills --skill session-endgit clone --depth 1 https://github.com/jkm-4314/claude-code-skillsWrote 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/jkm-4314/claude-code-skills/session-end)<a href="https://agentmods.dev/skills/jkm-4314/claude-code-skills/session-end"><img src="https://agentmods.dev/badge/skills/jkm-4314/claude-code-skills/session-end.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.00027 | $0.01631 |
| Opus 5 | $0.00014 | $0.00816 |
| Sonnet 5 | $0.00005 | $0.00326 |
| Haiku 4.5 | $0.00003 | $0.00163 |
Grade A, and why
session-end 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 8d 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 — 175 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Session End Handoff
You are finalizing a work session to preserve context for future sessions. Follow these steps.
Override note: This is the generic global version. If this project has a project-level session-end skill (in .claude/skills/session-end/), that version runs instead of this one and may include project-specific app shutdown logic.
Step 1: Git-Grounded Reconciliation
Run:
git log --since="6am" --oneline --all
git diff --stat
Cross-reference commits against this Claude session's own work. Flag any commits that THIS session didn't make (other agents, manual commits, or earlier context-cleared sub-sessions). For unfamiliar commits, briefly read the changed files so you can describe them accurately.
Step 2: Detect Today's Session Entry
Read the top of .claude/SESSION_LOG.md.
If the top entry's date matches today's date (stub from session-start, or an already-finalized entry being appended to):
- Continue to Step 3 to finalize / augment it.
If no entry exists for today (user worked informally without running session-start):
- Ask: "No session-start entry exists for today. Options:
- Create a retroactive entry for today's work
- Skip log creation — just run housekeeping (ROADMAP / DECISIONS / MISTAKES / pruning)
- Do nothing"
- If they pick (1): create a new entry at the top with today's date and next session number, then continue to Step 3.
- If they pick (2): jump to Step 5.
- If they pick (3): stop.
Step 3: Finalize Today's Entry
Check today's entry for a <!-- last-update: <hash> --> marker. Its presence signals that session-update has been run during the day and the entry already has substantive content — in that case, session-end is a lightweight finalization. Its absence means you're reconstructing from scratch against git history.
Path A: Entry has been updated during the day (marker present OR sections populated)
Most content is already captured. Focus on:
- "What title best describes today's session?" (replaces
[In Progress]) - "One-line focus for the session?"
- Quick cross-check against git reconciliation:
- Compare the commits from Step 1 against
### Files Modifiedand### What Was Accomplished. Anything missing? Ask the user briefly.
- Compare the commits from Step 1 against
- "Any final decisions, blockers, or notes to add?"
- Remove the
<!-- last-update: ... -->marker — the session is being finalized, marker no longer needed.
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.
- 8d ago First seen · 175 lines · 27 tokens per session scan A ad876a500e99
session-end is a skill published in the GitHub repository jkm-4314/claude-code-skills (4 stars, last pushed 3mo ago), licensed MIT. It adds 27 tokens to every session and 1,631 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
git-pushing
Stage, commit, and push git changes with conventional commit messages. Use when user wants to commit and push changes, mentions pushing to remote, or asks to save and push their work. Also activates when user says "push changes", "commit and push", "push this", "push to github", or similar git workflow requests.
chunk-pr
Break one big PR into a sequence of small, logical, merge-safe PRs. Suggest, don't decide — the user approves every chunk and every destructive action.
repo-timeline
Analyzes a repository or branch and generates a meaningful, engineer-friendly timeline of changes — grouping commits into logical units with short and detailed descriptions, using git history, changelogs, GitHub PRs, and Linear tickets. Use when you want to understand what changed, when, and why in a codebase.
address-pr-feedback
Comprehensively addresses PR feedback by fetching all comments, deploying parallel agents for critical analysis of each suggestion, making implementation decisions, then systematically implementing fixes with incremental commits and browser validation. Use when you need to systematically process and implement all PR…
git-cleanup
Identifies and removes stale git branches, orphaned remote branches, and unused worktrees. Cross-references with Linear (or other integrations) to check issue status before deleting. Use when your repos have accumulated stale branches and you want to tidy up.
release-notes
Generates brief, truth-based release notes for a release PR (typically main → prod) by listing each squash-merged PR, a one-paragraph summary drawn from each PR body, and the linked issue-tracker tickets (Linear, Jira, GitHub Issues, Asana, ClickUp, Shortcut, Plane, etc. — any tracker, configured via a URL template).…