[FIX] PENDING-180 filed: the self-planted needle in the polarity source_lacks() misses

Filed tonight rather than with the fix, because PENDING-168 is due for a ruling
and its evidence base is wrong until this is in the register. Twice today a fact
sat in a report instead of the register and was reasoned from as though ruled.

The finding is not a fifth tally mark. source_lacks() guards the NEGATIVE form —
this string must be absent — where self-planting makes a control always fail,
loudly. tarbuckle-seam.py:164 is the POSITIVE form, where self-planting makes it
always pass, silently. The mechanism was scoped to the direction that announces
itself. The defective control sits two lines above the correct one, same block,
same sitting.

Demonstrated rather than argued: disabling the entire rejection write path today
did not move it. 15/15 before, 15/15 after.

PENDING-168 now carries two corrections and should not be ruled before both land
— the interval (2 h 33 min, not seven hours) and this occurrence.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TbXpZup4GGCbLBbRJ79KpM
This commit is contained in:
David F Glidden
2026-09-09 17:31:11 +02:00
co-authored by Claude Opus 5
parent 71226a42d4
commit 5635763263
+28
View File
@@ -4176,3 +4176,31 @@ chk(f"a real session reads as WRAPPED end-to-end [{_v.count('wrapped')} of {len
⚠ **Stated so OWED-5 is not over-trusted on the strength of having been earned the same week.** The wrap's open question — *how many fleet controls have a denominator of zero* — is worth running and now has a **harder, more common sibling: how many controls have a predicate that does not implement the subject named in their own label.** The selftest is the demonstrated instance, which makes this a **recurrence of OWED-1 rather than a discovery**. ⚠ **Stated so OWED-5 is not over-trusted on the strength of having been earned the same week.** The wrap's open question — *how many fleet controls have a denominator of zero* — is worth running and now has a **harder, more common sibling: how many controls have a predicate that does not implement the subject named in their own label.** The selftest is the demonstrated instance, which makes this a **recurrence of OWED-1 rather than a discovery**.
**Awaiting:** Steward authorization, jointly with PENDING-178. ⚠ **Three of this item's four load-bearing claims have now been corrected by the jurist or by re-measurement within 24 hours of filing.** That is the configuration working, and it is also a reason to read the remaining claims as provisional rather than settled. **Awaiting:** Steward authorization, jointly with PENDING-178. ⚠ **Three of this item's four load-bearing claims have now been corrected by the jurist or by re-measurement within 24 hours of filing.** That is the configuration working, and it is also a reason to read the remaining claims as provisional rather than settled.
---
## PENDING-180 — The self-planted needle recurs in the polarity `source_lacks()` does not cover, and PENDING-168's evidence base changes before it is ruled
**Date:** 2026-09-09
**Tag:** [FIX]
**Summary:** `tarbuckle-seam.py:164` asserts `"line[:200]" in src and "log_silence(why, line)" in src` against its **own** source, where both literals appear inside the assertion itself. It has passed vacuously for its entire life. Filed tonight rather than with the `[FIX]` because PENDING-168 is due for a ruling and its evidence base is wrong until this is in the register.
**The finding that is not a tally mark.** PENDING-168's instance two is *"the self-planted needle written twice while watching for it"*, and `source_lacks()` was built as the mechanism so the shape could not be written again by accident. Its own docstring states the bug: *"A control that writes its needle as a literal PLANTS that literal in the very file it searches, so it can only ever fail."*
⚠ **That mechanism covers one polarity only.** `source_lacks()` guards the **negative** form — *this string must be ABSENT* — where self-planting makes the control always fail, loudly. The recurrence is the **positive** form — *this string must be PRESENT* — where self-planting makes the control always **pass, silently**. The louder failure got the mechanism; the quieter one did not, and it is the one that hides. **The structural fix was scoped to the direction that announces itself.**
**Two lines below the docstring that names the bug.** `source_lacks(__file__, "FALLBACK", "_LINE")` sits at `tarbuckle-seam.py:166` — correct, needle assembled from parts. The defective control is at 164, immediately above it, in the same `ck()` block, written in the same sitting.
**What it was supposed to guarantee, and does not.** *"S3 rejection log keeps the evidence, not just the verdict."* It cannot see whether the seam's rejection path does anything at all. Demonstrated today: `REJECT_LOGGING_ENABLED = False` made the entire rejection write path inert across all four surfaces (REVIEWED-136 AMD 1 condition G) and this control **did not move** — 15/15 before, 15/15 after. A behavioural control caught it; a source-string control could not.
**⚠ PENDING-168's count, stated precisely rather than incremented.** The doctrine names **four instances**, one of which ("the self-planted needle") already covers **two occurrences**. This is a **third occurrence of that instance**, so the evidence base goes from five occurrences to six while the number of named instances stays four — unless the steward reclassifies. **The unit of the count is the decidable question**, which is PENDING-146's CLASS E defect arriving inside the item that is about to be ruled. Recorded this way so a ruling does not enshrine "fourth instance" or "fifth" without choosing which is meant.
**⚠ PENDING-168 now carries TWO corrections and should not be ruled before both land.** (1) Its summary says *"care failed in seven hours"*; REVIEWED-136 corrects the interval to **2 h 33 min 24 s**, measured from receipt. (2) This item. Neither weakens the doctrine — the interval tightens it and this occurrence shows the structural fix was under-scoped — but both change what a ruling would be ruling on.
**Options:**
- **(a) Fix the one control** — assemble the needle from parts, as `source_lacks()` does. Repairs the instance.
- **(b) A positive-form counterpart to `source_lacks()`** — `source_has(path, *parts)`, joining its needle from fragments so it cannot self-plant. Repairs the class in the direction that was missed.
- **(c) Census first** — sweep every `in src` / `in source` assertion across the governed scripts for self-planted needles before repairing any, since the polarity argument predicts more of them and one instance is not a census.
**Recommendation: (c) then (b) then (a).** The polarity finding predicts siblings, and repairing the one found before knowing how many exist would be the instance-not-class error the executor directives name. ⚠ The census must state what it cannot see: a needle assembled from parts in a *defective* control is indistinguishable from a correct one by grep, so the sweep bounds the problem from below.
**Files affected:** `~/dotfiles/scripts/tarbuckle-seam.py:164`; a new helper beside `source_lacks()` in `tarbuckle-mumble.py` under (b); whatever (c) surfaces.
**Awaiting:** Steward authorization. ⚠ **Nothing is blocked:** the control's vacuity costs nothing today, because the behaviour it failed to guard was verified behaviourally in the same sitting. What is time-sensitive is only that PENDING-168 not be ruled on an evidence base this item changes.