Skip to content

adopt-project.py and shape-doctor.py: a plan answer that overrides a confident rule passes check and execute, then the doctor's first run says MISPLACED, and an emptied .gitmodules is asked on every run #655

Closed

Description

@brettheap

Lane: openreposhape-1 (openRepoShape-1)

A plan answer that overrides a confident rule should not end adoption verified and then MISPLACED on the doctor's first run. And an emptied .gitmodules should have a record that can answer it, so the doctor stops asking about it on every run.

From lane 1's triage of 2026-10-15, D6, approved by Brett Heap at 2026-10-16T11:21:17Z ("Approve all (Recommended)"). One pull request covers the lines below.

Parent: #457 (#460, the doctor's tracking issue, is closed). Milestone: v1.1.0.

Lands after: #617.

Effort: M. Platform: all.

Lane openRepoShape-1 claims it at filing; see its CLAIMED comment.

Why this is P2.

The open question for L1-57.

Direction: A. The plan is the person's word, as #617 already treats an answered question.

Lines

  • L1-56 (P2): an emptied .gitmodules (0 bytes, left by git rm of a leg's only submodule) is asked by ambiguous-gitmodules on every run, and no record can answer it: answered_paths: leaves it out and submodules: answers it only where the leg keeps one. Where: shape-doctor.py's ambiguous-gitmodules. The line measured it on 3b78fae and on main 2e6c6fa. Not re-checked since. (source)
  • L1-57 (P2): a plan answer can override a confident rule: docs/ (rule spec-governance) answered code passes check and execute says adoption verified, but the doctor's first run says MISPLACED (1 path). The line measured it on 3b78fae and on main 2e6c6fa. Not re-checked since. (source)

Rides along (backlog; tick it here if the same change covers it)

  • L1-58: a hand-written answered_paths: row for a directory without its trailing / (examples) passes the validator and silently settles nothing, because _covering reads it as a file. From the code at 3b78fae; the validator's silence was probed. Not re-checked since. (source)
  • L1-59: an answered directory row also settles files added under it after the adoption, because source_commit is never consulted. By design, but nothing a row's reader sees says so. From the code at 3b78fae. Not re-checked since. (source)

Each line above is a line of #457's checklist comment (issuecomment-6200110061). Tick it there too when this closes.

The lines as written on the tracking issue

[L1-56] An emptied .gitmodules (0 bytes, left by git rm of a leg's only submodule) is asked by ambiguous-gitmodules on every run, and no record can answer it: answered_paths: leaves it out and submodules: answers it only where the leg keeps one. Measured on 3b78fae and on main 2e6c6fa. (Found in #617's writer and review.)

— #457, comment

[L1-57] A plan answer can override a confident rule: docs/ (rule spec-governance) answered code passes check and execute says adoption verified, but the doctor's first run says MISPLACED (1 path). Measured on 3b78fae and on main 2e6c6fa (repro kept by lane 1). (Found in #617's writer and review.)

— #457, comment

[L1-58] A hand-written answered_paths: row for a directory without its trailing / (examples) passes the validator and silently settles nothing, because _covering reads it as a file. From the code at 3b78fae; the validator's silence was probed. (Found in #617's writer and review.)

— #457, comment

[L1-59] An answered directory row also settles files added under it after the adoption, because source_commit is never consulted. By design, but nothing a row's reader sees says so. From the code at 3b78fae. (Found in #617's writer and review.)

— #457, comment

Activity

  1. added this to the v1.1.0 milestone on Oct 16, 2026
  2. brettheap commented on Oct 16, 2026

    @brettheap
    ContributorAuthor

    CLAIMED — lane openRepoShape-1, session 300f8f46-004a-4e72-8587-4f192be2e108@Eagle, 2026-10-16T11:41:47Z, for #655

    Logged in lanes/log/openRepoShape-1.md at 30cafe91bbbc872079938a6860bcdc3d53e2510c.

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

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