---
name: presence-control-scoped-to-the-faults-population
description: A presence-based control passes vacuously when the asserted token also appears in a HEALTHY part of the same artifact — scope the walk to the population the fault lives in.
metadata: 
  node_type: memory
  type: feedback
  originSessionId: c91b4116-10ae-4fd8-b1fa-4cc34de3a871
  modified: 2026-08-19T07:42:30.620Z
---

A PRESENCE control ("the walked set CONTAINS verb X") is only a control over the region where the
fault can live. Measured 2026-08-19 (KEYSTONE #182 W3): doyle ruled a presence arm for a SILENT
skeleton fault — a table cell that wrapped onto a continuation line, lost its `spt ` prefix, and so
was never seen by the CLI grammar walk. My first arm walked the WHOLE `docs/ER-SKELETON.md` and
asserted the set contained `api access-node-surface-mode`. That check passes with the broken row
still broken, because the artifact's own PREAMBLE prescribes the same verb in prose. The control
would have been green over the exact defect it was written for.

Fix: slice the population first (`skeleton_tier_table()` = the text between `## Rule tiers` and the
next blank line) and walk THAT. The negative arm then discriminates: the unamended row-4 text walks
CLEAN and yields a set WITHOUT the verb, while still yielding row 4's FIRST verb so the walk is
proven to have run at all.

**Why:** a token's presence answers "does this string appear anywhere in what I fed the walk", not
"does the broken site produce it". Any healthy sibling occurrence — prose, a doc-comment, an example,
a second row — satisfies it. The bug is invisible because the assertion is TRUE and the reason is
wrong ([[verdict-from-probe-competence]], [[a-predicate-without-its-tool-is-not-evidence]]).

**How to apply:** before writing a presence assertion, grep the fed text for the token and COUNT the
occurrences. More than one ⇒ name the population and narrow the input until exactly the fault's site
can produce it. State the slice in the cell's comment so the next reader sees the population was
chosen, not defaulted. Loud and silent faults still need separate controls
([[a-control-must-observe-the-defect-it-guards]] — a panic-expectation is blind to the silent one).
Kin: [[log-token-names-its-population-not-the-subsystem]], [[gate-population-excludes-consumers]].
