
The statuses
draft — being written
draft — being written
Visible to the organisation, edited freely by authors, no statements extracted and no
effect on agents or CI. Every RFC starts here.
proposed — under review
proposed — under review
The author has put it forward. Awaiting sign-off from the assigned reviewer group,
then approval. Still no effect on agents or CI.
approved — advisory
approved — advisory
Signed off by an eligible approver. Statements are extracted on approval and
served to agents. CI findings are advisory — reported on the pull request, never
blocking.
enforced — blocking
enforced — blocking
Promoted deliberately by a domain owner. MUST-level findings now fail the check
and block the merge. SHOULD findings continue to warn.
deprecated — retired
deprecated — retired
No longer in force. Retained in full, with its history intact, so past violations
still resolve against the statements that were live at the time.
Why approved and enforced are separate
This is the most important design decision in PolicyCodex, and the one that decides whether a standards programme succeeds. A standard that starts blocking merges the day it is approved gets one reaction: resentment, then workarounds. The grace period atapproved gives you a period where the
rule is real — agents follow it, findings appear on pull requests, teams can see how much
work compliance actually is — but nobody’s Friday deploy is blocked by a document
approved on Thursday.
1
Approve
Statements go live to agents. Findings appear on pull requests as advisory comments.
Teams see the shape of the work.
2
Watch
The dashboard shows how many findings the standard produces
and where. If it’s generating hundreds, the standard needs tightening — not the teams.
3
Promote
When the backlog is manageable, promote to
enforced. The audit trail records who
made that decision and when.Who can do what
The domain owner may always approve RFCs in their own domain, whether or not they are in
the assigned approver group. Ownership carries accountability, so it carries authority.
proposed cannot be approved until it has been reviewed — the page says so
explicitly, and the approval action is unavailable until the review step is recorded.
Revisions after enforcement
Saving a new revision on an enforced RFC creates a new immutable version; the enforced status carries forward and statements are re-extracted with their existing slugs reused wherever the requirement is materially unchanged. Changing an enforced RFC’s number or domain, however, resets it toproposed for
re-approval. Moving a document to another domain changes who is accountable for it, and
that requires fresh sign-off.
Everything is audited
Each transition appends a row:rfc.proposed, rfc.reviewed, rfc.approved,
rfc.enforced, rfc.meta_changed, rfc.archived, statements.extracted. The row
carries the actor, the subject, and a hash chaining it to the previous entry.
See Audit trail.
