|
| 1 | +# agent-harness-generator |
| 2 | + |
| 3 | +> A CLI that scaffolds custom AI agent harnesses β the way `create-vite` scaffolds web apps, but for vertical agent systems. |
| 4 | +
|
| 5 | +**Status**: Pre-implementation. The repo `ruvnet/agent-harness-generator` does not exist yet. This directory holds the Architecture Decision Records (ADRs) that define what the system is, how it is structured, what it ships, and which trade-offs were taken. Engineers implement against these documents. |
| 6 | + |
| 7 | +**Read in order**: [adrs/INDEX.md](./adrs/INDEX.md). |
| 8 | + |
| 9 | +--- |
| 10 | + |
| 11 | +## What is this in one paragraph |
| 12 | + |
| 13 | +Ruflo today is a tightly-bundled product: a kernel of primitives (MCP server, hooks runner, memory bridge, swarm coordinator, intelligence pipeline, claims, 3-tier routing) fused to opinionated content (60+ agents, 30+ skills, 33 plugins). `agent-harness-generator` factors that apart. A user runs `npx create-agent-harness <name>`, picks the primitives they want, picks the content they want, supplies a name and a brand, and gets a brand-new npm-publishable harness with its own `npx <their-name>` CLI, its own MCP server registration, its own memory namespace, its own marketplace identity. The generator handles trivial scaffolds (a 3-agent customer-support harness) and exotic compositions (federated multi-host swarms with a vertical-specific intelligence pipeline) from the same machinery. |
| 14 | + |
| 15 | +## Why this exists |
| 16 | + |
| 17 | +Three forces are pushing toward this: |
| 18 | + |
| 19 | +1. **Ruflo is converging.** People want their own brand, their own agents, their own skill packs, their own marketplace listings. Forking ruflo to get them is a one-way door β they lose every future kernel update. |
| 20 | +2. **The hosts have multiplied.** Claude Code is no longer the only place users want their harness to run. OpenAI Codex CLI has MCP support, the Hermes-agent / Nous Research stack has its own conventions, and the pi.dev developer platform is emerging. A scaffolded harness should target any host without rewrite. |
| 21 | +3. **The marketplace is heating up.** A scaffolded harness is also a marketplace participant β it both consumes plugins from the ruflo IPFS registry and (optionally) publishes its own scoped plugins back. Without a generator, every new participant rebuilds 80% of the same infrastructure by hand. |
| 22 | + |
| 23 | +## What is in this directory |
| 24 | + |
| 25 | +| Path | Purpose | |
| 26 | +|---|---| |
| 27 | +| `README.md` | (you are here) 3-minute orientation | |
| 28 | +| `adrs/INDEX.md` | Read-in-order index for the ADR series | |
| 29 | +| `adrs/ADR-001-β¦` through `adrs/ADR-016-β¦` (plus `ADR-002a-β¦`) | The decisions, each independently reviewable | |
| 30 | + |
| 31 | +No code lives here. No code should live here. This directory is the contract that the eventual repo `ruvnet/agent-harness-generator` will be built against. |
| 32 | + |
| 33 | +## Three minute reading path |
| 34 | + |
| 35 | +If you have three minutes: |
| 36 | + |
| 37 | +- Read **ADR-001** (Goals and non-goals) β what we are and are not building. |
| 38 | +- Skim **ADR-002** (Kernel boundary) β the single load-bearing decision. |
| 39 | +- Skim **ADR-003** (Generator architecture) β how the CLI works end-to-end. |
| 40 | + |
| 41 | +If you have fifteen minutes, read those three plus **ADR-004** (host integration), **ADR-007** (CI guards), and **ADR-009** (anti-slop). That set defines the system perimeter. |
| 42 | + |
| 43 | +The rest of the series fills in: memory integration, drift detection, witness/provenance, eject/upgrade, vertical packs, self-evolution + federation, naming/branding, and migration for existing ruflo users. |
| 44 | + |
| 45 | +## Conventions |
| 46 | + |
| 47 | +- ADRs are numbered `ADR-NNN-kebab-case-slug.md`, three-digit padding. |
| 48 | +- Each ADR follows the standard ruflo template (`Title / Status / Context / Decision / Consequences / Alternatives / Test Contract / References`). |
| 49 | +- "We" in the ADRs means the agent-harness-generator project, not the ruflo monorepo. Where a decision binds back to a ruflo ADR, the ruflo ADR is cited by number. |
| 50 | +- Plain language is the rule. Terms of art are defined inline at first use. |
| 51 | + |
| 52 | +## Out of scope for this ADR set |
| 53 | + |
| 54 | +These are explicitly **not** decided here, and have been deferred: |
| 55 | + |
| 56 | +- A hosted web UI ("generator-as-a-service"). May appear in a later phase; see ADR-001 Β§Non-goals. |
| 57 | +- A non-npm distribution channel for generated harnesses (e.g. PyPI for Python harnesses). Future work. |
| 58 | +- A formal certification programme for marketplace plugins. ADR-009 specifies a reputation-and-signal model, not a certification body. |
| 59 | + |
| 60 | +## Who should read this |
| 61 | + |
| 62 | +- **Implementers.** If you are about to write `packages/create-agent-harness`, read ADR-001 β ADR-003 β ADR-010 (TDD contract) first. |
| 63 | +- **Reviewers.** If you are reviewing a PR against this repo, the ADR it amends or supersedes should be in the PR description. |
| 64 | +- **Adopters.** If you want to ship your own harness, you do not need to read these. Wait for the `create-agent-harness` CLI to exist; read its user docs then. |
0 commit comments