Skip to content

validate-repository-naming.py and validate-manifest.py: a SHAPE_PIN_SOURCE_<LINK> that is set and that the run guard passes over, because two products share it, is named by no line, so the declared-unverified WARNING reads as if none were set #990

Closed

Description

@brettheap

Goal: where a SHAPE_PIN_SOURCE_<LINK> is set and the run guard does not read it because another product of the run shares its name, one line says so, naming the variable and the products that share it, so a person who set it is not left with a warning that reads as if nothing were there.

Filed by lane openRepoShape-3, from RV981's review of #981, its N4 (comment 6254819059), on #981. N4 reads "A set variable the guard passes over is named by no line. #275's existing behaviour; follow-up, not this PR." Lane 3 ruled it a follow-up issue.

State. Read at origin/main ae63d450, and at #981's head 499f7baa (open, a draft; its fix round 1) where it is said.

What happens. Measured with a stub gh (exit 97) first on PATH, GH_TOKEN=bogus, an empty GH_CONFIG_DIR, GIT_SSH_COMMAND=false. <tree> is a folder holding a project.yaml that declares open_x. The variable is SHAPE_PIN_SOURCE_OPEN_X, which open-x and open_x share.

validate-repository-naming.py MedxGlass --role assembly --pins open-x \
    --referent-chain open-x,open_x,openGlass --explain

variable unset:                    CHAIN open-x -> open_x -> openGlass [declared-unverified]
                                   WARNING declared-unverified: open-x declaring a pin on open_x ... which is not
                                   reachable here (a sibling checkout or --link-source open-x=<path> would let it be read).
variable set to <tree>:            the same output, byte for byte (cmp: identical); lines naming SHAPE_PIN_SOURCE: 0
at main ae63d450 and at #981 499f7baa, both.

control, a chain where open-x has the variable to itself (--referent-chain open-x,openY,openGlass), set to <tree>,
at main ae63d450 and at #981 499f7baa, both:
                                   CHAIN open-x -> openY -> openGlass [broken]     (the tree was read)

(the tool prints a Unicode arrow in CHAIN lines; it is written -> here)

And the case #981 adds, which shows what the silence costs. --pins open-x,open_x --referent-chain open-x,openGlass, the variable set to a folder whose project.yaml declares openGlass:

main ae63d450:    CHAIN open-x -> openGlass   [verified]
#981 499f7baa:    CHAIN open-x -> openGlass   [declared-unverified]
                  WARNING declared-unverified: open-x declaring a pin on openGlass ... is not reachable here
                  (a sibling checkout or --link-source open-x=<path> would let it be read).

The variable the person set read a chain as verified before, and now is passed over with no word about it. That is #275's rule working as designed (the variable cannot say which product it holds). What is missing is the line that says it.

Evidence.

Direction.

Verify.

Size: S.

Lane: openreposhape-3 (openRepoShape-3)

Activity

  1. added this to the v1.2.0 milestone on Oct 19, 2026
  2. brettheap commented on Oct 19, 2026

    @brettheap
    ContributorAuthor

    CLAIMED — lane openRepoShape-3, session b30e8b49-f249-4668-adb1-1dbfa93c09e1@Eagle, 2026-10-19T19:02:17Z, for #990

    Logged in lanes/log/openRepoShape-3.md at cf51967b21198437b1ef35843e10a1f31294318e.

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

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