Repository navigation
family.py and validate-family.py: the git switch -c family/<act>-<member> remedy fails when an earlier act left that branch, and the docs spell the branch word two ways #607
Description
The git switch -c family/<act>-<member> remedy should say what to do when the branch exists, and the docs and NEXT lines should use one placeholder.
From the checklist triage of 2026-10-15; Brett Heap approved its recommendations at 2026-10-15T16:49:38Z. One pull request covers the lines below.
Lands after: #575.
Lines
- L2-46: the
git switch -c family/<act>-<member>remedy fails "already exists" when an earlier act left that branch. Where: scripts/family.py_checked_branch(:688-693),_switch_command(:673-676); validate-family.py_switch_line(on validate-pins.py and validate-family.py: THE LOCKSTEP RULE closes the count only where a leg or member is out of step, a lone digest or workflow-reference mismatch names itsbump-leg.pyline, and holder remedies branch first (#539) #575). Effort S; all. On main26c1600: Probe p3:git switch -c family/add-atlaswith that branch already present givesfatal: a branch named 'family/add-atlas' already exists(exit 128);_checked_branch's remedy at 26c1600 prints the line whatever exists. The validator half appears only on validate-pins.py and validate-family.py: THE LOCKSTEP RULE closes the count only where a leg or member is out of step, a lone digest or workflow-reference mismatch names itsbump-leg.pyline, and holder remedies branch first (#539) #575's head 0680799 (main's validate-family.py has noswitch -c), so the review's "fix both or neither" ties it to validate-pins.py and validate-family.py: THE LOCKSTEP RULE closes the count only where a leg or member is out of step, a lone digest or workflow-reference mismatch names itsbump-leg.pyline, and holder remedies branch first (#539) #575 (ct461x459-D2). (source)
Rides along (backlog; tick it here if the same change covers it)
- L2-45: family docs and
family.pyNEXT spell the branchfamily/add-<project>beside--member <org>/<Project>. Where: AGENTS.md:372; scripts/family.py:1328; templates/family-root/README.md:111; templates/family-root/AGENTS-shape.md:27. Effort S; all. On main26c1600: Cosmetic, and true at all four places at 26c1600; siblings.py and family.py:make siblingsasks about the family folder before it clones, clones each member on its tracking branch, andfamily.py siblingsruns the holder's own copy (#543) #578 (3e3c833) does not touch these lines, and validate-pins.py and validate-family.py: THE LOCKSTEP RULE closes the count only where a leg or member is out of step, a lone digest or workflow-reference mismatch names itsbump-leg.pyline, and holder remedies branch first (#539) #575 adds a third spelling,family/<verb>-<Project>, in validate-family.py, so it rides with L2-46 (AGENTS-shape.md is pinned, scripts/shape_materialize.py:536). (source)
Each line above is marked → this issue on its tracking issue. Tick it there too when this closes.
The lines as written on the tracking issues
L2-46 (nit; templates/family-root/scripts/validate-family.py and scripts/family.py, #575 review):
git -C <holder> switch -c family/<act>-<member>fails with "already exists" when an earlier act left a local branch of that name, and the remedy says nothing of it.
_switch_line(templates/family-root/scripts/validate-family.py:119-134at 93b68f6) prints theswitch -cline for theaddandremoveremedies.family.pywords its own family.pyadd,bumpandremovecommit straight onto the holder's tracking branch, andadd's NEXT pushes a<branch>that does not exist, though AGENTS.md says to land each as a pull request #487 refusal the same way:_switch_command(scripts/family.py:673-676) in the remedy of_checked_branch(:688-693).- rv539 ran it: with
family/add-<member>still local from the first try, theswitch -cline fails and the person has to knowgit switch <branch>(review575-93b68f6/tools/progress.md, the 23:54:29Z entry). It happens whenever an earlier act left that branch behind.- Direction: the review's rule is to fix both or neither. Say what to do when the branch exists (
git switch <branch>, or another name) in the validator's lines and infamily.py's remedy. The validator is a pinned copy, so bundle that half with the next change to it.
L2-45 (nit; templates/family-root/AGENTS-shape.md, templates/family-root/README.md, AGENTS.md and scripts/family.py, #575 writer): the family docs and
family.py's NEXT STEPS spell the branchfamily/add-<project>beside--member <org>/<Project>, two spellings for one value.
- At 0680799:
templates/family-root/README.md:111,templates/family-root/AGENTS-shape.md:27,AGENTS.md:372andscripts/family.py:1328. Pinned validators: THE LOCKSTEP RULE only where it applies, and remedies that name thegit switch -cstep (one shape bump) #539's fix round gave the holder's validator one placeholder,PROJECT_PLACEHOLDER = "<Project>", for the branch word and--memberalike (templates/family-root/scripts/validate-family.py:118-121,_switch_lineat:124-140). The four places above still show the pair.- The real branch word is the project's name lowercased (
_suggested_branch,scripts/family.py:661-670).<project>hints at that and nothing says it. rv539b confirmed the four lines and calls them docs outside Pinned validators: THE LOCKSTEP RULE only where it applies, and remedies that name thegit switch -cstep (one shape bump) #539's two validators (review575-93b68f6/reverify-0680799.md, "Not findings").- Direction: one placeholder in all four places, or one sentence saying the branch word is the name in lowercase.
AGENTS-shape.mdis a pinned copy (scripts/shape_materialize.py:536), so each holder takes that edit as oneupstream-changedrow; bundle it with the next change to the file. The holder's README is rendered once and is not pinned.
Activity
brettheap commentedon Oct 15, 2026
CLAIMED — lane openRepoShape-5, session 50cede29-ab82-4ca3-9f67-d98e1a58c8d2@Eagle, 2026-10-15T22:26:38Z, for #607
Logged in
lanes/log/openRepoShape-5.mdat1ea2ca44d413c7b4c1a0f105e9544dfd0f85c35b.The three reads (lane-collision-protocol Rule 1):
family.py and validate-family.py: where an earlier act left the branc…
family.py, validate-family.py and test_family_switch_branch_exists.py…
Merge main 95780dd (#637, #607) into fix/611-validate-family-head-git…
validate-family.py and family.py: a gitlink no section of HEAD's `.gi…
Merge main 95780dd (#638, #635, #640, #623, #637) into fix/610-pinned…
bump-leg.py and setup-project.py: the `git switch -c` line says under…
Pinned shape copies: one bump, so AGENTS-shape.md is true of every ro…