Model or dataset
revfactory/harness avatar
revfactory/harness

Harness v2 rebuilds an agent team factory on three execution modes

A meta-skill that designs domain-specific agent teams, defines specialized agents, and generates the skills they use.

9,363 stars1,348 forksHTMLApache-2.0

At a glance

What is it?
Harness turns a one sentence request into a Claude Code agent team: definitions under .claude/agents/, skills under .claude/skills/, and a pointer in CLAUDE.md. It installs as a plugin or as two copied directories, and the only measurement it publishes belongs to the v1 plugin it replaced.
Who is it for?
Take Harness when you want a Claude Code agent team drafted from a domain description and can review the generated .claude/ files before they land in your repository. Check first what your existing CLAUDE.md and .claude/agents/ already hold, because the audit phase runs before you approve a design, and treat the published numbers as motivation rather than evidence for v2.
Can I use it commercially?
Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 48 days ago.
What is it written in?
Mainly HTML, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on November 14, 2026, and from our analysis. They are not legal advice.

From daily snapshots

Star history

  • revfactory/harness9,363 β˜… Β· +312
Star history
Repository2026-09-222026-11-14
revfactory/harness9.1k9.4k

312 Stars in the last 53 days, measured from the daily GitHub snapshot. Compare with other projects

Editorial analysis

Two install routes that leave different things on disk

Two install paths are documented and they do not end in the same place. The marketplace route registers a plugin source and installs the plugin:

shell
/plugin marketplace add revfactory/harness
/plugin install harness@harness-marketplace

The other route copies two directories straight into your home Claude config:

shell
cp -r skills/harness ~/.claude/skills/harness
cp -r skills/evolve ~/.claude/skills/harness-evolve

The second command lands evolve under the name harness-evolve, while the evolve command elsewhere on the page is written /harness:evolve, and the page does not say whether that name survives a copy install. It does say no environment variables or experimental flags are required, which reverses the CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1 dependency v1 carried. Count what the copy path skips too: the repository ships a .claude-plugin/ directory, a CHANGELOG.md, CONTRIBUTING.md and a docs/ folder, and none of those are touched by those two lines. The repository also has no GitHub releases, so either route installs whatever main happens to hold.

The execution mode comes from control flow, not team size

v1 knew two execution modes and both were built on the experimental TeamCreate API, which the page states no longer exists. What ships now is three. Workflow orchestration runs deterministic Workflow scripts built from pipeline(), parallel(), schemas and budgets, aimed at enumerable fan-outs, verification loops and large scale. Persistent agent collaboration uses named agents with SendMessage and shared task lists, keeping context across turns. Sub-agent delegation is one-shot parallel dispatch.

The factory picks from the shape of the control flow rather than the size of the team, and mixes modes per phase when that fits better. That mixing has a price: sub-agent delegation is documented as fire-and-forget where only the results come back, so any step that needs iterative negotiation has to land in persistent mode instead, and the page names no override for forcing a different mode on a given phase.

Blanket model pins are forbidden, so every agent gets its own tier

v1 pinned every agent to model: "opus". v2 drops that and selects a tier per agent from fable, opus and sonnet, judging by the task's complexity, duration, autonomy and latency needs, and it forbids unjustified blanket pins. The migration note tells you to remove blanket model: "opus" pins on the way over. What you get in exchange is a harness with mixed models inside it: cost and latency now differ per agent, and the page documents no flag for reading the tier that was chosen or for pinning one yourself.

Six architecture patterns are offered, Pipeline, Fan-out/Fan-in, Expert Pool, Producer-Reviewer, Supervisor and Hierarchical Delegation, each mapped to its best v2 execution mode. So the tier arrives attached to a structure you did not hand-pick either, and you find out about both from the generated files rather than from a decision you made.

Phase 0 detects v1 artifacts and rewrites the migration for you

The pipeline is eight numbered phases, and phase 0 is the one that reaches into your repository before you answer a design question:

code
Phase 0: Audit existing harness (new / extend / maintain β€” v1 artifacts detected here)
Phase 1: Domain analysis (incl. control-flow shape of the work)
Phase 2: Execution mode & team architecture design
Phase 3: Agent definitions (.claude/agents/)
Phase 4: Skill generation (.claude/skills/)
Phase 5: Orchestration & CLAUDE.md pointer
Phase 6: Verification & testing
Phase 7: Maintenance β€” evolution via /harness:evolve

Phase 0 tags the work as new, extend or maintain, and it is where v1 artifacts get spotted. The rewrite that follows is mechanical: remove TeamCreate, TeamDelete, broadcast and flag references, convert fan-outs to Workflow scripts, rewrite the remaining collaboration with named agents plus SendMessage, and drop blanket model pins, with more detail in docs/migration-v1-to-v2.md. The page describes no preview step between the audit and the rewrite and does not say which files are modified in place, so keep a copy of a .claude/ directory that already holds work.

/harness:evolve is a skill you have to copy separately

Phase 7 handles maintenance, and it leans on a command that v1 only described in prose. /harness:evolve captures the delta between your initial and current harness, generalizes the feedback you hand it, and feeds that back into agents, skills and orchestrators. In v2 it ships as a real skill, and it is the second directory in the copy install path. Its trigger is one sentence, issued after you have used the generated harness:

code
ν•˜λ„€μŠ€ νšŒκ³ ν•΄μ€˜ / evolve the harness with this feedback

Skip that copy and phases 0 through 6 still hand you a team, but the maintenance phase has nothing behind it. Nothing on the page tells you a harness left alone improves on its own, so treat evolve as a separate install decision from the factory itself. The same split applies to the factory trigger, which is also just prose you type:

code
build a harness for this project
design an agent team for <domain>

Everything lands in .claude/ plus a CLAUDE.md pointer

The output is a fixed directory shape and a stub pointer:

code
your-project/
β”œβ”€β”€ .claude/
β”‚   β”œβ”€β”€ agents/          # agent definitions (who)
β”‚   β”‚   β”œβ”€β”€ analyst.md
β”‚   β”‚   β”œβ”€β”€ builder.md
β”‚   β”‚   └── qa.md
β”‚   └── skills/          # skills (how) + one orchestrator (who-when-in-what-order)
β”‚       β”œβ”€β”€ analyze/SKILL.md
β”‚       └── build/SKILL.md
└── CLAUDE.md            # minimal pointer: trigger rule + change history

Agent definitions are markdown files named for the role, skills are SKILL.md files written for context efficiency through Progressive Disclosure, and one of the skills is the orchestrator that decides who runs when and in what order. CLAUDE.md is described as a minimal pointer carrying a trigger rule and change history, which means the factory writes to a file your project also owns. Neither the page nor the phase list says how an existing CLAUDE.md is merged, only that one gets generated, so plan on reading the diff before you keep it.

The only benchmark here is v1 data with n=15

The repository publishes one measurement, under the heading Prior results (v1). A controlled A/B across 15 software engineering tasks reported mean quality moving from 49.5 to 79.3, a 15 out of 15 win rate and 32 percent less output variance, with n=15 and author-run stated in the line itself, pointing at revfactory/claude-code-harness for the code behind it. The page tells you to treat these as author-measured numbers and run your own pilot before making an adoption decision, and that instruction carries extra weight in v2: both the execution modes and the model policy changed underneath those tasks, and no v2 evaluation appears anywhere in the repository. Pin a specific Git commit for a reproducible snapshot and compare commits when updating. Verification tooling does ship, in the form of trigger evals, dry runs and with-skill versus without-skill A/B testing, so you can build that comparison yourself inside a generated harness.

Editorial conclusion

Take Harness when you want a Claude Code agent team drafted from a domain description and can review the generated .claude/ files before they land in your repository. Check first what your existing CLAUDE.md and .claude/agents/ already hold, because the audit phase runs before you approve a design, and treat the published numbers as motivation rather than evidence for v2. Leave it alone if you need a tagged release to pin, a documented way to override the chosen execution mode or model tier, or proof that the current plugin is what was measured.

Frequently asked questions

How do I install Harness for Claude Code?

Two routes are documented: add the marketplace and install the plugin, or copy skills/harness and skills/evolve into ~/.claude/skills/. The page states that no environment variables or experimental flags are required, and the repository has no GitHub releases, so either route installs whatever main holds at that moment.

How do I use Harness in Claude Code?

Ask for it in one sentence, such as build a harness for this project or design an agent team for <domain>. The factory then runs phases 0 through 7 and writes agent definitions to .claude/agents/, skills to .claude/skills/, and a minimal pointer into CLAUDE.md.

Which execution mode does Harness choose?

It picks from the shape of the control flow rather than team size, and mixes modes per phase when that fits better. The three modes are workflow orchestration through Workflow scripts, persistent agents built on Agent(name:), SendMessage and shared task lists, and one-shot sub-agent delegation that returns results only.

What are the two types of harnesses?

In v1 there were two execution modes, both built on the experimental TeamCreate API, which no longer exists. v2 defines three native modes and removed the experimental flag dependency, so a count of two no longer describes this plugin.

How do I use Harness day to day?

Type build a harness for this project, or its Korean equivalent, then read the generated files before keeping them. Feedback afterwards goes to evolve the harness with this feedback, which /harness:evolve turns into changes to agents, skills and orchestrators.

Official sources

  1. Issues
  2. License: Apache-2.0
  3. Project website
  4. README
  5. revfactory/harness on GitHub
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/revfactory-harness.svg)](https://hysenlabs.com/projects/revfactory-harness)

Star history chart for your README

markdown
[![Star history](https://hysenlabs.com/chart/revfactory-harness.svg)](https://hysenlabs.com/projects/revfactory-harness)

Was this useful?