4.8 KiB
Deploy / install verification — v3.0.0
- Date: 2026-08-26
- Verifier:
creator-grok-01(jobsc9275b44,16201e43,61299e40) - Source tree:
/Users/godopu16/PuKi/laa/canary_projects/multi-agent-mux(working copy used asMAM_REPO_URL) - Installer under test:
deploy/install.sh(same path astests/test_deploy_*.pyandupdate.sh) - Sandbox (first):
/tmp/mam-v3-verify.o0ocAX - Sandbox (re-run 16201e43):
/tmp/mam-v3-verify2.7RCtR7(clean dir,MAM_SKIP_VENV=1; removed after hash check)
1. Installer surface
| Artifact | Role |
|---|---|
deploy/INSTALL.md |
User guide. Documents deploy/install_mam.sh --target …. Installed copy is .agents/INSTALL.md. |
deploy/install.sh |
Production installer used by tests, update.sh, and MAM_REPO_URL staging. Copies .agents/** (except reports/references), AGENTS.md, hooks, skills. |
deploy/update.sh |
Installed as .mam_deploy/update.sh. Backs up .mam.env / .mam then re-runs install. |
deploy/install_mam.sh |
Alternate rsync installer from a local clone (SRC_DIR = parent of deploy/). Same ownership rules. |
Both installers pull from the clone they are run from when MAM_REPO_URL is a directory (install.sh) or when invoked as install_mam.sh from that clone. This verification used install.sh against the working tree so the installed bits are this v3.0.0 checkout, not main on the remote.
2. Sandbox install — skill versions
bash deploy/install.sh <sandbox> completed 0.
All 8 SKILL.md files in the sandbox:
| Skill | Installed version |
|---|---|
multi-agent-mux-create |
3.0.0 |
multi-agent-mux-stop |
3.0.0 |
multi-agent-mux-resume |
3.0.0 |
multi-agent-mux-status |
3.0.0 |
multi-agent-mux-monitor |
3.0.0 |
multi-agent-mux-delegate-job |
3.0.0 |
multi-agent-mux-loop |
3.0.0 |
multi-agent-mux-orc-onboard |
3.0.0 |
Matches VERSIONS.md skill matrix (v3.0.0).
3. Framework assets and v3 payloads
Present in the sandbox and SHA-256 identical to the source tree:
| Installed path | Source | SHA prefix |
|---|---|---|
.agents/hooks.json |
same | fc730f18fd9ecc53 |
.agents/hooks/loop_delegation_guard.sh |
same | 9896c63ffbd6fb00 |
.agents/MULTI_AGENT_RULES.md |
same | a5e31712c5cadaac |
.agents/INSTALL.md |
deploy/INSTALL.md |
26ec7eaf2cc050a7 |
AGENTS.md |
same | 91acdf00a537e326 |
.agents/skills/lib.sh |
same | d884bb839e0a6336 |
.agents/skills/lib_py/layout.py |
same | a06d25e660c65084 |
.agents/skills/lib_py/agents/adapters/grok.py |
same | 33113671c456437e |
.agents/skills/lib_py/agents/registry.py |
same | ec2d169e0a0e6690 |
.agents/skills/multi-agent-mux-loop/scripts/run_loop.sh |
same | 25c405cd88f1fc19 |
Also present: .agents/MULTI_AGENT_RULES.ko.md. Adapters dir: claude.py, agy.py, hermes.py, cline.py, grok.py.
v3 behavior on the installed copies:
- Loop CLI:
--creator)parser;--target-agentonly as the removal error.SKILL.mdand.agents/INSTALL.mdexamples use--creator. No leftover--target-agentin installed skills except that error handler. - Layout 2.0:
_decide/_decide_headless,new_column_right,max_rowsdefault 2. - Grok:
GrokAgentAdapterregistered inregistry.py.
4. Automated tests
pytest tests/test_deploy_freshness.py tests/test_deploy_layout.py tests/test_loop_cli.py
45 passed in 40.56s
test_deploy_freshness.py: non-skill assets refresh, ownership, NATS/docs guards.test_deploy_layout.py: install layout,.mam_deploy, gitignore block.test_loop_cli.py:--creator/--planner/--target-agentrejection.
5. Gaps / notes (not install failures)
- Two installers. User-facing
INSTALL.mdtells people to runinstall_mam.sh. CI andupdate.shuseinstall.sh. Both installed v3.0.0 from this tree; operators should know which command they ran. - Remote vs working tree. Default
MAM_REPO_URLishttps://git.godopu.com/tmpl/multi-agent-mux.git. This check used the local working copy. A clean install from the remote is v3.0.0 only after that remote is tagged/pushed. --target-agentstring remains inrun_loop.shas the dedicated rejection path (Rev.4). That is required, not a leak.
6. Verdict
PASS. A clean deploy/install.sh into an empty directory installs all eight skills at version: 3.0.0, copies hooks / MULTI_AGENT_RULES / INSTALL / lib_py (Grok + layout 2.0) byte-identical to this tree, and the three requested test modules are green.
Re-run job 16201e43: second clean install still 8× version: 3.0.0, all listed assets MATCH, pytest 45 passed in 44.34s. Verdict unchanged.
Re-run job 61299e40: third clean install 8× 3.0.0, listed assets MATCH, pytest 45 passed in 43.76s. Verdict unchanged.