Implement 0361: voice as the complement to exit — the Rule Change Proposal process - #579
Merged
crs48 merged 10 commits intoJul 19, 2026
Merged
Conversation
added 8 commits
July 18, 2026 22:29
Signed-off-by: xNet Test <test@xnet.dev>
Signed-off-by: xNet Test <test@xnet.dev>
Signed-off-by: xNet Test <test@xnet.dev>
…0361) Signed-off-by: xNet Test <test@xnet.dev>
…ICS (0361) Signed-off-by: xNet Test <test@xnet.dev>
Signed-off-by: xNet Test <test@xnet.dev>
Signed-off-by: xNet Test <test@xnet.dev>
Signed-off-by: xNet Test <test@xnet.dev>
Contributor
🖼️ UI changes in this PRScreensAuto-captured by CI · run. Informational — not a blocking check. |
Contributor
|
Preview removed for PR #579. |
…the-complement-to-exit-ostrom-collectiv
crs48
force-pushed
the
claude/0361-voice-as-the-complement-to-exit-ostrom-collectiv
branch
from
July 19, 2026 06:47
b018217 to
830e3ee
Compare
…the-complement-to-exit-ostrom-collectiv
crs48
deleted the
claude/0361-voice-as-the-complement-to-exit-ostrom-collectiv
branch
July 19, 2026 07:19
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.









Implements exploration 0361 — all 6 implementation and 5 validation items.
The core change
GOVERNANCE.mdlegitimated BDFL by pointing at exit: "you can fork the code or re-implement the protocol." That is the posture Hirschman warns degrades quality — when leaving is the only move, the quality-sensitive members go first and quietly, and you lose the customer and the signal. Exploration 0358 flagged it and deferred it here.Ostrom's design principle 3 supplies the missing half, and the important detail is what it does not require: not a vote, not consensus — a path. That is what makes this implementable at current size.
So BDFL now rests on three things rather than one:
What landed
The process —
docs/RULE_CHANGES.md. Defines an operational rule (binds non-maintainers · changed by maintainer commit · enumerated), lists the six in-scope rules from the exploration's inventory, and states what is out of scope with reasons (protocol → XPP, conduct, trademark, security embargoes). Anyone affected may propose — explicitly including self-hosters and plugin authors who have never contributed code.The commitment — every RCP gets a public accept / decline / defer / redirect with reasoning within 30 days. Set generously on purpose: a missed window is worse than no promise, so "deferred, here's why" counts as a response.
The intake —
.github/ISSUE_TEMPLATE/rule-change.yml, modelled on the XPP template: which rule, what change, who is affected, what breaks if we do nothing.The record —
docs/decisions/rule-changes.md, append-only, seeded with four real decisions back-filled from the exploration record and clearly markedretroactive:Two declines and a reversal, because a log of only the accepted proposals is marketing. RCP-0004 is specifically a lane we proposed and then refused — under the append-only rule both stay visible.
The receipt — a
governance-rule-change-pathclaim in the claims ledger asserts all three surfaces exist and that the log still matches**Declined**, so the honesty cannot be edited out. Verified it bites: deleting the log fails that claim and only that claim.Cross-links — Charter §6 and the ECONOMICS Moat Register now each name themselves as in-scope and point at the path. §6's covenant is answerable rather than merely stated; a covenant only the covenantor may amend, silently, is a preference.
Scope discipline
Not a vote, not a veto, not a foundation. The BDFL still decides — what is removed is the ability to change a rule that binds other people without saying why, in public, on the record. Options C (advisory council) and D (foundation now) were declined as premature: both need a constituency that does not exist yet, and 0241 stages D on triggers we have not hit.
Verification
governance-rule-change-pathand nothing elsepnpm typecheck— 97/97pnpm lint— 0 errorscheck-humane-patterns— 2266 files OKNo changeset: the only
packages/*change is a test file.🤖 Generated with Claude Code
Note: an earlier revision of this branch also carried fixes for four unrelated CI failures on
main(the@xnetjs/socialbrowser-bundle break, a vitest alias gap, a missing/post/route prefix, and seven unformatted files). #578 landed equivalent fixes independently while this was open, so those commits were dropped andmainmerged in. The diff here is now purely the 0361 governance work.