Skip to content

Amendment 19 tooling: lanes hides CLOSED and DORMANT (--closed shows them; next free reads every row); lane-end --retire-dormant <repo> dry run then --yes = one commit; lanes-edit.sh archive-rows — first sweep: openxFactory's fourteen no-log rows #42

Closed

Description

@brettheap

Lane: openrepotools-3 (openRepoTools-3)

Tooling half of Lane Collision Protocol Amendment 19 — brettheap/new-workstation#36 (governing), #37 (DRAFT text). Brett Heap, 2026-09-14, verbatim: "openxfactory has 19 lanes showing with command 'lanes'. we need tools to clean them up." → "Retire them in one sweep (Recommended)", "Hide by default, --closed shows (Recommended)", "Amendment 19 (Recommended)". Measured: lanes in the openxFactory checkout lists 19 rows — 5 LIVE and 14 NO LOG (pre-Amendment-7 rows, no log, no session, mostly no workstation; five say unpushed/loss/owes).

Waits for ratification of #37. Built from main by lane openRepoTools-3, with or after #29 (Amendment 13's set-row-state, which the sweep uses where it exists).

Acts

  1. lanes: two states below PARKED — CLOSED (the log's last lane-kind line is ENDED/RETIRED) and DORMANT (no log, no live session on this workstation) — hidden by default and under --bound; --closed adds them (CLOSED with the closing verb and time; DORMANT as NO LOG with start date and state-cell head); combinable with --bound and --all. The next free position is computed over EVERY row (and the archive of act 4), so a retired <repo>-<n> is never reissued.
  2. lane-end --retire-dormant <repo> [--reason "<why>"] [--yes]: dry run by default — every DORMANT row of <repo> with start, workstation and state-cell head, FLAGGING cells that say unpushed / lost / loss / owes / LIVE; --yes → ONE commit: create lanes/log/<lane>.md with RETIRED — lane <lane>, session <writer uuid>@<ws>, <UTC>, lane:<lane> → retired-dormant by lane <writer>; reason <why>; was: <cell head verbatim capped 240> and set the row's state RETIRED <UTC> · <why> · was: <head> (via set-row-state where Amendment 13 tooling: lanes-edit.sh set-row-state, NOTED/RULED log verbs, history, migrate-state-cells; append-row-status retired — after #24 and #26 land #29 has landed, else append-row-status); refuse a lane with a live session here, a row whose log has a lane-kind line other than ENDED/RETIRED, and a repo with no dormant row; touch nothing outside the register and the logs. Implemented as lanes-edit.sh retire-rows <lane>… --reason … --writer <lane> (one commit, the lock held once) with lane-end as the word on PATH.
  3. lanes-edit.sh archive-rows <repo>: move every RETIRED row of <repo> from LANES.md to lanes/archive/LANES-retired.md in ONE commit naming each lane; every next-free reader and lanes --closed read the archive.
  4. Tests in tests/test_lane_helpers.sh: a seeded register with a live, a parked, an ended and three no-log rows → default lists one, --closed four; the dry run flags the unpushed cell; --yes writes three logs + three cells in ONE commit; a second run says nothing is dormant; a live lane refuses; the next free position skips a retired number; archive-rows moves the rows and the number still skips; the RETIRED line's session field is the writer's uuid (Amendment 7(b)); no file outside lanes/ touched.
  5. Docs: docs/README-lanes.md (the two states, the sweep, the archive); AGENTS.md's lane paragraph if a line moves.
  6. The first sweep: lane-end --retire-dormant openxFactory dry run shown to Brett Heap, then --yes on his word — the fourteen rows named on the governing issue.

🤖 Generated with Claude Code

Activity

  1. brettheap commented on Sep 14, 2026

    @brettheap
    ContributorAuthor

    Amendment 19 ratified 2026-09-14T13:46:16Z as drafted (brettheap/new-workstation#37 → main 69eb676). Buildable now, with or after #29; the first sweep (openxFactory's fourteen) runs on Brett Heap's word after the dry run is shown to him.

  2. added a commit that references this issue on Oct 3, 2026
    c1bac0d
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

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions