Port the evidence floor from PR #3480 onto the canonical generation-bound index; preserve policy-v5 anchors and the source PR attribution. Harden PR #3453 receipt metadata and pointer byte bounds.
Co-authored-by: montjeffrey <montjeffrey@gmail.com>
- A build interrupted while writing the index leaves a partial file under
its digest name before the pointer exists. The next build rejects those
bytes ("content changed under its digest") and cannot repair the index.
- A skill edited after the entries are read leaves an index that still
matches the stored generation, and the next build reports that
generation stale. This pins the current behavior: the index is bound to
the generation, not to live sources.