LearnNewsExamplesServices
Frontmatter
id13902
titleAdd deference hook phrases for steer handoff wording
stateClosed
labels
enhancementaitestingmodel-experience
assigneesneo-gpt
createdAtJun 23, 2026, 2:46 AM
updatedAtJun 23, 2026, 9:28 AM
githubUrlhttps://github.com/neomjs/neo/issues/13902
authorneo-gpt
commentsCount3
parentIssuenull
subIssues[]
subIssuesCompleted0
subIssuesTotal0
contentTrust
projected
quarantined0
signals[]
blockedBy[]
blocking[]
closedAtJun 23, 2026, 9:28 AM

Add deference hook phrases for steer handoff wording

Closed v13.1.0/archive-v13-1-0-chunk-5 enhancementaitestingmodel-experience
neo-gpt
neo-gpt commented on Jun 23, 2026, 2:46 AM

Context

A live operator side quest on 2026-06-23 identified two additional deference-register phrases that should be caught by the autonomous-turn Stop-hook phrase matcher:

  • Your steer on
  • if you'd rather

The current matcher surface is ai/scripts/lifecycle/deferencePhraseMatch.mjs. Its DEFERENCE_PHRASES list is intentionally tight and fixture-backed; it already excludes broad near-misses like should I, shall I, happy to, no rush, and whenever you want. These two additions are narrower than those broad forms and map to the same handoff-of-maintainer-judgment pattern the hook is meant to mirror.

Release classification: boardless / post-release tooling hardening. This is not a release blocker.

Live latest-open sweep: checked the latest 20 open issues at 2026-06-23T00:46:32Z; no equivalent open ticket found. A2A in-flight sweep: checked latest 30 messages at the same boundary; no competing lane-claim or lane-intent for this phrase addition. KB ticket sweep for deferencePhraseMatch DEFERENCE_PHRASES Your steer on if you'd rather found no equivalent ticket. Exact local sweep found the historical deference-hook origin surfaces and prior real prose containing if you'd rather, but no open duplicate for adding these fixtures.

The Problem

The deference hook currently catches phrases such as would you like me to, unless you want me, want me to, do you want me, your call, and your move. Recent live coordination produced adjacent wording that has the same behavior at an autonomous turn terminal:

  • Your steer on asks the operator to decide a lane that the agent should classify or route.
  • if you'd rather makes the agent's next action conditional on operator preference when peer/lane evidence should decide.

Without adding these fixtures, the hook remains blind to two observed forms of the same Helpful Assistant regression register.

The Architectural Reality

ai/scripts/lifecycle/deferencePhraseMatch.mjs owns the shared phrase list, phrase matching, and reminder text consumed by lifecycle Stop hooks. The helper uses case-insensitive boundary matching, so the new phrases should be added as literal lower/upper-case strings in DEFERENCE_PHRASES and covered by the existing focused unit-test surface.

The existing JSDoc states that broadening the list requires a falsifier-backed follow-up so the hook stays a mirror rather than a noisy leash. This ticket is that follow-up: two concrete phrases, not a generic widening of all conditional or polite language.

The Fix

Add the following strings to DEFERENCE_PHRASES in ai/scripts/lifecycle/deferencePhraseMatch.mjs:

  • Your steer on
  • if you'd rather

Update the focused hook tests under test/playwright/unit/hooks/ so both phrases are covered by the matcher/autonomous-turn behavior without changing the operator-dialogue carve.

Contract Ledger

Target Surface Source of Authority Proposed Behavior Fallback / Edge Case Docs Evidence
DEFERENCE_PHRASES in ai/scripts/lifecycle/deferencePhraseMatch.mjs This ticket + live operator side quest on 2026-06-23 Include Your steer on and if you'd rather as tight deference fixtures. Do not add broad catchalls like should I or happy to; keep phrase matching fixture-backed. Existing JSDoc remains accurate; update only if wording needs clarification. Unit test proves both phrases match case-insensitively and existing exclusions still hold.
Stop-hook deference behavior detectDeferencePhrase() and hook decision tests Autonomous turn terminals containing either phrase trigger the existing deference reminder path. Operator-in-loop dialogue still returns null / allowed behavior via the existing carve. Test names should make the autonomous-vs-operator carve visible. Focused hook/unit tests under test/playwright/unit/hooks/.

Decision Record impact

None. This aligns with the existing deference-register hook substrate from #13674 and does not amend an ADR.

Acceptance Criteria

  • DEFERENCE_PHRASES contains Your steer on.
  • DEFERENCE_PHRASES contains if you'd rather.
  • Focused unit coverage proves both phrases match through the shared matcher.
  • Focused Stop-hook coverage proves the phrases follow the existing autonomous-turn block path, or the PR body explains why shared matcher coverage is sufficient.
  • Existing broad near-miss exclusions remain unchanged unless the PR gives new falsifier evidence.

Out of Scope

  • No generic expansion to all conditional phrases.
  • No changes to the operator-dialogue carve.
  • No changes to lane-state parsing or no-hold state semantics.
  • No new hook architecture.

Related

Related: #13674

Retrieval Hint: deferencePhraseMatch DEFERENCE_PHRASES Your steer on if you'd rather helpful assistant deference hook

tobiu
tobiu Jun 23, 2026, 2:54 AM

please also add or steer me elsewhere.

@neo-gpt - 2026-06-23T00:55:24Z

Scope addendum

Operator follow-up adds one more positive fixture:

  • or steer me elsewhere.

This belongs in the same preference-handoff class: it makes the agent's next lane/action contingent on operator redirection instead of deciding from evidence or routing to peer/design channels.

Implementation note: keep the matcher consistent with the existing punctuation-boundary behavior. It is acceptable to store the phrase as the punctuation-free base form if the unit test proves the quoted punctuated form (or steer me elsewhere.) matches.

  • 2026-06-23T02:22:42Z @neo-gpt assigned to @neo-gpt
  • 2026-06-23T02:26:22Z @neo-gpt cross-referenced by PR #13907
  • 2026-06-23T02:29:58Z @neo-gpt referenced in commit 6e80437 - "fix(ai): ignore code-literal deference fixtures (#13902)"
tobiu referenced in commit 6185b8f - "feat(ai): add deference hook phrase fixtures (#13902) (#13907) on Jun 23, 2026, 9:28 AM
tobiu closed this issue on Jun 23, 2026, 9:28 AM