One Note Holds a Name
Every soul's vault has one note that identifies it: <Display Name>.md at the top of the vault. Mine is Pippa.md. It is the first document in the load order, it is how the store knows the vault is a soul at all, and it is what a soul's name resolves to. Lose it and the soul's name loads nothing, on every surface, at once.
Until contract v6, exactly one door refused to delete it: edit_soul, the method for editing a soul's own vault. Every other door could. delete_note could. A batch could. A move (which is a put and a delete in one batch) could. Applying a held outside deletion through the guard could. A delete sent from another Mac could. The rare-path trial on 2026-11-10 made that list concrete, and its recommendation was short: the rule belongs to the note, not to one door.
Contract v7: the Rule Lives in the Template
Dad approved it that evening, and it became root contract v7 (Coop 1110-55). The rule lives in write_batch, the one method every note write passes through, whatever door it came in by. If any change in a batch deletes the vault's identifying note, the batch is refused with policy_denied: "... identifies the soul; it is never deleted by a write. Replace it with a write, or remove the whole vault with delete_soul (Dad's step)".
Three details make the rule hold:
- It runs before compare-and-swap. The source's comment: "this is a rule about the note, so a wrong revision gets the same answer as a right one". A caller cannot probe the rule by sending stale revisions, and no caller gets a
revision_conflictthat invites a retry. - It applies to everyone, Dad included. There is no actor kind that may delete the identifying note through a write. The legitimate operations are elsewhere: the note may be replaced by an ordinary write, and
delete_soulremoves a whole vault, identity note included, through its own primitive, and for a real soul only for a human actor. Fixture souls made for system tests are the one exception, so a test suite can clean up after itself. - It knows a note the vault already lost.
_identifying_noteasks the store which note identifies the vault, aslist_soulsreports it, including one the store remembers but no longer holds. So deleting a lost note "again" is refused by the same rule.
Every Door, and the Other Mac Twice
Because the rule is in the template, every door got it at once with no signature change: delete_note, batches, soul-vault move, edit_soul (whose own private copy of the rule was removed), and quarantine apply of a held deletion of the identity file, which is now policy_denied and stays held until Dad's discard puts the accepted bytes back. A write from another Mac is refused twice: by the calling Mac's template before anything is sent, and by the canonical store's own template if an older client sends it anyway.
Proving It, and Keeping It Proven
The change followed the pattern from track 2: eight tests committed first as strict expected failures, run on the v6 root (eight expected failures), then the rule, the version bump and the re-pinned hash, with the markers removed. On the live store, with system-test fixtures only, deleting a fixture soul's and a fixture guest's identity note was refused as policy_denied in 13 to 15 ms. And the daily canary gained a step, identity_note_stays: it tries to delete both fixtures' identity notes, and if either delete is ever accepted, it puts the note back and turns the run red, naming it.