Skip to content

validate-family.py: the case-variant move back leaves .gitmodules naming the variant and has no --sparse, a staged un-registration passes the gate, and three findings print no remedy, one that dies, or a claim a recursive clone does not keep #762

Closed

Description

@brettheap

Goal: every finding and refusal the holder's validate-family.py prints for a member recorded in the wrong case, a gitlink git stops at, or a commit its checkout lacks says what git does and prints a remedy that works in the state it names, and the holder's gate names a member's un-registration before the commit that makes it.

Filed by lane openRepoShape-5, from the checklist candidates of #646's PR (#670: (e), (f), (g)), of #681's PR (#747: the staged un-registration), of rv681's review of it (member-commit-unresolvable), and of #648's PR (#682: the members mode in S1, H1 and U1, member-gitlink-unnamed's sentence, and the cures docstring, with rv648's candidate 2). The family.py add halves of (e) and (g) are in the sibling issue for scripts/family.py.

Lands after: lane 5's #648 (PR #682, fix/648-bootstrap-and-gate-order, head 45c512eb), #681 (PR #747, fix/681-validate-family-remedies, head 031ba75e, stacked on #682) and #704 (PR #745, fix/704-bootstrap-leg-moves, head 7bdfa3cc, stacked on #682). #682 and #747 edit templates/family-root/scripts/validate-family.py, and #682 and #745 the family root's bootstrap.py; the lines below are at main 66b230ed except where a line says 45c512eb or 031ba75e.

Pinned copies. templates/family-root/scripts/validate-family.py and templates/family-root/scripts/bootstrap.py are pinned in every holder (FAMILY_COPIED_VERBATIM, scripts/shape_materialize.py:525-547). Bundle this with the other v1.1.1 edits to them so each holder takes one upstream-changed row per file.

Lines

Verify: tests/test_validate_family_unnamed_mounts.py, tests/test_family_head_lost_gitmodules.py, tests/test_family_members_case_variants.py, tests/test_family_bootstrap_gate_order.py (new in #682), tests/test_pinned_copy_text.py and tests/test_repo_hygiene.py pass on Linux. One new case per state, typing each printed line and then the gate: a git mv members/IRRS Members/IRRS holder (gate exit 0, git submodule update --init ok); a sparse checkout that keeps Members/IRRS off disk; a file at the row's path; git rm --cached members/IRRS staged (the gate names it, or the test says it does not and why); a pin no remote holds, with its remedy typed; S1, H1 and U1 in a plain clone through the validator; and a recursive clone of the stray, asserting what the text says. No macOS or Windows run (CI is Linux only, #597); the folding disk is emulated as tests/test_family_members_case_variants.py does.

Overlaps. #682 and #747 edit validate-family.py; #682 and #745 (fix/704-bootstrap-leg-moves) edit the family root's bootstrap.py; this lands after all three. fix/695-family-docs (#738) and l3-563-docs (#630) edit README and the handbook, which no line here changes. fix/646-add-member-variant-remedy (#670) edits scripts/family.py only. No other open branch touches either file.

Parent: #459.

Milestone: v1.1.1. Each state needs a hand git mv, a sparse checkout, a pin no remote holds or a hand-edited .gitmodules. None is a regression: #639's remedy is new in v1.1.0 and is right in the states it was built for, and these are the states it was not. None blocks v1.1.0.

🤖 Generated with Claude Code

Activity

  1. added this to the v1.1.1 milestone on Oct 17, 2026
  2. brettheap commented on Oct 17, 2026

    @brettheap
    ContributorAuthor

    CLAIMED — lane openRepoShape-5, session 50cede29-ab82-4ca3-9f67-d98e1a58c8d2@Eagle, 2026-10-17T10:27:43Z, for #762

    Logged in lanes/log/openRepoShape-5.md at 1c7815f3a5f0ce9267665f88c9174519dc709acf.

    The three reads (lane-collision-protocol Rule 1):

    1. existing `CLAIMED —` comments on opensoft/openRepoShape#762:
       none
    2. `gh pr list --repo opensoft/openRepoShape --state all --search "#762"`, kept where the row or its body names `#762`:
       none
    3. `git ls-remote --heads git@github.com:opensoft/openRepoShape` branches naming `762` as a whole token:
       none
    
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions