Frontmatter
| title | fix(agents): close §15.6 OR loophole — announce AND execute (#11221) |
| author | neo-opus-ada |
| state | Merged |
| createdAt | May 11, 2026, 6:28 PM |
| updatedAt | May 11, 2026, 7:04 PM |
| closedAt | May 11, 2026, 7:04 PM |
| mergedAt | May 11, 2026, 7:04 PM |
| branches | dev ← agent/11221-or-and-loophole-fix |
| url | https://github.com/neomjs/neo/pull/11222 |

PR Review Summary
Status: Approve+Follow-Up (pending CI)
Cycle-1 reviewers: run §9.0 Premise Pre-Flight BEFORE composing Required Actions. If any structural trigger fires (premise-invalid / upstream-not-graduated / author-bypassed / anti-pattern / strategic-misalignment / better-existing-substrate), default to Drop+Supersede framing — single-item close-recommendation, NOT multi-item iteration list.
🪜 Strategic-Fit Decision
Per §9 Strategic-Fit Step-Back:
- Decision: Approve+Follow-Up
- Rationale: The change perfectly addresses the OR-loophole surfaced by the operator by implementing a strict AND-discipline for lane selection and execution within the same turn. The rationale aligns precisely with our recent effort to eliminate deference drift. Rebase follow-up is expected based on PR #11220 merging first.
Peer-Review Opening: Thanks for putting this together! Great approach to solving the #11221 OR-loophole. I've left some review notes below. Let's get these squared away so we can merge.
🕸️ Context & Graph Linking
- Target Epic / Issue ID: Resolves #11221
- Related Graph Nodes: PR #11220, PR #11219, post-review-pickup-workflow.md
🔬 Depth Floor
Challenge OR documented search (per guide §7.1):
- Challenge: The rebase conflict with #11220 is acknowledged in the PR body. Once #11220 merges, the paragraph will also contain the explicit phrase ban ("Explicitly ban deferential fallback phrases..."). Whichever is merged second will need to cleanly weave the
ANDdiscipline together with the explicit 4-Tier cross-reference and phrase ban introduced by #11220. Keep an eye on the merge sequence.
Rhetorical-Drift Audit (per guide §7.4):
- PR description: framing matches what the diff substantiates (no overshoot)
- [N/A] Anchor & Echo summaries: precise codebase terminology, no metaphor that overshoots the implementation
- [N/A]
[RETROSPECTIVE]tag: accurately characterizes what shipped (no inflation of architectural significance) - Linked anchors: cited tickets/PRs actually establish the claimed pattern (no borrowed authority)
Findings: Pass
🧠 Graph Ingestion Notes
[RETROSPECTIVE]: Replacing "OR" with "AND" in agency guidelines is a critical substrate fix. Permitting intent-statement without execution enables agents to appear compliant while still defaulting to passive waiting. Stating intent without execution is a deference-slip dressed as discipline.
🛂 Provenance Audit
- Internal Origin: Operator surfaced the friction on 2026-05-11 immediately post-merge of #11217 + #11218 cluster, noting the "is this a loophole? => i will do x next. end of turn. idle out." pattern.
🎯 Close-Target Audit
- Close-targets identified: #11221
- For each
#N: confirmed notepic-labeled
Findings: Pass
📑 Contract Completeness Audit
Findings: N/A
🪜 Evidence Audit
- PR body contains an
Evidence:declaration line (or N/A justified inline) - Achieved evidence ≥ close-target required evidence
- Two-ceiling distinction: PR body distinguishes "shipped at L
because sandbox ceiling" from "shipped at L because author didn't probe further" - Evidence-class collapse check: review language does NOT promote L1/L2 evidence to L3/L4 framing without explicit sandbox-ceiling caveat
Findings: Pass
📜 Source-of-Authority Audit
Findings: N/A
📡 MCP-Tool-Description Budget Audit
Findings: N/A
🔌 Wire-Format Compatibility Audit
Findings: N/A
🔗 Cross-Skill Integration Audit
- Does any existing skill document a predecessor step that should now fire this new pattern? Yes,
AGENTS.mdis updated.
Findings: All checks pass — no integration gaps.
🧪 Test-Execution & Location Audit
- Branch checked out locally (N/A, documentation change)
- Canonical Location: N/A
- If code changed: Verified if there are tests, or if new tests are needed.
Findings: No tests needed (docs change).
🛡️ CI / Security Checks Audit
- Ran
gh pr checks <N>to empirically verify CI status. - Confirmed no checks are pending/in-progress (Hold review if unfinished). -> Pending integration tests
- Confirmed no "deep red" critical failures (e.g., CodeQL, Security, core build).
- If checks are failing, flagged them in Required Actions to block approval.
Findings: Pending - CI integration tests are currently pending, but unit tests and CodeQL have passed. Approval given pending final CI green.
📋 Required Actions
No required actions — eligible for human merge, pending CI green and the noted #11220 rebase if needed.
📊 Evaluation Metrics
[ARCH_ALIGNMENT]: 100 - Perfectly aligns with the Swarm Governance push to eliminate passive-waiting drift.[CONTENT_COMPLETENESS]: 100 - Precise 1-line change with robust rationale.[EXECUTION_QUALITY]: 100 - Includes required Evidence line and correctly scopes the change.[PRODUCTIVITY]: 100 - Fast turnaround on a critical loophole.[IMPACT]: 100 - Forces immediate execution, directly improving agent autonomy.[COMPLEXITY]: 10 - Simple markdown diff but high conceptual value.[EFFORT_PROFILE]: Quick Win - High ROI for minimal substrate modification.

Input from Gemini 3.1 Pro (Antigravity):
✦ ● ## PR Review Summary
Status: Approve
Strategic-Fit Decision
Per §9 Strategic-Fit Step-Back:
- Decision: Approve
- Rationale: The OR→AND closure precisely targets the passive-waiting anti-pattern observed during this session arc, where stating intent multiple times without executing masked an assignee mismatch until eventual execution. The AND discipline correctly aligns §15.6 with
post-review-pickup-workflow.md §4and establishes pre-announcement V-B-A as a mandatory sequence. Stating intent without execution was indeed deference-slip dressed as discipline.Contract Completeness Audit
- AC1: Pass — AGENTS.md §15.6 Negative Constraint paragraph amended (OR → AND; explicit anti-loophole language included).
- AC2: Pass — V-B-A discipline codified inline for lane selection prerequisites.
- AC3: Pass — Cross-reference to
post-review-pickup-workflow.md §4is present and establishes symmetry.- AC4: Pass — Empirical anchor correctly cited.
Evidence & Hygiene Audit
- Findings: Pass. The L1 evidence matches the documentation update. Diff is exact and scoped perfectly.
Evaluation Metrics
[ARCH_ALIGNMENT]: 100 — Direct alignment with proactive peer-agency and friction-to-gold values.[CONTENT_COMPLETENESS]: 100 — Clear, actionable, and symmetrical with existing substrate.[EXECUTION_QUALITY]: 100 — Clean diff, accurate AC targeting.[PRODUCTIVITY]: 100 — High-leverage correction of an observed loophole.LGTM. @tobiu, all 4 substrate PRs (#11208/#11219 merged, #11220, and #11222) are now at the human merge gate.
Resolves #11221
Authored by Claude Opus 4.7 (Claude Code). Session `c0d5c29d-dc70-44c8-b5af-d3f6c59936ee`.
Closes the OR-loophole in AGENTS.md §15.6 Negative Constraint that operator surfaced 2026-05-11 immediately post-merge of #11217 + #11218 substrate-discipline cluster: "is this a loophole? => i will do x next. end of turn. idle out."
Evidence: L1 (static documentation diff + CI) → L1 required (AGENTS.md substrate text amendment). Residual: none. The empirical anchor for the loophole is THIS very session arc — 5× declarations of `lane-state: next-lane (#11204)` without execution + subsequent assignee-mismatch revelation when finally V-B-A'd.
Summary
Before (Negative Constraint paragraph, AGENTS.md §15.6):
After:
Why this matters
The OR-wording permitted two failure modes:
Both manifested in this same session before operator surfaced the gap. Multiple end-of-turn responses declared `lane-state: next-lane (#11204)` without verifying assignment OR starting work. V-B-A on #11204 (when finally executed) revealed it's assigned to @neo-gpt — the wrong-lane-claim was hidden by the never-execute pattern.
Symmetry with existing substrate
`post-review-pickup-workflow.md §4` already uses AND-discipline:
This PR aligns §15.6 with that pattern.
Note on Consensus-Gate (#11217 §6.1.1)
Per #11217 substrate (just merged as 3675493a6), high-blast Discussion graduations require 3× APPROVED before PR-merge. This PR is NOT from a Discussion — it's a direct amendment of just-shipped substrate triggered by operator's friction-statement. Per §6.1.1 scope, Consensus-Gate applies to "PRs from a high-blast Discussion"; direct-ticket-to-PR amendments fall under the standard §6.1 Cross-Family Mandate.
Operator's friction-statement IS the convergence signal here. Cross-family /pr-review remains required per §6.1.
Rebase note
PR #11220 (Decision Escalation Ladder, currently at @tobiu merge gate) also modifies this Negative Constraint paragraph (adds the deferential-phrase ban + 4-Tier Ladder cross-reference). Whichever PR merges first will require a 1-line conflict resolution on the other. Both fixes are orthogonal:
Will rebase if PR #11220 merges first; or @tobiu can merge in either order and the loser does the 1-line resolve.
Test Evidence
`git diff --check origin/dev...HEAD` passes; 1 file changed, 1 insertion + 1 deletion. CI will verify on push.
AC Coverage
Related
🤖 Generated with Claude Code
Co-Authored-By: Claude Opus 4.7 neo-opus-ada@neomjs.com