diff --git a/scripts/tarbuckle-invoke.py b/scripts/tarbuckle-invoke.py index 27a2303..46cb02f 100755 --- a/scripts/tarbuckle-invoke.py +++ b/scripts/tarbuckle-invoke.py @@ -116,7 +116,20 @@ def main() -> int: ok, why = acceptable(line, max_words=MAX_WORDS_INVOKED, one_line=False) if not ok: log_silence(why, line) - return 0 # silence, never a repaired line — even here + # ⚠ THE LINE IS STILL WITHHELD — silence-on-violation is not relaxed, and the + # rejected text is never printed. But the INSTRUMENT reports its own state. + # + # Earned 2026-08-25, minutes after this surface shipped: the steward called him + # by name and got nothing at all, with no way to tell "he said nothing" from + # "the machinery ate it". On the unasked surfaces silence IS the design, because + # nobody asked. HERE SOMEONE ASKED. Constitutional Constraint 4 — the system + # must report its own limits; silent failures are architectural violations — + # and a named invocation returning bare silence is exactly that. + # + # stderr, so his voice keeps stdout to itself. + print(f"(called; nothing passed the net — {why}. logged, not shown.)", + file=sys.stderr) + return 0 print(line) return 0 @@ -177,6 +190,20 @@ def selftest() -> int: "nothing more was said" in build_prompt("S", "M", "")) # I4 — silence on violation survives here too. + # I5 — the asked/unasked distinction, executable. + ck("I5 the rejected line is still withheld", + "logged, not shown" in src and source_lacks(__file__, "print(line", ") # rejected")) + # ⚠ NEEDLE ASSEMBLED, for the fourth time today. A control that reads a corpus + # containing the control cannot write its needle as a literal — here the literal + # would have been counted alongside the code it was counting. source_lacks() covers + # ABSENCE checks; this is a proximity check, and the same rule governs it. + _n = "nothing passed " + "the net" + ck("I5 the instrument reports its own state", _n in src) + ck("I5n the note goes to stderr, never stdout", + "file=sys.stderr" in src[src.index(_n): src.index(_n) + 120]) + ck("I5nn the proximity predicate can fail", + "file=sys.stderr" not in src[src.index(_n): src.index(_n) + 5]) + ck("I4 violation path is silence, not repair", "log_silence(why, line)" in src and source_lacks(__file__, "def ", "repair("))