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 writes each neutral_product_pins: entry bare, so plan --pin 007@<commit> says adoption verified over a root whose own validate-pins.py refuses entry 7 #514
(lane openRepoShape-2, 2026-10-13T12:43Z) This lane's review of #435 (at 2795063) found this, and it is filed on Brett Heap's word ("file L2-10 as a v1.0.0 issue", 2026-10-13T12:42Z). It replaces checklist item L2-10 on #457, its parent.
The state. A person adopts with plan --pin <product>@<commit> --pin-source <clone>, and YAML reads the product name as a number: 007, 2026 or 1.5.
execute adopts, writes contracts/007-pin.yaml, and prints adoption verified, exit 0.
It renders the root's project.yaml with each product bare, neutral_product_pins: then - 007 (adopt-project.py:6784-6785 at main 47b1e06). The project's YAML reader reads that back as the number 7, and reads 2026 and 1.5 back as numbers too.
In the adopted root, scripts/validate-pins.py --root . exits 1 with FINDING neutral-pin-entry-malformed: project.yaml neutral_product_pins entry 7 is not a non-empty product name. validate-manifest.py says manifest ok. The root's validate.yml runs validate-pins.py, so the adopted project's first CI run is red.
Why v1.0.0. Brett Heap's word. The run says adoption verified over a root that its own validator refuses. Only a product name that reads as a number reaches it, and no open<Product> name does. But plan accepts such a name and check passes it.
Leave every other line of the rendered manifest byte for byte as it is.
How to test.
For 007, 2026, 1.5 and openGlass, run plan --pin <name>@<commit> --pin-source <a local clone>, then check and execute. In each adopted root, assert two things:
scripts/validate-pins.py --root . and scripts/validate-manifest.py --root . both exit 0;
neutral_product_pins: reads back as the text given.
The first three cases are red on main.
The review's probe is review435-27950638/tools/pin007.sh.
The scaffold side.scaffold-project.py:1259-1260 renders the same list the same way, "\n".join(f" - {p}" for p in pins). That is L2-11 on #459. It was read from the code and not run, so whether the scaffold's --pin accepts a product name that reads as a number has not been checked.
Evidence: handoffs/xFactory/attachments/lane-openRepoShape-2/review435-27950638/ in opensoft/brett-wip (fix-list.md O1, tools/pin007.sh, tools/o1-pin007-head-2795063.log).
Related: #273, which writes the quoted product:; #395, which quoted the text placeholders but not this list; #457, the parent.
CLAIMED — lane openRepoShape-2, session 81650e29-c906-4fe8-96c9-55580bfe0c44@Eagle, 2026-10-13T12:45:14Z, for #514
Logged in lanes/log/openRepoShape-2.md at 6c70c0a248cda9ca7da1a7591a0047b7f4e3f416.
The three reads (lane-collision-protocol Rule 1):
1. existing `CLAIMED —` comments on opensoft/openRepoShape#514:
none
2. `gh pr list --repo opensoft/openRepoShape --state all --search "#514"`, kept where the row or its body names `#514`:
none
3. `git ls-remote --heads git@github.com:opensoft/openRepoShape` branches naming `514` as a whole token:
none
Activity
brettheap commentedon Oct 13, 2026
CLAIMED — lane openRepoShape-2, session 81650e29-c906-4fe8-96c9-55580bfe0c44@Eagle, 2026-10-13T12:45:14Z, for #514
Logged in
lanes/log/openRepoShape-2.mdat6c70c0a248cda9ca7da1a7591a0047b7f4e3f416.The three reads (lane-collision-protocol Rule 1):
adopt-project.py: #181's misread gate asks a pin's product of the tab…
docs/release-notes/v1.0.0.md: brought up to main d41cc29, so section …
Merge origin/main e6fbd74 into fix/adopt-root-kept-symlinks: #514 cha…
family.py: `init` refuses to land in the standard's checkout and name…
Merge main e6fbd74 into fix/adopt-plan-quote-yaml-keywords (#181)
adopt-project.py: with #514 and #516 merged, `--pin null@<commit>`, `…
Merge main 8beb3d9 into fix/adopt-plan-quote-yaml-keywords (#181)
tests/test_adopt_plan_yaml_quoting.py: with #513 merged, `with_origin…
adopt-project.py: `y()` quotes what the plan's loader would read as a…