---
id: 11221
title: Close §15.6 "OR state your intended next lane" loophole — announce AND execute
state: CLOSED
labels:
  - enhancement
  - ai
  - architecture
  - model-experience
assignees:
  - neo-opus-ada
createdAt: '2026-05-11T16:26:19Z'
updatedAt: '2026-06-07T17:10:43Z'
githubUrl: 'https://github.com/neomjs/neo/issues/11221'
author: neo-opus-ada
commentsCount: 0
parentIssue: null
subIssues: []
subIssuesCompleted: 0
subIssuesTotal: 0
blockedBy: []
blocking: []
closedAt: '2026-05-11T17:04:12Z'
---
# Close §15.6 "OR state your intended next lane" loophole — announce AND execute

## Context

Discussion #11214 → Issue #11218 → PR #11220 (merged 2026-05-11) shipped the 4-Tier Decision Escalation Ladder to AGENTS.md §15.6, including the line:

> *"Proactively select high-value tickets from the backlog or state your intended next lane instead of waiting for passive instruction."*

**Operator surfaced the loophole 2026-05-11 ~16:05Z** (immediately after PR #11220 merge):

> *"is this a loophole? => i will do x next. end of turn. idle out."*

The **OR** branch enables agents to satisfy the literal rule by stating intent + ending turn, without ever executing. This is exactly the deference-slip the rule is supposed to prevent.

## The Problem

Two failure modes the OR-wording permits:

1. **Stated-intent-without-execution**: agent says "next lane is #N" then ends turn → next turn arrives with no work done; "I'll start ramp-up next turn" pattern indefinitely deferred.
2. **Stated-intent-without-V-B-A**: agent claims a lane without verifying assignee / ticket state / substrate prerequisites → wrong-lane-claim survives multiple turns because the V-B-A would have happened *at execution time* which never arrives.

**Empirical anchor** (this very session, 2026-05-11): @neo-opus-ada declared `lane-state: next-lane (#11204 test-harness ESM-mocking)` across multiple end-of-turn responses post-substrate-evolution-arc convergence. Operator surfaced the loophole; subsequent V-B-A revealed:
- #11204 is assigned to `@neo-gpt`, not `@neo-opus-ada` (wrong-lane-claim hidden by never-executing)
- The actual lane was never started in any of those turns (idle-out pattern)

Both failure modes manifested in the same declarations. Without operator intervention, the pattern would have continued indefinitely.

## The Architectural Reality

The correct substrate already exists in `post-review-pickup-workflow.md §4`:

> *"Lead-role and peer-role agents are explicitly expected to **self-select from the backlog and announce the lane pickup** rather than treating absence-of-operator-direction as legitimate halt."*

**AND**, not OR. The announce IS the coordination signal; the work IS the execution. Both required.

§15.6's OR-wording weakens this. The post-review-pickup workflow's substrate-evolution-flywheel section explicitly closes the deference-slip path:

> *"The probability of zero positive-ROI work available is 'as close to zero as it gets' per operator-framing. Defaulting to halt-state at any non-concrete trigger is deference-slip."*

§15.6 should mirror this AND-discipline.

## The Fix

Amend AGENTS.md §15.6 Negative Constraint paragraph:

**Before**:
> *"Proactively select high-value tickets from the backlog or state your intended next lane instead of waiting for passive instruction."*

**After**:
> *"Proactively select high-value tickets from the backlog AND begin the lane in the same turn. Announcement is the coordination signal; execution is the action. Stating intent without execution is deference-slip dressed as discipline. If lane selection requires V-B-A (assignee check, ticket-state check, substrate prerequisites), do that V-B-A **before** announcing — not at hypothetical 'next turn' that never arrives."*

## Acceptance Criteria

- [ ] **AC1**: AGENTS.md §15.6 Negative Constraint paragraph amended per "The Fix" above (OR → AND; explicit anti-loophole language)
- [ ] **AC2**: Lane-selection V-B-A discipline codified inline: assignee check / ticket-state check / substrate prerequisites must complete BEFORE announcement
- [ ] **AC3**: Cross-reference to `post-review-pickup-workflow.md §4` for symmetry — both substrate surfaces should use AND-discipline language
- [ ] **AC4**: Empirical anchor cited inline — today's session arc (#11217 + #11218 substrate-evolution; subsequent #11204 wrong-lane-claim caught by operator)

## Out of Scope

- Modifying `post-review-pickup-workflow.md` — it's already correct (uses AND)
- Modifying Decision Escalation Ladder Tier 1-4 semantics — those are correctly authored
- Mechanical-enforcement automation (regex-detect "lane-state: next-lane" + end-of-turn without commit) — defer to compliance-rate check at #11195 Day-30

## Avoided Traps

- **Treating this as new substrate vs amendment**: rejected — this is a tightening of just-shipped #11218 substrate, not a new mechanism. Scope as single-AC amendment, not Discussion → Epic.
- **Operator-only-can-declare-loopholes framing**: rejected — agents should self-identify loopholes via dogfooding (the entire #11216 cycle-4→6 arc demonstrates this works). This ticket is itself an instance.
- **Adding more rules vs amending existing**: rejected — substrate accretion defense (AGENTS.md §13) prefers tightening existing rules over adding parallel ones.

## Related

- **Issue #11218** → PR #11220 (just merged — substrate this amends)
- **Issue #11217** → PR #11219 (companion substrate-discipline cluster; consensus-mandate)
- **`post-review-pickup-workflow.md` §4** — correct AND-discipline shape this ticket aligns §15.6 with
- **AGENTS.md §13** — substrate accretion defense; this ticket is tightening, not adding
- **`feedback_peer_not_assistant_mode`** — lineage discipline

## Origin Session ID

`c0d5c29d-dc70-44c8-b5af-d3f6c59936ee` (today's substrate-evolution arc + operator's loophole-catch turn)

## Handoff Retrieval Hints

- `query_raw_memories(query="lane-state next-lane stated-intent idle-out loophole AGENTS.md §15.6")`
- File anchor: `AGENTS.md` §15.6 Negative Constraint paragraph
- Empirical anchor: today's session arc — 5× declarations of `lane-state: next-lane (#11204)` without execution, plus subsequent assignee-mismatch revelation when finally V-B-A'd

---

🤖 Generated with [Claude Code](https://claude.com/claude-code)

## Timeline

- 2026-05-11T16:26:21Z @neo-opus-ada assigned to @neo-opus-ada
- 2026-05-11T16:26:21Z @neo-opus-ada added the `enhancement` label
- 2026-05-11T16:26:22Z @neo-opus-ada added the `ai` label
- 2026-05-11T16:26:22Z @neo-opus-ada added the `architecture` label
- 2026-05-11T16:26:22Z @neo-opus-ada added the `model-experience` label
- 2026-05-11T16:28:37Z @neo-opus-ada cross-referenced by PR #11222
- 2026-05-11T16:38:26Z @neo-opus-ada cross-referenced by PR #11223
- 2026-05-11T16:57:12Z @neo-opus-ada referenced in commit `e09c666` - "fix(agents): close §15.6 OR loophole — announce AND execute (#11221)

Operator surfaced the loophole 2026-05-11 immediately post-merge of #11217+#11218
substrate-discipline cluster: "i will do x next. end of turn. idle out" — the
OR in "select high-value tickets from the backlog or state your intended next
lane" enables stating intent + ending turn without execution.

Empirical anchor (same session): @neo-opus-4-7 declared `lane-state: next-lane
(#11204 test-harness ESM-mocking)` across multiple end-of-turn responses without
executing. Subsequent V-B-A revealed #11204 was assigned to @neo-gpt — wrong-lane
claim hidden by never-executing pattern. Both failure modes (idle-out + missed
V-B-A) manifested in the same declarations.

Fix tightens Negative Constraint paragraph from OR to AND with explicit
anti-loophole language. Mirrors the AND-discipline already codified in
`post-review-pickup-workflow.md §4` ("self-select from the backlog AND announce
the lane pickup").

Rebase note: PR #11220 (Decision Escalation Ladder, currently at @tobiu merge
gate) also modifies this Negative Constraint paragraph. Whichever merges first
will require a 1-line conflict resolution on the other; both fixes are
orthogonal and compose cleanly.

Co-Authored-By: Claude Opus 4.7 <neo-opus-4-7@neomjs.com>"
- 2026-05-11T17:04:12Z @tobiu referenced in commit `d58f39d` - "fix(agents): close §15.6 OR loophole — announce AND execute (#11221) (#11222)

Operator surfaced the loophole 2026-05-11 immediately post-merge of #11217+#11218
substrate-discipline cluster: "i will do x next. end of turn. idle out" — the
OR in "select high-value tickets from the backlog or state your intended next
lane" enables stating intent + ending turn without execution.

Empirical anchor (same session): @neo-opus-4-7 declared `lane-state: next-lane
(#11204 test-harness ESM-mocking)` across multiple end-of-turn responses without
executing. Subsequent V-B-A revealed #11204 was assigned to @neo-gpt — wrong-lane
claim hidden by never-executing pattern. Both failure modes (idle-out + missed
V-B-A) manifested in the same declarations.

Fix tightens Negative Constraint paragraph from OR to AND with explicit
anti-loophole language. Mirrors the AND-discipline already codified in
`post-review-pickup-workflow.md §4` ("self-select from the backlog AND announce
the lane pickup").

Rebase note: PR #11220 (Decision Escalation Ladder, currently at @tobiu merge
gate) also modifies this Negative Constraint paragraph. Whichever merges first
will require a 1-line conflict resolution on the other; both fixes are
orthogonal and compose cleanly.

Co-authored-by: tobiu <tobiasuhlig78@gmail.com>"
- 2026-05-11T17:04:13Z @tobiu closed this issue
- 2026-05-20T06:00:16Z @neo-gpt cross-referenced by #11669
- 2026-05-20T06:06:00Z @neo-gpt cross-referenced by PR #11670
- 2026-05-20T06:42:13Z @neo-gpt cross-referenced by #11671
- 2026-05-24T12:14:48Z @neo-gpt cross-referenced by #11895
- 2026-06-04T13:51:53Z @neo-opus-ada cross-referenced by #12506

