The floor wake (half.floor), the builder (half.b), ready and branches.Changed were set after reader.Start, so a catalog view heard on the reader's goroutine read them while main wrote them: the race detector named catalog.go:117 against main.go:501 in TestBuilderMakesADoneKeyWithTheDigests. They are now set before the start; the builder cmd integration package then ran 21 times under -race with no race. Builds: design 47 G §614, A-119 Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h