Repository navigation
P6d: every move is a change, and invariant registry v1.1 - #27
Merged
Merged
Conversation
…moved (Doc 15 §13.3, §23; C-71) The P6 verdict text was in the working tree of feature/p6c, not on main; it is carried here unchanged. C-71: the advisor approved the free-of-cost route (11 Nov 2026); AWS stays offline, so P9 and milestone M6 leave the build sequence. Docs only. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ided; P6d in the build sequence (Doc 01 §16; C-85) C-177 every move is a change (authors, 31 Oct 2026); C-178 registry v1.1 closes C-150, C-155 out of scope (authors, 11 Nov 2026); C-179 the §2.9 wording (authors, 10 Nov 2026); C-180 the user's decisions on the integer registry version and the verifier version; C-181 implementation readings (Proposed). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…Flag.MOVED (Doc 07 §9; Doc 08 §6; C-177, C-76, C-127) A pair made by a moved block or by the implicit count move is never UNCHANGED: with equal fingerprints it is MODIFIED, decided by the move evidence, and the match is moved. The domain refuses a flag that disagrees with the refs. Impact carries such a pair with the flag MOVED. No new ChangeType. Four tests that pinned C-129's "a resource-level move can be UNCHANGED" now expect MODIFIED (C-177 supersedes it); three domain tests used two addresses as filler and now use one. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…le clause; evidence cites the definition's registry (registry v1.1 §1.4, §2.9, §3.3; C-178 to C-181, C-62, C-85) docs/specs/INVARIANT_REGISTRY_v1.1.md is the v1.0 text with the three listed changes, each marked [v1.1] and in the change log; the v1.0 file is unchanged (a test pins its sha256). core/domain/registry_v1_1.py builds the v1.1 definitions; the verifier reads predicate.registry to choose the §3.3 text. TestRegistryGap now expects UNKNOWN; an unresolved port with 10.0.0.0/8 alone stays PASS. The test pipeline takes definitions and the registry version as keywords (defaults unchanged). Formatting only in identity.py and test_moves_are_changes.py from step 3 (black, ruff UP027). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… own registry (registry v1.0 and v1.1 §3.3; C-181 (2)) A mutation that made the dispatch ignore predicate.registry survived the step 4 tests; this test runs the verifier table on the C-150 configuration with the v1.0 and v1.1 definitions and kills it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…alue set), the P6d stub in PHASE_GATES, registry v1.1 in SPEC_INDEX (Doc 15 §13; C-178 to C-181, C-85) Archive sha256 equal to TerraPreserve docs/D6_FREEZE.md (8ec1931). Test split: no indeterminate SEC ingress rule. Dev split: two, whose sources the archive does not record; scenario tp-v1-F3-0278's Terraform was read (not run, nothing changed; user's decision) and neither rule has an IPv4 or IPv6 source. No gate is claimed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.
P6d — every move is a change, and invariant registry v1.1
Inserted after P6c, before P7a. Branch from
origin/mainatd7c0333. No gate or mini-gate is claimed; the external review verdict is the approval record (C-28). Do not merge before it. After the verdict and the merge, the user tagsregistry-v1.1.Decisions (docs/DECISIONS_REGISTER.md)
What changed
IdentityMatch.moved, which is required and checked against the refs, so a moved pair can never be UNCHANGED. Impact flagChangeFlag.MOVED. No newChangeType.AddressOnlyIdentityis unchanged.docs/specs/INVARIANT_REGISTRY_v1.1.md(3 change-log entries, each change marked[v1.1]).INVARIANT_REGISTRY_v1.mdis byte-identical (its sha256 is pinned in a test).core/domain/registry_v1_1.pybuilds the v1.1 definitions. The verifier picks the §3.3 text frompredicate.registry. SEC evidence for version 2 citesregistry-v1.1.TestRegistryGapnow expects UNKNOWN.Equivalence on TerraPreserve v1.0 (read-only)
Archive sha256 values equal those in TerraPreserve
docs/D6_FREEZE.md(8ec1931). Indeterminate SEC rules that v1.1 makes possible but v1.0 does not: dev primary 0, dev alternate 0, test primary 0, test alternate 0. The dev split has 2 indeterminate rules (tp-v1-F3-0278) whose sources the archive does not record. I read that scenario's Terraform (not run, not changed; user's decision): neither rule has an IPv4 or IPv6 source.Checks (Python 3.12.10, Windows)
dev.py test: 4152 tests OK (skipped=1)dev.py lint: black, ruff, mypy cleanReview verdict: (link to be added)
🤖 Generated with Claude Code