---
id: 11160
title: Lead-role end-of-turn Pre-Flight reasoning-statement + anti-deference anti-patterns
state: CLOSED
labels:
  - documentation
  - enhancement
  - ai
  - model-experience
assignees:
  - neo-opus-ada
createdAt: '2026-05-10T23:15:12Z'
updatedAt: '2026-05-10T23:19:44Z'
githubUrl: 'https://github.com/neomjs/neo/issues/11160'
author: neo-opus-ada
commentsCount: 1
parentIssue: null
subIssues: []
subIssuesCompleted: 0
subIssuesTotal: 0
blockedBy: []
blocking: []
closedAt: '2026-05-10T23:19:44Z'
---
# Lead-role end-of-turn Pre-Flight reasoning-statement + anti-deference anti-patterns

## Context

`feedback_lead_role_decision_thresholds` (2026-05-08, memory anchor): *"when operator delegates lead ('your call!'), EXECUTE on options I myself recommended; DON'T present another A/B/C menu. Reserve operator checkpoints for: (1) destructive-action auth, (2) genuinely-ambiguous-scope, (3) cross-family deadlock. Empirical anchor 2026-05-08 PR #10933: 8h lost across 3 agents because all idled out waiting for decisions within their own analyses."*

This discipline is codified in `.agents/skills/lead-role/references/lead-role-mode.md` (graduated via #11028), but **does not mechanically enforce decisiveness at turn-boundary**. The proven primitive that works for analogous disciplines elsewhere — Pre-Flight reasoning-statement (AGENTS.md §3 commit + §4.2 add_memory) — is missing.

**Empirical anchor 2026-05-10 (this session):** I (Opus, lead-role-active per operator's earlier delegation) slipped into deference 3+ times today even after operator-corrections:

| Slip | Context |
|---|---|
| "Standing by for your direction" | After PR #11158 review-handoff completion |
| "Continuing audit or halt — your call" | After cleanup-batch completion with positive-ROI work remaining |
| "Lean toward option N if you'd like" | Multiple substrate-cleanup framings |

Operator-correction (2026-05-10): *"claude => lead role => not 'my call'. what is missing in the skill? friction -> gold?"* — pointing at substrate-gap directly.

**Pattern:** knowing the discipline ≠ applying it reflexively at turn-boundary. Same root pattern as V-B-A failures elsewhere today — discipline-as-knowledge vs discipline-as-reflex.

## The Problem

`lead-role-mode.md` describes the discipline but lacks:
- **Per-turn reflex pattern** (Pre-Flight reasoning-statement) that fires before turn yield
- **Anti-pattern table** listing concrete failure-mode framings ("your call" / "lean toward X if" / "A/B menu on already-recommended options")
- **Trigger-phrase detection** flagging deference-shaped language in lead-role-active mode

Without mechanical reflex, the discipline lives as knowledge an agent has to actively remember rather than a reflex that fires automatically. The proven counter-pattern: Pre-Flight reasoning-statement primitive from AGENTS.md §3 + §4.2 (commit-format + add_memory).

## The Architectural Reality

- **Skill payload location:** `.agents/skills/lead-role/references/lead-role-mode.md`
- **Sibling primitive:** AGENTS.md §3 Pre-Commit Hard Gates Pre-Flight Check (proven to surface commit-format discipline at action-boundary) + §4.2 Consolidate-Then-Save Pre-Flight (proven to enforce end-of-turn memory save)
- **Authority memory:** `feedback_lead_role_decision_thresholds` (Opus, 2026-05-08)
- **Empirical anchor:** this session's 3+ deference-slip instances (Opus, 2026-05-10)

## The Fix

Extend `.agents/skills/lead-role/references/lead-role-mode.md` with:

### 1. End-of-Turn Pre-Flight Reasoning-Statement

Add to the skill payload (canonical Pre-Flight shape, mirrors AGENTS.md §3/§4.2):

> **Pre-Flight Check (end of every lead-role-active turn):**
>
> Before yielding turn, state explicitly in reasoning:
>
> *"Pre-Flight: lead-role active. Next action is [X / halting because Y]. Operator checkpoint NOT triggered (not destructive-action auth, not genuinely-ambiguous-scope, not cross-family deadlock)."*
>
> This commitment-statement is the gate that permits yielding turn. The §3/§4.2 Pre-Flight patterns prove this primitive works as a reflex enforcement.

### 2. Anti-Pattern Table

Add to lead-role-mode.md:

| Anti-pattern | Why it fails the lead-role discipline |
|---|---|
| "Continuing X or halting — your call" framing on routine continuation | Lead-role deference inversion; routine continuation IS lead-role authority, not operator-decision territory |
| Presenting A/B menu on already-recommended options | Re-asking for direction operator already gave; converts decisive recommendation into reverse-deference |
| "Lean toward X if you'd like" softening on bounded decisions | Soft-deference still triggers operator-check expectation; "lean toward X" → just execute X |
| "Standing by for your direction" after batch completion with positive-ROI queue remaining | Inverts leased-driver-must-not-idle discipline; positive-ROI continuation is lead-role authority |
| "I'm not sure if I should..." framing on routine continuation | Discipline-as-knowledge inversion; lead-role agent is the substrate that decides |

### 3. Trigger-Phrase Detection

Flag the following phrases as anti-pattern signals during lead-role-active mode:
- "your call"
- "what do you prefer"
- "lean toward X if"
- "standing by for your direction" (in routine-continuation context)
- "happy to continue or halt"

Detection serves as a self-check: if any of these appear in draft response while lead-role-active, agent MUST replace with decisive action statement.

## Contract Ledger Matrix

| Target Surface | Source of Authority | Proposed Behavior | Fallback | Docs | Evidence |
|---|---|---|---|---|---|
| `lead-role-mode.md` Pre-Flight section | AGENTS.md §3/§4.2 proven primitive | New "End-of-Turn Pre-Flight Check" section with reasoning-statement template | None — primitive is reflex-enforcement | Inline in skill payload | L1: this session's 3+ empirical slip-instances; operator-corrected |
| `lead-role-mode.md` Anti-Pattern Table | `feedback_lead_role_decision_thresholds` memory anchor | New table with 5 enumerated failure-modes | None — concrete examples are the discipline | Inline in skill payload | L1: derived from empirical slip-instances |
| Trigger-phrase list | This ticket | Self-check list embedded in skill payload | Manual discipline | Inline | L1: derived |

## Acceptance Criteria

- [ ] **AC1:** `.agents/skills/lead-role/references/lead-role-mode.md` gains an "End-of-Turn Pre-Flight Check" section with reasoning-statement template matching the AGENTS.md §3/§4.2 shape.
- [ ] **AC2:** Anti-pattern table added enumerating the 5 deference-shaped failure-modes from "The Fix" above.
- [ ] **AC3:** Trigger-phrase detection list embedded in the skill payload as self-check signal.
- [ ] **AC4:** Cross-link from AGENTS.md §21 Workflow Skills table or §22 Mailbox Check Pre-Flight to the new lead-role Pre-Flight (so it surfaces at turn-boundary checkpoints).
- [ ] **AC5:** Empirical-anchor section in skill payload references this session's slip-instances + operator-correction quote.

## Out of Scope

- **Mechanical hook that grep-blocks "your call" / "lean toward X if" in agent output** — discipline-first; escalation only if Pre-Flight + anti-pattern table proves insufficient after 1-2 sessions of observation.
- **Auto-detection of lead-role-active vs peer-role-active state for trigger-phrase scoping** — manual self-check at turn-boundary; auto-detection is heavier scope, defer.
- **Extending the same Pre-Flight pattern to /peer-role skill** — sibling skill, separate ticket if peer-role exhibits analogous failure mode.

## Avoided Traps

- **Frame as AGENTS.md core-value update instead of skill payload extension**: rejected. The discipline is operating-mode-specific (lead-role); doesn't warrant AGENTS.md elevation. Skill payload extension is the right substrate tier.
- **Skip the trigger-phrase list as "obvious"**: rejected. The empirical anchor (3+ slips in one session after the discipline was already memory-anchored) shows the discipline doesn't fire reflexively without trigger-shape codification.
- **Bundle with /peer-role skill update**: rejected. Per-skill scope is bounded; peer-role analogous extension is filable separately if observed.
- **Defer until N more empirical anchors**: rejected. Per `feedback_substrate_scope_restraint` Drop+Supersede pattern, single high-cost empirical anchor (3+ slips in one session) is sufficient signal when the prescription is bounded.

## Related

- **Predecessor skill ticket:** #11028 (closed, graduated lead-role skill from Discussion #11024)
- **Memory anchor:** `feedback_lead_role_decision_thresholds` (Opus, 2026-05-08, empirical anchor PR #10933 8-hour swarm idle)
- **Sibling Pre-Flight primitives:** AGENTS.md §3 Pre-Commit Hard Gates + §4.2 Consolidate-Then-Save (proven reflex-enforcement primitives)
- **Empirical anchor (today):** 2026-05-10 session — 3+ slip-instances after operator-delegated lead-role; operator-correction *"claude => lead role => not 'my call'. what is missing in the skill? friction -> gold?"*
- **Core-value substrate:** #11092 (AGENTS.md §13.X friction → gold + §3.5 V-B-A core values) — this ticket is friction → gold conversion at the skill-tier per #11092's core-value mandate

Origin Session ID: c2912891-b459-4a03-b2af-154d5e264df1

Retrieval Hint: `query_raw_memories(query="lead-role deference slip your call routine continuation Pre-Flight reasoning statement anti-pattern table")`

## Timeline

- 2026-05-10T23:15:14Z @neo-opus-ada added the `documentation` label
- 2026-05-10T23:15:14Z @neo-opus-ada added the `enhancement` label
- 2026-05-10T23:15:14Z @neo-opus-ada added the `ai` label
- 2026-05-10T23:15:14Z @neo-opus-ada added the `model-experience` label
- 2026-05-10T23:15:34Z @neo-opus-ada assigned to @neo-opus-ada
### @neo-opus-ada - 2026-05-10T23:19:44Z

## V-B-A 2026-05-10: substrate-tier error — closing as wrong-shape

Closing this ticket. Operator-correction immediately after filing: *"feedback_lead_role_decision_thresholds => that is a claude code memory md file which you created. and which you can change if needed."*

**Substrate-tier mistake:** I filed this Neo ticket extending `.agents/skills/lead-role/references/lead-role-mode.md` (Neo-wide skill) when the relevant substrate for MY empirical slip-pattern is `feedback_lead_role_decision_thresholds.md` (my private Claude Code memory file at `/Users/tobiasuhlig/.claude/projects/-Users-Shared-github-neomjs-neo/memory/`).

**Resolution:** updated my private memory file directly with the Pre-Flight reasoning-statement, anti-pattern table, trigger-phrase detection list, and 2026-05-10 empirical anchor — same content this ticket proposed for the skill file. The discipline lives in agent-private substrate, loads automatically via claudeMd routing, applies to MY reflex-pattern.

**Wider substrate-tier lesson** (also added to the memory file as anti-pattern): friction-→-gold flow for agent-private-failures lands in agent-private-substrate, NOT in Neo-wide skill tickets. Same drift class as the session's other substrate routing errors (e.g., #11154 cross-PR drift — partially redundant with #11092 universal V-B-A core-value).

**Could have value as a peer-suggestion if other agents exhibit the same slip pattern** — i.e., the Pre-Flight + anti-pattern table content could land in lead-role-mode.md if Gemini or GPT show analogous deference-slip patterns. But that's NOT my empirical anchor today; closing as premature substrate-evolution. If peer empirical evidence surfaces, re-file with cross-family anchors.

Closing as `not_planned` — wrong substrate tier.

— @neo-opus-ada (Origin Session: c2912891-b459-4a03-b2af-154d5e264df1)

- 2026-05-10T23:19:45Z @neo-opus-ada closed this issue
- 2026-05-11T15:32:28Z @neo-gemini-pro cross-referenced by #11218
- 2026-05-11T15:45:26Z @neo-opus-ada cross-referenced by PR #11220

