Agent skill

Dynamic Workflow

by NousResearch in NousResearch/hermes-agent

Plan-in-code fan-outs, adversarial verification, waves. An agent skill from NousResearch/hermes-agent.

MITAuto-check passed

Install Dynamic Workflow

skills CLI
$ npx skills add NousResearch/hermes-agent --skill dynamic-workflow -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install NousResearch/hermes-agent dynamic-workflow --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/NousResearch/hermes-agent.git skills-src && mkdir -p .claude/skills && cp -r skills-src/optional-skills/autonomous-ai-agents/dynamic-workflow .claude/skills/dynamic-workflow && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
dynamic-workflow
GitHub stars
252k
Token cost
~2.8k tokens
SKILL.md length
1,472 words
Files
1
Skills in repo
29
Repo updated
First seen
Licence
MIT

At a glance

Plan-in-code fan-outs, adversarial verification, waves. An agent skill from NousResearch/hermes-agent.

  • Works in 5 steps: Decompose into independent units. → Layer A pre-pass writes the manifest. → Size chunks against the limits above;… → …
  • SKILL.md covers When to Use, Prerequisites, How to Run and Quick Reference, plus 3 more sections
  • Calls git

What it does

Dynamic Workflow is an agent skill from NousResearch/hermes-agent. Plan-in-code fan-outs, adversarial verification, waves.

Its SKILL.md is about 2.8k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

The repository describes itself as: The agent that grows with you. The licence is MIT.

Example prompts

  • “/dynamic-workflow”

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. Decompose into independent units.
  2. Layer A pre-pass writes the manifest.
  3. Size chunks against the limits above; for more tasks than
  4. Layer B: one delegate_task(tasks=[...]); each task reads its slice, writes
  5. End the turn. As result messages arrive, read the files, verify, merge; the

What it can do on your machine

Read from SKILL.md and the folder at commit 0e37a43. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • git

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Dynamic Workflow loads about 2.8k tokens when it runs. Until then it costs about 18 tokens; SKILL.md has 1,472 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~18
When it runs · the whole SKILL.md, loaded when a task matches
~2.8k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from NousResearch/hermes-agent at commit 0e37a43, republished under its MIT licence (© NousResearch). 1,472 words, ~2,807 tokens.

Download SKILL.mdSave it as .claude/skills/dynamic-workflow/SKILL.md (or your agent's skills folder).
name
dynamic-workflow
description
Plan-in-code fan-outs, adversarial verification, waves.
version
2.0.0
author
Teknium + Hermes Agent
license
MIT
platforms
linux, macos, windows
when_to_use
A task is too big for one context window AND you can describe the split (per-file, per-endpoint, per-source, per-record), You want orchestration codified as a…
when_not_to_use
Small bounded task (under ~10 units) - do it inline or call the tool directly, Tight serial dependency (B needs A's output) - orchestration overhead is…

Dynamic Workflow Skill

Runs large fan-out work as a workflow: the plan, the loop and every intermediate result live in a script and on disk, so the parent's context holds only verified results. Covers one-shot fan-outs, adversarial convergence (attempts + refuters), and multi-wave campaigns that integrate dozens of worker branches. It does not make delegate_task durable across restarts; that is the kanban swarm's job.

When to Use

Reach for it when the unit of work is clear (a file, an endpoint, a record) and there are more units than one context can hold. Skip it for under ~10 units or for serial chains. For a refactor or fix campaign on hermes-agent itself, load hermes-agent (the dev workflow) alongside; this skill owns the fan-out shape.

Prerequisites

  • delegate_task available and delegation.max_concurrent_children sized for the wave (default 10; the runtime rejects a tasks=[] larger than that with a clear error rather than queueing). delegation.max_spawn_depth >= 2 only if children must fan out themselves.
<!-- no-tmp: ok — explains why a literal /tmp is wrong -->
  • A writable run directory resolved from the terminal environment's temp dir ($TMPDIR, else the platform temp dir). Never a literal /tmp: Termux has no such directory and native Windows breaks on it. Use <tmp>/wf_<name>_<uuid>/, unique per run, so an interrupted earlier run cannot leave stale outputs to be misread.
  • execute_code for the deterministic layer (only web_search, web_extract, read_file, write_file, search_files, terminal, patch exist inside it).

How to Run

Two layers, split by a real capability boundary:

Layer A - execute_code scriptLayer B - delegate_task batch
Use forDETERMINISTIC work: fetch N URLs, parse N files, run N commands, template N outputs, build manifests, merge outputsLLM-JUDGMENT work: classify, review, decide, write, refute, refactor one unit
Holdsloop, branching, intermediate variablesnothing; one call with tasks=[...], each task its own isolated agent
Toolsthe sandbox set above; it can NOT call delegate_taskthe parent's toolsets, inherited unchanged (no per-task narrowing); children lose delegate_task, clarify, memory, send_message, cronjob_manage
Concurrencyyours (ThreadPoolExecutor, batches)bounded by delegation.max_concurrent_children
Costtool calls onlyone full agent tree per task; multiplies linearly

Do the deterministic part in Layer A first, fan out only the irreducibly-LLM step in Layer B, synthesize on the parent.

Background-first: results re-enter as messages

A top-level delegate_task returns immediately with one handle per task; each child's result re-enters the conversation as a new message when it finishes. You cannot read out_*.csv on the line after the call. Finish whatever does not depend on the children, give a one-line status, and END YOUR TURN; act on each result message as it lands. An ordinary follow-up user message does not cancel children; /stop, /new and process exit do. Only a delegation issued by an orchestrator subagent (depth > 0) is synchronous.

Quick Reference

  • Unit must be answerable without sibling output, else it is serial.
  • Manifest: one unit per line in <run>/manifest.jsonl; print count + run dir.
  • Per child: ~8-12 mechanical edits, or ~2-3k lines of reading, or ~50-70 KB of corpus; size by the LARGEST unit. Structured output goes to files, never the summary field (it truncates under load); delimiter-separated lines over JSON.
  • Parent verifies file count and per-run freshness before merging.
  • A "stalled" child usually completed its write; check the filesystem first.
  • Scoped slice first (one directory, 20 records), report token cost, then scale.

Procedure

One-shot fan-out
  1. Decompose into independent units.
  2. Layer A pre-pass writes the manifest.
  3. Size chunks against the limits above; for more tasks than max_concurrent_children, issue bounded waves yourself.
  4. Layer B: one delegate_task(tasks=[...]); each task reads its slice, writes <run>/out_<i>.csv, prints a status word, stops.
  5. End the turn. As result messages arrive, read the files, verify, merge; the cross-cutting synthesis stays on the parent.
Adversarial convergence (finding-quality work)
  1. Independent attempts: the SAME question to N children (2-4) with DIFFERENT framings in each context, each writing one claim per line to <run>/attempt_<i>.md. Located, individually falsifiable claims only ("POST /api/users/:id/role in src/routes/users.ts:142 has no role check"); a refuter cannot break "the auth layer has problems".
  2. Merge and dedupe on the parent; note the agreement count per claim.
  3. Refuters: a second batch told to BREAK each claim with counter-evidence, emitting claim_idx|survives|counter_evidence. Give them the sources, not the attempts' reasoning.
  4. Surface only survivors; drop refuted claims with a one-line reason.
  5. Feed new claims from round 2 through one more refutation; stop when a round adds no survivors, cap at 3 rounds.

The same mechanic protects the parent from its own wrong premises: when you hand children a heuristic ("every patch target on a facade is a dead seam"), tell them to refute it with evidence before acting on it. Four squads doing so turned a 647-site blanket rewrite into 59 real fixes and saved 130+ green tests.

Show full SKILL.md (695 more words)Show less
Campaign shape (dozens of workers, several waves, hours)

The one-shot recipe does not scale to a whole-codebase pass. What did:

  1. Measure first (LOC, hotspots, dead symbols, oracle corpora) and write ONE shared BRIEF.md plus a per-cluster task_<cluster>.md. Every child reads both. When the fleet drifts (children shaving docstrings instead of cutting code), patch the brief once and steer; re-dispatched children inherit the fix.
  2. Exclusive ownership: one cluster of files per worker, edits outside it are discarded at integration. Sub-fan-outs inside one file own line RANGES and define helpers inside their range so diffs merge cleanly.
  3. Commit per verified step, locally, no push, no PR, no rebase from children. Committed state is the only handoff; every worker that died mid-campaign lost exactly its uncommitted tail. A worker sharing a worktree index commits with git commit -- <paths> only; a bare commit swept a sibling's staged hunks.
  4. Fleet size 12-16 concurrent. Above ~40 processes on one OAuth grant the hourly token refresh stampedes into 401s and kills the wave. Queue the rest.
  5. Parent liveness: a child reporting completed with a few dozen log lines, or with 0 commits on its branch, has not finished; look for its sub-branches or re-dispatch it with the predecessor's worktree and diff.
  6. Integration per round: freeze a base SHA, rebase clean branches mechanically, give each conflicting branch its own rebase worker ("main's behaviour wins, re-applied inside the new structure"), merge onto one integration branch, run the FULL suite on the combined tree. Collisions that every branch passed alone appear only here. The next round branches from the integrated commit so its workers cannot conflict with each other.
  7. Before declaring a round integrated: git rev-list --count <integration>..<branch> is 0 for EVERY branch. Workers keep committing after you merge their tip; 168 commits across six slices were once left behind that way.
  8. Test runs: exactly one runner on the box, behind a lock file, at high -j. Many parallel low--j runners were slower AND killed each other's process groups. Red files are re-run on a bare origin/main worktree in the same venv; identical per-file failure sets are pre-existing, not yours.
  9. Forward-port at the end, not per round: freeze main's SHA, fan out the conflicted files by directory to workers editing ONE merge worktree with no commits, then the parent commits the merge once. CI never runs on a conflicted PR, so re-merge main before every push.
  10. Live QA is its own wave: one squad per surface, isolated HERMES_HOME, expectation written before the check, evidence on disk, report only, and a PR-vs-main difference is the only thing that counts as a regression. Green unit tests missed the one P0 (a logged-in code path no test exercised).
  11. Reviewer claims get the same treatment as child claims: A/B against the base before "restoring" anything. Several confidently stated review deltas already behaved that way on base.
  12. A parent restart needs a HANDOFF.md: why it died, which handles are dead, per-branch scorecard (LOC delta, import smoke, targeted tests), and the exact re-dispatch text. Snapshot every dirty worktree into a wip: commit first.

Pitfalls

  • Calling delegate_task inside an execute_code script: not in the sandbox.
  • Synthesizing on the same turn as the fan-out call: the files do not exist yet.
  • Promising background-durable-for-days from delegate_task: it is turn-scoped and dies with the process. Durable graph = kanban swarm; one-off = cronjob.
  • Trusting summary for content, or status=completed for completion.
  • Same framing in every "independent" attempt: they collapse to one answer.
  • git stash anywhere in a worktree campaign: refs/stash is shared across worktrees and another worker will pop your edits. Compare via a temp worktree.
  • Reporting a hit target when the honest number is lower. Say "16% so far, here is the path to 30%" and run the next round.

Verification

  • Manifest line count matches the expected unit count.
  • Every out_*.csv exists and was written this run.
  • Every dropped claim has recorded counter-evidence; every surfaced claim went through refutation.
  • Campaign: every branch at 0 unmerged commits, full suite on the integrated tree with reds triaged against bare main, live QA report per surface, token cost reported on the scoped slice before the full run.

© NousResearch, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in optional-skills/autonomous-ai-agents/dynamic-workflow of NousResearch/hermes-agent.

Open the folder on GitHubat commit 0e37a43

Compare with similar skills

Dynamic Workflow next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Dynamic Workflow compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Dynamic Workflow this skillNousResearch/hermes-agent252k—~2.8kAutomated safety check: PassMIT
Dynamic Workflow Modeaffaan-m/ECC274k1 repos~1.3kAutomated safety check: PassMIT
Open Dynamic Workflowssickn33/agentic-awesome-skills47k1 repos~1.1kAutomated safety check: PassMIT
Molecular DynamicsK-Dense-AI/scientific-agent-skills48k1 repos~4.7kAutomated safety check: PassMIT
Elliott Wave Signal EngineHKUDS/Vibe-Trading35k—~482Automated safety check: PassMIT
Dynamic Workflowszai-org/ZCode7.5k—~23kAutomated safety check: PassApache-2.0

Similar skills

  • Design task-local harnesses, eval gates, and reusable skill extraction for Claude dynamic workflow mode and other adaptive agent harnesses.

    274k GitHub starsUsed in 1 repo~1.3k tokens
    Auto-check passed
  • Open Dynamic Workflows

    sickn33/agentic-awesome-skills

    Plan, orchestrate, and adversarially verify parallel AI coding agents with a dynamic multi-agent workflow engine.

    47k GitHub starsUsed in 1 repo~1.1k tokens
    Agent WorkflowsAuto-check passed
  • Molecular Dynamics

    K-Dense-AI/scientific-agent-skills

    Runs and analyzes molecular dynamics simulations with OpenMM and MDAnalysis.

    48k GitHub starsUsed in 1 repo~4.7k tokens
    Research & ScienceAuto-check passed
  • Elliott Wave Signal Engine

    HKUDS/Vibe-Trading

    Detects Elliott Wave structures in price data with a Zigzag swing finder and Fibonacci checks, and turns completed waves into long, short or flat signals.

    35k GitHub stars~482 tokensUpdated yesterday
    Business, Finance & HRAuto-check passed
  • Dynamic Workflows

    zai-org/ZCode

    A skill your agent uses when writing, debugging, or resubmitting a dynamic-workflow script for the CreateWorkflow tool: choosing subagent topology, typing subagent results, fanning out over files or…

    7.5k GitHub stars~23k tokensUpdated 8 days ago
    Agent WorkflowsAuto-check passed
  • Adversarial Review

    mengxi-ream/read-frog

    Adversarial code review using cross-model approach. An agent skill from mengxi-ream/read-frog.

    10k GitHub starsUsed in 1 repo~905 tokens
    DevelopmentAuto-check passed

More from NousResearch/hermes-agent

All 29 skills in this repo
  • AI Presenter Video

    NousResearch/hermes-agent

    Produces a presenter-led video from a topic or script plus one authorized presenter image, with captions, lip-sync checks and acceptance reports.

    252k GitHub stars~2.3k tokensUpdated today
    Auto-check passed
  • Word DOCX Toolkit

    NousResearch/hermes-agent

    Creates, reads, edits and templates Word .docx files with python-docx scripts, including tracked changes, comments, tables of contents and health checks.

    252k GitHub stars~2.6k tokensUpdated today
    Auto-check passed
  • Grounded Citations

    NousResearch/hermes-agent

    Attaches a numbered, URL-backed citation to every outside fact in an answer or document, rejecting quotes that aren't real.

    252k GitHub stars~3.1k tokensUpdated today
    Auto-check passed
  • PDF

    NousResearch/hermes-agent

    PDF files: create, read, merge, fill, OCR, edit text. An agent skill from NousResearch/hermes-agent.

    252k GitHub stars~3.1k tokensUpdated today
    Auto-check passed
  • Scrollcraft

    NousResearch/hermes-agent

    Premium scroll-driven landing pages; scroll = timeline. An agent skill from NousResearch/hermes-agent.

    252k GitHub stars~3k tokensUpdated today
    Auto-check passed
  • XLSX

    NousResearch/hermes-agent

    Create, read, edit Excel .xlsx workbooks and CSVs. An agent skill from NousResearch/hermes-agent.

    252k GitHub stars~2.4k tokensUpdated today
    Auto-check passed

Questions about Dynamic Workflow

What does Dynamic Workflow do?

Plan-in-code fan-outs, adversarial verification, waves. An agent skill from NousResearch/hermes-agent. Dynamic Workflow is an agent skill from NousResearch/hermes-agent. Plan-in-code fan-outs, adversarial verification, waves.

How do I install Dynamic Workflow in Claude Code?

Run `npx skills add NousResearch/hermes-agent --skill dynamic-workflow -a claude-code`. Or copy the skill folder (optional-skills/autonomous-ai-agents/dynamic-workflow in NousResearch/hermes-agent) into .claude/skills/dynamic-workflow in your project. Claude Code loads it when a task matches its description.

How do I install Dynamic Workflow in Codex?

Run `npx skills add NousResearch/hermes-agent --skill dynamic-workflow -a codex`. Or copy the skill folder (optional-skills/autonomous-ai-agents/dynamic-workflow in NousResearch/hermes-agent) into .agents/skills/dynamic-workflow in your project. Codex loads it when a task matches its description.

Can I use Dynamic Workflow in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add NousResearch/hermes-agent --skill dynamic-workflow -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/dynamic-workflow, .gemini/skills/dynamic-workflow, .github/skills/dynamic-workflow and .opencode/skills/dynamic-workflow in your project.

What does Dynamic Workflow need to run?

Going by SKILL.md and its folder, Dynamic Workflow needs the command-line tools its instructions call (git).

Does Dynamic Workflow access the network?

SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Dynamic Workflow safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Dynamic Workflow use?

Dynamic Workflow is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Dynamic Workflow use?

About 2.8k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Dynamic Workflow?

Skills that share tags, products or a category with Dynamic Workflow: Dynamic Workflow Mode (affaan-m/ECC, 274k stars), Open Dynamic Workflows (sickn33/agentic-awesome-skills, 47k stars), Molecular Dynamics (K-Dense-AI/scientific-agent-skills, 48k stars) and Elliott Wave Signal Engine (HKUDS/Vibe-Trading, 35k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Dynamic Workflow?

NousResearch (a GitHub organization) maintains it in NousResearch/hermes-agent, which has 251,739 GitHub stars. The repository holds 29 skills in this directory. The repository was last updated on October 7, 2026.

Source: NousResearch/hermes-agent on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.