◐ Shell
clean mode source ↗

[3.6] Fixed a handful of typos (GH-343) by Mariatta · Pull Request #364 · python/cpython

(cherry picked from commit 1cf2a80)

SonicField added a commit to SonicField/cpython that referenced this pull request

May 12, 2026
CRITICAL BUG IN ORIGINAL HOOK (a2e8808): the if-condition pattern
'if "$BUILD_SCRIPT" > "$LOG_FILE" 2>&1; then ... fi; EXIT=$?'
captured 0 in EXIT regardless of build outcome, because in bash an
if-then-fi block with only a tested (false) condition returns exit
status 0, not the condition's exit code.

Result: hook ALWAYS exited 0; never blocked any commit.

Discovered via the synthetic c4-class regression test dispatched by
supervisor 21:08:23Z (B). Test commit with intentional undefined
extern reference produced linker FAIL during the hook's build, hook
printed BLOCKED message, then commit went through anyway because hook
returned 0.

Fix: capture EXIT=$? immediately after the build invocation, then
test EXIT separately. Standard pattern.

Verified post-fix:
- Sanity: 'false; EXIT=$?; if [ "$EXIT" -eq 0 ]; then exit 0; fi;
  exit "$EXIT"' returns 1 (not 0).
- Real test: synthetic c4-class regression on test branch was BLOCKED
  by the fixed hook (commit attempt did not advance HEAD; build log
  showed linker undefined-reference error; "BUILD FAILED" + "commit
  BLOCKED" message printed; HEAD remained at c10 c6da141).

Implications for prior commits c8 + c9 + c10 (theologian build-first
discipline):
- Each PASS reported was confirmed by testkeeper Tier 1 PASS post-commit,
  so the substrate is safe.
- BUT the hook itself contributed zero structural enforcement — the
  PASSes were theologian-discipline + downstream Tier 1, not the hook.
- pythia python#364 'hook unfalsified-at-gate' substantive concern was load-
  bearing; falsifier test was the right call. Hook now actually enforces.

No source-code changes; scripts/ defensive-infra class.

SonicField added a commit to SonicField/cpython that referenced this pull request

May 12, 2026
…line)

Authored per supervisor 22:23:05Z disposition of pythia python#366 +
23:38:14Z directive (post-c13 codification batch). Moves synthetic-
falsifier-at-gate rule from chat-resident decision (D-1778621243) into
docs/methodology/ structural location, addressing pythia python#366's central
critique: rule-as-text vs rule-as-enforcement.

Files:
  NEW docs/methodology/synthetic_falsifier_at_gate.md  (+75 LOC)

Specifies:
- Motivation (2026-05-12 a2e8808 hook bash if-then-fi bug shipped
  through normal review; c8/c9/c10 hook-theatrical window; surfaced by
  pythia python#364 falsifier dispatch + 21:25Z synthetic test)
- Covered defensive-infra paths (scripts/pre-commit-*, .git/hooks/*,
  scripts/gate_phoenix.sh, scripts/build_phoenix.sh, sidecar/restart
  infra, *_verify.cpp static_assert files)
- 3-step test pattern (inject regression -> verify guard fires -> revert,
  cite outcome in commit body)
- Examples per defensive-infra class (pre-commit hook, Tier 1 gate,
  static_assert verifier, sidecar/restart enforcement)
- Self-falsifying disclaimer (rule is itself defensive infrastructure;
  2026-05-12 incident was unintentional first falsifier of the rule's
  NEED, not its sufficiency)
- Enforcement chain (author-side cite + gatekeeper APPROVE checklist +
  medic flag + supervisor dispose)
- Out-of-scope (routine code, docs-only, test-only, natural-failure bug
  fixes)
- Non-coverage caveat (raises floor, does not raise ceiling)

NOT a v2.x amendment per moratorium (D-1778554524) — operational
discipline / methodology document. Per pythia python#366 6-month-regret
framing: this addendum is the move-the-rule-from-chat-to-corpus
intervention; whether agents actually run synthetic-falsifier tests at
defensive-infra commit time is the falsifier of THIS document.

PRE-COMMIT BUILD: doc-only; pre-commit hook docs-path-skip per
a2e8808 self-config (verified 21:48:32Z generalist x86 install).