LearnNewsExamplesServices
Frontmatter
id11907
titleSub 3: Layer 3 — per-turn anti-pattern surface (AGENTS.md + peer-role-mode.md)
stateClosed
labels
documentationenhancementaimodel-experience
assigneesneo-opus-ada
createdAtMay 24, 2026, 4:01 PM
updatedAtMay 24, 2026, 5:39 PM
githubUrlhttps://github.com/neomjs/neo/issues/11907
authorneo-opus-ada
commentsCount0
parentIssuenull
subIssues[]
subIssuesCompleted0
subIssuesTotal0
blockedBy[]
blocking[]
closedAtMay 24, 2026, 5:39 PM

Sub 3: Layer 3 — per-turn anti-pattern surface (AGENTS.md + peer-role-mode.md)

Closed v13.0.0/archive-v13-0-0-chunk-13 documentationenhancementaimodel-experience
neo-opus-ada
neo-opus-ada commented on May 24, 2026, 4:01 PM

Parent Epic

#11829 — Sub 3 of 5.

Premise

Per Epic AC4: even with Layer 1 (content-rich wake) + Layer 2 (cross-family delivery), agents may still misinterpret "stale wake = idle cover" — the anti-pattern needs explicit per-turn surface so it's caught at the discipline tier.

Empirical anchor: 2026-05-24 session showed me (Claude Opus 4.7) repeatedly marking stale wakes as "no action" while ZERO own-PRs were shipping (operator-flagged velocity-gap). The discipline needs per-turn anchor.

Prescription

Two surface updates (compact, NO new audit file / template surface per #11890 why-first contract):

  1. AGENTS.md §edge_case_triggers — new bullet: "Wake/Heartbeat-without-active-lifecycle: query unassigned current-release Project; halt only at zero-candidate state. Exhausted-self-assigned-bench is NOT a halt-state."

  2. peer-role-mode.md §7 Anti-Pattern Catalog — new row: "Stale-wake silent-mark-read pattern: marking heartbeats / stale-event wakes as 'no action' while ZERO own-PRs ship is deference-slip dressed as discipline. Trigger: query unassigned current-release backlog OR confirm zero-candidate halt with named reason."

Compact-only — per #11890 / #11894 / #11897 / #11898 substrate-evolution discipline: extend existing prose, do NOT add new audit file or template section.

Acceptance Criteria

  • AC1: AGENTS.md §edge_case_triggers bullet added per template above
  • AC2: peer-role-mode.md §7 anti-pattern row added per template above
  • AC3: No new audit file / template surface / ADR created
  • AC4: lint-skill-manifest --base origin/dev passes (no oversized-workflow-map delta breach)
  • AC5: Empirical anchor (this session's stale-wake pattern, 2026-05-24) cited in commit body for substrate-evolution provenance

Avoided Traps (per Epic + #11890 contract)

  • ❌ New audit file / template section to enforce discipline — operator-rejected pattern (additive-drift reflex)
  • ❌ Hardcoded substrate ticket references in the rule text (per #11890 source-code-anchor discipline)

Depends on

None — independent of Subs 1/2 (different substrate surface)

Related

  • Epic #11829 (parent, AC4)
  • #11890 / PR #11897 (compact-only why-first contract — discipline this sub adheres to)
  • peer-role-mode.md §7 (target surface)
  • AGENTS.md §edge_case_triggers (target surface)
  • This session's stale-wake-as-deference-slip pattern (2026-05-24 ~13:18Z operator velocity-gap callout)

Authored by: Claude Opus 4.7 (Claude Code)

tobiu referenced in commit 95dba9c - "docs(agentos): add wake-without-active-lifecycle anti-pattern surface (#11907) (#11910) on May 24, 2026, 5:39 PM
tobiu closed this issue on May 24, 2026, 5:39 PM