{"id":50000291,"url":"https://github.com/bouob/agent-harness","last_synced_at":"2026-05-19T11:44:36.427Z","repository":{"id":354317522,"uuid":"1223070833","full_name":"bouob/agent-harness","owner":"bouob","description":"Multi-agent harness for Claude Code: autonomous Planner-Generator-Evaluator sprints with parallel Agent Teams, harness-engineering framework, and 9 canonical defect diagnoses.","archived":false,"fork":false,"pushed_at":"2026-05-17T19:39:49.000Z","size":129,"stargazers_count":3,"open_issues_count":1,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-17T21:45:45.074Z","etag":null,"topics":["agent-teams","autonomous","claude-code","claude-code-plugin","harness-engineering","multi-agent","orchestration","p-g-e","planner-generator-evaluator","sprint"],"latest_commit_sha":null,"homepage":"https://github.com/bouob/claude-plugins","language":"PowerShell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bouob.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-28T01:32:46.000Z","updated_at":"2026-05-17T19:39:51.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/bouob/agent-harness","commit_stats":null,"previous_names":["bouob/agent-harness"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/bouob/agent-harness","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bouob%2Fagent-harness","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bouob%2Fagent-harness/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bouob%2Fagent-harness/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bouob%2Fagent-harness/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bouob","download_url":"https://codeload.github.com/bouob/agent-harness/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bouob%2Fagent-harness/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33214695,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-19T07:54:09.561Z","status":"ssl_error","status_checked_at":"2026-05-19T07:54:08.508Z","response_time":58,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agent-teams","autonomous","claude-code","claude-code-plugin","harness-engineering","multi-agent","orchestration","p-g-e","planner-generator-evaluator","sprint"],"created_at":"2026-05-19T11:44:35.702Z","updated_at":"2026-05-19T11:44:36.421Z","avatar_url":"https://github.com/bouob.png","language":"PowerShell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# agent-harness\n\n[Traditional Chinese](./README.zh-TW.md)\n\nA dual-host agent workflow package for multi-agent orchestration.\n\n- **Claude Code**: plugin commands for autonomous Planner -\u003e Generator -\u003e Evaluator sprints with parallel Agent Teams and iterative feedback loops.\n- **Codex**: plugin skills for plan-first sprints with explicit subagent delegation, optional per-role routing, and Codex lifecycle hooks.\n\n## Install\n\n### Claude Code\n\n```bash\n# Add marketplace (one-time)\n/plugin marketplace add bouob/claude-plugins\n\n# Install\n/plugin install agent-harness@bouob-plugins\n\n# Or load directly during development\nclaude --plugin-dir ./agent-harness\n```\n\n### Codex\n\n```bash\n# From the parent directory that contains agent-harness\ncodex plugin marketplace add ./agent-harness\n\n# Or, from inside this repository\ncodex plugin marketplace add .\n```\n\nRestart Codex, open `/plugins`, choose the `Agent Harness` marketplace, and\ninstall `agent-harness`. See `docs/codex-install.md` for details.\n\n## Quick Start\n\n### Claude Code\n\nAfter install, run the wizard once to set up model routing for the Claude\nmodels you can actually use:\n\n```bash\n/agent-harness:init\n```\n\nThen run an autonomous sprint:\n\n```bash\n/sprint build a login page with email/password and Google OAuth\n```\n\nIf you skip the wizard, `/sprint` uses an all-Sonnet safe default so it works\non any subscription tier or API plan without model-access errors.\n\n### Codex\n\nInitialize Codex-only model routing:\n\n```text\n$agent-harness:agent-harness-init\n```\n\nThe built-in Codex default keeps every role on `mode: \"inherit\"`, so Planner,\nEvaluator, and Generator subagents inherit the current Codex session model and\nreasoning settings. Codex config can also switch any role to explicit routing\nwith a `model` and optional `reasoning_effort`. It never reads or writes\nClaude Code's `.claude/agent-harness*.json` files.\n\nPlan first:\n\n```text\n$agent-harness:agent-harness-sprint-plan build a login page with email/password and Google OAuth\n```\n\nThen execute an approved plan:\n\n```text\n$agent-harness:agent-harness-sprint run the approved plan. Spawn parallel subagents only for disjoint tasks.\n```\n\nCodex only spawns subagents when explicitly asked. The Codex skills therefore\nname which tasks may run in parallel, which must stay sequential, and which\nroles should inherit versus use explicit model or reasoning overrides.\n\n## Skills\n\n| Skill | Usage |\n|-------|-------|\n| `/sprint \u003cspec\u003e` | Autonomous multi-agent sprint: decompose -\u003e implement in parallel -\u003e evaluate -\u003e iterate, producing `.sprint/\u003cts\u003e/` artifacts |\n| `/harness-engineering [task\\|question]` | Multi-agent harness framework: plan, execute, design-review, route, or diagnose harness failures |\n| `agent-harness-init` | Codex skill: initialize Codex-only model routing under `.codex` or `~/.codex` |\n| `agent-harness-sprint-plan` | Codex skill: read-first sprint planning without implementation |\n| `agent-harness-sprint` | Codex skill: execute an approved sprint with explicit subagent delegation |\n\n## Commands\n\n| Command | Usage |\n|---------|-------|\n| `/agent-harness:init` | Interactive wizard that asks which Claude models you can use and writes `~/.claude/agent-harness.json` so `/sprint` knows how to route Planner / Evaluator / Generator |\n\n## Configuration\n\n### Claude Code\n\nWithout a config file, `/sprint` uses Sonnet for every role, which is a safe\ndefault across subscription tiers and API plans. The wizard lets users with\nOpus access upgrade Planner quality or choose lower-cost routing.\n\nSchema: `skills/sprint/references/config-schema.md`.\n\n### Codex\n\nCodex uses its own config files and never reads Claude Code model routing:\n\n- Project override: `./.codex/agent-harness.local.json`\n- User default: `~/.codex/agent-harness.json`\n\nInitialize them with:\n\n```text\n$agent-harness:agent-harness-init\n```\n\nCodex schema v2 supports two route shapes for each role:\n\n- `{\"mode\": \"inherit\"}` - use the current Codex session model and reasoning\n- `{\"mode\": \"explicit\", \"model\": \"...\", \"reasoning_effort\": \"...\"}` - pass explicit overrides\n\n`reasoning_effort` is optional. If omitted, the role overrides only the model.\n\nSchema: `codex/references/codex-config-schema.md`.\n\n## How It Works\n\n### Claude Code\n\n```text\n/sprint \u003cspec\u003e\n  -\u003e Initialize workspace (.sprint/\u003ctimestamp\u003e/)\n  -\u003e Planner (model from your config) writes sprint-plan.md\n  -\u003e Generators implement tasks in parallel or sequence\n  -\u003e Aggregate progress files\n  -\u003e Evaluator (model from your config) writes sprint-eval.md\n  -\u003e Retry failed tasks when needed\n```\n\n### Codex\n\n```text\n$agent-harness:agent-harness-init\n  -\u003e Write Codex-only config under .codex or ~/.codex\n  -\u003e Each role uses inherit or explicit model/reasoning routing\n\n$agent-harness:agent-harness-sprint-plan \u003cspec\u003e\n  -\u003e Read-only repo exploration\n  -\u003e Sprint plan with acceptance criteria, ownership boundaries, and routing notes\n  -\u003e User-reviewed plan\n\n$agent-harness:agent-harness-sprint \u003capproved plan\u003e\n  -\u003e Initialize .sprint/\u003ctimestamp\u003e/ artifacts\n  -\u003e Delegate disjoint tasks to parallel subagents when explicitly requested\n  -\u003e Pass per-role model and optional reasoning overrides when configured\n  -\u003e Run shared-file or dependent tasks sequentially\n  -\u003e Evaluate acceptance criteria with concrete evidence\n  -\u003e Summarize changes, verification, risks, and any routing fallbacks\n```\n\n## Model Routing\n\n### Claude Code\n\nDefault routing uses Sonnet for every role for compatibility. The recommended\n`full-access` preset upgrades Planner to Opus and keeps lower-cost work on\ncheaper models where appropriate.\n\n### Codex\n\nCodex routing supports both inherit and explicit route shapes.\n\nThe built-in default remains all-inherit. The recommended `balanced` preset is:\n\n| Role | Recommended Route |\n|------|-------------------|\n| Planner | `gpt-5.5` + `high` |\n| Evaluator | `gpt-5.4` + `medium` |\n| Generator code | `gpt-5.4` + `high` |\n| Generator write | `gpt-5.4` + `medium` |\n| Generator research | `gpt-5.4-mini` + `low` |\n| Generator collect | `gpt-5.4-mini` + `low` |\n\nIf an explicit route is malformed or Codex rejects a configured model or\nreasoning override at runtime, that role should warn and fall back to\ninherit-mode routing for the current run.\n\n## Requirements\n\n### Claude Code\n\n- Claude Code on any subscription tier or API plan\n- Agent Teams (`CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1`) for maximum parallelism\n- Playwright MCP (optional) for live UI verification in the Evaluator phase\n\n### Codex\n\n- Codex with plugin support\n- Subagent workflows enabled\n- Plugin hooks enabled if you want the optional sprint push guard\n\n## Recommended Workflow\n\nFor non-trivial specs:\n\n1. Enter plan mode first to clarify the spec, surface ambiguities, and agree on scope.\n2. Exit plan mode and run `/sprint \u003cspec\u003e` or the Codex planning skill so the planner starts from sharper context.\n\nSkip step 1 only when the spec is already concrete and low-risk.\n\n## Version History\n\n| Version | Scope | Status |\n|---------|-------|--------|\n| v0.2.0 | Claude Code only, initial release | Released |\n| v0.3.x -\u003e v0.5.x | Multi-host experiment with older Codex / Auggie adapters | Reverted |\n| v0.6.0 | Claude Code-only simplification, schema v3 for Claude routing | Released |\n| v2.2.1 | Dual-host package with separate Codex adapter | Current |\n\nCodex support is intentionally separate from the Claude `/sprint` runtime. The\nCodex adapter keeps its own config files, skills, and hooks rather than mixing\nClaude and Codex engine routing into one schema.\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbouob%2Fagent-harness","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbouob%2Fagent-harness","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbouob%2Fagent-harness/lists"}