b6eed20af2
One real defect, in the one package where a retained pointer is more than a nit. decision.Ring.Push appended and then resliced forward without clearing the dropped slots, so up to 25 aged-out records stayed addressable from the backing array until the next append reallocated. Those records hold the owner's utterances verbatim, and the package is memory-only precisely so his words do not outlive the diagnosis. Push nils the dropped slots now. The claim package doc had drifted. It claimed roughly ten stage-0 grammars and four stateful pre-emptors. There are 22 grammar names in non-test router code and 7 rungs in preRouteLadder. BandStructural names preRouteLadder as its roster, so the count is checkable rather than remembered. The band ordering has not drifted and stays as it is. The one apparent inversion, stateful pre-emptors sitting below stage 0 while runTurn runs them first, is the V-558 defect the band set exists to expose. preRouteLadder matches runTurn exactly: seven names, seven notePreRoute call sites, same order. querySourceNames derives from querySources rather than duplicating it, so that roster cannot drift. The agent corrected the brief on one point. internal/claim is not zero-caller. router/claim.go defines ClaimOf and its helpers and claim_test.go exercises them. Nothing in Route calls ClaimOf yet, which is V-560. (V-581)