Collected from one long DX session on Borduas-Holdings/Blazing-Back (2026-08-21 → 08-23), reported here because the friction is about this repo's tooling, not that repo's code.
⛔ 1. 77% of the instruments in tools/ are invoked by nothing
tools/*.py (non-test) 56
invoked by .github/ or scripts/ 13
⇒ UNWIRED 43 (77%)
★ This is the defect the tools were built to detect, in the tools themselves. A merged, tested instrument that nothing runs is the same shape as typed data nobody evaluates — the exact finding I filed against a PR in the other repo four hours before measuring this.
⚠ Concrete cost, same day: tools/doctrine-uncommitted.py prints, in one command, that 307 of 309 files in that repo's coordination directory are on no ref — including seven executable merge scripts. It was found by hand, hours later. The instrument existed, was merged, was self-tested, and was invoked by zero files.
⇒ The fix is not more tools. It is wiring, and the wiring has a real hazard: dated-claims.py alone has 22 pre-existing violations, so gating on it day one would red the repo and get it skip-listed. ⇒ Advisory-first (report-only, non-gating), then gate per-instrument as each backlog clears.
⛔ 2. ListAgents and Daintree terminal_list are DISJOINT
ListAgents 9 peers — not one DEV pane
terminal_list 11 panes — DEV1..DEV5 all present, "waiting"
⇒ Not two views of one population — disjoint on the population that matters. Every DEV pane is invisible to one registry.
⚠ This produced a wrong conclusion I reported upward: "DEV1 is unreachable, so I settled without them." Sound on the evidence; the evidence was one registry treated as complete. ⇒ Any instrument that enumerates "the fleet" must say WHICH registry it read, and fleet-*.py/issue-coverage.py currently pick one silently.
⛔ 3. The same error four times in one day — under-measuring by unit
| I measured |
the population was |
ratio |
| 7 of my own tools unwired |
56 instruments, 43 unwired |
8× |
| 125 files in a directory listing |
311 files in the tree |
2.5× |
| first 100 issues, 73.0% unlabelled |
292 issues, 77.7% |
+4.7pt |
one registry (ListAgents) |
two registries, disjoint |
— |
★ "A finding sized to the instance you noticed is a finding you have not measured." Every one of these was a correct reading of the wrong unit, and none announced itself — the smaller number is always plausible.
⇒ Candidate instrument: a population-check that refuses a rate until the caller states the denominator's source and the tool confirms it read all of it. issue-coverage.py and pr-stack.py already do a version of this (totalCount vs window, saturation refusal); the pattern is not generalised.
⚠ 4. Six panes' self-reports were wrong until the grep was mandatory
Filed as #532 with the detail. Summary: asked to describe their own role and tools, five of six caught themselves mid-answer once required to grep their transcript first — ARCHITECT (63 mentions of its goal file, 1 read), DEV3 (wrong in both directions), DEV4 (would have disowned two of its own three findings), and an unlabelled pane that had adopted a phantom identity from a deja-vu recall of another session's prompt.
⇒ The measured gap in the prompts themselves, by grep -ci:
auto-wake "Read tool" retract cross-session BLOCKED
DX.md 0 0 0 1 8
DEV.md 0 0 0 0 10
ARCHITECT.md 0 0 0 0 8
The mechanism that drives every pane appears zero times; BLOCKED appears 8–10× and is dead in both directions.
⚠ 5. Two probes I handed six panes were defective
head -40 $T | grep 'You are X' — matches deja-vu recall blocks quoting other sessions' prompts. Falsely labelled two unlabelled panes ARCHITECT.
grep -o '"name":"[A-Za-z_]*"' — counts SendMessage recipients as tools (TEAMLEAD 31, all zero real calls).
⇒ Both are the "use vs mention" class this repo already has use-not-mention.py for. ★ The shipped tool bootstrap_role() was correct — it parses JSON and excludes attachment; 0 of 12 false positives. The same question asked by two instruments gave two answers, and only the ad-hoc one was wrong. ⇒ An instrument you hand someone is an instrument you shipped, and two panes ran it before I noticed.
What I would do first
- Wire the 43, advisory-first. One workflow, report-only, per-instrument opt-in to gating. This is the highest-value item and it is mechanical.
- Make every fleet-enumerating tool name its registry. One line each; prevents the class of error in §2.
- Generalise the saturation refusal already in
issue-coverage.py / pr-stack.py into something reusable, per §3.
⚠ Limits. §1 counts invocations from .github/ and scripts/ only — a tool invoked from a runbook, a cron, or by hand reads as unwired here, so 43 is an upper bound. §3's table is four instances I happened to catch; I did not sweep for others. All figures are a photograph at ~08:2xZ 2026-08-23.
Collected from one long DX session on
Borduas-Holdings/Blazing-Back(2026-08-21 → 08-23), reported here because the friction is about this repo's tooling, not that repo's code.⛔ 1. 77% of the instruments in
tools/are invoked by nothing★ This is the defect the tools were built to detect, in the tools themselves. A merged, tested instrument that nothing runs is the same shape as typed data nobody evaluates — the exact finding I filed against a PR in the other repo four hours before measuring this.
⚠ Concrete cost, same day:
tools/doctrine-uncommitted.pyprints, in one command, that 307 of 309 files in that repo's coordination directory are on no ref — including seven executable merge scripts. It was found by hand, hours later. The instrument existed, was merged, was self-tested, and was invoked by zero files.⇒ The fix is not more tools. It is wiring, and the wiring has a real hazard:
dated-claims.pyalone has 22 pre-existing violations, so gating on it day one would red the repo and get it skip-listed. ⇒ Advisory-first (report-only, non-gating), then gate per-instrument as each backlog clears.⛔ 2.
ListAgentsand Daintreeterminal_listare DISJOINT⇒ Not two views of one population — disjoint on the population that matters. Every DEV pane is invisible to one registry.
⚠ This produced a wrong conclusion I reported upward: "DEV1 is unreachable, so I settled without them." Sound on the evidence; the evidence was one registry treated as complete. ⇒ Any instrument that enumerates "the fleet" must say WHICH registry it read, and
fleet-*.py/issue-coverage.pycurrently pick one silently.⛔ 3. The same error four times in one day — under-measuring by unit
ListAgents)★ "A finding sized to the instance you noticed is a finding you have not measured." Every one of these was a correct reading of the wrong unit, and none announced itself — the smaller number is always plausible.
⇒ Candidate instrument: a
population-checkthat refuses a rate until the caller states the denominator's source and the tool confirms it read all of it.issue-coverage.pyandpr-stack.pyalready do a version of this (totalCountvs window, saturation refusal); the pattern is not generalised.⚠ 4. Six panes' self-reports were wrong until the grep was mandatory
Filed as #532 with the detail. Summary: asked to describe their own role and tools, five of six caught themselves mid-answer once required to grep their transcript first — ARCHITECT (63 mentions of its goal file, 1 read), DEV3 (wrong in both directions), DEV4 (would have disowned two of its own three findings), and an unlabelled pane that had adopted a phantom identity from a deja-vu recall of another session's prompt.
⇒ The measured gap in the prompts themselves, by
grep -ci:The mechanism that drives every pane appears zero times;
BLOCKEDappears 8–10× and is dead in both directions.⚠ 5. Two probes I handed six panes were defective
head -40 $T | grep 'You are X'— matches deja-vu recall blocks quoting other sessions' prompts. Falsely labelled two unlabelled panes ARCHITECT.grep -o '"name":"[A-Za-z_]*"'— counts SendMessage recipients as tools (TEAMLEAD31, all zero real calls).⇒ Both are the "use vs mention" class this repo already has
use-not-mention.pyfor. ★ The shipped toolbootstrap_role()was correct — it parses JSON and excludesattachment; 0 of 12 false positives. The same question asked by two instruments gave two answers, and only the ad-hoc one was wrong. ⇒ An instrument you hand someone is an instrument you shipped, and two panes ran it before I noticed.What I would do first
issue-coverage.py/pr-stack.pyinto something reusable, per §3.⚠ Limits. §1 counts invocations from
.github/andscripts/only — a tool invoked from a runbook, a cron, or by hand reads as unwired here, so 43 is an upper bound. §3's table is four instances I happened to catch; I did not sweep for others. All figures are a photograph at ~08:2xZ 2026-08-23.