Skip to content
Agentmart
Submit a tool

claw-dispatch

Use when dispatching work through the Hermes gateway with /claw, especially when the task may resolve slash commands or hand off into AO worker orchestration.

Skill by jleechanorg

IndexedMIT★ 2
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/jleechanorg-claw-dispatch

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Use when dispatching work through the Hermes gateway with /claw, especially when the task may resolve slash commands or hand off into AO worker orchestration.

Use cases: productivity

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/claw-dispatch

What's inside

Skill name
claw-dispatch
Description
Use when dispatching work through the Hermes gateway with /claw, especially when the task may resolve slash commands or hand off into AO worker orchestration.
License
MIT
Instructions
409 lines in SKILL.md · view on GitHub

Before installing

  • Instructions call the network

Files (1)

  • SKILL.md

SKILL.md (first lines)

# Claw Dispatch

## Default behavior — `/claw` still uses AO; natural-language coding defaults to claudem

**`/claw` is the dedicated AO dispatch command and continues to spawn AO workers by default.** That is its job — use it whenever you want a PR remediation across many CI/review cycles, AO supervision, or tmux/auto-factory orchestration. The change in this skill is *narrow*: the front door for ordinary natural-language coding requests (no slash command, no `/af`, no `/claw`) is now `claude-code-claudem` (the bashrc `claudem` / `claudeminimax` wrapper routed to MiniMax M3) via `bash -lic 'claudem -p "<task>"' --max-turns <N>` from a clean worktree created by `git worktree add … origin/main -b feat/…`. AO is opt-in only via `/af`, `/auto-factory`, or `/claw`.

| Input | Default action |
|-------|---------------|
| `/claw <task>` (any task) | Force `ao spawn` (AO is the dedicated purpose of `/claw`) |
| `/af` / `/auto-factory` | Force `ao spawn` (explicit AO opt-in) |
| Bare natural-language coding request (no slash command) | claudem on a clean worktree via `bash -lic 'claudem -p "<task>"' --max-turns <N>` |
| `/claudem <task>` | Force claudem on a clean worktree (direct invocation of the default skill) |
| `/claudeminimax <task>` | Force claudem on a clean worktree (alias of `/claudem`) |
| `--bidi` prefix | Hermes interactive session (streaming) |
| `--hermes` prefix | Force through Hermes gateway |
| Slash command resolution (e.g. `/green`) | Resolve skill then run via claudem on a clean worktree (unless the skill explicitly routes through AO) |

**Project auto-detection for PR tasks:** resolve from current git remote (`git remote get-url origin`).

**When to use claudem instead of AO:** any bare natural-language coding/PR request that does not start with `/claw`, `/af`, or `/auto-factory`. The default for ordinary coding is `claude-code-claudem` on a clean worktree.

## Overview

`/claw` is the AO dispatch front door. Use:

- `~/.claude/commands/ao.md`
- `~/.claude/skills/ao-operator-discipline/SKILL.md`

For non-AO coding work (the default), use `claude-code-claudem`:

- `~/.claude/skills/claude-code-claudem/SKILL.md` — the wrapper for `claudem`/`claudeminimax` (MiniMax M3)
- `~/.claude/skills/claw-dispatch/SKILL.md` — this skill (the dispatch front door)

`/af` and `/auto-factory` continue to invoke AO (via `explicit-af-task-lock`).

## Requirements

- For claudem tasks: `bash -lic 'claudem --version'` must report Claude Code v2.x+; the wrapper resolves to MiniMax M3 via the bashrc `claudem` function
- For AO tasks (only when `/af` or explicit AO is in scope): `ao session ls` must not show ≥20 active sessions (spawn cap)
- For Hermes fallback: gateway must be healthy via `hermes gateway status`
- Slash command resolution must search `.claude/commands` first, then `.claude/skills`

## Execution

When invoked with a task description:

```bash
TASK_DESCRIPTION="$ARGUMENTS"
set -euo pipefail

LOGDIR="/tmp/hermes"
mkdir -p "$LOGDIR"
chmod 700 "$LOGDIR" 2>/dev/null || true
STATUS_LOG="$(mktemp "$LOGDIR/.claw-status-XXXXXXXX")"
LAUNCHD_PLIST="$HOME/Library/LaunchAgents/ai.smartclaw.prod.plist"

if [ -f "$LAUNCHD_PLIST" ]; then
  while IFS='=' read -r key value; do
    [ -n "$key" ] || continue
    export "$key=$value"
  done < <(
    python3 - "$LAUNCHD_PLIST" <<'PY'
import plistlib
import sys

path = sys.argv[1]
try:
    with open(path, "rb") as fh:
        data = plistlib.load(fh)
except FileNotFoundError:
    raise SystemExit(0)

env = data.get("EnvironmentVariables") or {}
for key in ("HERMES_HOME", "HERMES_LOG_LEVEL"):
    value = env.get(key)
    if value:
        print(f"{key}={value}")
PY
  )
fi

export HERMES_HOME="${HERMES_HOME:-$HOME/.smartclaw}"
HERMES_CFG="$HERMES_HOME/config.yaml"

if [ ! -f "$HERMES_CFG" ]; then
  echo "Hermes config not found: $HERMES_CFG"
  exit 1
fi
if ! python3 -c "import yaml; yaml.safe_load(open('$HERMES_CFG'))" 2>/dev/null; then
  echo "Hermes config is not valid YAML: $HERMES_CFG"
  exit 1
fi

# Hermes gateway health check. The `hermes gateway status` CLI is unreliable —
# it can report "not running" / "draining" with phantom PIDs while the actual
# gateway is healthy on :8642. Trust the live health endpoint instead.
HEALTH_LOG="$(mktemp "$LOGDIR/.claw-health-XXXXXXXX")"
if ! curl -sS -m 3 http://127.0.0.1:8642/health >"$HEALTH_LOG" 2>&1; then
  echo "Hermes gateway is not reachable on :8642."
  sed -n '1,20p' "$HEALTH_LOG"
  exit 1
fi
if ! grep -q '"status": "ok"' "$HEALTH_LOG"; then
  echo "Hermes gateway health check did not return ok."
  sed -n '1,20p' "$HEALTH_LOG"
  exit 1
fi

TASK_WITH_RESOLVED="$TASK_DESCRIPTION"

# PR shorthand expansion: when the task is a bare PR number (e.g. "6976", "PR 6976",
# "#6976"), expand it to the full "bring to 7-green" task with repo auto-detection.
PR_NUMBER=$(printf '%s' "$TASK_DESCRIPTION" | python3 -c "
import sys, re
text = sys.stdin.read().strip()
m = re.match(r'^(?:PR\s*#?|#)\s*(\d+)$', text)
if m:
    print(m.group(1))
" 2>/dev/null)

From jleechanorg/jleechanbrain, MIT.

More from jleechanorg/jleechanbrain

Signals

Stars
2
Forks
0
Open issues
1
Last commit (this folder)
Sep 19, 2026 (1 month ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from jleechanorg

Cite this page

claw-dispatch skill. Agent Mart. https://agentmart.dev/skills/jleechanorg-claw-dispatch (last updated 2026-10-24)