Skip to content

Others are observed, never touched - #419

Merged
VeryComplexAndLongName merged 1 commit into
mainfrom
what-the-others-are-doing
Sep 12, 2026
Merged

Others are observed, never touched#419
VeryComplexAndLongName merged 1 commit into
mainfrom
what-the-others-are-doing

Conversation

@VeryComplexAndLongName

Copy link
Copy Markdown
Owner

Proposal and ADR only — no implementation yet. It is blocked_by: a-graph-of-what-is-running, which still has one open delegated item.

Why

On 2026-09-12 two agents worked on this repository at once — one in the primary checkout, one in …​.worktrees/proposals — and the owner could see only their own. Six proposals sat one directory away, written and invisible.

The tool answered honestly and uselessly. It reported the queue of the directory it was pointed at, which happened to be sitting on a branch whose pull request had already merged, so it said there were no active changes. Nothing on screen named the branch it had read, so "there is nothing to do" and "you are looking at a stale checkout" looked identical. That one line is task 5.1.

The decisions (ADR 0026)

Surveyed, never acted on. Read-only is a property of what the view can do, not of how it looks. A foreign change carries no action at all — recessed styling agrees with that fact rather than creating it.

The rule is specific because the failure is. A change's identity is the pair (working directory, name), not the name. Two directories can hold a change of one name at different content — that already happened here, a-graph-of-what-is-running is tracked in both — and an action routed by name alone would act on a different change while looking perfectly correct.

No git against a directory this host does not own. One git worktree list enumerates them; everything after is a filesystem read. The collision detection of ADR-0024 is deliberately not computed for a foreign directory: it costs a subprocess per directory per read, and answers a question the viewer cannot act on. Work not worth doing is not made cheap by moving it to the background — the background changes who waits, not what is spent.

A label, not an owner. Defaults to the directory's own name (proposals) — already chosen, already meaningful, distinct by construction since git will not put two working directories at one path. Overridable by a file in that directory. It lives in the directory and not only in the lease, because the lease exists only while a mutating run holds one, and the ordinary state is somebody editing files and holding nothing.

"Owner" asserts authority this view does not grant. a-lease-says-who already found that a word which overstates gets believed.

The git author, reported as different when it is. The label answers "which working directory"; the git author answers "whose commits would this be". Neither substitutes for the other — on one person's machine every directory reports the same author, which is correct rather than a defect. Said in a word, with colour agreeing and never carrying it alone.

Nothing foreign enters the local order. A column means depth in a declared order, and between changes on two branches the repository declares none. No relation is drawn between directories, for the reason a collision is not an edge in ADR-0025: it would be believed, because it would look like every other line.

A change in two directories is reported, not prevented and not resolved. It arises from ordinary branching — cut a directory from a main with active changes and every one comes along — so it is a condition to notice, not an error to refuse. It is inert while both copies are untouched: the archive of one side merges cleanly against an unmodified other.

Not in this change

Acting on another directory. A registry or daemon — the information is already on this disk, and a second source of truth would be free to disagree with the filesystem and be believed. Directories of other repositories or other machines.

Run statistics are a separate matter and a separate change: the audit log is per working directory and gitignored, so runs performed in a worktree are invisible to the recommendations built from it, and are destroyed when that directory is removed.

🤖 Generated with Claude Code

ADR 0026 and the change documents for surveying every working directory
of this repository.

Two agents worked on this repository at once and the owner could see
one. The tool reported the queue of the directory it was pointed at,
which was sitting on a branch whose pull request had already merged, so
it said there was nothing to do, and nothing on screen named the branch
it had read.

A working directory is not a remote thing: git worktree shares one
object store, so the survey is a local read with no daemon, no network
and no registry.

Read-only is what the view can do, not how it looks. A foreign change
carries no action, and identity is the directory together with the name
rather than the name alone, because two directories can hold a change of
one name at different content.

No git runs against a directory this host does not own. Collisions are
not computed for a foreign directory: a subprocess per directory per
read, answering a question the viewer cannot act on. Work not worth
doing is not made cheap by moving it to the background.

A directory carries a label, defaulting to its own directory name and
overridable by a file in it. Label and not owner: owner asserts
authority this view does not grant, and a-lease-says-who already found
that a word which overstates gets believed. It lives in the directory
and not only in the lease, because the lease exists only while a
mutating run holds one.

Where a lease records a git author different from this checkout's, the
survey says so in words, with colour agreeing rather than carrying it.
The label answers which directory; the git author answers whose commits
these would be.

Nothing foreign enters the local order and no relation is drawn between
directories, for the reason a collision is not an edge in ADR 0025.

A change present in two directories is reported, not refused: it arises
from ordinary branching, and is inert until a copy is edited.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@VeryComplexAndLongName
VeryComplexAndLongName merged commit ee02231 into main Sep 12, 2026
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant