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.
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.
Star history
- revfactory/harness9,363 β Β· +312
| Repository | 2026-09-22 | 2026-11-14 |
|---|---|---|
| revfactory/harness | 9.1k | 9.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:
/plugin marketplace add revfactory/harness
/plugin install harness@harness-marketplaceThe other route copies two directories straight into your home Claude config:
cp -r skills/harness ~/.claude/skills/harness
cp -r skills/evolve ~/.claude/skills/harness-evolveThe 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:
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:evolvePhase 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:
νλ€μ€ νκ³ ν΄μ€ / evolve the harness with this feedbackSkip 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:
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:
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 historyAgent 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
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.
[](https://hysenlabs.com/projects/revfactory-harness)Star history chart for your README
[](https://hysenlabs.com/projects/revfactory-harness)Was this useful?