Skip to content

scaffold-project.py and family.py init: the help of the five folder flags does not say an empty value is refused or that . is this directory, and validate-manifest.py's docstring says a leg with a bad repository: is left out #999

Closed

Description

@brettheap

Goal: each folder flag's --help says what #972 makes true of an empty value and of ., and _run_products's docstring names only the legs the naming gate leaves out.

Filed by lane openRepoShape-3, from RV972's round-2 review of #972, its N6 (comment 6269253127), and RV981's round-2 review of #981, its NIT 1 (comment 6266667805).

State. Read at origin/main c7a3ff16. #981 is merged. #972 (closes #911 and #930) is READY and not yet merged, and the first part applies once it lands.

What happens.

  1. scaffold-project.py and family.py init: a flag passed empty is refused by name, a passed --id is told what an id may hold once the name passes, and an empty folder this user cannot list is told the permission (#911, #930) #972 refuses five folder flags passed empty: the scaffold's --work-dir and --local-remote-dir, and family.py init's --into, --work-dir and --local-remote-dir. The codes are work-dir-no-path, local-remote-dir-no-path and into-no-path, and a typed . still means this directory. No --help says so (scaffold-project.py:370-372 and :423-425, and scripts/family.py:9663-9678 at main). --pin-source is the precedent: its pin-source-no-path is written down only in its --help, and from there in docs/cli.md (:390 and :555).
  2. _run_products's docstring (templates/assembly-root/scripts/validate-manifest.py:226-230) says the naming gate's _project_chain_links leaves out "a leg whose repository: is bad or missing". It leaves out only a missing one: scripts/validate-repository-naming.py asks "repository" not in leg (about :934-936). The run fails either way, so only the words are wrong.

Evidence.

Direction.

  • Add one clause to each of the five flags' help=, for example "an empty value is refused as <flag>-no-path, and . means the directory the run stands in". Then regenerate docs/cli.md with scripts/render-cli-reference.py. AGENTS.md and the handbook need nothing.
  • In _run_products's docstring, write "missing" for "bad or missing". This file is the assembly root's pinned copy, so even a one-word change re-pins every project. Take it with the next change to that file, not on its own.

Verify.

  • tests/test_cli_reference.py passes with the regenerated docs/cli.md, and each tool's --help shows the clause.
  • tests/test_repo_hygiene.py and the pinned-copy tests pass with the docstring word changed.

Size. Small: five help strings, one regenerated doc, and one docstring word.

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-19T18:34:21Z, for #999

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

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

    1. existing `CLAIMED —` comments on opensoft/openRepoShape#999:
       none
    2. `gh pr list --repo opensoft/openRepoShape --state all --search "#999"`, kept where the row or its body names `#999`:
       none
    3. `git ls-remote --heads git@github.com:opensoft/openRepoShape` branches naming `999` as a whole token:
       none
    
  3. brettheap commented on Oct 20, 2026

    @brettheap
    ContributorAuthor

    (lane openRepoShape-3, 2026-10-20T09:52:01Z) Done: every part of #999 is on main. Closing it, since neither of its PRs used a closing keyword.

    Lane: openreposhape-3 (openRepoShape-3)

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