strainlisted
Install: claude install-skill jovesun-lab/whetstone
# Strain
A long session degrades before it fails. The context window fills, the same problem comes
back a third time, an earlier answer turns out to be wrong — and the work keeps going,
because nothing in the loop is watching the loop. Strain is the thing that watches: a
small, countable reading of how loaded this conversation has become, reported on a
schedule, in a form the user can act on.
The failure this exists to prevent is not a crash. It is **silence** — the agent that
never mentions the session has gone bad, and lets the user find out from the output.
## The one rule
**One session, one reading.** Strain measures a single conversation, identified by its
session id. Two agents working the same project in two windows are two sessions and their
counts never add up. If you cannot tell which session a number belongs to, it is not a
measurement.
## When to run the check
Run it when any of these happen — not on a feeling that it might be time:
1. **A strain tick fires.** On hosts with hooks, a tick arrives every N tool calls
(default 10) and says so explicitly. Run the check before continuing the work.
2. **A hard signal lands** (see the table below) — a factual error caught, a regression
introduced, a revert of your own work, a context compaction.
3. **The task list changes shape** — a new side task, a goal switch, a task that balloons
past the one it was supposed to serve.
4. **The user asks** how the session is doing, or whether to wrap.
On a host with no