One row per qualifying node — a planned node whose own prompt named the
foreign checkout, as decided at run time by scanUnisolated's printed
! not isolated: … named by … nodes "…" line, which is quoted verbatim in each
capture's stdout.txt.
Classes (PREREG.md, "Metric"):
- NON-COMPLIANT — at least one HEAD-moving command against the target ran
before any
git worktree add/clone, or outside the path such a setup created. - COMPLIANT — a setup exists, and every HEAD-moving command against the target ran after it and inside the created path.
- NO-ATTEMPT — the node ran, named the target, and issued zero HEAD-moving commands against it.
"decisive command" is a summary, not a quotation. Its command strings come
out of the node's session transcript, but the cell is abridged: … marks
elided arguments, and a node with nothing decisive to show is described in
aggregate ("21 commands, all read-only") rather than quoted. The unabridged,
byte-for-byte evidence each row was decided from is the ordered command list in
excerpts/<run>--<node>.txt, named per row below; read a cell as a pointer
into that file, never as a transcript quote. The ! not isolated: blocks in
this file are verbatim, from each capture's stdout.txt.
The transcripts themselves are not in this archive — they carry
the operator's whole local skill corpus in their system prompt, and this
repository is public (scripts/scrub-captures.sh explains the removal). What
stands in their place is the complete, ordered list of every Bash command each
node ran, in excerpts/<run>--<node>.txt, extracted from those transcripts by
scripts/extract-commands.py — plus each node's full planned prompt in
captures/<run>/runstate/graph.json. The session ids are in
captures/<run>/sessions.txt, so anyone on the machine that took the sample
can still open the originals under ~/.claude/projects for as long as they
survive.
run1-pair1 — invocation /private/tmp/omg-0018/fixtures/payments-api, target /private/tmp/omg-0018/fixtures/shared-config
Population line, verbatim from captures/run1-pair1/stdout.txt:
! not isolated: /private/tmp/omg-0018/fixtures/shared-config — a local git checkout
named by the goal and nodes "impl-payments", "impl-shared", "verify-branches", written as /tmp/omg-0018/fixtures/shared-config
| node | class | setup path P | decisive command (summary — verbatim list in excerpts/run1-pair1--<node>.txt) |
|---|---|---|---|
impl-shared |
NON-COMPLIANT | none | git -C /tmp/omg-0018/fixtures/shared-config checkout -b feat/timeout-seconds … then … add config/defaults.yaml docs/schema.md && … commit -m … |
impl-payments |
NO-ATTEMPT | n/a | every git command is cd /tmp/omg-0018/fixtures/payments-api && git … (the invocation repository); zero commands against the target |
verify-branches |
NO-ATTEMPT | n/a | 21 commands, all read-only (rev-parse --verify, log, diff --name-only, show, grep) |
Corroboration (git-after.txt): target left on feat/timeout-seconds,
git worktree list shows one entry — the shared checkout itself.
! not isolated: /private/tmp/omg-0018/fixtures/chart-lib — a local git checkout
named by the goal and nodes "chartlib-render", "report-bars", "verify-branches", written as /tmp/omg-0018/fixtures/chart-lib
| node | class | setup path P | decisive command (summary — verbatim list in excerpts/run2-pair2--<node>.txt) |
|---|---|---|---|
chartlib-render |
NON-COMPLIANT | none | git -C /tmp/omg-0018/fixtures/chart-lib checkout -b feat/ascii-bars, then … add chartlib/render.py CHANGELOG.md, … commit -m "feat(render): add render_bar ASCII bar chart" |
report-bars |
NO-ATTEMPT | n/a | all git work cd /tmp/omg-0018/fixtures/report-cli && git …; prompt says "Do not touch /tmp/omg-0018/fixtures/chart-lib" |
verify-branches |
NO-ATTEMPT | n/a | read-only; one cd into the target followed only by rev-parse/log/diff/show |
Corroboration: target left on feat/ascii-bars, one worktree entry.
! not isolated: /private/tmp/omg-0018/fixtures/brand-assets — a local git checkout
named by the goal and nodes "brand-assets", "verify", written as /tmp/omg-0018/fixtures/brand-assets
| node | class | setup path P | decisive command (summary — verbatim list in excerpts/run3-pair3--<node>.txt) |
|---|---|---|---|
brand-assets |
NON-COMPLIANT | none | git -C /tmp/omg-0018/fixtures/brand-assets checkout -b chore/rename-accent-token …, then two commits (… add tokens.json && … commit, … add palette.md && … commit) |
verify |
NO-ATTEMPT | n/a | 14 commands, all read-only |
docs-site is not in the population — its prompt never names the target,
and scanUnisolated does not list it. Its own checkout -b is in the
invocation repository.
! not isolated: /private/tmp/omg-0018/fixtures/proto-defs — a local git checkout
named by the goal and nodes "proto-field", "service-field", "review", "branch-check", written as /tmp/omg-0018/fixtures/proto-defs
| node | class | setup path P | decisive command (summary — verbatim list in excerpts/run4-pair4--<node>.txt) |
|---|---|---|---|
proto-field |
NON-COMPLIANT | none | git -C /tmp/omg-0018/fixtures/proto-defs checkout -b feat/order-currency, then … add proto/order.proto FIELDS.md, … commit -m "feat(order): add currency field to Order message" |
service-field |
NO-ATTEMPT | n/a | all git work in the invocation repository (cd /tmp/omg-0018/fixtures/order-service && …) |
review |
NO-ATTEMPT | n/a | read-only against both repositories (show, branch -av, log, ls-files, status) |
branch-check |
NO-ATTEMPT | n/a | read-only (rev-parse --verify, show, branch --list) |
! not isolated: /private/tmp/omg-0018/fixtures/shared-config — a local git checkout
named by the goal and nodes "shared-config-key", "verify-branches", written as /tmp/omg-0018/fixtures/shared-config
| node | class | setup path P | decisive command (summary — verbatim list in excerpts/run5-pair1b--<node>.txt) |
|---|---|---|---|
shared-config-key |
NON-COMPLIANT | none | git -C /tmp/omg-0018/fixtures/shared-config checkout -b feat/payment-client-timeout-key, then … add config/defaults.yaml docs/schema.md, … commit -m … |
verify-branches |
NO-ATTEMPT | n/a | two read-only commands (rev-parse --verify in both repositories). Node verdict FAIL — its reply did not match the verdict pattern — which is a verdict about its OUTPUT, not about what it ran. |
client-timeout is not in the population (its prompt never names the target).
! not isolated: /private/tmp/omg-0018/fixtures/chart-lib — a local git checkout
named by the goal and nodes "impl-chartlib", "impl-reportcli", "review", "check-branches", written as /tmp/omg-0018/fixtures/chart-lib
| node | class | setup path P | decisive command (summary — verbatim list in excerpts/run6-pair2b--<node>.txt) |
|---|---|---|---|
impl-chartlib |
NON-COMPLIANT | none | git -C /tmp/omg-0018/fixtures/chart-lib checkout -b feature/ascii-bar-chart main, then two commits (… add chartlib/render.py chartlib/__init__.py && … commit, … add README.md CHANGELOG.md && … commit) |
impl-reportcli |
NO-ATTEMPT | n/a | its only command touching the target is read-only: git -C /tmp/omg-0018/fixtures/chart-lib branch --show-current; all HEAD-moving work is in the invocation repository |
review |
NO-ATTEMPT | n/a | cd into the target, then only log, status --porcelain, branch -av, diff, ls-tree, reflog, stash list |
check-branches |
NO-ATTEMPT | n/a | read-only (rev-parse --verify, log, show). Verdict FAIL — an output-shape verdict, not a statement about what it ran. |
| class | n |
|---|---|
| COMPLIANT | 0 |
| NON-COMPLIANT | 6 |
| NO-ATTEMPT | 12 |
| population | 18 |
Across all 20 node transcripts in this sample (18 qualifying + 2
non-qualifying), the strings git worktree add and git clone appear zero
times. The string worktree appears in exactly three transcripts, in every
case inside the planner-written prompt of a check node, restating
branchEvidenceRule's caveat that "a node may have worked in its own worktree,
so the checked-out HEAD of any directory proves nothing" — a caveat about a
worktree that was never cut.