Reduce the README to pointers and correct its claims - #6
Merged
Conversation
Core Role Governance named the four roles that constitute the Core Strategic Authority and spelled out the version-numbering scheme. Both are defined in GOVERNANCE.md, which is incorporated by reference into RIP-0001 and carries the same normative force. Both parentheses now hold a link to the section that defines what they held, §Core Roles and §Version Numbering Scheme. The succession procedure, which was named without either, gains a link to §Succession so that all three read the same way. This is not about churn. GOVERNANCE.md §Current Role Holders states that the role structure changes only by RIP amendment, and role assignments were already delegated to governance/core-role.md. It is that a second copy can only drift from the first, and that this copy sat outside the gate the definition sits behind. Nothing normative turned on the copy — GOVERNANCE.md remains authoritative whatever this file says — but a reader could have been shown a different set of role names here, with no review, while the definition itself stood unchanged. The pointer to governance/core-role.md is unchanged. That file records which individual holds which role; the roles themselves are structure, and structure is defined where it can only be amended.
Core Role Governance named the Core Strategic Authority, the version-numbering scheme, and the succession procedure, and pointed at GOVERNANCE.md for each. It said nothing about the limits on that authority. A reader could leave the section with the structure and none of the constraints. The addition is a pointer, not a restatement. §Version Authority scales the authority each version increment requires with the number of distinct Core Role holders, and prohibits MAJOR and GENERATION increments outright while only one holder exists. §Network Ratification of Release Candidates is the path that remains when the table cannot be satisfied: a candidate becomes official by the network choosing to run it, not by the author's assertion or the passage of time. Neither is summarized here. GOVERNANCE.md is amended through the same process as RIP-0001 and is gated accordingly; this file is not. A reader who wants the rule should be sent to the rule.
Status Definitions defined four of the eight statuses and referred the reader to RIP-0001 for the other four, with nothing to explain which half it carried. RIP-0001 §RIP Status defines all eight. A partial copy can only drift from the list it copies, and this one sat on the wrong side of the review gate: /rip-0001/ requires code-owner review and this file does not, so the four definitions here could have been changed without the review the original four require. The section now points to RIP-0001 §RIP Status and defines nothing. The heading stays, so links to it do not break. With the role and version definitions already delegated to GOVERNANCE.md, this file defines no term of its own; each term it uses is defined in the document that is authoritative for it.
The note on RIP-0004 credited the suspension to "the Rincoin Core Authority". That term is defined nowhere. GOVERNANCE.md defines Core Strategic Authority in §Core Roles and uses Core Authority Lead as the name of one of the four roles within it, so the undefined form does not distinguish a decision by the body from a decision by one of its roles — and under §Version Authority those are not the same decision. Resolving that is not this file's job. RIP-0004 §2.1 is authoritative for the suspension and records both the decision and the reasoning behind it, and the note already cited it. The note now states what happened and points there for who decided and why. The wording of the attribution in §2.1 is a separate matter for that RIP.
Repository Structure drew the directory layout with every RIP enumerated, so adding a RIP meant editing this file to keep the drawing true. RIP-0001 §Repository Structure draws the same layout with rip-NNNN/ as a pattern and needs no edit when a RIP is added. GitHub renders the real tree from the repository. The copy here was the only one that could fall behind, and it had: it lists governance/emergency-actions.md, which RIP-0001 does not, and security/*.asc where RIP-0001 says security/*_public.asc. Both of those are corrections to RIP-0001, tracked for the gated path. Neither is a reason to keep a second drawing. The section also carried what the tree did not: the reference implementations and their archived artifacts, which are named nowhere else and are not derivable from the file listing. That list stays, under a heading that describes it.
Contributing carried three unrelated things: how to submit a RIP, where official RIPs are published, and what a fork is not. The first is an instruction to contributors. The other two are what a reader checks when deciding whether the copy in front of them is genuine — a different question, asked by a different person. Authenticity now carries the second group and states the check that 020ec3d made available across the corpus: every RIP and GOVERNANCE.md declares a Canonical-URL in its preamble, so a copy whose preamble points elsewhere is identifiable as non-canonical without reference to any other document. SECURITY.md has no preamble and is named for what it does hold rather than folded into "governance documents". The scope of official support and liability moves here with the fork statement, cited rather than restated. Contributing keeps the submission procedure.
The License section gave the dedication and nothing else. CC0-1.0 §4(a) does not waive trademark or patent rights, and no public-domain dedication authorizes presenting a copy as official. Neither limit was stated, which left the license reading as broader than it is in a file that, two sections earlier, tells a reader that a copy must not be presented as the official RIP repository. Nothing about the licensing of the RIP text changes. The documents remain CC0-1.0, and linked reference implementations keep their own terms. What is added is the boundary the dedication already has.
The index listed RIP-0009 and RIP-0010 as requiring RIP-0001 and RIP-0002. Their preambles name only RIP-0002: rip-0009/rip-0009.md:10 Requires: RIP-0002 (Customized Halving) rip-0010/rip-0010.md:10 Requires: RIP-0002 (Customized Halving) The other nine rows match their preambles. These two did not. The index is a view of the preambles rather than a source of its own, so the index is what moves. RIP-0001 §Header Preamble makes Requires optional, so naming only RIP-0002 is not a defect in those two RIPs. Whether they should name RIP-0001 for consistency with the other nine is a question for their preambles, not for this file, and the same review would settle the Related field they carry, which §Header Preamble also does not list.
The graph stated the Requires relation a third time. It is declared in each RIP's preamble, reproduced in the index above, and was drawn again here — and like the index, the drawing had to be edited whenever a RIP was added. RIP-0001 §Repository Structure gives this file its job: an index of all RIPs with status. The index is that job. The graph was beyond it, and beyond what the preambles say. Nothing the drawing carried was unique to it. The co-activation of RIP-0009 and RIP-0010 at Block 840,000 is in the activation table and in the note below it; the independence of RIP-0004 and RIP-0011 from the regenerative stack is in their own notes; the Related relation between those two RIPs is in their preambles and in that same note. What the drawing added was one more place for all of it to fall out of step.
The section opened by saying all RIPs in this repository normatively cite the whitepaper, and closed fourteen lines later by saying RIP-0004 and RIP-0011 are intentionally absent from the mapping. The opening was false, and the section contradicted itself. Three of the eleven carry no citation: RIP-0001, which is a Process RIP and maps to no section of a protocol paper, and RIP-0004 and RIP-0011, whose exclusion the closing sentence already explains. The other eight cite it, RIP-0002 five times. The opening now names Standards Track RIPs derived from the protocol design. That excludes RIP-0001 by type and leaves the two named exclusions to the sentence that already accounts for them. A category rather than a count also means a new RIP cannot falsify it.
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.
Ten commits, one file. After this, the README defines no term of its
own, draws no structure another document owns, and asserts nothing
this repository does not record.
1 docs(readme): stop copying governance definitions
2 docs(readme): cite where authority is bounded
3 docs(readme): stop defining RIP statuses in prose
4 docs(readme): stop attributing the MWEB suspension
5 docs(readme): stop mirroring the repository tree
6 docs(readme): give authenticity its own section
7 docs(readme): state what CC0 does not waive
8 docs(readme): fix the Requires column for two RIPs
9 docs(readme): stop drawing the dependency graph
10 docs(readme): narrow the whitepaper citation claim
GOVERNANCE.md §Change Submission Discipline and Emergency Exceptionbinds the official Core repository, not this one, so nothing required
this to be a pull request. It is one because the repository ruleset
asks for it and because the diff is worth a record. No ruleset change
was made to open or merge it.
What this file stopped duplicating (1, 3, 5, 9)
Gone: the four roles that constitute the Core Strategic Authority,
the version-numbering scheme, four of the eight RIP statuses, the
directory tree with all eleven RIPs enumerated, and the dependency
graph. Each was a copy of something another document defines, and
each had to be edited whenever a RIP was added.
Each also sat on the wrong side of a gate.
GOVERNANCE.mdand/rip-0001/require code-owner review;README.mddoes not. Thedefinitions could have been changed here without the review that
changing them at the source would need. Nothing normative turned on
the copies, but a reader could have been shown one thing while the
source said another.
Two had already drifted. The tree listed
governance/emergency-actions.md, which RIP-0001 does not, andsecurity/*.ascwhere RIP-0001 sayssecurity/*_public.asc. StatusDefinitions defined four of the eight statuses and deferred the rest
to RIP-0001, with nothing to explain the split.
What replaced them are links: §Core Roles, §Version Numbering Scheme,
§Succession, RIP-0001 §RIP Status. RIP-0001 §Repository Structure
draws the tree with
rip-NNNN/as a pattern and needs no edit when aRIP is added; GitHub renders the real one from the repository.
What this file got wrong (4, 8, 10)
Core Authority", a term defined nowhere. GOVERNANCE.md defines
Core Strategic Authority in §Core Roles and uses Core Authority
Lead for one of the four roles inside it, and under §Version
Authority, a decision by the body and a decision by one holder are
not the same decision. The note now points at RIP-0004 §2.1, which
is authoritative for the suspension and records both the decision
and its reasoning.
RIP-0002. Their preambles name only RIP-0002. The other nine rows
match; these two did not.
whitepaper and closed fourteen lines later by naming two that do
not. Three of the eleven carry no citation: RIP-0001, RIP-0004 and
RIP-0011. The opening now names a category rather than a count, so
a new RIP cannot falsify it.
What this file never said (2, 6, 7)
GOVERNANCE.md for its structure, and said nothing about its limits.
§Version Authority and §Network Ratification of Release Candidates
are now cited — cited, not summarized.
location and the fork statement together. The last two are what a
reader checks when deciding whether a copy is genuine, which is a
different question asked by a different person. Authenticity now
carries them, with the
Canonical-URLcheck that 020ec3d madeavailable across the corpus.
waive trademark or patent rights, in a file that two sections
earlier says a copy must not be presented as official.
Verified before opening
GOVERNANCE.mdanchors resolve to real headings, and thetwenty-one relative links resolve to real paths.
Requirescolumn matches its RIP'spreamble.
GOVERNANCE.mdcarriesCanonical-URL; all elevenRIP preambles carry
License: CC0-1.0. The statements inAuthenticity and License are true as written.
Out of scope, tracked separately
Statuscolumn in the Activation Timeline carries values(
Suspended,Not adopted) that are not RIP statuses, beside anindex whose
Statuscolumn saysDraftfor the same RIPs. Thecolumn name is the collision, not the content.
security/*_public.ascwherethe file is
security/aevust.asc, and omitsgovernance/emergency-actions.mdand.github/. Gated.rip-0011carries the same undefined authority term and apre-rename Core version number. Ungated, separate pull request.
fix(ci): restrict GITHUB_TOKEN permissions in rip-check.No file other than
README.mdis touched.