Skip to content

The retirement's header marker is carried by three of the twelve files --install places, so the fallback it documents does not cover the other nine #104

Open

Description

@brettheap

retire_commands (openRepoTools, landed in #45 under lane-collision-protocol
Amendment 18 Addendum 2) removes a retired word only where the file at
$OPENREPOTOOLS_BIN_DIR/<name> carries this installer's header marker:

grep -qF -e 'Installed on PATH by `openRepoTools --install`' -- "$target"

Nine of the twelve files --install places do not carry that sentence.
Measured at f9e63f4, on the files in INSTALLABLES:

openRepoTools    3
lane             1
lanes            1
park             0
resume           0
status           0
lane-handoff     0
lanes-edit.sh    0
lane-start       0
lane-end         0
link-estates     0
repos.tsv        0

So the retirement's evidence test is not a property of "a file this installer
placed" at all — it is a property of three files that happen to say that
sentence about themselves. restart was one of the three, which is why the act
works today and why nothing went red.

What it costs is the NEXT retirement. The day park, status,
link-estates or repos.tsv is retired, every installed copy on every host
fails the marker test — so each is NAMED AND LEFT with an rm printed beside
it, on hosts where the file genuinely is this installer's copy and the
retirement is exactly the act the person asked for. An installer whose
retirement works for three of its twelve words is one a person has to finish by
hand, which is the thing #45's own comment says a retirement must not be:

An installer whose only act is to stop writing a file is not a retirement; it
is a file nobody will ever clean up.

#103 (the --install receipt, closing #57) fixes this GOING FORWARD — a
digest-matched row removes a file whatever its text says, and it covers all
twenty-four placed files — but it cannot fix it BACKWARDS: a host that last
installed before receipts existed has no row for anything, and the marker is
all such a host has. Two exits, and they are not exclusive:

  1. Put the marker in every file --install places, so the fallback is
    actually the property it is documented as. That is a header line in nine
    files (and a comment line in repos.tsv, which is data with # comments
    already), plus a test that asserts every name in INSTALLABLES carries it —
    the assertion is what stops the next file arriving without it. It does
    nothing for copies already on disk, but from the next --install on, every
    host has the fallback the code claims.
  2. Say in retire_commands what the marker actually covers, so nobody
    reads that arm as "removes what this installer wrote". One comment, and it
    is worth writing whether or not 1 is done.

Found while reviewing #103 (Copilot round 1 on that PR asked about the
receipt's own ownership evidence, and the answer needed this measurement).
Not urgent: RETIRED=(restart) is the only retired word and it is one of the
three that carries the sentence.

Lane: openRepoTools-1

Activity

  1. brettheap commented on Oct 6, 2026

    @brettheap
    ContributorAuthor

    CLAIMED — lane openRepoTools-1, session df82f553-7803-49c4-8ddf-3f9acdcb8ee0@Eagle, 2026-10-06T20:40:16Z, for #104

    Logged in lanes/log/openRepoTools-1.md at 57404898280438dfb7413f995f838b6e76d6ed49.

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

    1. existing `CLAIMED —` comments on opensoft/openRepoTools#104:
       none
    2. `gh pr list --repo opensoft/openRepoTools --state all --search "#104"`, kept where the row or its body names `#104`:
       none
    3. `git ls-remote --heads git@github.com:opensoft/openRepoTools` branches naming `104` as a whole token:
       none
    
  2. brettheap commented on Oct 6, 2026

    @brettheap
    ContributorAuthor

    Deferred under Brett Heap's close-out direction of 2026-10-06 (no new feature PRs until the existing openRepoTools PRs are landed for the triad migration). Lane openRepoTools-1 claimed this, a writer read the ground and chose the shape, and stopped before writing code; the claim is released and the notes below are the handover.

    Measured at main 2080f3d: 5 of the 17 command files carry the Installed on PATH by marker — lane, lanes, claude-current, claude-restart-check and openRepoTools (the last only inside retire_commands' own grep pattern at line 928, not as a header); none of the six skill and command .md files has it; repos.tsv already starts with a # comment line, so whether it can carry the marker depends on its readers, not its format.

    Shape chosen (not built): the NARROW fix. The marker is evidence only for copies placed before the receipt (#57 / PR #103) existed, and adding a marker today cannot reach those copies on disk; every newer copy has a receipt row. So: a list of the names whose installed copies carry the marker; the marker arm of the retirement applies only to those names; the else-arm reworded from "is NOT this installer's copy" to "no receipt row and no marker: left"; a comment naming what the marker covers and why it is not added everywhere. Tests: the list against the files that carry the marker; one retirement per kind (receipt match, receipt mismatch, marker only, neither).

    Branch prepared (no commits): fix/install-marker-on-every-file-and-one-install-lock off main 2080f3d, local only; run git merge origin/main first. Shared with #106.

  3. brettheap commented on Oct 6, 2026

    @brettheap
    ContributorAuthor

    RELEASED — lane openRepoTools-1, session df82f553-7803-49c4-8ddf-3f9acdcb8ee0@Eagle, 2026-10-06T20:49:19Z, for #104 — deferred under Brett Heap's close-out direction of 2026-10-06; shape posted on the issue; no code; no PR

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