A gate that fires wrongly costs one argument. A gate that cannot pass costs the practice — every session it blocks either loses its commits or learns to reach for --no-verify. Reported from chesscast after seven blocked commits in one session.

Sequence 1 · a second commit in the same turn

before

$ katra reconcile status
reconcile: no changed code in the working tree — nothing to reconcile

$ git commit -m "feat"
katra: staged code isn't covered by a reconciliation receipt.
  Declare it:   katra reconcile --advance/--close <slug>  ...
                                                          [blocked, exit 2]

$ katra reconcile --no-task --reason "declaring the staged work"
✓ recorded: this work advances no task
                                          gate exit after declaring: 2

$ katra reconcile --skip --reason "just let me commit"
✓ skipped this unit of work
                                            gate exit after --skip: 2

after

$ katra reconcile status
work-generation: 864512ae0b6f
changed code (1): y.go
status: needs reconciliation —

$ katra reconcile --no-task --reason "declaring the staged work"
✓ recorded: this work advances no task
                                          gate exit after declaring: 0

$ git commit -m "feat"
                                                            [allowed]

Sequence 2 · an ordinary split commit

$ katra reconcile status
status: ✓ reconciled — the gate will allow a stop

$ git add a.go        # commit this part first
$ git commit -m "a"
                                              BEFORE: [blocked, exit 2]
                                              AFTER:  [allowed, exit 0]

the receipt those remedies wrote

e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
  = SHA-256 of the empty string — a receipt covering nothing,
    written cheerfully, forever.