---
name: open-the-subindex-before-running-a-gate
description: "The split-out sub-indexes only work if you OPEN one — I ran a golden gate without reading GATE-TEST-INDEX.md, hit a trap it already covered ⭐⭐ with the remedy, and a peer handed my own filed craft back to me."
metadata: 
  node_type: memory
  type: feedback
  originSessionId: 4ec88076-5305-45a3-b60d-1e1b0d4aadf8
  modified: 2026-08-18T05:06:41.798Z
---

2026-08-18, v0.56.0 golden. Mid-run I tried to read a failed job's log, got
`run 32097943571 is still in progress; logs will be available when it is complete`, and reported to
doyle that the signature was **not yet knowable**. He then pulled it immediately via
`gh api repos/O/R/actions/jobs/<id>/logs` and I thanked him for the technique.

It was not his technique. It was mine — [[gh-job-log-refuses-while-run-in-progress]], measured
2026-08-04, carrying that exact remedy, and INDEXED at GATE-TEST-INDEX.md line 45 with ⭐⭐ and the
command spelled out inline. Findable, starred, and never opened: I ran a gate all session without
reading the gate/test sub-index, although MEMORY.md says in the sub-index pointer itself to read it
BEFORE authoring, changing, or running any gate/test/rig.

**Why:** the 2026-08-04 split moved 29 entries of gate/test craft OUT of MEMORY.md to defeat the
read-limit truncation. That trade only pays if the sub-index is opened at the moment of the act. An
entry that is filed, indexed and starred is worth exactly nothing if the root index is the only file
loaded, and the failure is silent — you do not experience a missing memory as missing, you
experience it as the tool having a limitation. I told a gater a constraint that was false, and the
correction cost him a round trip.

**How to apply:** the trigger is the ACT, not the topic. The first time in a session you touch a
gate, a rig, a test filter, or a CI log — before the first command, not after the first surprise —
open GATE-TEST-INDEX.md. Same for CI-INFRA-INDEX.md before box/pool/teardown work and
RELEASE-INDEX.md before any tag, publish or milestone close. Cost is one Read; the alternative is
re-deriving your own filed craft in front of a peer. Related: [[two-memory-roots-diverged]],
[[resumed-session-reground-before-acting]], [[truncated-grep-read-as-the-population]],
[[measure-what-costs-one-command]].

⭐⭐ **SECOND SIGHTING, 2026-08-21 (#201 instrument lane) — and this one cost me the trap the
sub-index carries, not just the remedy.** I authored a new heavy int rig from scratch (valve,
three arms, HEAVY registration) and never opened GATE-TEST-INDEX.md. Two scripted edits then
failed on exactly the mechanism [[scripted-edit-zero-match-refusal]] documents in a starred line:
a heredoc'd python anchor containing an em-dash does not survive the shell into python on this
box, so the ASCII anchor in the same script matched and the prose-punctuation one silently did
not. The refusal saved the file both times, so the cost was two round trips rather than a bad
edit — but it was a re-derivation of craft I had already filed.

The trigger in this file already said "authoring, changing, or running any gate/test/rig", and
AUTHORING A RIG is the case I skipped: the earlier sighting was a gate RUN, so I had filed the
rule against the shape that bit me rather than against the trigger I wrote. Reading a to-do
trigger as a description of its origin story is how a correct rule stops firing. If the act
involves a rig, a gate, a test filter or a CI log — including writing one that does not exist
yet — open the sub-index first.

⭐⭐ **THIRD SIGHTING, 2026-08-22 (TURNKEY #212 W4) — I opened the RIGHT index for the act and the
WRONG one for the QUESTION, and re-derived a ⭐⭐ entry in front of the builder who filed it.**

I opened GATE-TEST-INDEX.md at session start, before the first gate — the trigger fired exactly as
written. Then a lane hit `LNK1318: Unexpected PDB error` / `LNK4209 debugging information corrupt`,
and I proposed a novel mechanism (`mspdbsrv.exe` is per-user and shared across concurrent builds,
so pool isolation does not isolate it), ranked it first, designed a three-attempt contention
experiment around it, and sent it to two agents.

It is the **first ⭐⭐ entry in HAZARD-INDEX.md** ([[disk-full-reds-as-lnk1318-pdb-error]], line 48,
measured on THIS BOX 2026-08-04) — a full disk, the linker unable to grow a 333 MB pdb, and
*"nothing in the failure text says DISK"*. The filed entry is richer than what I reconstructed: it
carries a POSITIVE TELL (treqs alone survives, being the only leg that never links), hertz's
amendment that the tell's ABSENCE clears nothing, the rule that *the falsifier is free space AT RUN
TIME*, and the standing gap that no rig log records it. Free space was 4.75 GB when my own gate's
floor refused to start — the falsifier was one `df` away for hours.

**The trigger I had was about the ACT (running/authoring a gate) and the miss was about the
QUESTION.** MEMORY.md's own first line calls HAZARD-INDEX *"read when HUNTING a symptom"*, and a
build failure I cannot explain is a symptom hunt by definition. Opening the act-index made me feel
covered — a satisfied trigger reads as full coverage of a population it never claimed.

**So the trigger has two arms and they fire independently:**
- **ACT** — first touch of a gate / rig / test filter / CI log → **GATE-TEST-INDEX.md**;
  box/pool/teardown → **CI-INFRA-INDEX.md**; tag/publish/milestone → **RELEASE-INDEX.md**.
- **QUESTION** — the moment you are about to explain an unexplained red, name a mechanism, or call
  something novel → **HAZARD-INDEX.md**, BEFORE proposing the mechanism, not after the experiment.
**Tell that you owe the second arm: the words "that is interesting" or "novel", or reaching for a
mechanism you find elegant.** The boring filed answer is the one that is already written down.

Sibling cost the same day: [[fresh-pool-missing-fixture-bin-reads-as-a-code-red]] (filed 2026-08-21,
ONE DAY before) names the fixture-prebuild trap; we both re-derived it from a `capture-player` red
and I generalised its remedy without ever reading it. **Two of the three mechanisms this session
spent the most time on were already filed.**
