Skip to content

adopt-project.py and update-shape.py: a pinned copy written through a root-kept symlinked directory (.github -> ci) is named in the line-ending block by its link spelling, so the line governs nothing, the clone can write the copy CRLF, and validate-pins.py reports shape-copy-drift after an adoption that said verified #807

Closed

Description

@brettheap

Goal: every line #471's line-ending block writes names the path git tracks. A pinned copy that reaches the tree through a root-kept symlinked directory then checks out LF like every other copy, and validate-pins.py passes after an adoption that execute verified.

Filed by lane openRepoShape-1, on Brett Heap's word of 2026-10-17T10:21:32Z, under lane 3's v1.1.1 rule (#473, issuecomment-6216697223). It comes from #530's first rider on #457 (#457, comment, and L4-51 in issuecomment-6217341693).

Milestone: v1.1.1, not a regression. Main 31219459, from before #471's block, reports nine shape-copy-drift findings for the same source. A root-kept symlinked directory is a layout #504 accepts (tests/test_adopt_root_symlinks.py), so a real project can reach it.

Line

Direction

Tests

  • End to end with .github -> ci and * text=auto eol=crlf: execute verifies, the clone's ci/workflows/validate.yml is LF, and validate-pins.py exits 0.
  • update-shape.py on such a clone extends the block with the tracked spelling.
  • Controls:
    • no symlink, where the block is byte-identical to main's;
    • a symlink chain (.github -> l1 -> ci);
    • core.symlinks=false, which is still refused first.

Overlaps: scripts/shape_materialize.py is shared with the scaffold, and lane 3's #792 and lane 5's #731 (#692) edit it as well.

Lane: openreposhape-1 (openRepoShape-1)

🤖 Generated with Claude Code

Activity

  1. added this to the v1.1.1 milestone on Oct 17, 2026
  2. brettheap commented on Oct 17, 2026

    @brettheap
    ContributorAuthor

    CLAIMED — lane openRepoShape-1, session 300f8f46-004a-4e72-8587-4f192be2e108@Eagle, 2026-10-17T13:40:20Z, for #807

    Logged in lanes/log/openRepoShape-1.md at a95c95295ae054694b37d1dfaa21fa54b2253741.

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

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