Skip to content
Development
Skill

/harness-mint

Scaffold a custom AI agent harness via `metaharness new <name> --template <id> --host <id>`. Defaults to DRY-RUN (no writes) unless --confirm is passed. Refuses to write to the calling repo root or anywhere inside it. Honors ADR-150 architectural constraint + ruflo's

From plugin
claude-flow
67k200 skills157 agents194 commands1 MCP
Install
$ npx -y skills add ruvnet/claude-flow --skill harness-mint --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/harness-mint

Context preview

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

Scaffold a custom AI agent harness via `metaharness new <name> --template <id> --host <id>`. Defaults to DRY-RUN (no writes) unless --confirm is passed. Refuses to write to the calling repo root or anywhere inside it. Honors ADR-150 architectural constraint + ruflo's

SKILL.md

harness-mint.SKILL.md
name: harness-mint
description: Scaffold a custom AI agent harness via `metaharness new <name> --template <id> --host <id>`. Defaults to DRY-RUN (no writes) unless --confirm is passed. Refuses to write to the calling repo root or anywhere inside it. Honors ADR-150 architectural constraint + ruflo's "destructive-action confirmation" pattern.
argument-hint: "--name <id> --template <vertical:coding|minimal|…> [--host claude-code|codex|…] [--target /abs/path] [--confirm] [--format table|json]"
allowed-tools: Bash

The one write-capable skill in the plugin. Every other skill is pure-read. This one calls `metaharness new`, which writes a new directory tree.

Safety (load-bearing)

1. **Dry-run by default.** Without `--confirm`, the script prints what it would do and exits 0 without touching disk. 2. **Refuses project root.** If `--target` resolves to the current working directory OR any path inside it, the script errors out with exit 2. Target must be an absolute path OUTSIDE the calling repo (default is a fresh `/tmp/ruflo-mint-<ts>-<name>/` dir). 3. **Refuses existing target.** Won't overwrite — must scaffold into a non-existent dir. 4. **Subprocess + 60s timeout.** No library import, no in-process execution. The mint stays sandboxed from ruflo's runtime.

Algorithm

Implementation: [`scripts/mint.mjs`](../../scripts/mint.mjs).

1. Validate `--name`, `--template`. Default `--host` to `claude-code`. 2. Resolve `--target` (default: temp dir). 3. Run safety checks (no project-root writes; target must not exist). 4. Without `--confirm`: emit dry-run plan, exit 0. 5. With `--confirm`: shell `npx metaharness new <name> --template <id> --host <id> --target <abs> --yes`.

Templates

`minimal`, `vertical:coding`, `vertical:devops`, `vertical:support`, `vertical:legal`, `vertical:research`, `vertical:trading`, `vertical:health`, `vertical:education`, `vertical:sales`, `vertical:business`, `vertical:crm`, `vertical:marketing`, `vertical:advertising`, `vertical:ai`, `vertical:agentics`, `vertical:ruview`, `vertical:gaming`, `vertical:repo-maintainer`, `vertical:exotic`.

Hosts

`claude-code`, `codex`, `pi-dev`, `hermes`, `openclaw`, `rvm`, `copilot`, `opencode`, `github-actions`.

Example dry-run

$ node scripts/mint.mjs --name my-harness --template vertical:coding --host claude-code
# harness-mint (dry-run)

- action: metaharness new
- name: my-harness
- template: vertical:coding
- host: claude-code
- target: /tmp/ruflo-mint-1718560000-my-harness
- confirm: false
- willWrite: false

Re-run with `--confirm` to actually scaffold.

Why dry-run by default

Ruflo's behavioral rules say "executing actions with care" — destructive or repo-touching actions need confirmation. The dry-run output makes the WHAT visible before the WHEN. A human sees `target`, decides, then adds `--confirm` if happy.

Read more
Ships withclaude-flow

An agent meta-harness for Claude Code and Codex. Agent = Model + Harness. The model writes; the harness gives it tools, memory, loops, sandboxes, and controls so it can actually work.

Get the whole plugin

Other skills on claude-flow.