Skip to main content

Ergane

A software factory for specification-driven development.

Ergane coordinates coding agents from a written specification through implementation, verification, and merge. It turns user stories into a dependency graph, runs agents in their own worktrees, evaluates what they produce, and manages retries, operator decisions, and landing through a merge queue.

The goal is to make agent execution a repeatable part of software delivery. People shape the intent, context, acceptance criteria, and operating policy; Ergane manages the work and records the evidence needed to understand its results.

Ergane is also a reference implementation of that pattern. It is used to develop Ergane itself, and the repository’s specifications and decision log document how the system has evolved.

Status: beta, under active development. Start with a supervised trial on a dedicated repository. The quality of a result depends on the specification, context, checks, and review behind it.

How it works · Get started · Architecture · CLI reference

What Ergane coordinates

  • Specifications into executable work. Parse acceptance criteria, validate the spec and its supporting documents, and derive a graph of stories and dependencies.
  • Agent execution. Select a runner and model through a persona, prepare a worktree, and run a bounded attempt with its own execution context.
  • Verification and repair. Run declared checks, inspect the output, and use configured LLM review against acceptance scenarios. Feed failures into a bounded retry and escalation policy.
  • Controlled landing. Open pull requests for passing work and route them through integration checks and the repository’s merge queue.
  • Operational visibility. Inspect attempts, verification records, transcripts, usage, pending decisions, and observed landings.
  • Feedback into future work. Track findings and recurring defects, scaffold new specs, and carry reviewed lessons into plans and standards.

How it works

flowchart TD
    S["Specification + context"] --> G["Validated work graph"]
    G --> A["Agent attempt in a worktree"]
    A --> V["Checks + output review + evidence"]
    V -->|Repair within limits| A
    V -->|Pass| M["PR + integration checks + merge"]
    V -->|Needs a decision| H["Operator"]
    H -->|Retry authorized| A
    M --> L["Observed landing + findings"]
    L -->|Refine future work| S

There are four connected loops:

  1. Refine: turn an intended outcome into a small, executable assignment with explicit acceptance criteria and the context needed to implement it.
  2. Build and repair: dispatch the assignment, evaluate the candidate, and retry or escalate when it cannot progress within its allowance.
  3. Integrate: check the change in the context of the branch it will join, then observe the resulting landing.
  4. Learn: use findings and operating experience to improve the next spec, evaluator, or implementation.

Refinement and learning include operator work. A person or operator agent must still decide what matters, resolve ambiguity, and review changes to scope or policy.

One execution of a spec is an epic. Its dispatched stories are nodes; each invocation of a coding agent is an attempt. See the glossary for the full vocabulary.

What a passing result means

A passing result is relative to the configured verification loop and the evidence it collected. Deterministic checks, output validation, and LLM review answer different questions. Read the recorded results and unavailable or skipped checks alongside the verdict.

Acceptance, landing, and release are separate events. Ergane tracks the path into the repository; deployment and production acceptance need their own delivery policy.

The pieces underneath

Ergane combines these responsibilities in its current implementation:

Responsibility Implementation
Intent and context Spec Kit documents: spec.md, plan.md, and tasks.md; repository standards
Scheduling and durable coordination Temporal workflows for roadmaps, epics, and operator decisions
Coding agents Claude Code and Codex adapters; persona-based runner, model, scope, and timeout configuration
Execution environment Git worktrees, per-node homes, and a Linux sandbox backend
Evaluation Repository-declared gate commands, output checks, and configurable LLM review
Model access and attribution LiteLLM-compatible gateway integration for leased keys and usage attribution; routing also supports subscription-backed agent execution
Landing A forge interface with GitHub as the reference implementation
Evidence and operation SQLite records, attempt archives, CLI inspection, and notification adapters

The gateway supplies model access, key lifecycle, and attribution for gateway-routed attempts. Those properties depend on the selected route; subscription and direct routes have different credential and accounting behavior. Configure them deliberately through the installation flow.

Runner, forge, and notification interfaces provide extension points. A new backend still needs an adapter that satisfies the relevant contract. The architecture guide describes those boundaries and their tradeoffs.

Get started

Install the CLI

With Python 3.11+ and uv available:

uv tool install ergane-cli
ergane --help

0.6.0 does not include Docker/container support. Canonical notes are in docs/releases/0.6.0.md.

Configure an engine and target repository

The current runtime needs a Linux execution environment, a Temporal engine and worker, a configured agent/model route, and the target repository’s toolchain and verification commands. The GitHub landing path also needs authenticated repository access and a supported merge-queue configuration.

Follow the operator setup guide for prerequisites and the setup sequence. Use the installation reference to configure the control plane and choose an engine deployment. Then follow repository initialization and onboarding to prepare a target. Native worker operation is covered in the worker guide; the container guide is experimental and compatibility context, not a supported runtime for 0.6.0.

Try one prepared specification

Author a small feature with Spec Kit:

specs/001-example/
├── spec.md     # Stories, acceptance scenarios, and work-graph declarations
├── plan.md     # Technical context, approach, and known hazards
└── tasks.md    # Implementation tasks grouped by story

After the engine and repository are configured, run the following from the target repository root, replacing the example path with your prepared spec directory:

ergane spec validate specs/001-example --target-repo "$PWD"
ergane build ship specs/001-example --target-repo "$PWD" --halt-after-pass

build ship validates the spec, derives the graph, and asks for confirmation before dispatch. --halt-after-pass stops passing work before landing. This executes agents and checks and can incur model costs; it is an execution trial, not a dry run. --target-repo must resolve on the worker host.

Inspect the result:

ergane build status 001-example
ergane build attempts 001-example

The build guide covers normal landing, recovery, concurrency, and operator decisions. The on-ramp exercise documents an end-to-end test against a scratch repository, including its prerequisites and effects.

Find your way around

If you want to… Start here
Understand the workflows and component boundaries Architecture
Understand the project’s terminology Glossary
Author, validate, and inspect specifications Spec commands and the spec corpus
Operate the system CLI reference
Inspect outcomes and failures Build records, findings, and usage
Understand the decisions behind the implementation Decision log
Work on Ergane itself Contributor orientation and repository standards

Implementation lives in factory/; tests live in tests/. Changes to Ergane follow the same specification, verification, and landing process the project provides to other repositories.

License

Apache 2.0.

Metadata

Release files for ergane-cli 0.6.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ergane-cli 0.6.0
File Size Uploaded Provenance
ergane_cli-0.6.0.tar.gz 1.1 MB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for ergane-cli 0.6.0
File Interpreter ABI Platform
ergane_cli-0.6.0-py3-none-any.whl Python 3 none any Details

Total release size: 2.4 MB

Release files / ergane_cli-0.6.0.tar.gz

Download URL ergane_cli-0.6.0.tar.gz
Size 1.1 MB
Tags Source
SHA-256 checksum
How to use checksums
d0717372d3ab2962a851f346b744e44ceebc3ce7f47542e29c951214ecb324cf
BLAKE2b-256 checksum
How to use checksums
d73c8e9beb584840cf0fa6bbcee8f10d22bea8b8b5676c3131c855df4c4ff943
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.

Transparency log

Release files / ergane_cli-0.6.0-py3-none-any.whl

Download URL ergane_cli-0.6.0-py3-none-any.whl
Size 1.3 MB
Tags Python 3
SHA-256 checksum
How to use checksums
260d5b5b3b042012701def8895e6fccf99946aa79a1f285c7a1c96354fc62c82
BLAKE2b-256 checksum
How to use checksums
66f25ddedcfa9cc866e706f712c831a40a76ad2eaae4494e8d9586c098b39118
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.

Transparency log

Security for ergane-cli 0.6.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for ergane_cli-0.6.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page