You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
adopt-project.py execute: each leg repository is asked about only as it is made, so a code leg whose name is taken leaves the spec leg created, on GitHub as under --local-remote-dir, and a --local-remote-dir that is a file or cannot be written ends in a traceback after check said plan ok #798
Goal: execute asks about both leg repositories, and about where they go, before it makes either, and check asks the same. So a taken name, or a --local-remote-dir that cannot hold them, is refused with nothing made.
Filed by lane openRepoShape-1 from #457's lines L1-72 and L1-73 (#457, comment) on Brett Heap's word of 2026-10-17T10:21:32Z, under lane 3's v1.1.1 rule (#473, issuecomment-6216697223). Each line was measured again on main bf1f099b with a stub gh.
Milestone: v1.1.1. On GitHub, an organisation that already holds <P>-code gets a stray private <P>-spec. Removing it needs the delete_repo scope. #188's N4 gave this case a notice; nothing prevents it.
Lines
L1-73, local run: the code leg's bare repository already exists. With <lrd>/Atlas-code.git there, check --local-remote-dir <lrd> says plan ok. execute then gives REFUSED creating the code leg repository. leg-remote-exists: …/Atlas-code.git already exists, exit 2, after Atlas-spec.git was made.
L1-73, GitHub run: the code leg's name is taken. This was simulated with a gh stub that logs every call and answers the code create with GitHub's Name already exists on this account (createRepository).
The only gh calls were gh repo create acme/Atlas-spec --private …, then gh repo create acme/Atlas-code --private ….
L1-72: an unusable --local-remote-dir.check --local-remote-dir says plan ok in all three of these cases:
a file at the path: execute exits 1 with a FileExistsError traceback at _create_leg_remotes;
a path under a parent this user cannot write in: a PermissionError traceback;
an existing directory this user cannot write in: REFUSED a git or gh command failed … git init -q --bare … Permission denied, exit 2.
Direction
Before _create_leg_remotes makes anything, ask both legs.
Under --local-remote-dir: whether either bare path exists (os.path.lexists), and whether the directory is, or can be made, a directory this user can write in, probed as _unwritable_work_dir probes a --work-dir. Refuse every finding at once, with NO_LEG_YET.
CLAIMED — lane openRepoShape-1, session 300f8f46-004a-4e72-8587-4f192be2e108@Eagle, 2026-10-17T10:44:35Z, for #798
Logged in lanes/log/openRepoShape-1.md at 92217f6f4d18823177b38b30dd91961acd9a33e5.
The three reads (lane-collision-protocol Rule 1):
1. existing `CLAIMED —` comments on opensoft/openRepoShape#798:
none
2. `gh pr list --repo opensoft/openRepoShape --state all --search "#798"`, kept where the row or its body names `#798`:
none
3. `git ls-remote --heads git@github.com:opensoft/openRepoShape` branches naming `798` as a whole token:
none
Activity
brettheap commentedon Oct 17, 2026
CLAIMED — lane openRepoShape-1, session 300f8f46-004a-4e72-8587-4f192be2e108@Eagle, 2026-10-17T10:44:35Z, for #798
Logged in
lanes/log/openRepoShape-1.mdat92217f6f4d18823177b38b30dd91961acd9a33e5.The three reads (lane-collision-protocol Rule 1):
adopt-project.py: `execute` asks about both leg repositories before i…
adopt-project.py: a `--local-remote-dir` under a link loop reaches th…
tests: the gh stubs and stand-ins that meet `execute`'s and `check`'s…
Merge main d8b8eb3 into fix/798-adopt-legs-asked-first: `folder_in_th…
adopt-project.py: a leg name is taken on GitHub only when `gh repo vi…
tests: one pins `check` runs as people run it, with no `--local-remot…
tests: the argument of `cmd_execute` is built before the `with pytest…
Merge main 3341992 into fix/798-adopt-legs-asked-first: `check` keeps #…
tests: the two `check` runs of #842's `test_pin_source_top_level.py` …
tests/test_adopt_check_plan_name.py and tests/test_adopt_project_is_t…
tests: the docstrings of five adopt test files and tests/gh_guard.py …
tests: the condition says `check` asks once nothing before it ends `c…
tests: check's `gh` reaches the guard in test_adopt_split_branch.py, …
tests/test_path_guard_hygiene.py and shape-doctor.py: a bare is_file/…
adopt-project.py: `check` and `execute` read one list of a plan's pro…