Skip to content
Automation
Skill

/orchestrate

Drive Smithers — a durable control plane for long-running coding agents — from inside Hermes. Use for any multi-step, long-running, crash-safe, or human-in-the-loop work: "run a workflow", "implement and review", "keep iterating until tests pass", "plan then build". You are the

From plugin
smithers
35914 skills1 MCP
Install
$ npx -y skills add smithersai/smithers --skill orchestrate --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/orchestrate

Context preview

The summary Claude sees to decide when to auto-load this skill.

Drive Smithers — a durable control plane for long-running coding agents — from inside Hermes. Use for any multi-step, long-running, crash-safe, or human-in-the-loop work: "run a workflow", "implement and review", "keep iterating until tests pass", "plan then build". You are the

SKILL.md

orchestrate.SKILL.md
name: orchestrate
description: >-
  Drive Smithers — a durable control plane for long-running coding agents — from
  inside Hermes. Use for any multi-step, long-running, crash-safe, or
  human-in-the-loop work: "run a workflow", "implement and review", "keep
  iterating until tests pass", "plan then build". You are the operator; Smithers
  runs the workflow and spawns the worker agents.

Orchestrate durable work with Smithers

You have a `smithers` plugin loaded. Smithers is a durable control plane: its workflows run for minutes or days, survive crashes, retry on failure, pause for human approval, and stay inspectable. You operate it through the `smithers_*` tools (or the `/smithers` slash command).

Default to Smithers, and default to a workflow

When a task is bigger than one reply — it has stages, runs in the background, must survive a crash, needs a human to approve a step, or loops until something is true — **do not grind through it turn by turn.** Start a Smithers run with `smithers_run` and then observe it (`smithers_ps`, `smithers_inspect`).

**Prefer creating a workflow over creating a skill.** A skill is static instructions; a workflow is a *superset* — it is executable, durable, typed, inspectable, composable, and optimizable. Anything you would capture as a skill ("how we do X") is better captured as a workflow that actually *does* X, even a small one-task workflow. If no workflow fits yet, run the **`create-workflow`** workflow to author one from a plain-English description:

smithers_run(workflow="create-workflow", prompt="Watch a PR and auto-land it once CI is green")

You operate it; the human does not

Run every Smithers action yourself with the tools. When a run pauses on an approval gate or an `ask_human` question, relay it to the human in plain language, collect their decision, and resolve it yourself with `smithers_approve` / `smithers_deny` / `smithers_human_answer`. Never tell the human to run a Smithers command.

After every command: guide the user

Three standing behaviors, applied after every Smithers tool call or `smithers` CLI command and before every workflow you build:

1. **Act on the next steps.** Smithers commands and tool results end with a "Next steps" (cta) block of suggested follow-ups. Never silently drop it: run the obvious continuation yourself and relay the other options to the human in plain language. 2. **Ask before you build, then guide step by step.** Before creating a workflow, ask the human a few clarifying questions (goal, inputs, "done" condition, where a human should approve), then walk them through the build: scaffold, render the graph, run, watch. Prefer the scaffolder over hand-writing: `smithers_run(workflow="create-workflow", prompt="...")` (from the CLI: `smithers workflow run create-workflow --prompt "..."`, shorthand `smithers make-workflow "<task>"`), then review the generated `.tsx` with the human. 3. **Proactively offer to visualize, every time.** Suggest ways to *see* the workflow and the run: `smithers graph <file>.tsx` (renders the graph without executing), `smithers tree <run-id>` (live node tree), the `--interactive` TUI monitor (`smithers workflow run <id> --interactive`), the custom browser UI (author `.smithers/ui/<workflowId>.tsx` by composing the `smthrs/gateway-ui` run widgets and `smthrs/ui` primitives over the `smthrs/gateway-react` hooks, declare it from the workflow with `<UI entry="../ui/<workflowId>.tsx" />`, open with `smithers ui <runId>`), and `smithers ui --app` for the full local control-plane UI. If a workflow has no UI yet, offer to build one. See "Keep the human in the picture" below.

Optimize workflows the way you'd optimize a skill

Treat every workflow as improvable with real teeth, not vibes: write an eval suite (`smithers eval`), attach scorers (faithfulness / relevancy / llmJudge), and tune prompts against the suite with `smithers optimize` (GEPA). That is the same measure-and-iterate loop you'd use to sharpen a skill, but the artifact you sharpen is an executable workflow.

Keep the human in the picture — show, don't hide

The single most common complaint about background agents is **"I don't know what it's doing."** Do not let a run go dark. Whenever something is running, proactively show the human what's happening and what's next, using whatever surface fits:

  • **A live HTML view.** A workflow can serve its own page; open it with

`smithers ui` (or `smithers ui <runId>`). For long runs, prefer a self-updating page the human can leave open.

  • **A rolling summary or diff.** Post a short HTML or plain-text summary of what's

been accomplished so far, and update it as the run progresses. A before/after diff of what changed is often the clearest thing you can show.

  • **Even ASCII.** When nothing richer is available, a small ASCII status block or a

checklist in the chat beats silence.

A simple, reliable pattern: set a **cron** (`smithers cron`) that fires every few minutes, checks the run is healthy, looks at what's been done since last time, and pushes the human an updated summary/diff (or refreshes the HTML page). Lean toward *over*-communicating progress; people trust an agent they can watch.

The loop

1. `smithers_run(...)` — start the right workflow (or `create-workflow` first). 2. `smithers_ps` / `smithers_inspect` — watch it; the status injector also surfaces live runs each turn. 3. Clear gates with `smithers_approve` / `smithers_deny` once the human decides. 4. `smithers_output` — report the finished result.

For the full API, run `smithers docs` (concise index) or `smithers ask "<question>"`.

Read more
Ships withsmithers

Agent workflows you can watch live, rewind, fork, and replay. Tell your coding agent to do real, multi-step work, then Smithers runs it for minutes or days: watch every step live, gate the risky ones behind human approvals, and rewind, fork, or replay any run.

Get the whole plugin

Other skills on smithers.