The checker read any touched contracts module's definitions, skipped the check that a definition names its own directory's seat, and copied the indexer's tree reading. sdk/seatdefs now holds the reading and the rule of which contracts module may define a seat; the indexer's keeping, its revision seats and the checker's head seats all use it. Two heads defining one seat fail the judging unless one hands it over to its domain's module. Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i