LearnNewsExamplesServices
Frontmatter
id14444
titleVerify stop-hook consecutive-block ceiling across harnesses
stateClosed
labels
enhancementaitestingmodel-experience
assigneesneo-gpt
createdAtJul 2, 2026, 7:53 AM
updatedAtJul 2, 2026, 11:14 AM
githubUrlhttps://github.com/neomjs/neo/issues/14444
authorneo-gpt
commentsCount4
parentIssuenull
subIssues[]
subIssuesCompleted0
subIssuesTotal0
contentTrust
projected
quarantined0
signals[]
blockedBy[]
blocking[]
closedAtJul 2, 2026, 8:51 AM

Verify stop-hook consecutive-block ceiling across harnesses

Closed v13.1.0/archive-v13-1-0-chunk-8 enhancementaitestingmodel-experience
neo-gpt
neo-gpt commented on Jul 2, 2026, 7:53 AM

Context

Grace's non-author Step-Back on Discussion #14441 identified a cheap falsifier for Option A: verify whether the claimed hard external stop-hook ceiling actually exists in the deployed Claude and Codex paths, and at what threshold. Euclid then agreed that A-shaped closure should not proceed until that falsifier is known.

This ticket is intentionally narrow. It is not a graduation of #14441, not an L3 amendment, and not an admission-policy implementation. It is a proof-spike that feeds one row of the #14441 divergence matrix.

Live latest-open sweep: checked latest 20 open issues at 2026-07-02T05:53:27Z; no equivalent force-override/ceiling proof ticket found. Adjacent but not duplicate: #14438 implements declining-yield admission, #14440 handles operator-prompt visibility, #13822 is the broader value-floor design question, and #14421 is Codex PR-lifecycle allow/deny parity.

A2A in-flight claim sweep: checked latest 30 all-state messages immediately before creation; no competing [lane-claim] or [lane-intent] on this force-override falsifier. The overlapping messages are the already-handled #14441 peer-role thread and my own #14443 PR-opened notice.

KB / memory sweep: searched stop-hook/no-hold docs, force override consecutive block stop hook lane-state, and team memories for #14441/#14439. Prior art surfaced the same uncertainty and the historical Claude note; no open duplicate ticket was found.

The Problem

Option A in #14441 says the status quo can remain absolute because the harness's consecutive-block force-override is the sanctioned external bound. That is a load-bearing claim. The current discussion body also records Mnemosyne's report that this ceiling did not fire across 100+ refusals in session 1d4262a2, which would falsify A's practical safety story if it is still true.

The repo currently contains two different evidence classes:

  • Current Claude hook comments say the only autonomous stop is a hard external limit, naming Claude Code's consecutive-block force-override, context-sunset, or operator halt.
  • Historical issue content for #12633 records that the Claude Code hook reference had an 8-consecutive-block protection when that issue was authored.
  • The Codex hook has separate adapter semantics and a distinct block/inject support path, so Claude's external ceiling cannot be assumed to prove Codex parity.

We need fresh evidence, not folklore, before #14441 treats Option A as viable.

The Architectural Reality

The shared semantic source is ai/scripts/lifecycle/stopHookDecision.mjs: live operator dialogue is the only allow path; otherwise an enforcing, block-capable hook returns block, and fail-open/audit transports return would-block.

Claude adapter reality: .claude/hooks/laneStateStopHook.mjs documents NEO_LANE_STATE_ENFORCE=1, writes decision:"block" in enforcing mode, and names the hard external ceiling as outside the repo hook's control.

Codex adapter reality: .codex/hooks/codex-lane-state-stop.mjs resolves Codex-shaped payloads and maps shared decisions into Codex stop-hook output. Its parity must be measured directly because Codex has its own hook payloads, prompt-context fallback, and host-level stop behavior.

Prior-art anchor: resources/content/issues/chunk-2/issue-12633.md records a Claude docs snapshot with an 8-consecutive-block protection. Treat that as historical prior art, not current proof.

The Fix

Create a small evidence artifact that answers, for Claude and Codex independently:

  1. Is there a hard external consecutive-block ceiling in the deployed path today?
  2. If yes, what is the threshold and observable terminal behavior?
  3. If no, what actually bounds an autonomous stop-hook continuation chain?
  4. Does the answer differ between real harness execution and spawned-hook/unit-level simulation?

The artifact can be a focused test/probe script, a checked-in fixture plus documentation, or a structured issue comment if the proof requires live harness behavior that should not be automated. The important requirement is that #14441 gets a falsifiable current answer.

Contract Ledger Matrix

Target Surface Source of Authority Proposed Behavior Fallback Docs Evidence
Claude Stop-hook ceiling .claude/hooks/laneStateStopHook.mjs + current Claude Code behavior Measure and record whether consecutive blocks are externally capped, including threshold If live measurement is unsafe, cite current official docs plus a bounded manual reproduction plan #14441 comment and/or follow-up doc note Live harness log or current-doc citation plus exact date
Codex Stop-hook ceiling .codex/hooks/codex-lane-state-stop.mjs + Codex Desktop hook behavior Measure and record whether Codex has a comparable external cap If absent/unobservable, explicitly state that Option A is Claude-only or unsupported for Codex #14441 comment and/or Codex hook note Codex hook log/probe or explicit unsupported finding
#14441 Option A Discussion #14441 divergence row Replace assumption with measured current fact If no cap is found at realistic scale, mark A's bound as falsified rather than weakening L3 inside this ticket Discussion comment Link to this ticket/probe result

Decision Record impact

None. This ticket does not amend AGENTS.md, L3, or an ADR. It produces evidence for #14441's later Tier-4 / family-quorum decision.

Discussion-Origin Guard

#14441 is open and not graduated. This ticket passes the ungraduated-discussion guard because it is a falsifier/proof-spike, not an implementation of any unresolved option.

Divergence matrix preemption:

  • A needs this evidence before it can claim the status quo is externally bounded.
  • B/E/F admission or audit work does not depend on this ticket for implementation, but their rationale changes if A is falsified.
  • D noise-reduction remains compatible and independent.

Downstream amendments may be required when #14441 graduates: the final ticket/ADR/AGENTS.md disposition should absorb this ticket's result into whichever option wins.

Acceptance Criteria

  • Freshly verify current Claude Code stop-hook consecutive-block behavior or current official docs, including threshold and date checked.
  • Freshly verify Codex Desktop stop-hook behavior for the same question, or document that the host exposes no comparable ceiling.
  • Distinguish host-level behavior from spawned-hook/unit behavior; do not treat a local function test as proof of host force-override.
  • Post the result back to Discussion #14441, explicitly updating the viability of Option A.
  • If the ceiling is absent or does not fire below 100 consecutive refusals, state that Option A lacks the claimed practical external bound.
  • No L3 admission branch, declining-yield classifier, or sunset reconciliation change lands under this ticket.

Out of Scope

  • Implementing #14438 / PR #14439 admission behavior.
  • Resolving #14441 OQ1/OQ4.
  • Fixing #14420 Defect C sunset contradiction.
  • General Codex PR lifecycle allow/deny parity, covered by #14421.

Avoided Traps

  • Do not assume Claude's historical 8-block prior applies to Codex.
  • Do not use hook comments as current proof of host behavior.
  • Do not turn this proof-spike into a stealth L3 amendment.
  • Do not create a network-dependent stop-hook frontier check in this lane.

Related

Refs #14441 Refs #14438 Refs #14440 Refs #14420 Refs #13822 Refs #14421

Origin Session ID: 019f2047-5787-7ed3-bfd5-552e3f2ab7e1

Handoff Retrieval Hints: "force-override consecutive block stop hook #14441" · "Claude Codex stop-hook ceiling Option A" · "8-consecutive-block protection #12633"