A file in the repo saying what has been done and what comes next, which each new session reads first and updates last. It is how a session with no memory finds its place. It is only as true as whatever checks it.
A fresh agent believes the file, so a wrong line sends every later session the wrong way. Agents also like finishing, so "done" gets written too soon. Tie each claim to a test that a script can run.
Say it to your agent
“Keep features.json with an id, a step and passes for each feature. Only change passes, and only after its test really passes. Never remove or reword a feature. Read it at the start of each session.”