create-harness
The create-harness skill scaffolds a branded AI agent harness with its own npx CLI, MCP server registration, memory backend, and npm-publishable package structure. Use this when users request custom agent harnesses for vertical domains like legal, trading, or support, or when they want to build Claude Code plugins, Codex skills, pi.dev extensions, or Hermes runtime configurations with their own agents and tools bundled together.
git clone --depth 1 https://github.com/ruvnet/agent-harness-generator /tmp/create-harness && cp -r /tmp/create-harness/.claude-plugin/skills/create-harness ~/.claude/skills/create-harnessSKILL.md
# create-harness This skill scaffolds an AI agent harness — your own focused, branded harness with its own `npx <name>` CLI, MCP server registration, memory namespace, learning loop, and marketplace identity. ## When to use this skill Use this skill when the user wants any of: - A custom MCP-server-backed AI assistant (legal, trading, support, ops, …) - A Claude Code plugin that bundles their own agents/skills/prompts - A Codex skill that wraps a kernel + tools - A pi.dev extension or Hermes agent runtime config - A standalone npm package they can `npm publish` under their own scope ## How to invoke ``` /create-harness ``` The skill asks for: 1. **Harness name** (kebab-case, e.g. `legal-redline`) 2. **Description** (one line) 3. **Host(s)** — Claude Code, Codex, pi.dev, Hermes (multi-select) 4. **Template** — `minimal` (default), `vertical:trading`, `vertical:support`, `vertical:devops`, `vertical:legal`, `vertical:research`, or `eject-from-ruflo` 5. **Memory backend** — AgentDB (default), SQLite-only, in-memory 6. **Routing strategy** — 3-tier (default) or single-tier 7. **Marketplace** — independent (no ruflo branding) or powered-by ## Under the hood Calls `npx create-agent-harness <name>` with the user's choices, copies the chosen template into the current directory, runs the post-generation smoke test, and emits a `.harness/manifest.json` so future updates can `harness upgrade` cleanly (copier-style regenerate-diff-merge). ## Outputs | File | Purpose | |---|---| | `package.json` | The harness's npm package, ready to `npm publish` | | `bin/<name>.js` | The CLI binary your users invoke | | `.claude/settings.json` (if Claude Code host) | MCP + hooks wiring | | `.codex/config.toml` (if Codex host) | MCP table in TOML | | `AGENTS.md` + `SYSTEM.md` (if pi.dev host) | Pi extension instructions | | `cli-config.yaml` (if Hermes host) | Hermes runtime config | | `.harness/manifest.json` | Generator state — drives drift detection (ADR-008) | | `witness.json` | Ed25519-signed provenance manifest (ADR-011) | ## After scaffolding The user can: ```bash cd <name> npm install npm test npm publish # ship their harness to npm # their users: npx <name> init ``` ## Notes for the model - This is a deterministic operation — defer to `create-agent-harness` for the actual file creation, do NOT generate harness file contents yourself - The witness manifest is required — do not skip it - If the user asks for "ruflo for X" or "my own ruflo", recommend `vertical:<X>` templates first and offer `minimal` as the fallback - Multi-host is supported but increases the harness's surface area — recommend single-host for first-time users unless they explicitly need multi-host
Diff two scaffolded harnesses (ADR-031). Reports manifest meta drift + host list + per-file fingerprint changes (added/removed/changed). Exits 0 IDENTICAL, 1 DRIFT, 2 missing manifest. Use --bundle for the ADR-031 schema-1 JSON envelope.
Kernel-version skew check (ADR-027). Reports manifest surface + manifest kernel + installed kernel + verdict (match/patch-diff/minor-diff/major-diff). Exits 1 on minor/major skew with a copy-pasteable `npm install @metaharness/kernel@X.Y.Z` next step. Exits 2 if no .harness/manifest.json at path.
Scaffold a ready-made AI agent harness in one command from the 19 published @metaharness/* example packages — 9 host integrations (Claude Code, Codex, Hermes, pi.dev, OpenClaw, RVM, Copilot, OpenCode, GitHub Actions) + 10 vertical pods (devops, research, trading, support, legal, coding, education, sales, gaming, repo-maintainer).
GCP Secret Manager integration: validate setup, fetch values, or confirm an NPM_TOKEN is non-revoked via `npm whoami`. Used for publish-time token rotation without long-lived keys in CI.
List the available harness templates and what each one ships with. Use when the user asks "what templates are available", "what verticals does the harness generator support", or "show me what I can scaffold".
Emit .harness/oia-manifest.json declaring layer alignment with the OIA v0.1 9-layer reference architecture. Self-describes the harness's MCP wiring, witness signing, audit log, identity posture (always 'none' at v0.1). --check verifies an existing manifest, --dry-run prints without writing, --json emits to stdout.
Publish a generated harness to npm — runs the smoke test, signs the witness manifest, and dispatches `npm publish --provenance` from your tagged release.
7-section readiness scorecard for a LOCAL repo. Reports repo type + agent topology + MCP risk + test confidence + release readiness + recommended harness plan + scorecard. Exit 0 ready, 1 needs-work, 2 blocked. --json for the 6-field scorecard, --bundle for the ADR-031 schema-1 envelope.