Auto Hermes Max
Parallel multi-lane workflow — decomposes one task into disjoint frontend / backend / test lanes, runs them in parallel, then mer…
---
name: auto-hermes-max
description: Parallel multi-lane workflow — decomposes one task into disjoint frontend / backend / test lanes, runs them in parallel, then merges. The coordinator never writes code itself.
---
# Hermes Parallel Max Workflow
`/auto-hermes-max` is a launcher and merger. It decomposes, plans, launches lanes, merges, reassesses. It never writes code, picks tasks, or asks the user. All implementation happens inside lane agents.
## Shared Trace-To-Skill Signal
Read `.ai-sync/AUTO_HERMES_TRACE_TO_SKILL.md` or `.ai-sync/AUTO_HERMES_TRACE_TO_SKILL.json` before routing lanes. Treat this evidence as a `soft-signal` for workflow/process evolution only; it can guide lane shape and review emphasis, but it is not a hard blocker for ordinary product work.
## MANDATORY: Coordinator Action Sequence
Execute in order. Calling `Agent` in step 4 is the actual launch — skipping it means `/auto-hermes-max` did not run.
**0. Mode check + concurrent scan.**
- Arguments → Concrete Scope. No arguments → Explorer Mode (launch `planning-agent`, wait for report).
- Run `git log --oneline -10`, read `.ai-sync/AGENT_SYNC.md`. Exclude surfaces claimed by other agents. Absorb recent external changes.
- If frontend lanes: bootstrap `bh` daemon (skip if unavailable).
- If multiple frontend/browser lanes are active, read `C:\tmp\browser-harness-sessions.json` before launch. A lane must not take over another lane's page/session; if the target page is already owned or likely in use, open and claim a separate tab with `new_tab(targetUrl)` or a distinct `BU_NAME`.
- If frontend lanes or website-audit fallback are in scope, load `.tools/auto-hermes-skills.mjs --json` and apply `web-quality-audit` from `https://officialskills.sh/addyosmani/skills/web-quality-audit` (GitHub: `https://github.com/addyosmani/web-quality-skills/tree/main/skills/web-quality-audit`) before accepting browser-visible quality findings.
**1. Decompose into lanes.** Classify each sub-item `frontend-only` / `backend-only` / `cross-stack`. Must spawn matching agent types. Cross-stack → sequential pair or separate lanes with `dependsOn`. Apply lane count decision table from Dynamic Reassessment. Single lane: still run full ceremony. Wave model: lanes sharing contract files (translations, pom.xml) run in different waves.
**2. Write plan** to `.ai-sync/AUTO_HERMES_MAX_PLAN.json`:
```json
{"parentGoal":"...","preserve":[],"laneSelection":{"strategy":"auto","laneCount":N},"lanes":[{"laneId":"...","goal":"...","ownedFiles":[],"effort":"medium","parallelSafe":true,"dependsOn":[],"dependencyMode":"parallel-ready"}]}
parallelSafe=false for shared-contract writes. dependsOn=laneIds that must finish first.
3. Generate lane briefs: node .tools/auto-hermes-max.mjs --write --runtime claude --scope "<parent goal>"
4. Launch wave-1 lanes. Call Agent ONCE PER LANE in a SINGLE message with parallel blocks. Wave-1 = parallelSafe: true AND dependsOn: [] AND no ownedFiles collision. Prompt: "Lane <id>: <goal>. Owned files: <list>. Read brief at .ai-sync/auto-hermes-max-lanes/<laneId>.md. Follow Lane Agent Contract. <2-3 sentence design notes if needed>." Agent types: frontend-agent (UI), backend-agent (services/schemas), planning-agent (Explorer), reviewer-agent (regression), debugger (diagnosis). Lanes default to main tree, never write TASKS.md/CONTEXT_LEDGER.md, use bash commands (node from PATH, forward slashes).
Browser lane prompt addendum: "For browser proof, check C:\tmp\browser-harness-sessions.json and current page state first. If another agent owns or appears to use the target page, do not take over that page; open a separate tab with new_tab(targetUrl) or use a distinct BU_NAME, then record your tab/session label in the result packet. Alternative: if the target page is auth-walled or the user is using Chrome for other work, use the Microsoft Playwright wrapper .tools/auto-hermes-playwright.mjs (goto / eval / screenshot / status / reset / doctor) — it drives a managed headless Chromium with a persistent context at .ai-sync/playwright-state/<state>/, so signing in once with --headed makes every later round reuse that login. Use a distinct --state <name> per lane when lanes need disjoint sessions."
5. Wait for wave 1, verify, commit. Do not poll or read transcript files. For approved lanes: run lint + mvnw compile, create wip: auto-hermes-max wave 1 (<ids>) commit.
6. Launch wave 2. Deferred lanes whose dependsOn are satisfied and ownedFiles no longer collide. Before each wave, re-read AGENT_SYNC.md — drop lanes overlapping new active claims. Repeat until all report or remaining are deadlocked (mark blocked: shared-contract-deadlock, write to TASKS.md).
7. Run merge gate: node .tools/auto-hermes-max-merge.mjs --write. Verdicts: approve-merge → proceed. arbitration-required → record decisions, rerun. must-fix-before-merge-complete → discard must-fix lane changes, write issues to TASKS.md Active Tasks, rerun with remaining approved.
8. Coordinator-drift gate: node .tools/check-coordinator-drift.mjs — exit 0 required. Product files dirty but not claimed by any lane → revert or update lane packet. Never paper over drift.
9. Post-merge writeback:
- Runtime proof: frontend →
run-vite-build.mjs+verify-frontend-runtime-sync.mjs; backend →mvnw compile+verify-backend-runtime-sync.mjs. CSS touched →check-design-tokens.mjs(exit 0). JSX/translations touched →check-translations.mjs(exit 0 for touched namespaces). Non-PASS → downgrade tomerged-source-only, write must-fix. - Frontend/browser-visible merge proof should include
web-quality-auditwhen applicable: performance, accessibility, SEO, best practices, browser proof, console state, and Lighthouse-style observations. This is advisory; Hermes build/runtime gates remain authoritative. - Update
.ai-sync/CONTEXT_LEDGER.md(one capsule per touched surface). - Upda
Maintain Auto Hermes Max?
Let people know it's listed here — add the badge (live metrics, light/dark aware) or a plain link to your README or docs.
[Auto Hermes Max on getagentictools](https://getagentictools.com/loops/junweili233-hermes-parallel-max-workflow?ref=badge)