Three `create --onboard` at once into one folder (the control root, so no control-plane prefix reaches the pane and the shim reuses an idle pane): the shim's new-session chooses a pane - an idle one in a workspace on the same cwd, a split, a fresh workspace's root pane - and then claims it with `agent start`; two shims could choose the pane one of them had just made, and the later start failed with agent_pane_busy (one create in three). mam_herdr now runs every new-session call holding one lock per server: a flock on fd 9, opened for the block and taken by lib_py.pane_lock, which also bounds the wait (MAM_PANE_CLAIM_WAIT_S, default 120). It is released with the block or with the process, however it ends. The shim heredoc is unchanged (S11). Other servers' creates are not held. Serialising the claims exposed a second race: a create's end-of-run `reconcile.sh --once` adopted the pane of another create that had not yet written its row, and that create refused its own name as already running (exit 4). Such a row - registered by the monitor, no job, for a pane created after this create began - is now replaced, not refused. Tests: real herdr - shim-level and create-level three-way races into one folder (the real herdr's pane-creating replies held back so the window is hit on every run; both fail on the base with the orchestrator's error), the different-folder test kept; pane_lock unit tests (per-server file, timeout, kill -9 holder, handover, knob); the adoption rule and its three refusals; shim contract h26 (held lock: no pane calls). The herdr box gets a ~/.zshrc: without it every first `agent start` typed into zsh's first-run menu and timed out at 30 s. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
646 lines
18 KiB
JSON
646 lines
18 KiB
JSON
{
|
|
"base": "45d1621",
|
|
"blocks": [
|
|
{
|
|
"skill": "multi-agent-mux-create",
|
|
"start": 63,
|
|
"end": 66,
|
|
"lang": "bash",
|
|
"sha": "e44d91b9be46",
|
|
"class": "c",
|
|
"kind": "example",
|
|
"evidence": [
|
|
"multi-agent-mux-create/scripts/create_session.sh:99",
|
|
"multi-agent-mux-create/scripts/create_session.sh:356"
|
|
],
|
|
"mismatch": null,
|
|
"note": "HERDR_SESSION_NAME environment example"
|
|
},
|
|
{
|
|
"skill": "multi-agent-mux-create",
|
|
"start": 68,
|
|
"end": 70,
|
|
"lang": "bash",
|
|
"sha": "dd27e3eccbbe",
|
|
"class": "c",
|
|
"kind": "invocation",
|
|
"evidence": [
|
|
"multi-agent-mux-create/scripts/create_session.sh:82-83"
|
|
],
|
|
"mismatch": null,
|
|
"note": "--herdr-session / --herdr-workspace example"
|
|
},
|
|
{
|
|
"skill": "multi-agent-mux-create",
|
|
"start": 73,
|
|
"end": 75,
|
|
"lang": "bash",
|
|
"sha": "7c8f836dd518",
|
|
"class": "c",
|
|
"kind": "invocation",
|
|
"evidence": [
|
|
"multi-agent-mux-create/scripts/create_session.sh:84"
|
|
],
|
|
"mismatch": null,
|
|
"note": "--submit-job example"
|
|
},
|
|
{
|
|
"skill": "multi-agent-mux-create",
|
|
"start": 78,
|
|
"end": 80,
|
|
"lang": "bash",
|
|
"sha": "8a5226fbc7a0",
|
|
"class": "c",
|
|
"kind": "invocation",
|
|
"evidence": [
|
|
"multi-agent-mux-create/scripts/create_session.sh:85"
|
|
],
|
|
"mismatch": null,
|
|
"note": "--onboard example"
|
|
},
|
|
{
|
|
"skill": "multi-agent-mux-create",
|
|
"start": 134,
|
|
"end": 152,
|
|
"lang": "yaml",
|
|
"sha": "2dd608d04ae0",
|
|
"class": "c",
|
|
"kind": "example",
|
|
"evidence": [
|
|
"multi-agent-mux-create/scripts/create_session.sh:518-545"
|
|
],
|
|
"mismatch": null,
|
|
"note": "Output format: the row create_session.sh writes"
|
|
},
|
|
{
|
|
"skill": "multi-agent-mux-create",
|
|
"start": 158,
|
|
"end": 160,
|
|
"lang": "bash",
|
|
"sha": "613003708f19",
|
|
"class": "c",
|
|
"kind": "invocation",
|
|
"evidence": [
|
|
"multi-agent-mux-create/scripts/create_session.sh:29-52"
|
|
],
|
|
"mismatch": null,
|
|
"note": "Workflow: the entry point (replaces the removed Workflow block, base 168-220)"
|
|
},
|
|
{
|
|
"skill": "multi-agent-mux-create",
|
|
"start": 204,
|
|
"end": 208,
|
|
"lang": "bash",
|
|
"sha": "38836d31bf38",
|
|
"class": "c",
|
|
"kind": "invocation",
|
|
"evidence": [
|
|
"multi-agent-mux-create/scripts/worktree_prepare.sh:24",
|
|
"multi-agent-mux-create/scripts/worktree_prepare.sh:250"
|
|
],
|
|
"mismatch": null,
|
|
"note": "worktree_prepare.sh call"
|
|
},
|
|
{
|
|
"skill": "multi-agent-mux-create",
|
|
"start": 230,
|
|
"end": 252,
|
|
"lang": "bash",
|
|
"sha": "d90cfd2555fd",
|
|
"class": "b",
|
|
"kind": "verification",
|
|
"evidence": [],
|
|
"mismatch": null,
|
|
"note": "post-create checks (herdr alive, cmd/cwd, YAML row, TUI); no script offers them as a command - stage 3"
|
|
},
|
|
{
|
|
"skill": "multi-agent-mux-delegate-job",
|
|
"start": 36,
|
|
"end": 81,
|
|
"lang": "bash",
|
|
"sha": "9fcfb4503a40",
|
|
"class": "c",
|
|
"kind": "invocation",
|
|
"evidence": [
|
|
"multi-agent-mux-delegate-job/multi-agent-mux-delegate-job:1046-1057"
|
|
],
|
|
"mismatch": null,
|
|
"note": "CLI reference; subcommands submit/status/list/verify/wait/logs match main()"
|
|
},
|
|
{
|
|
"skill": "multi-agent-mux-loop",
|
|
"start": 50,
|
|
"end": 53,
|
|
"lang": "bash",
|
|
"sha": "cbc86a648420",
|
|
"class": "c",
|
|
"kind": "invocation",
|
|
"evidence": [
|
|
"multi-agent-mux-loop/scripts/run_loop.sh:45-46"
|
|
],
|
|
"mismatch": null,
|
|
"note": "environment + run_loop.sh call"
|
|
},
|
|
{
|
|
"skill": "multi-agent-mux-loop",
|
|
"start": 70,
|
|
"end": 93,
|
|
"lang": "-",
|
|
"sha": "7f11fedca5f9",
|
|
"class": "c",
|
|
"kind": "diagram",
|
|
"evidence": [],
|
|
"mismatch": null,
|
|
"note": "role diagram"
|
|
},
|
|
{
|
|
"skill": "multi-agent-mux-loop",
|
|
"start": 121,
|
|
"end": 168,
|
|
"lang": "mermaid",
|
|
"sha": "093c1673b128",
|
|
"class": "c",
|
|
"kind": "diagram",
|
|
"evidence": [],
|
|
"mismatch": null,
|
|
"note": "sequence diagram (mermaid)"
|
|
},
|
|
{
|
|
"skill": "multi-agent-mux-loop",
|
|
"start": 228,
|
|
"end": 234,
|
|
"lang": "bash",
|
|
"sha": "1b75c515c99a",
|
|
"class": "c",
|
|
"kind": "invocation",
|
|
"evidence": [
|
|
"lib_py/loop/runner.py:155",
|
|
"multi-agent-mux-create/scripts/worktree_prepare.sh:250"
|
|
],
|
|
"mismatch": null,
|
|
"note": "--worktree/--base --review-only call pattern"
|
|
},
|
|
{
|
|
"skill": "multi-agent-mux-loop",
|
|
"start": 240,
|
|
"end": 265,
|
|
"lang": "bash",
|
|
"sha": "9b061da667f8",
|
|
"class": "c",
|
|
"kind": "invocation",
|
|
"evidence": [
|
|
"lib_py/loop/runner.py:1779"
|
|
],
|
|
"mismatch": null,
|
|
"note": "three call examples; every flag is parsed by runner.py"
|
|
},
|
|
{
|
|
"skill": "multi-agent-mux-monitor",
|
|
"start": 60,
|
|
"end": 66,
|
|
"lang": "bash",
|
|
"sha": "d6a74c6482a9",
|
|
"class": "c",
|
|
"kind": "invocation",
|
|
"evidence": [
|
|
"multi-agent-mux-monitor/scripts/reconcile.sh:48"
|
|
],
|
|
"mismatch": null,
|
|
"note": "reconcile.sh --subscribe call"
|
|
},
|
|
{
|
|
"skill": "multi-agent-mux-monitor",
|
|
"start": 109,
|
|
"end": 115,
|
|
"lang": "bash",
|
|
"sha": "55a7f7ec1a57",
|
|
"class": "c",
|
|
"kind": "invocation",
|
|
"evidence": [
|
|
"multi-agent-mux-monitor/scripts/reconcile.sh:45-47"
|
|
],
|
|
"mismatch": null,
|
|
"note": "--once --emit-diff [--dry-run] call"
|
|
},
|
|
{
|
|
"skill": "multi-agent-mux-monitor",
|
|
"start": 128,
|
|
"end": 133,
|
|
"lang": "-",
|
|
"sha": "e80f013a7fc2",
|
|
"class": "c",
|
|
"kind": "example",
|
|
"evidence": [
|
|
"multi-agent-mux-monitor/scripts/reconcile.sh:601"
|
|
],
|
|
"mismatch": null,
|
|
"note": "drift A example"
|
|
},
|
|
{
|
|
"skill": "multi-agent-mux-monitor",
|
|
"start": 144,
|
|
"end": 150,
|
|
"lang": "-",
|
|
"sha": "4924c8c79db5",
|
|
"class": "c",
|
|
"kind": "example",
|
|
"evidence": [
|
|
"multi-agent-mux-monitor/scripts/reconcile.sh:708"
|
|
],
|
|
"mismatch": null,
|
|
"note": "drift B example"
|
|
},
|
|
{
|
|
"skill": "multi-agent-mux-monitor",
|
|
"start": 156,
|
|
"end": 162,
|
|
"lang": "-",
|
|
"sha": "3f0b027ff51e",
|
|
"class": "c",
|
|
"kind": "example",
|
|
"evidence": [
|
|
"multi-agent-mux-monitor/scripts/reconcile.sh:735"
|
|
],
|
|
"mismatch": null,
|
|
"note": "drift C example (indented fence)"
|
|
},
|
|
{
|
|
"skill": "multi-agent-mux-monitor",
|
|
"start": 182,
|
|
"end": 210,
|
|
"lang": "markdown",
|
|
"sha": "3f5d82c08fd9",
|
|
"class": "b",
|
|
"kind": "procedure",
|
|
"evidence": [
|
|
"multi-agent-mux-monitor/scripts/reconcile.sh:41"
|
|
],
|
|
"mismatch": [
|
|
"M1: the spec says `sleep 30`; reconcile.sh polls every RECONCILE_POLL_INTERVAL, default 15"
|
|
],
|
|
"note": "agent-run polling loop; \"report only new drifts\" and the Hard rules are agent-side guidance - stage 3"
|
|
},
|
|
{
|
|
"skill": "multi-agent-mux-monitor",
|
|
"start": 229,
|
|
"end": 233,
|
|
"lang": "bash",
|
|
"sha": "b3588563316e",
|
|
"class": "c",
|
|
"kind": "invocation",
|
|
"evidence": [
|
|
"multi-agent-mux-monitor/scripts/reconcile.sh:45-46"
|
|
],
|
|
"mismatch": null,
|
|
"note": "one-shot run piped to json.tool"
|
|
},
|
|
{
|
|
"skill": "multi-agent-mux-orc-onboard",
|
|
"start": 22,
|
|
"end": 24,
|
|
"lang": "bash",
|
|
"sha": "6e26222260bb",
|
|
"class": "c",
|
|
"kind": "invocation",
|
|
"evidence": [
|
|
"multi-agent-mux-orc-onboard/scripts/orc_onboard.sh:20-22"
|
|
],
|
|
"mismatch": null,
|
|
"note": "entry point call"
|
|
},
|
|
{
|
|
"skill": "multi-agent-mux-orc-onboard",
|
|
"start": 40,
|
|
"end": 46,
|
|
"lang": "bash",
|
|
"sha": "1be6e95c82c7",
|
|
"class": "c",
|
|
"kind": "invocation",
|
|
"evidence": [
|
|
"multi-agent-mux-orc-onboard/scripts/orc_onboard.sh:48-62"
|
|
],
|
|
"mismatch": null,
|
|
"note": "--remove --purge-conversation --yes call + output"
|
|
},
|
|
{
|
|
"skill": "multi-agent-mux-resume",
|
|
"start": 59,
|
|
"end": 61,
|
|
"lang": "bash",
|
|
"sha": "5fe43f9fb460",
|
|
"class": "c",
|
|
"kind": "invocation",
|
|
"evidence": [
|
|
"multi-agent-mux-resume/scripts/resume_session.sh:10-21"
|
|
],
|
|
"mismatch": null,
|
|
"note": "Workflow: the entry point (replaces the removed Workflow block, base 59-118)"
|
|
},
|
|
{
|
|
"skill": "multi-agent-mux-resume",
|
|
"start": 103,
|
|
"end": 128,
|
|
"lang": "bash",
|
|
"sha": "8a468dfa43bd",
|
|
"class": "b",
|
|
"kind": "verification",
|
|
"evidence": [],
|
|
"mismatch": null,
|
|
"note": "post-resume checks (herdr agent get, YAML, screen); no script offers them as a command - stage 3"
|
|
},
|
|
{
|
|
"skill": "multi-agent-mux-status",
|
|
"start": 30,
|
|
"end": 34,
|
|
"lang": "bash",
|
|
"sha": "ed6251410f1f",
|
|
"class": "b",
|
|
"kind": "procedure",
|
|
"evidence": [
|
|
"multi-agent-mux-status/scripts/status.sh:22"
|
|
],
|
|
"mismatch": null,
|
|
"note": "pre-flight: the YAML check duplicates status.sh:22, but status.sh has no has_real_herdr check (it reports dead without herdr) - mixed, kept"
|
|
},
|
|
{
|
|
"skill": "multi-agent-mux-status",
|
|
"start": 44,
|
|
"end": 46,
|
|
"lang": "bash",
|
|
"sha": "27cab128411c",
|
|
"class": "c",
|
|
"kind": "invocation",
|
|
"evidence": [
|
|
"multi-agent-mux-status/scripts/status.sh:20"
|
|
],
|
|
"mismatch": null,
|
|
"note": "entry point call"
|
|
},
|
|
{
|
|
"skill": "multi-agent-mux-status",
|
|
"start": 61,
|
|
"end": 70,
|
|
"lang": "-",
|
|
"sha": "7e5ec388a64a",
|
|
"class": "c",
|
|
"kind": "example",
|
|
"evidence": [
|
|
"multi-agent-mux-status/scripts/status.sh:411"
|
|
],
|
|
"mismatch": null,
|
|
"note": "table output example"
|
|
},
|
|
{
|
|
"skill": "multi-agent-mux-status",
|
|
"start": 74,
|
|
"end": 106,
|
|
"lang": "json",
|
|
"sha": "cfea3a10dc8d",
|
|
"class": "c",
|
|
"kind": "example",
|
|
"evidence": [
|
|
"multi-agent-mux-status/scripts/status.sh:31-36",
|
|
"multi-agent-mux-status/scripts/status.sh:209-232",
|
|
"multi-agent-mux-monitor/scripts/reconcile.sh:1084"
|
|
],
|
|
"mismatch": [
|
|
"S1 (fixed): the example used rows/yaml_entries/unregistered; the real keys are reconcile.sh's drift object plus sessions_detail"
|
|
],
|
|
"note": "--json output example"
|
|
},
|
|
{
|
|
"skill": "multi-agent-mux-stop",
|
|
"start": 42,
|
|
"end": 55,
|
|
"lang": "bash",
|
|
"sha": "27ebf150b92a",
|
|
"class": "c",
|
|
"kind": "invocation",
|
|
"evidence": [
|
|
"multi-agent-mux-stop/scripts/stop_session.sh:1-33"
|
|
],
|
|
"mismatch": [
|
|
"T2 (fixed): the --purge-conversation example lacked --yes and would exit 3"
|
|
],
|
|
"note": "Workflow: three entry point calls"
|
|
},
|
|
{
|
|
"skill": "multi-agent-mux-stop",
|
|
"start": 81,
|
|
"end": 85,
|
|
"lang": "-",
|
|
"sha": "a2b56ac238ae",
|
|
"class": "c",
|
|
"kind": "diagram",
|
|
"evidence": [
|
|
"multi-agent-mux-stop/scripts/stop_session.sh:184-198"
|
|
],
|
|
"mismatch": null,
|
|
"note": "state machine"
|
|
},
|
|
{
|
|
"skill": "multi-agent-mux-stop",
|
|
"start": 102,
|
|
"end": 104,
|
|
"lang": "bash",
|
|
"sha": "4189d73d6896",
|
|
"class": "c",
|
|
"kind": "invocation",
|
|
"evidence": [
|
|
"multi-agent-mux-stop/scripts/worktree_remove.sh:35-36"
|
|
],
|
|
"mismatch": null,
|
|
"note": "worktree_remove.sh call"
|
|
},
|
|
{
|
|
"skill": "multi-agent-mux-stop",
|
|
"start": 127,
|
|
"end": 145,
|
|
"lang": "bash",
|
|
"sha": "bcaa2a03484e",
|
|
"class": "b",
|
|
"kind": "verification",
|
|
"evidence": [],
|
|
"mismatch": null,
|
|
"note": "post-stop checks; no script offers them as a command - stage 3"
|
|
}
|
|
],
|
|
"removed": [
|
|
{
|
|
"skill": "multi-agent-mux-resume",
|
|
"base_start": 59,
|
|
"base_end": 118,
|
|
"lang": "bash",
|
|
"base_sha": "63abe1bb3542",
|
|
"class": "a",
|
|
"evidence": [
|
|
"multi-agent-mux-resume/scripts/resume_session.sh:111-130",
|
|
"multi-agent-mux-resume/scripts/resume_session.sh:133-144",
|
|
"multi-agent-mux-resume/scripts/resume_session.sh:147-158",
|
|
"multi-agent-mux-resume/scripts/resume_session.sh:172-197",
|
|
"multi-agent-mux-resume/scripts/resume_session.sh:245",
|
|
"multi-agent-mux-resume/scripts/resume_session.sh:249",
|
|
"multi-agent-mux-resume/scripts/resume_session.sh:255-258",
|
|
"lib_py/agents/adapters/claude.py:109"
|
|
],
|
|
"mismatch": [
|
|
"R1: an already-running session is exec-attached in the doc; the script only updates the row and exits 0 (no attach, no permission-flag check, #45)",
|
|
"R2: the script never attaches; attach is a separate human step",
|
|
"R3: steps missing from the doc: original-cwd check, control-plane binding, binary validation, whitespace refusal, --dry-run",
|
|
"R4: $CLAUDE_ID_FLAG is undefined; the script uses adapter resume-spec (table fallback); no -x 140 -y 40 on resume",
|
|
"R5: the script passes --agent --workspace --herdr-session --cmd-full [--herdr-workspace] to update_yaml_resumed.sh"
|
|
],
|
|
"replacement": "bash .agents/skills/multi-agent-mux-resume/scripts/resume_session.sh --workspace <path> --agent <agent> --session <name>",
|
|
"script": "multi-agent-mux-resume/scripts/resume_session.sh",
|
|
"note": "Workflow re-wrote resume_session.sh in bash",
|
|
"base_fingerprint": "cd4000a4afae"
|
|
},
|
|
{
|
|
"skill": "multi-agent-mux-stop",
|
|
"base_start": 38,
|
|
"base_end": 63,
|
|
"lang": "bash",
|
|
"base_sha": "a7ed3e902cae",
|
|
"class": "a",
|
|
"evidence": [
|
|
"multi-agent-mux-stop/scripts/stop_session.sh:99",
|
|
"multi-agent-mux-stop/scripts/stop_session.sh:140-143",
|
|
"multi-agent-mux-stop/scripts/stop_session.sh:184-188"
|
|
],
|
|
"mismatch": [
|
|
"T1: the doc offered --force-no-yaml, which no script accepts"
|
|
],
|
|
"replacement": "bash .agents/skills/multi-agent-mux-stop/scripts/stop_session.sh",
|
|
"script": "multi-agent-mux-stop/scripts/stop_session.sh",
|
|
"note": "pre-flight (registered? already stopped?); replaced by one prose line, the Workflow block already calls the entry point",
|
|
"base_fingerprint": "f2e5380dbaa4"
|
|
},
|
|
{
|
|
"skill": "multi-agent-mux-create",
|
|
"base_start": 35,
|
|
"base_end": 52,
|
|
"lang": "bash",
|
|
"base_sha": "4d9c56a7bd7e",
|
|
"class": "a",
|
|
"evidence": [
|
|
"multi-agent-mux-create/scripts/create_session.sh:111",
|
|
"multi-agent-mux-create/scripts/create_session.sh:114",
|
|
"multi-agent-mux-create/scripts/create_session.sh:115",
|
|
"multi-agent-mux-create/scripts/create_session.sh:117-156"
|
|
],
|
|
"mismatch": [
|
|
"the doc checks both claude and agy; the script checks only the selected agent (the script is right)"
|
|
],
|
|
"replacement": "bash .agents/skills/multi-agent-mux-create/scripts/create_session.sh --workspace <path> --agent <agent> --role <role>",
|
|
"script": "multi-agent-mux-create/scripts/create_session.sh",
|
|
"note": "pre-flight; replaced by prose, the has_real_herdr vs command -v pitfall kept as prose",
|
|
"base_fingerprint": "6caf3573a587"
|
|
},
|
|
{
|
|
"skill": "multi-agent-mux-create",
|
|
"base_start": 168,
|
|
"base_end": 220,
|
|
"lang": "bash",
|
|
"base_sha": "00502b0bc2f4",
|
|
"class": "a",
|
|
"evidence": [
|
|
"multi-agent-mux-create/scripts/create_session.sh:166-168",
|
|
"multi-agent-mux-create/scripts/create_session.sh:207",
|
|
"multi-agent-mux-create/scripts/create_session.sh:259-274",
|
|
"multi-agent-mux-create/scripts/create_session.sh:361-398",
|
|
"multi-agent-mux-create/scripts/create_session.sh:410-412"
|
|
],
|
|
"mismatch": [
|
|
"C1: an existing session is exit 1 in the doc, exit 3 in the script",
|
|
"C2: the doc sleeps 6 s; the script waits with wait_for_tui_ready and exits 42/43",
|
|
"C3: the doc hard-codes per-agent commands and starts claude without flags; the script uses adapter spawn-spec"
|
|
],
|
|
"replacement": "bash .agents/skills/multi-agent-mux-create/scripts/create_session.sh --workspace <path> --agent <agent> --role <role>",
|
|
"script": "multi-agent-mux-create/scripts/create_session.sh",
|
|
"note": "Workflow re-wrote create_session.sh in bash",
|
|
"base_fingerprint": "bc8eec474b36"
|
|
},
|
|
{
|
|
"skill": "multi-agent-mux-create",
|
|
"base_start": 226,
|
|
"base_end": 252,
|
|
"lang": "yaml",
|
|
"base_sha": "f71be0f26fb8",
|
|
"class": "a",
|
|
"evidence": [
|
|
"multi-agent-mux-create/scripts/create_session.sh:491-610"
|
|
],
|
|
"mismatch": [],
|
|
"replacement": "bash .agents/skills/multi-agent-mux-create/scripts/create_session.sh --workspace <path> --agent <agent> --role <role>",
|
|
"script": "multi-agent-mux-create/scripts/create_session.sh",
|
|
"note": "manual \"append this row\" step; the script writes the row. The lib.sh shim note (base 248-251) moved to prose under Output format",
|
|
"base_fingerprint": "b8ff0badf537"
|
|
}
|
|
],
|
|
"entry_points": {
|
|
"multi-agent-mux-resume/scripts/resume_session.sh": {
|
|
"skill": "multi-agent-mux-resume",
|
|
"exit_codes": [
|
|
"0",
|
|
"1",
|
|
"2",
|
|
"other"
|
|
],
|
|
"passthrough": {}
|
|
},
|
|
"multi-agent-mux-stop/scripts/stop_session.sh": {
|
|
"skill": "multi-agent-mux-stop",
|
|
"exit_codes": [
|
|
"0",
|
|
"1",
|
|
"2",
|
|
"3",
|
|
"4",
|
|
"other"
|
|
],
|
|
"passthrough": {
|
|
"1": "multi-agent-mux-stop/scripts/stop_session.sh:310"
|
|
}
|
|
},
|
|
"multi-agent-mux-create/scripts/create_session.sh": {
|
|
"skill": "multi-agent-mux-create",
|
|
"exit_codes": [
|
|
"0",
|
|
"1",
|
|
"2",
|
|
"3",
|
|
"4",
|
|
"42",
|
|
"43",
|
|
"44",
|
|
"45",
|
|
"other"
|
|
],
|
|
"passthrough": {
|
|
"4": "multi-agent-mux-create/scripts/create_session.sh:546"
|
|
}
|
|
}
|
|
},
|
|
"prose_mismatches": [
|
|
"C4: create named a nonexistent `agent-sessions-yaml-edit` script; removed (create_session.sh writes the row)",
|
|
"C5: create's cmd_full table (claude = `claude`) disagreed with adapter spawn-spec; replaced by \"decided by spawn-spec\"",
|
|
"C6: create_session.sh header lists exit 4 \"YAML append failure\"; there is no literal `exit 4`, but the YAML write raises SystemExit(4) for a duplicate running row (create_session.sh:515) and it passes through, so 4 IS a real exit code (the plan assumed it was not)",
|
|
"R6: resume's \"The script above re-passes them\" and \"as done in Workflow above\" pointed at the removed block; reworded (same for create's Verification note)",
|
|
"R7 (review 08e1f1b2): stop's table said exit 1 is always pre-stop; the registry update after the kill chain also raises SystemExit(1) (stop_session.sh:310) when the row disappeared"
|
|
],
|
|
"superseded": [
|
|
{
|
|
"skill": "multi-agent-mux-create",
|
|
"base_start": 263,
|
|
"base_end": 266,
|
|
"lang": "bash",
|
|
"base_sha": "ceb96a8c1293",
|
|
"class": "c",
|
|
"kind": "invocation",
|
|
"replacement": "bash .agents/skills/multi-agent-mux-create/scripts/create_session.sh",
|
|
"note": "The base call example under 'Updating agent-sessions.yaml' (with the nonexistent agent-sessions-yaml-edit script above it, prose_mismatches C4) is folded into the Workflow call block; no information lost.",
|
|
"base_fingerprint": "b6a8a25279c5"
|
|
}
|
|
]
|
|
}
|