Repository navigation
docs: record the parity authority workflow and its scope gaps - #2584
Merged
Merged
Conversation
AGENTS.md carried the gate-trigger gap as a still-open problem. Half of it is shut now: the repository-acceptance suite, the only test in parity-governance that reads product source rather than the scanner, runs on the unfiltered tools-python leg, with a guard test pinning it there. Past-tense the old description, record what the remedy deliberately was not, and keep the #1691 lesson attached to it. docs/CONTRIBUTING.md had nothing on the ledger at all: no scanned roots, no --refresh-derived, no disposition types. A contributor met it first as a red check with no way to read what it wanted. Add a section under cross-platform discipline covering the exact roots, the refresh command, --repair-stale-base versus the maintainer-only --migrate-authority, and the three typed dispositions with their exact key sets. Name the two scope gaps plainly rather than letting people discover them: Strand/ and StrandiOS/ are outside Swift scope while com/noop/data/** is inside Kotlin scope (#2567), and out_of_scope_twin is Kotlin-only with a twin_path pattern that cannot name a file under StrandiOS/. Also point "Add a new metric" at the new section, since its step 1 lands in a scanned root and its catalog twin is the exact asymmetry case.
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.
AGENTS.mddescribed the gate-trigger gap as entirely open. Half of it is shut as of #2582, so thatparagraph was stale in the direction that matters most: it told the next reader to expect a trap that
has since been partly removed, without saying which half still remains.
docs/CONTRIBUTING.mdsaid nothing about the ledger at all. Checked before writing: zero mentions ofparity_twin_map,refresh-derived,parity_ratchet,parity_ledgerordispositionin 701lines. A contributor's first contact with the ratchet was therefore a red check with no prose
anywhere explaining what it wanted.
AGENTS.md
Past-tenses the old description and records three things: that the repository-acceptance suite, the
one test in that workflow about PRODUCT source rather than about the scanner, now runs on the
unfiltered
tools-pythonleg; that the scanner's own unit tests stay path-filtered deliberately; andwhat the remedy explicitly was not, since naming product paths in the filter only moves the trap,
which is the #1691 lesson already written into that same guard test.
docs/CONTRIBUTING.md
A new
### The parity ledger (one-sided declarations)under cross-platform discipline, since theledger is the mechanical enforcement of exactly that discipline. Every fact in it was read out of
Tools/parity_ledger.pyandTools/parity_ratchet.pyrather than written from memory:--refresh-derived, plus--repair-stale-basefor the case where a stale base is not thecontributor's to absorb, with
--migrate-authoritymarked as a maintainer call and whyallowed_kindslimit, so peoplelearn early that a shared-parity regression or a pair removal cannot be waived at all
Strand/andStrandiOS/sit outsideSwift scope while
com/noop/data/**is inside Kotlin scope (Parity ledger scope is asymmetric: Strand/ is out of scope, so Kotlin twins there can never pair #2567), andout_of_scope_twinisKotlin-only with a
twin_pathregex that cannot match any path underStrandiOS/drawing any conclusion from a green run
Also a TOC entry, and a step 5 in "Add a new metric", which is where contributors most often walk
into this: step 1 lands in a scanned root, and
MetricCatalog.swiftliving inStrand/against aKotlin catalog twin in
com/noop/data/**is precisely the asymmetry case.Verification
doc_comment_lint.py,validate_examples.py,check_source_references.py: all passACCEPTANCE=1 python3 -m unittest tests.test_parity_governance_acceptance: 50 tests, OK, exit 0origin/main(4a827f908)Docs only. No product or tooling source is touched.