nx_commons_govern.nx
buildroot/runtime/nx_commons_govern.nx
about
nx_commons_govern.nx -- WHO gets to change the rules, and what NO majority may change.
KNOWN GOOD MATCHED: nx_council_gate (in-estate, 7/7, grounded in two-person rule / quorum /
change-management CAB research). Its properties are adopted, not reinvented:
* DENY BY DEFAULT -- a high-blast action is refused unless a quorum authorises it
* DISTINCT-ROLE quorum -- N approvals from N different roles, not N clicks from one faction
* ANY REJECT IS FAIL-SAFE -- one principled objection sinks a proposal that otherwise had quorum
* votes derive from REAL evidence, never forgeable literals
THE GAP THAT MATTERS FOR A COMMONS: in nx_council_gate everything is amendable given enough
quorum. That is correct for engineering change management and FATAL for a commons, because it is
precisely how capture works. You do not need to break the rules if you can afford to change them.
The operator's question was "excluded no matter what power they may try to wield" -- and no
quorum threshold answers that, because a sufficiently resourced actor buys the quorum.
★★★★★★ THE ANSWER IS NOT A HIGHER THRESHOLD. IT IS A CLASS OF RULES THAT IS NOT VOTABLE AT ALL.
This estate already has the shape: Rule 26 (never brick) is not a trade-off to be balanced against
convenience, it is an absolute enforced mechanically, and the genesis gate flags any node lacking
the guarantee RED rather than weighing it. Constitutional clauses here work the same way: a
proposal touching one is VOID -- not "denied pending more support", VOID -- and the vote is never
even counted. 100% approval of every member returns the same answer as zero.
The clauses are the floors that make the currency what it is. Each is here because removing it is
the FIRST move an extractive faction would make:
CG_CLAUSE_HOUR_FLOOR -- nobody's hour is ever worth less than an hour (devalue labour)
CG_CLAUSE_SPREAD_CAP -- the 3:1 bound on valued-hour spread (reintroduce 48:1)
CG_CLAUSE_HEARSAY_K -- corroboration needs K>=2 independent witnesses (self-attestation)
CG_CLAUSE_PARTY_EXCL -- a beneficiary never corroborates its own claim (buy your own witness)
CG_CLAUSE_NEVER_BRICK -- Rule 26 (inherited absolute)
TWO FURTHER IMPROVEMENTS over the known good, both bite-proven in the gate:
1. THE PROPOSER MAY NOT APPROVE ITS OWN PROPOSAL. Same principle as witness party-exclusion one
layer up: an approver with a stake is a participant. nx_council_gate counts distinct roles
but does not exclude the author.
2. NO SINGLE MEMBER'S WEIGHT MAY DECIDE. A whale holding most of the standing is capped, so
quorum cannot be reached by one party however much standing it earned. Earned standing buys
influence; it must never buy sovereignty.
Integer only, thresholds named (law 11). license_tier: ORIGINAL No hw writes (Rule 26).
dependencies 1 imports · 1 importers
imports: nx_syscalls.nx
imported by: nx_commons_govern_gate.nx
structs
| none |
consts
| 43 | const CG_CLAUSE_NONE: i64 = 0 |
| 44 | const CG_CLAUSE_HOUR_FLOOR: i64 = 1 |
| 45 | const CG_CLAUSE_SPREAD_CAP: i64 = 2 |
| 46 | const CG_CLAUSE_HEARSAY_K: i64 = 3 |
| 47 | const CG_CLAUSE_PARTY_EXCL: i64 = 4 |
| 48 | const CG_CLAUSE_NEVER_BRICK: i64 = 5 |
| 49 | const CG_CLAUSE_N: i64 = 6 |
| 52 | const CG_VOID: i64 = 0 - 2 // touches a constitutional clause; the vote is not even counted |
| 53 | const CG_DENY: i64 = 0 - 1 // lawful proposal, insufficient support |
| 54 | const CG_ALLOW: i64 = 1 |
| 56 | const CG_QUORUM: i64 = 3 // distinct approving roles required (matches nx_council_gate) |
| 57 | const CG_WEIGHT_CAP_PERMIL: i64 = 400 // no single member may carry >40% of the deciding weight |
functions
| 60 | func cg_is_constitutional(clause: i64) -> i64 called by 1: cg_decide |
| 68 | func cg_effective_weight(member_standing: i64, total_standing: i64) -> i64 called by 1: main |
| 79 | func cg_valid_approvals(ids: *i64, roles: *i64, st: *i64, n: i64, proposer: i64) -> i64 called by 1: cg_decide |
| 103 | func cg_decide(clause: i64, |
| 125 | func cg_plain_quorum_decide(ids: *i64, roles: *i64, st: *i64, n: i64, rejects: i64) -> i64 called by 1: main |