fix: attach_command from one builder; no kill/start_command; stop closes a row-less session (Issue #71)

- attach_command is `herdr --session <server> agent attach <herdr name>`
  (`default` written too), built by lib_py.agents.sanitize.attach_command;
  create, resume and reconcile all use it. kill_command and start_command
  are no longer written, and status --json drops start_command.
- The two raw kill-session hints (create exit 43, id_order's orphan) print a
  stop-skill command with --herdr-session instead.
- stop_session.sh closes a session that has no registry row, herdr only and
  without --agent, when herdr runs it inside this workspace; another
  workspace's session is refused (exit 5), a missing one is exit 1, one that
  survives kill-session is exit 6. The registry is not changed.
- Docs: only the SKILL.md lines these changes made wrong; the skill block
  pins follow. Tests that asserted the removed fields keep their intent
  (issue50: create's own row; issue21: no control-root path in
  attach_command; tier2: the new form and the absent fields). S11 pins the
  shim to 4243da5, which changed it on purpose.

Refs #71

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
GodopuandClaude Opus 5.5 committed 2026-10-25 15:16:53 +00:00
1 parent 9c21fa4e4f
commit e4c7c8fe9b
19 files changed
+605 -109

No files matched your search

+34 -32
View File
@@ -61,21 +61,21 @@
{
"skill": "multi-agent-mux-create",
"start": 134,
"end": 152,
"end": 150,
"lang": "yaml",
"sha": "2dd608d04ae0",
"sha": "efba73c1d7f7",
"class": "c",
"kind": "example",
"evidence": [
"multi-agent-mux-create/scripts/create_session.sh:518-545"
"multi-agent-mux-create/scripts/create_session.sh:514-541"
],
"mismatch": null,
"note": "Output format: the row create_session.sh writes"
},
{
"skill": "multi-agent-mux-create",
"start": 158,
"end": 160,
"start": 156,
"end": 158,
"lang": "bash",
"sha": "613003708f19",
"class": "c",
@@ -88,8 +88,8 @@
},
{
"skill": "multi-agent-mux-create",
"start": 204,
"end": 208,
"start": 202,
"end": 206,
"lang": "bash",
"sha": "38836d31bf38",
"class": "c",
@@ -103,8 +103,8 @@
},
{
"skill": "multi-agent-mux-create",
"start": 231,
"end": 253,
"start": 229,
"end": 251,
"lang": "bash",
"sha": "d90cfd2555fd",
"class": "b",
@@ -245,7 +245,7 @@
"class": "c",
"kind": "example",
"evidence": [
"multi-agent-mux-monitor/scripts/reconcile.sh:708"
"multi-agent-mux-monitor/scripts/reconcile.sh:705"
],
"mismatch": null,
"note": "drift B example"
@@ -259,7 +259,7 @@
"class": "c",
"kind": "example",
"evidence": [
"multi-agent-mux-monitor/scripts/reconcile.sh:735"
"multi-agent-mux-monitor/scripts/reconcile.sh:732"
],
"mismatch": null,
"note": "drift C example (indented fence)"
@@ -385,7 +385,7 @@
"class": "c",
"kind": "example",
"evidence": [
"multi-agent-mux-status/scripts/status.sh:411"
"multi-agent-mux-status/scripts/status.sh:410"
],
"mismatch": null,
"note": "table output example"
@@ -393,15 +393,15 @@
{
"skill": "multi-agent-mux-status",
"start": 74,
"end": 106,
"end": 105,
"lang": "json",
"sha": "cfea3a10dc8d",
"sha": "8e55751f5e8d",
"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:816"
"multi-agent-mux-status/scripts/status.sh:209-231",
"multi-agent-mux-monitor/scripts/reconcile.sh:813"
],
"mismatch": [
"S1 (fixed): the example used rows/yaml_entries/unregistered; the real keys are reconcile.sh's drift object plus sessions_detail"
@@ -410,14 +410,14 @@
},
{
"skill": "multi-agent-mux-stop",
"start": 42,
"end": 55,
"start": 41,
"end": 54,
"lang": "bash",
"sha": "301c347ff881",
"class": "c",
"kind": "invocation",
"evidence": [
"multi-agent-mux-stop/scripts/stop_session.sh:1-33"
"multi-agent-mux-stop/scripts/stop_session.sh:1-36"
],
"mismatch": [
"T2 (fixed): the --purge-conversation example lacked --yes and would exit 3"
@@ -426,22 +426,22 @@
},
{
"skill": "multi-agent-mux-stop",
"start": 81,
"end": 85,
"start": 82,
"end": 86,
"lang": "-",
"sha": "a973676cb2d1",
"class": "c",
"kind": "diagram",
"evidence": [
"multi-agent-mux-stop/scripts/stop_session.sh:183-197"
"multi-agent-mux-stop/scripts/stop_session.sh:228-242"
],
"mismatch": null,
"note": "state machine"
},
{
"skill": "multi-agent-mux-stop",
"start": 102,
"end": 104,
"start": 103,
"end": 105,
"lang": "bash",
"sha": "4189d73d6896",
"class": "c",
@@ -454,8 +454,8 @@
},
{
"skill": "multi-agent-mux-stop",
"start": 127,
"end": 145,
"start": 128,
"end": 146,
"lang": "bash",
"sha": "bcaa2a03484e",
"class": "b",
@@ -503,9 +503,9 @@
"base_sha": "a7ed3e902cae",
"class": "a",
"evidence": [
"multi-agent-mux-stop/scripts/stop_session.sh:98",
"multi-agent-mux-stop/scripts/stop_session.sh:139-142",
"multi-agent-mux-stop/scripts/stop_session.sh:183-187"
"multi-agent-mux-stop/scripts/stop_session.sh:101",
"multi-agent-mux-stop/scripts/stop_session.sh:120-176",
"multi-agent-mux-stop/scripts/stop_session.sh:228-232"
],
"mismatch": [
"T1: the doc offered --force-no-yaml, which no script accepts"
@@ -568,7 +568,7 @@
"base_sha": "f71be0f26fb8",
"class": "a",
"evidence": [
"multi-agent-mux-create/scripts/create_session.sh:491-610"
"multi-agent-mux-create/scripts/create_session.sh:486-604"
],
"mismatch": [],
"replacement": "bash .agents/skills/multi-agent-mux-create/scripts/create_session.sh --workspace <path> --agent <agent> --role <role>",
@@ -596,10 +596,12 @@
"2",
"3",
"4",
"5",
"6",
"other"
],
"passthrough": {
"1": "multi-agent-mux-stop/scripts/stop_session.sh:322"
"1": "multi-agent-mux-stop/scripts/stop_session.sh:367"
}
},
"multi-agent-mux-create/scripts/create_session.sh": {
@@ -617,7 +619,7 @@
"other"
],
"passthrough": {
"4": "multi-agent-mux-create/scripts/create_session.sh:550"
"4": "multi-agent-mux-create/scripts/create_session.sh:546"
}
}
},