Rejected was not final
A closed draft becomes published after all, exposing one missing transition in the blog registry's state model.
The previous post moved through all three registry states. It was registered as a draft, closed without merging and therefore marked rejected, then reopened and published after I changed my mind. The content never changed. Only the editorial decision did.
Observe the decision, do not invent permanence#
The registry treats GitHub as the human gate: an open PR is pending, a merged PR is published, and a closed unmerged PR is rejected. That model correctly recorded each observation, but it quietly assumed the last one was permanent. GitHub does not make that promise. A closed PR can be reopened, and a rejected subject can become acceptable without needing a second draft or a new git range.
The correction stayed deliberately small. The published file matched the original draft byte for byte, so there was nothing to learn for the voice, style, or sensitivity guides. The registry row changed from rejected to published, preserving the same concurrency-lock story and the same review record.
Reversible human gates need reversible bookkeeping#
The important boundary remains human control over publication. Closing the PR still signals rejection, and the next run should still advance the frontier rather than repeatedly offering the same subject. However, if the human later reopens and merges that exact PR, the bookkeeping must follow the new decision instead of defending an older interpretation as final.