| name | tldr |
| description | Produce an end-of-turn TLDR status report for the current batch of work โ tokens used (total estimate + exact per-subagent), time, components used, done, to-do, issues, options, and a fresh-session recommendation. Use when the user types /tldr, asks for a "status", "TLDR", "wrap-up", "summary of what you did", or a work-statistics report. |
/tldr โ End-of-turn status report
Emit a tight, scannable status memo for the work done this turn / this batch, so the user can decide the next step without re-reading the transcript and can track token + time spend. This is the chat-level summary; detailed write-ups belong in .md files, not here. Never omit the work-statistics block.
Hard rules (measurability โ never fabricate)
- Per-subagent tokens + duration are EXACT โ read them from each subagent's returned
usage block (already in context; do not re-run anything). If a workflow/audit returned a usage block (agent_count, subagent_tokens, duration_ms), use those numbers.
- Total tokens and wall-clock are NOT exposed to the model โ report them as estimates and label
(est).
- Per-tool / per-skill / per-hook token counts are NOT itemizable โ mark them
n/a. Never invent them.
- Gather as you go from what's already in context โ near-zero cost, not a separate analysis pass.
Report format
TLDR โ
Original ask โ quote the user's initiating request for this batch (the first user message that started it), verbatim where short, lightly paraphrased only if very long. Lead with this so a /tldr run late in a long session reminds the user what they actually asked. If the batch spanned several distinct asks, list them as short bullets in order.
Work statistics
- Tokens โ
~<N>k total (est); per-subagent breakdown below (exact).
- Time โ
~<N> min (est) total; sub-step durations exact only where a subagent reported duration_ms. Real wall-clock between TLDRs is stamped in the daily trail (see below).
- Rounds โ
<N> rounds (user turns) this batch ยท ~<t> min/round (est). Count the user turns in the batch; per-round wall-clock is an estimate (not exposed to the model) โ the trail timestamps are the real source.
- Tools activated โ comma-separated list of every tool / skill / subagent type used this batch (e.g.
Bash, Edit, Read, Workflow, gh).
- Components used โ small table:
| Component | Type | What for | Tokens | Duration |
|---|
| subagent | | | |
| tools | | n/a (total only) | n/a |
| <skill/hook> | skill/hook | <what fired, why> | n/a | n/a |
Reasoning (summary) โ 1โ2 lines on the approach/path taken (what you decided and why), not a replay of every step.
Q&A (self + user) โ the key questions this batch and how each resolved, one per line: Q: โฆ โ A: โฆ [self|user]. Include decisions you made autonomously (self) and anything the user answered (user). Write None if trivial.
Done โ what shipped, with commit hashes where relevant.
To do โ remaining work, priority order.
Issues โ problems / blockers found.
Options โ concrete choices the user can pick next.
New session? โ explicit YES/NO. Recommend YES when the transcript is long/old (transcript size is the biggest token sink), the remaining task is cleanly scoped, and its context is already captured durably (e.g. project memory/docs). Say so plainly and name what the new session should pick up.
Log to the daily trail (every window โ one daily file)
Two layers feed the same daily log so you get a full picture:
- Automatic (every turn): a
Stop hook (scripts/Log-TurnHeartbeat.ps1, wired in ~/.claude/settings.json) appends a compact one-line heartbeat โ time ยท proj@branch ยท session ยท +ฮmin ยท gist โ on every turn, with no /tldr needed. The gap between heartbeats is the real per-round wall-clock.
- Manual (rich report): when you emit a full
/tldr, also append the whole report so it's preserved in the trail.
After composing a /tldr report:
-
Write the full report markdown to a temp file (session scratchpad).
-
Run (PowerShell):
& "$HOME\.claude\skills\tldr\scripts\Append-TldrTrail.ps1" -Path "<tempfile>" -Project "<repo>@<branch>" -Session "<short id>"
Where it saves (-Scope):
-Scope global (default) โ ~/.claude/tldr-trail/<YYYY-MM-DD>.md (all windows aggregate here).
-Scope project โ <repo-root>/.claude/tldr-trail/<YYYY-MM-DD>.md (travels with the repo). Use when the user wants the trail in the project.
-TrailDir "<path>" โ explicit override.
The script appends under a cross-process lock (waits โค2s if another window is writing, steals a stale lock after 30s), is UTF-8/unicode-safe, stamps real wall-clock since the previous entry, deletes the temp file, and prints the trail file path (use it for the link below).
Always give a clickable link to the trail in chat so it opens even though it lives outside the project:
- Global / outside the workspace โ
file:// URI: [~/.claude/tldr-trail/<date>.md](file:///C:/Users/<you>/.claude/tldr-trail/<date>.md)
- In-project (
-Scope project) โ relative path: [.claude/tldr-trail/<date>.md](.claude/tldr-trail/<date>.md)
Notes
- Keep it to a short table + bullets. No subagents this batch? Say so rather than padding.
- The daily trail (heartbeats + reports) is the source of truth for real time-between-turns; in-chat per-round time stays an estimate.
- Honors a project-specific format. If the current project defines its own TLDR/report format in its memory or docs (e.g. a
feedback_* memory), follow that โ this skill is the universal default and the on-demand trigger.
- Pairs with the
token-audit skill: /tldr reports actual spend this turn; /token-audit targets the always-on context baseline (MCPs, hooks, skills, CLAUDE.md).