tools/transitions.pyStage 00's builder of the transitions ledger.
It reads package/forest.jsonl and the store's
codes.jsonl and writes transitions.jsonl: one
line for every coded turn that answers a coded turn, directly or through
uncoded turns the forest kept, with the interval and the hop count. It
also writes _README-transitions.md. It knows nothing of
themes above the second order; mem.py lifts the pairs
through the analyst's tier files at query time.
Handler side at build: build.sh runs it after
build_store.py. It is also shipped in the analyst's
tools/.
Its limit, on every line: "a reply is a reply". The ledger "does not show that the first caused the second, and an interval is elapsed time, never the speed of a decision." STANDING §1: "No relation you write may rest on adjacency alone."
Checked against: tools/transitions.py, harness/build.sh, STANDING-INSTRUCTIONS.md §1.