ci/woodpecker/pr/ci Pipeline was successful
F1 (demonstrated defect): surface 2 was a regex over raw YAML text, so a commented-out ci.yml invocation still counted as enumerated — #1017's own failure mode reproduced inside the fix, in the most common disable path there is. Comment lines are now skipped before matching; needles n8/c4 pin both polarities (a comment is not enumeration; a comment naming an absent path raises no false stale-enumeration). The residual trailing- comment limit is documented where the grep lives. F2 (structural): the guard was link [0] of the six-hop pnpm chain it guards, so severing that chain silenced guard and guarded together. ci.yml now invokes it directly from the sanitization step too — reachable from both surfaces it audits, so either path alone keeps one instrument running. F3 (vocabulary): failure line and header said 'reachable'; F1/F2 prove the guard measures NAMING. It now says 'enumerated' everywhere, matching the success line. Needles: 14 passed / 0 failed. Real tree: population 44, enumerated 25, excluded (signed) 19, surfaces 38, unchanged — F2's line adds redundancy, not membership. F1 demo replayed against the fix: commenting out test-install-migration.sh now fails loud (UNENUMERATED, rc=1). Written-by: pepper (sb-it-1-dt) Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01NsKce8iZuSuRnu3gVMCBKB