id: K4 number: 4 title: Ratification Classes and Thresholds layer: kernel notes: >- Governance semver. Quorum and approval are exact rational arithmetic; thresholds are written as fractions, never floats, so one-vote margins cannot flip on rounding. clauses: - id: K4.1 title: Classes text: >- A major change is any change to normative kernel content, including adding, removing, or rewording a kernel clause, or changing a kernel parameter value, its bounds, or its forkability. A minor change is any change to normative userland content. A patch change alters only non-normative content, the registry, or governed tooling and documentation without normative effect. A change touching the invariants file is an invariant change regardless of anything else it touches. When a proposal contains changes of several classes, the most demanding class applies to the whole proposal. Ratifying a major change increments MAJOR, a minor change increments MINOR, and a patch change increments PATCH of the governance version. An invariant change increments MAJOR. - id: K4.2 title: Thresholds text: >- A proposal is ratified if and only if, at the close of its voting window, the number of valid ballots cast divided by the number of eligible citizens is at least the quorum for its class, and the number of yes ballots divided by the number of yes plus no ballots meets the approval rule for its class. Abstentions count toward quorum and never toward approval. Where the approval threshold is exactly one half, yes ballots must strictly exceed no ballots; otherwise the yes ratio must be at least the threshold. If no yes or no ballots are cast, the proposal fails. parameters: quorum_major: type: ratio value: "1/2" forkable: true min: "1/2" max: "1" approval_major: type: ratio value: "2/3" forkable: true min: "3/5" max: "1" quorum_minor: type: ratio value: "1/3" forkable: true min: "1/4" max: "1" approval_minor: type: ratio value: "1/2" forkable: true min: "1/2" max: "1" quorum_patch: type: ratio value: "3/20" forkable: true min: "1/10" max: "1" approval_patch: type: ratio value: "1/2" forkable: false - id: K4.3 title: Invariant thresholds text: >- A proposal that adds, removes, or changes an invariant is ratified only at the invariant thresholds. These thresholds are not forkable and may themselves only be changed at these thresholds. parameters: quorum_invariant: type: ratio value: "3/4" forkable: false approval_invariant: type: ratio value: "9/10" forkable: false - id: K4.4 title: The gate decides text: >- Ratification is determined mechanically by the vote gate from the ballots, the eligibility snapshot, and the thresholds of the constitution version in force when voting opened. A proposal merges only on a passing gate run, and the gate run, its inputs, and its verdict are recorded in the ledger. No officer, maintainer, or majority may merge a normative change around the gate.