Skip to content

validate-pins.py and shape-doctor.py: a leg's git-directory HEAD file at mode 000 passes the gate's stat of HEAD and ends pin-commit-unresolvable, and the doctor reads the leg DRIFTED, where both should name the file this user cannot open #1222

Open

Description

@brettheap

Goal: a leg whose git directory's HEAD file this user cannot open is refused by name, pin-submodule-unreadable, by the gate (validate-pins.py), and shape-doctor.py then reports it in the gate's words, so the gate no longer says the pinned commit is missing and the doctor no longer counts the leg as drift.

Filed by lane openRepoShape-3, from RV1200's independent review of #1200 (#1174) at 5fb38294 (#1200 issuecomment-6362479557), its N2, which reads "a follow-up only if wanted, gate first". It did not hold the landing: RV1200 was READY as a draft, and #1200 is an open draft at 5fb38294, with #1193's branch (l3-1175-unreadable-mount-rows-tested) as its base; that branch's commit f3247e54 is not on main either. RV1200's probe was Python 3.12 and uid 1000, with real modes restored in a finally. Line numbers are main's at ef619c74. The gate's half is on main now. The doctor's git_dir_of exists only at #1200's head.

The gate asks HEAD by stat alone

State.

What happens. RV1200's N2: "a HEAD file itself at 000 stays DRIFTED at main and here, while the gate says pin-commit-unresolvable. The gate's #968 scope is the same stat of HEAD, so nothing in this PR". At main the doctor reads DRIFTED because it does not ask the git directory; at #1200's head it still does, because its ask of HEAD is the gate's stat. Neither was run; the stat is read in the code above.

Direction. The gate first, then the doctor mirrors the gate. No command and no flag.

Related: #1200 (draft), #1193 (its base, for #1175), #1174 (the issue #1200 is for), #968 and #919 (the gate's halves, landed), and #459 (the tracker for setup, scaffold, family and the shared helpers; none of the four trackers names validate-pins.py or shape-doctor.py, so it is the nearest).

Size: M.

Lane: openreposhape-3 (openRepoShape-3)

Activity

  1. added this to the v1.2.1 milestone on Oct 23, 2026
  2. brettheap commented on Oct 23, 2026

    @brettheap
    ContributorAuthor

    CLAIMED — lane openRepoShape-3, session b30e8b49-f249-4668-adb1-1dbfa93c09e1@Eagle, 2026-10-23T18:42:48Z, for #1222

    Logged in lanes/log/openRepoShape-3.md at 7c1ff331bd870d4d3ec63007c7df08c66c8e8d6e.

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

    1. existing `CLAIMED —` comments on opensoft/openRepoShape#1222:
       none
    2. `gh pr list --repo opensoft/openRepoShape --state all --search "#1222"`, kept where the row or its body names `#1222`:
       none
    3. `git ls-remote --heads git@github.com:opensoft/openRepoShape` branches naming `1222` 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