nogood-ids-assume-append-only

OUT premise

Nogood IDs are derived from `len(self.nogoods) + 1`, so deleting a nogood from the list would cause ID collisions on subsequent calls

Summary

The system generates nogood identifiers by counting how many already exist and adding one. If any nogood were removed from the list, the counter would reuse an old number, creating duplicate IDs that could silently corrupt cross-references. This matters because it means nogoods are effectively append-only — you can mark them inactive but not safely delete them without breaking the ID scheme.

Dependents

These beliefs depend on this one:

Details

Sourceentries/2026/04/23/reasons_lib-network-add_nogood.md