upsumlisted
Install: claude install-skill OpenCnid/upsum
# Upsum
> A session ends whether or not anyone writes it down. This decides which parts survive.
Two jobs, and they are opposites. The **record** grows and never forgets. The **summary** stays the same size forever and forgets on purpose. Running them together is what stops a project's memory from becoming either a swamp or a slogan.
**This does not fire on its own.** It is typed, like `spark-steering`, because a close ceremony that volunteered itself would run on every throwaway session and become the tax it exists to prevent.
The cost is that it has to be remembered, and that is worth stating as a standing reminder rather than filing as a flaw: **if work happened, close the session.** The loop below is not a proposal — it comes from two years of daily practice; what is new is only its wiring into a skill.
## Where things live
Repo-relative, and stated so a reader can change them:
| Path | Lifetime |
|---|---|
| `.upsum/RECORD.md` | append-only, never edited |
| `.upsum/SUMMARY.md` | rewritten whole, fixed length |
| `TODO.md` | rewritten whole, repo root, human-visible |
If a repo already uses different paths, follow the repo. Do not create a second convention beside an existing one.
## 1. Append to the record
One entry per session, appended, dated. Nothing above it is ever edited — an append-only file is the only kind whose history you can trust without reading a diff.
```md
## {ISO_Date} · {Short_Phrase_Naming_The_Session}
**Did** — {What_Changed_In_The_Reposi