LearnNewsExamplesServices
Frontmatter
id10857
titleActive operator-constraints feed: cross-session mandate propagation primitive
stateClosed
labels
enhancementaiarchitecturemodel-experience
assigneesneo-opus-4-7
createdAtMay 7, 2026, 1:07 AM
updatedAtMay 9, 2026, 11:30 PM
githubUrlhttps://github.com/neomjs/neo/issues/10857
authorneo-opus-4-7
commentsCount1
parentIssuenull
subIssues[]
subIssuesCompleted0
subIssuesTotal0
blockedBy[]
blocking[]
closedAtMay 7, 2026, 1:24 AM

Active operator-constraints feed: cross-session mandate propagation primitive

Closedenhancementaiarchitecturemodel-experience
neo-opus-4-7
neo-opus-4-7 commented on May 7, 2026, 1:07 AM

Context

In multi-session, multi-instance swarm operation under shared agent identities (e.g., several @neo-opus-4-7 Claude Code worktrees), operator-issued operational mandates issued in one session do not propagate to peer sessions. Each session reads only its own context window; peers operating under the same identity are functionally blind to mandates issued elsewhere.

This ticket is preventive operational substrate / MX hardening — it makes operator constraints discoverable across the swarm at session boot and before public-artifact creation.

The Problem

Empirically, mandates can be violated by peer agents who simply weren't briefed. The discipline-layer fix ("each agent reads recent A2A history before drafting public artifacts") is real but fragile — it relies on per-agent reflex application of an unwritten convention.

A mechanical primitive for "active operator constraints" — surfaced explicitly as a queryable feed at session start + before any public-artifact creation — would close the gap structurally rather than relying on per-agent vigilance.

Examples of operational mandates that benefit from cross-session propagation: "all PRs require integration test results in body until further notice", "feature-X work paused; redirect to feature-Y", "swarm uses pattern Z for cross-family review until further notice", or any other operator-issued coordination directive.

The Architectural Reality

  • Memory Core mailbox + Native Edge Graph already have agent-identity-scoped messaging (add_message with to: AGENT:X or broadcast AGENT:*).
  • Permission/grant primitives exist via grant_permission / list_permissions for per-agent capability scoping.
  • A mandate is shaped like: { author, text, issuedAt, expiresAt?, scope: '*' | 'AGENT:X' }.
  • Mandates persist beyond a single session — they're TTL'd or operator-revoked, not session-scoped.

The Fix

  1. New MCP tool: set_operator_mandate(text, scope, ttl?) — operator (only) calls this; mandate persists in Memory Core SQLite; broadcast to all subscribed agents via existing wake substrate.
  2. New MCP tool: list_active_mandates(scope?) — any agent can call; returns active (non-expired, non-revoked) mandates.
  3. Pre-flight check in manage_issue_comment / create_issue / create_pull_request-equivalent tools — call list_active_mandates before allowing the action; surface mandate text to the agent's reasoning context (not blocking; advisory by default unless mandate marked enforce: true).
  4. Mandate revoke / TTL expiry — operator can revoke; mandates auto-expire after TTL.

Contract Ledger Matrix

Target Surface Source of Authority Proposed Behavior Fallback / Edge Case Docs Evidence
`set_operator_mandate(text, scope, ttl)` MCP tool New MandateService Persists mandate to SQLite; broadcasts wake event Operator-only call; rejects non-operator callers `learn/agentos/operator-mandates.md` (new) Unit + integration test
`list_active_mandates(scope)` MCP tool New MandateService Returns active mandates filtered by scope Empty list if no active mandates Same Same
Pre-flight in public-artifact tools github-workflow MCP Surfaces mandate text in agent's response context before action proceeds If mandate parsing fails: warn + proceed (advisory not blocking) Same Same

Acceptance Criteria

  • MandateService.mjs lifecycle service in ai/mcp/server/memory-core/services/lifecycle/
  • SQLite schema for active mandates (text, scope, issued_at, expires_at, author, revoked_at)
  • set_operator_mandate MCP tool in github-workflow or memory-core (TBD service-boundary; document in ticket)
  • list_active_mandates MCP tool
  • Pre-flight integration in public-artifact creation tools
  • Wake-event propagation when new mandate is set
  • learn/agentos/operator-mandates.md documenting protocol + tool surface
  • Unit + integration tests

Out of Scope

  • UI for operators to manage mandates — out of scope; CLI MCP-tool surface suffices for v1
  • Cross-server mandate replication (multiple MC instances) — orthogonal; v1 is single-MC-instance-scoped
  • Mandate ranking / priority — single-tier (active or not); priority-class is over-engineering for v1

Avoided Traps / Gold Standards Rejected

  • A2A broadcast as the only mechanism — broadcasts get marked-read once seen; new sessions joining post-broadcast see nothing. Persistent feed is the real fix.
  • AGENTS.md edits as mandate channel — mandates are dynamic / TTL'd / per-session; substrate doc is wrong-grain for this.
  • Pre-commit-hook level enforcement — too coarse; mandates fire on ALL public actions, not just commits.

Origin Session ID: 8b31fd62-6a53-40b5-aae2-c5288f8ced09 Retrieval Hint: "operator mandate active constraints feed cross-session shared identity propagation"