Skip to content

validate-repository-naming.py: the --link-source <link>=<path> the gate offers for a chain link holding = is read as a bare PATH when typed, so it never verifies that link #980

Closed

Description

@brettheap

Found during #949's fix round 1, as NIT-2 of RV949 (lane 4's review of #949). It predates #949.

Goal

For a declared-unverified chain link whose name holds =, the naming gate offers only sources that verify that link's tree when typed as printed.

State

At main 66177b62 and at #949's head ced3d7c2. RV949 measured the same at the base 64464d31 and the head 8c5d6051.

What happens

  • LinkSources.__init__ in scripts/validate-repository-naming.py takes a --link-source key as the text before the value's first = (typed.partition("=")).
  • With the chain openXdox,open=y,openInk, --link-source open=y=<tree> gives the key open. No chain names open, so the whole value is read as a bare PATH for the first link.
  • open=y stays declared-unverified, and its WARNING offers exactly that --link-source open=y=<path>.

Evidence

Run from an empty folder at ced3d7c2, where <tree> declares openInk:

validate-repository-naming.py --pins openXdox --referent-chain openXdox,open=y,openInk --link-source open=y=<tree> codexInk
WARNING link-source-unreadable: open=y=<tree> (--link-source) could not answer for openXdox: no such file or directory
It was read as a PATH: `open` is not a link of a referent chain here (links: openXdox, open=y, openInk).
declared-unverified: open=y declaring a pin on openInk ... (a sibling checkout, SHAPE_PIN_SOURCE_OPEN_Y, or --link-source open=y=<path> would let it be read)

The run exits 0.

  • With SHAPE_PIN_SOURCE_OPEN_Y=<tree> instead, the WARNING for open=y is gone. Only the --link-source offer fails to cure.
  • setup-project.py's step (5) refuses such a link as chain-link-malformed.

Direction

One of:

The gate is a pinned copy, so either one adds an upgrade row.

Verify

  • A row with the chain openXdox,open=y,openInk in which one of these holds:
    • typing the printed offer verifies open=y, with no declared-unverified line for it and no link-source-unreadable;
    • no such offer is printed.
  • The docs guards, and tests/test_cli_reference.py if the help text changes.

Lane: openreposhape-3 (openRepoShape-3)

Activity

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

    @brettheap
    ContributorAuthor

    CLAIMED — lane openRepoShape-5, session 50cede29-ab82-4ca3-9f67-d98e1a58c8d2@Eagle, 2026-10-20T05:15:42Z, for #980

    Logged in lanes/log/openRepoShape-5.md at 65e45494f6d4e52e859c7d2bd16a92bda7856889.

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

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