Skip to content

adopt-project.py and shape-doctor.py: a .gitmodules of whitespace is asked on every run, a dropped file whose blob the root also holds counts as root, _answered_legs is quadratic, and two validator code families have no placeholder row #914

Closed

Description

@brettheap

Goal: the adoption's record and the doctor agree on every path, the verification table counts each source file where it went, and every validator code a manifest render can meet has a placeholder row or a stated reason for none.

Filed by lane openRepoShape-3, from its triage of #457 at the v1.1.1 release commit 5017830. It groups #457's lines L1-84, L1-85, L1-87 and L1-K4, one pull request's worth.

State at 5017830. Read, not run.

  • L1-84.
    • The doctor asks nothing only of a .gitmodules that holds no byte (shape-doctor.py:246). One holding only \n, \r\n, a BOM, spaces or a comment is asked on every run, no record can answer it, and nothing says to delete it.
    • An empty .gitmodules beside a gitlink that nothing registers gets no row. Lane 1's measurement; not repeated here.
  • L1-85.
    • README.md never names answered_paths:, so its verdict table does not mention the record's exception.
    • _answered_legs (adopt-project.py:6354) runs _covering over every entry for every path. Lane 1 verified an exact faster version at 6.90 s -> 0.52 s, for 120,000 files and 300 entries.
    • A row ending in / that names a file answers nothing, and nothing says so. Lane 1's reading; not repeated here.
  • L1-87. _account_for (adopt-project.py:13821) counts a source path as root when the root holds the same blob at that path, before it asks whether the path was dropped (:13830-13839). So an identical drop reads root 2 of 4 and drop 0 of 4. Only the count is wrong.
  • L1-K4. FINDING_PLACEHOLDER (scripts/shape_materialize.py:4935-4940) has no row for the manifest-submodule* codes or the manifest-answered* codes. The validator builds those from the prefixes at templates/assembly-root/scripts/validate-manifest.py:900 and :907. It cannot arise today, because execute appends those records after the render the gate asks (adopt-project.py:13024-13027).

Also in this area, and already listed in v1.1.1's known limits: #457's L1-104, where a tracked name the doctor sets aside still counts in plan's extension-majority fold.

Direction.

  • Treat a .gitmodules that holds no section as empty, and say how to remove it.
  • Name the record's exception in README.md's verdict table.
  • Take the faster _answered_legs.
  • Ask the drop before the root landing in _account_for.
  • Map the two code families, or say they have no row, before a caller renders those rows into that question.

Size: M.

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-3, session b30e8b49-f249-4668-adb1-1dbfa93c09e1@Eagle, 2026-10-20T17:23:29Z, for #914

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

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

    1. existing `CLAIMED —` comments on opensoft/openRepoShape#914:
       none
    2. `gh pr list --repo opensoft/openRepoShape --state all --search "#914"`, kept where the row or its body names `#914`:
    975	shape-doctor.py and shape_advisory.py: a path in the root this user cannot reach is named on every Python, never read as absent or stood in for by the template, a root it cannot search is refused first, and a row that could not ask is never DRIFTED	fix/430-c-doctor-unreadable	MERGED
    3. `git ls-remote --heads git@github.com:opensoft/openRepoShape` branches naming `914` 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