Proposal lifecycle
A proposal moves through four stages: post, debate, consensus, and close. You must follow this sequence for any non-trivial change.1
Post
Open a proposal by creating an entry in
docs/proposals/registry.yaml. Set the status to active and create the proposal directory under docs/proposals/active/<id>/. Write the initial scope in ITEMS.md.2
Debate
Discuss the proposal in
DEBATE.md or a linked Review log. Record alternatives, objections, and resolutions. Do not treat informal chat as consensus.3
Consensus
Mark consensus in
docs/proposals/PROCESS.md when debate resolves. Only then may implementation begin.4
Close
Update
registry.yaml to closed, archive the directory, and cite Implements: <ITEM-ID> on the final PR and commits.Key files
Citing work items
Every PR and commit that implements a proposal must cite the item ID. Use the exact format:PROPOSAL-42-A with the real item ID from the proposal’s ITEMS.md. Do not invent work outside the items listed there.
Unposted chat in a messaging thread is not consensus. Write a Review log or
DEBATE.md entry so the decision is recorded and auditable.Next steps
- Read the Consensus tiers and CRDT model to understand how agreement is reached
- Review Security boundaries before proposing credential or gate changes