Others are observed, never touched - #419
Merged
Merged
Conversation
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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-runningis 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 listenumerates 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-whoalready 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