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 commands/vldesigns/casebook/end-workgit clone --depth 1 https://github.com/vldesigns/casebookWhat 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 | $0.00018 | $0.01546 |
| Opus 5 | $0.00009 | $0.00773 |
| Sonnet 5 | $0.00004 | $0.00309 |
| Haiku 4.5 | $0.00002 | $0.00155 |
Grade A, and why
end-work 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 2d 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 — 118 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Before we close out, update the Casebook board so the next session reflects what actually happened today, not stale notes from yesterday. Propose all changes as a single batch before executing anything.
Step 1: Read context.
- Run: git log --pretty=format:'%h %s' -n 20 --author="$(git config user.email)" to see my commits from this session.
- Run: "$CLAUDE_PLUGIN_ROOT/scripts/tracker" list to see the current board state (which cards already exist and where).
Step 2: Reflect on what actually happened in this session.
- What did I actually finish (with commits backing it up)?
- What's currently mid-flight that I'd want to pick up next time?
- What got blocked on a dependency, a decision, or an external answer?
- What new follow-up emerged that wasn't on the board before?
- Did today's focus shift? Should the focus line change for next session?
Step 3: Ask me what the commits can't show.
- Ask ONE short question: "Before I propose updates — anything about this session the commits can't show? Stakeholder pushback, a pivot, a decision you're unsure about, something that took longer than it should have. A sentence or two is plenty; 'nothing' is fine."
- Fold what I say into (a) and (b) below. Nothing executes here — both are
proposals only, gated behind Step 5 approval like everything else.
(a) Add to the Step 4 batch (do not run yet):
"$CLAUDE_PLUGIN_ROOT/scripts/tracker" note <card-id> "Session note: ..." --appendon the relevant card — executed only after my approval in Step 5. (b) Fold into the Running Log draft (Step 7) — write user-reported context as fact, with attribution to my own account, and where I expressed a feeling or judgment, quote or lightly edit MY words into a filled› My take:— never replace them with your (Claude's) own phrasing of my opinion. - If I say nothing, skip silently. No follow-up, no guilt trip.
Step 4: Propose updates against the board. For each piece of work, pick exactly one action.
Existing card moved status: "$CLAUDE_PLUGIN_ROOT/scripts/tracker" move done|inprogress|blocked|upnext
Existing card earned commit links: "$CLAUDE_PLUGIN_ROOT/scripts/tracker" link ,
Existing card has new context worth appending: "$CLAUDE_PLUGIN_ROOT/scripts/tracker" note "Session update: ..." --append
Genuinely new work that has no existing card: "$CLAUDE_PLUGIN_ROOT/scripts/tracker" add inprogress|blocked|upnext|done "Short title" --notes "Specific files, blockers, or decisions" --commits
Focus shift for next session: "$CLAUDE_PLUGIN_ROOT/scripts/tracker" focus "Concrete next thing"
Step 5: Show me the full proposed batch of commands as a code block, with a one-line reason next to each. Wait for my approval, then run each command in order and report any failures inline.
Step 6: Screenshot capture (optional).
- Ask ONE short question: "Want to capture screenshots of what you built today? Paste one now, or say no."
- If I decline, skip silently — no follow-up, go straight to Step 7.
- If I paste an image:
- Locate the pasted image's actual file path (Claude Code exposes this for CLI pastes). If no accessible file path can be found for the paste, say so plainly and ask me to save the file myself and give you a path instead — retry this same screenshot with that path. If I can't provide one either, skip this screenshot and move on — never block the rest of end-work on this.
- Ask me for a short caption.
- Run
mkdir -p .casebook/screenshotsand copy the file to.casebook/screenshots/<YYYY-MM-DD>-<slug>.<ext>, where<ext>is the source file's actual extension (not assumed to be.png) and<slug>is the caption lowercased with non-alphanumeric characters collapsed to-. If that filename already exists, try-2,-3, etc. — never overwrite an earlier capture. - Ask: "Another one, or done?" If I paste another image, repeat this whole sequence (locate its path, ask for a caption, copy it) for the new paste. If I say done (or don't paste again), stop.
- No cap on how many — I end the loop by saying done. Whatever comes out of this step (zero, one, or many saved path + caption pairs) feeds into the Running Log draft in Step 7.
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.
- 2d ago First seen · 118 lines · 18 tokens per session scan A 50c12b1f8bb1
end-work is a command published in the GitHub repository vldesigns/casebook (1 stars, last pushed 1mo ago), licensed MIT. It adds 18 tokens to every session and 1,546 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 commands, from other repositories
end-work
Complete work session with final checklist.
flux-status
Show current Flux board status and what to work on next.
flux-generate
Generate epics and tasks in Flux from project requirements.
flux-add
Quickly add a task to Flux from a brief description.
deliver
Verify, push, measure, and deliver the current OverClick card.
release
Stamp the current OverClick card with an exact release tag.