Files
multi-agent-mux/.agents/skills/multi-agent-mux-orc-onboard/SKILL.md
T
GodopuandClaude Opus 5 387479732e release(v4.4.0): bump framework and eight skills to 4.4.0 in lockstep
Issue #5 (Python core migration, CAS state transitions, shadow watcher,
auto-completion gate, eager-import immutable runtime, B-13 freeze removal)
is complete and merged to main. This stamps the release.

SemVer: MINOR, not MAJOR. The change is large but breaks nothing. Across the
whole Issue #5 range there are zero file deletions and zero renames, the event
wire schema stays at SCHEMA_VERSION 1, all four literal script paths survive as
compatibility shims, the 968-line legacy shell loop is still in run_loop.sh,
and every default change reverts through a single environment variable
(MAM_DELEGATION_PY / MAM_ENGINE_CAS / MAM_LOOP_PY / MAM_LOOP_FREEZE). The
riskiest new feature, auto-completion, ships default-off. No operator has
anything to migrate, which is the decisive reason not to call it 5.0.0. The
reasoning is recorded in the VERSIONS.md release notes, not just here.

Close a gap in the lockstep guard. lib.sh exports MAM_VERSION and eager_load()
refuses to start the loop when it disagrees with FRAMEWORK_VERSION, so eager.py
is a load-bearing fourth leg — but test_version_consistency.py only checked
three, and the sole check on eager.py was a hardcoded literal in the phase 4
test that a release bump has to edit anyway. The lockstep test now covers
eager.py, a new test pins the fail-closed gate itself, and the phase 4 test no
longer carries a version literal.

Fix a latent test-isolation defect the bump exposed. The first full run failed
four tests with "MAM_VERSION mismatch: expected 4.4.0, got 4.3.0 in
environment" — 4.3.0 was not in the tree, it was inherited from the shell that
launched pytest and had sourced the pre-bump lib.sh. Those tests were measuring
the runner's shell rather than the tree under test, and only passed until now
because the two values always happened to agree. A session-scoped fixture drops
the ambient value. Production is unaffected: run_loop.sh:17 sources lib.sh
before anything else and lib.sh re-exports MAM_VERSION unconditionally, so a
stale inherited value is always overwritten before Python starts.

Full suite: 750 passed in 912.50s, 0 failed, 0 skipped.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UrDNJkHmm18uu7n7JwV5Qd
2026-09-07 15:55:26 +09:00

2.4 KiB

name, description, version, author, license, platforms, environments, metadata
name description version author license platforms environments metadata
multi-agent-mux-orc-onboard Register current or specified orchestrator session UUID into agent-sessions.yaml orchestrator_uuids list to prevent sub-agent discovery capture. 4.4.0 godopu MIT
linux
macos
terminal
herdr
hermes
tags related_skills prereq_skills
agent
herdr
claude
antigravity
agy
hermes
grok
opencode
codex
orchestrator
onboard
isolation
multi-agent-mux-create
multi-agent-mux-resume
multi-agent-mux-monitor
multi-agent-mux-create

multi-agent-mux-orc-onboard

Registers an orchestrator session UUID into the orchestrator_uuids list of .mam/agent-sessions.yaml (and underlying state DB). This ensures that find_workspace_uuid and verify_session_uuid in lib.sh exclude orchestrator conversations when discovering unassigned sub-agent session UUIDs.

Usage

.agents/skills/multi-agent-mux-orc-onboard/scripts/orc_onboard.sh [OPTIONS]

Options

  • --uuid <uuid>: Explicitly register the specified orchestrator session UUID.
  • --remove <uuid>: Remove the specified UUID from the orchestrator_uuids list.
  • --list: Display all currently registered orchestrator UUIDs.
  • --no-autodetect: Disable process ancestry auto-detection when --uuid is not provided.
  • --dry-run: Output proposed changes without mutating the state registry.

Auto-Detection Hierarchy (Rev.2)

When --uuid is omitted, orc_onboard.sh inspects the process ancestry tree of the nearest agent ancestor (claude, agy, hermes, grok, opencode, codex) in the following order:

  1. CLI argv:
    • claude -r <uuid> / claude --session-id <uuid>
    • agy --conversation <uuid>
    • grok --session-id <uuid> / grok --resume <uuid>
    • opencode --session <uuid>
    • codex resume <uuid>
  2. Family-Matched Environment Variables:
    • claude → CLAUDE_CODE_SESSION_ID
    • agy → ANTIGRAVITY_CONVERSATION_ID
    • hermes → HERMES_SESSION_ID
    • grok → GROK_SESSION_ID
  3. Fallback:
    • If no valid ID matching the nearest agent family is found, exits with status 3 (Could not detect orchestrator ID).

Exit Statuses

  • 0: Success (registered, removed, listed, or already present).
  • 1: Conflict — the ID is currently owned by a running sub-agent session row.
  • 2: Invalid arguments or malformed ID format.
  • 3: Detection failed — ID could not be determined.