{"slug": "railwarden-safely-run-parallel-agent-harnesses-in-a-single-git-repo", "title": "RailWarden – Safely run parallel agent harnesses in a single Git repo.", "summary": "RailWarden, a deterministic execution and integration control plane for multi-agent software development, has been released, enabling safe parallel agent harnesses in a single Git repository. The tool supervises coding agents across isolated Git worktrees, records validation evidence, and blocks integration until mechanical gates pass, addressing issues like provider crashes, malformed data, and conflicting edits. It is available via uvx or pipx, and includes a credential-free demo for evaluation.", "body_md": "RailWarden is a deterministic execution and integration control plane for multi-agent software development.\n\nIt turns approved plans into isolated work packages, supervises coding agents across Git worktrees, records validation evidence, and permits integration only after mechanical gates pass.\n\nComplex software work needs more than an agent claiming it is done. Agent chat history loses context; provider processes can crash, fail authentication, or exhaust quota; result data can be malformed; and unrestricted concurrent edits create dirty worktrees and conflicting changes. Prompts and skill frameworks help an agent reason, but they do not own durable facts. Task managers can track intent, but generally cannot prove commits, validate ownership, or block an unsafe merge. Ordinary CI validates a branch after the fact; it does not supervise the work package, preserve recovery state, or decide whether an agent’s report is credible.\n\nRailWarden owns execution facts: approved work-package contracts, dependency state, isolated worktrees, worker process facts, validation evidence, checkpoints, events, review readiness, and integration decisions. A task is complete only when its scoped changes are committed, mechanically validated, pass the applicable review and merge gates, and are integrated—not when a worker self-certifies.\n\nThe implemented runtime provides durable file-backed execution state, dependency-aware packages, isolated Git worktrees, allowed/forbidden-path checks, supervised provider processes, structured worker-result normalization, validation evidence, checkpoints, append-only event logs, quota-aware handoffs, recovery paths, integration gates, and secret redaction in persisted runtime artifacts. Runtime state is independent of agent chat history.\n\nThese are controlled-repository mechanisms, not an absolute safety or production-safety promise. See [evidence](/advaith-1212/railwarden/blob/main/docs/evidence.md), [contracts](/advaith-1212/railwarden/blob/main/docs/contracts/README.md), and [safe adoption](/advaith-1212/railwarden/blob/main/docs/safety.md) for the verification boundary. Future goals are explicitly separated in [architecture](/advaith-1212/railwarden/blob/main/ARCHITECTURE.md).\n\n- Multiple coding agents work concurrently across packages, branches, or ownership boundaries.\n- Provider failure, handoff, recovery, auditability, validation evidence, and merge gates matter.\n- Work must survive restarts and run in isolated Git worktrees.\n- Several providers or harnesses participate in a controlled repository workflow.\n\n- One developer or one agent can safely finish a small change in a single session.\n- A feature branch plus ordinary CI is sufficient.\n- The operational complexity outweighs the benefit, or the repository cannot tolerate generated runtime state and worktrees.\n\nRailWarden is for serious multi-agent workflows, not every coding task.\n\n``` php\nflowchart TD\n  A[\"Approved specification or plan\"] --> B[\"Frozen work packages and dependency DAG\"]\n  B --> C[\"Parallel workers in isolated worktrees\"]\n  C --> D[\"Mechanical validation and evidence\"]\n  D --> E[\"Review and merge gates\"]\n  E --> F[\"Integration branch\"]\nphp\nflowchart TD\n  A[\"Worker or provider failure\"] --> B[\"Event + checkpoint + handoff\"]\n  B --> C[\"Retry, reassignment, model swap, or human decision\"]\n```\n\nAfter a tagged release is published, the supported public install paths are:\n\n```\nuvx railwarden --help\n# or\npipx install railwarden\nwarden --help\n```\n\nFrom a disposable repository, run the credential-free deterministic demo. `scripted-fake`\n\nis demo/test infrastructure only; it is not a production provider adapter.\n\n```\nmkdir railwarden-demo\ncd railwarden-demo\ngit init -b main\ngit config user.name demo\ngit config user.email demo@example.invalid\nwarden init --yes --demo\nwarden demo run\n```\n\nThe demo creates a frozen two-package dependency DAG and isolated worktrees, makes two commits, records an intentional validation failure and handoff, retries, validates, integrates, writes `.railwarden-runtime/reports/demo-acceptance.json`\n\n, and safely removes its generated worktrees. It needs no provider credentials. See [acceptance testing](/advaith-1212/railwarden/blob/main/docs/acceptance-testing.md).\n\n```\nRailWarden = deterministic state and mechanics\nHermes     = supervisor and decision-maker\nWorkers    = scoped implementers\n```\n\nHermes is the currently supported and recommended supervisor. RailWarden owns durable facts and execution mechanics; Hermes owns interpretation, planning, assignment, diagnosis, and orchestration decisions; workers own scoped implementation. Hermes is intentionally retained. RailWarden does not currently promise interchangeable supervisors. A generic supervisor contract is only a future design direction if another ecosystem demonstrates maturity, adoption, trust, and compatibility.\n\n| Capability | Prompt/skill frameworks | Task managers | RailWarden |\n|---|---|---|---|\n| Specification approval | Common | Sometimes | Yes |\n| Dependency-aware tasks | Sometimes | Common | Yes |\n| Dedicated Git worktrees | Sometimes | Limited | Yes |\n| Provider process supervision | Rare | Limited | Yes |\n| Durable execution ledger | Rare | Partial | Yes |\n| Path ownership enforcement | Rare | Rare | Yes |\n| Validation evidence | Process-based | Partial | Mechanical |\n| Crash recovery | Limited | Limited | Yes |\n| Agent handoff state | Limited | Sometimes | Yes |\n| Merge gates | Advisory | Limited | Enforced |\n\nThese are broad categories; individual tools vary.\n\nRailWarden is actively evolving and ready for developers to evaluate, extend, and use in controlled repositories.\n\nThe core runtime is functional and appropriate for controlled evaluation. Important repositories should use protected branches, backups, required CI, restricted path ownership, and human review. Provider compatibility varies by environment.\n\nThe core kernel is machine-readable contracts, the durable state machine, dependency/task state, worktree creation, path ownership, process supervision, event recording, structured results, validation evidence, review gates, and integration/merge gates. Supporting surfaces are tmux presentation, dashboards/Kanban projections, adapters, quota UI, context templates, planning helpers, skills, MCP transport, and observability views.\n\n``` php\nflowchart TB\n  subgraph K[\"Indispensable kernel\"]\n    C[\"Contracts\"] --> S[\"Durable state + events\"] --> G[\"Validation, review, merge gates\"]\n    W[\"Worktrees + path ownership\"] --> S\n    P[\"Process supervision\"] --> S\n  end\n  subgraph X[\"Adapters and interfaces\"]\n    H[\"Hermes supervisor\"]\n    A[\"Provider adapters\"]\n    U[\"CLI, MCP, tmux, dashboard, Kanban\"]\n  end\n  H --> K\n  A --> K\n  U --> K\n```\n\nRead [ARCHITECTURE.md](/advaith-1212/railwarden/blob/main/ARCHITECTURE.md) for module boundaries, data flow, and lifecycle detail.\n\n[Development](/advaith-1212/railwarden/blob/main/DEVELOPMENT.md)·[Contributing](/advaith-1212/railwarden/blob/main/CONTRIBUTING.md)·[Testing](/advaith-1212/railwarden/blob/main/docs/testing.md)[Provider adapters](/advaith-1212/railwarden/blob/main/docs/provider-adapters.md)·[CLI development](/advaith-1212/railwarden/blob/main/docs/cli-development.md)[Contracts](/advaith-1212/railwarden/blob/main/docs/contracts/README.md)·[Compatibility](/advaith-1212/railwarden/blob/main/docs/compatibility-policy.md)·[Release process](/advaith-1212/railwarden/blob/main/docs/release-process.md)[Evidence](/advaith-1212/railwarden/blob/main/docs/evidence.md)·[Safe adoption](/advaith-1212/railwarden/blob/main/docs/safety.md)·[Governance](/advaith-1212/railwarden/blob/main/docs/governance.md)\n\nMIT. See [LICENSE](/advaith-1212/railwarden/blob/main/LICENSE).", "url": "https://wpnews.pro/news/railwarden-safely-run-parallel-agent-harnesses-in-a-single-git-repo", "canonical_source": "https://github.com/advaith-1212/railwarden", "published_at": "2026-08-04 16:59:32+00:00", "updated_at": "2026-08-04 17:23:29.624670+00:00", "lang": "en", "topics": ["developer-tools", "ai-agents", "ai-infrastructure"], "entities": ["RailWarden"], "alternates": {"html": "https://wpnews.pro/news/railwarden-safely-run-parallel-agent-harnesses-in-a-single-git-repo", "markdown": "https://wpnews.pro/news/railwarden-safely-run-parallel-agent-harnesses-in-a-single-git-repo.md", "text": "https://wpnews.pro/news/railwarden-safely-run-parallel-agent-harnesses-in-a-single-git-repo.txt", "jsonld": "https://wpnews.pro/news/railwarden-safely-run-parallel-agent-harnesses-in-a-single-git-repo.jsonld"}}