SpecSheriff
rule · _guidelines/tools/11 · s-v4qus7raqnwzneb

How a confirmation is recorded

Checkedconfirmed by its owner

sheriff confirm <sid>... appends to specs/_confirmations.jsonl one line per node — its sid, the fingerprint of its wording and the owner confirming it, who is the email git is configured with — and sets the node's status to checked. It refuses a node whose owner is someone else, naming that owner, and appends nothing for a node where the latest line for that fingerprint is already a confirmation by its owner.

sheriff confirm --withdraw <sid>..., which anyone may run, appends a line withdrawing the confirmation of the wording the node holds, naming as by whoever withdraws it, the email git is configured with, and empties its status. Of the lines for one fingerprint, the latest decides.

The fingerprint is a SHA-256 hash of one canonical string holding the node's title, text and reason and the values its kind carries beside them, but neither the owner a node names nor what the reindex builds, the keys of an object sorted and a list in its own order. An owner is named by an email.

Why

One line appended per confirmation merges between branches without a conflict and keeps every confirmation ever given, and with the latest line deciding, a withdrawal cannot be undone by typing a status back. SHA-256 is a hash every language provides. The email git is configured with is the one a commit names its author by, so a confirmation and the commit carrying it name the same person. The owner a node names says who reads its wording, not what the wording is, and what the reindex builds is no one's wording.

The links it makes

The links made to it

The decisions taken on it

2026-10-27 · textual
Problem

Confirmations were kept in one person's files outside the repository, guarded by that person's hooks, so nobody else could check a status and a lost file would have emptied every status.

Ruling

The owner: a confirmation is kept with the specification, names who gave it and is accepted only under that owner's signature.

2026-10-31 · textual
Problem

The line withdrawing a confirmation named whoever withdrew it as its owner, though anyone may withdraw one.

Ruling

Following the owner's ruling on §s-5ah25f6gy99panq: anyone runs the withdrawal, and its line names whoever withdraws it as by.

The tests bound to it