Skip to content

Repository files navigation

Agora

Agora logo

Agents, Governance, Orchestration, Roles & Artifacts

PyPI version Supported Python versions CI status Apache 2.0 license

Agora is a local, Markdown-first, Git-native framework for governing software delivery across humans, AI agents, services, and swarms. It materializes the roles, lifecycle rules, permissions, evidence, and durable work records that a team chooses for each project.

Agora is independent of the project's programming language, LLM provider, agent environment, and development process. Its Python application services coordinate the protocol; the CLI is an optional adapter and does not introduce an LLM SDK or runtime into the governed codebase.

Developed by Modern Ash.

Agora ecosystem

Agora is intentionally split into a small set of cooperating projects. The boundaries are part of the design: the Core owns governance and durable state, Studio provides a local visual control plane, and Truco Agora is a concrete application that demonstrates the method with real human and LLM participants.

Project Role When to use it
Agora Core Python domain, application services, CLI, Method Packs, Tool Packs, persistence, gates, evidence, and actor governance Install it in any existing or new repository to govern an SDLC workflow
Agora Studio Local-first web control plane over the same Core application services Browse projects, swarms, work, specifications, lifecycle, artifacts, evidence, approvals, and Activity
Truco Agora End-to-end demonstration application See Scrum/spec-driven ideas applied to a playable domain with human seats, LLM agents, provider discovery, observability, and tests
flowchart LR
    C[Agora Core\nGovernance + persistence] --> T[Agora CLI\nTerminal and automation]
    C --> S[Agora Studio\nLocal visual control plane]
    C --> D[Truco Agora\nMethodology demo application]
    T -. operates .-> P[Project .agora/\nGit-backed records]
    S -. reads and approves through .-> P
    D -. demonstrates and records work in .-> P
Loading

The projects are complementary rather than three competing implementations. Start with Core when you need to govern a project, add Studio when a visual read/review surface helps adoption, and open Truco Agora when you want a runnable reference for the complete workflow. Studio does not replace the CLI, and Truco Agora does not redefine Core's lifecycle rules.

Project status

Agora is an alpha (0.x) framework that is ready for controlled pilots. The published CLI can initialize and adopt repositories, execute complete governed workflows, authenticate actors, coordinate recursive swarms, run reviewed external tools, and validate its durable state.

Area Current maturity
Core lifecycle Implemented, exercised end to end, and covered by automated tests
Bundled workflows Spec-Driven, Scrum, and Kanban Method Packs
Actor forms Human, AI, service, automation, and recursively composed swarm
Integrations Provider-neutral Tool Packs plus reviewed native CLI adapters
Persistence Human-readable Markdown, Git history, and rollback-protected compound lifecycle writes
Compatibility Explicit project migrations and agora upgrade support
Stability Alpha: CLI and Markdown contracts may still evolve before 1.0

Use Agora now for evaluation and controlled team adoption. Before production use, review the selected Method Pack, actor permissions, execution environment, external adapters, and recovery policy for your organization.

Why Agora

  • One governance model for every participant. A role can be held by a human, an AI, a service, or a swarm without changing the lifecycle contract.
  • Process is configuration. Method Packs define roles, states, transitions, gates, evidence, and work-in-progress rules; Scrum and Kanban are examples, not hard-coded behavior.
  • The LLM remains replaceable. Codex, Claude, local models, and custom runners consume the same portable commands without provider dependencies in the core.
  • Work survives the session. Decisions, handoffs, approvals, signatures, artifacts, Tool Runs, and usage records remain inspectable in .agora/ and Git.
  • External tools stay governed. Provider-neutral capabilities are translated by reviewed, bounded adapters that prefer an installed native CLI.

Agora complements issue trackers, source hosts, CI/CD systems, documentation platforms, and cloud providers. It is not a project-management UI, an agent runtime, or a replacement for those systems.

A note on "swarm"

Multi-agent frameworks (OpenAI Swarm, AutoGen, CrewAI, LangGraph, and others) use "swarm" for runtime coordination: several agents exchanging messages or handing off control to solve a task in one session. Spec-driven tools (spec-kit and similar) generally have no equivalent concept at all — one agent works a spec to completion.

An Agora swarm is neither. It is the durable governance unit for one objective: a Method Pack, the roles it requires, and the human, AI, service, or swarm actors assigned to hold them, with every transition checked against a permission and gate contract and recorded in .agora/ and Git. A swarm can be a single human role-holder and a single AI role-holder working sequentially through a gated lifecycle — as most swarms are — or it can compose recursively into a delegated team. It is not runtime message-passing between agents, and it does not imply parallelism or autonomy. If you know "swarm" from a multi-agent runtime, expect Agora's version to be about who is allowed to do what, and the durable record of what they did — not about how agents talk to each other.

Architecture

flowchart LR
    H[Human] --> CLI[Agora CLI]
    A[AI agent] --> CLI
    S[Swarm] --> CLI

    CLI --> P[Project protocol<br/>.agora/]
    P --> M[Method Packs]
    P --> T[Tool Packs]
    P --> R[Durable records<br/>work, evidence, actions]

    T --> C[Reviewed native CLI adapters]
    C --> E[GitHub, GitLab, Jira,<br/>Confluence, CI/CD, cloud]

    G[Git] <--> P
Loading

Programmatic interfaces import the versioned contracts in agora.application. Agora CLI and the local-first Agora Studio API are peer adapters over those services; neither interface owns lifecycle policy or edits durable records outside Core. See the application-service contract reference for the Core 0.8 compatibility boundary.

Configuration is resolved predictably:

Agora defaults < ~/.agora < project .agora < swarm configuration

Install

Agora requires Python 3.11 or newer. Install the published CLI with uv:

uv tool install agora-framework
agora self-test

To work from this repository:

uv sync --extra dev
uv run agora self-test

self-test runs the role conformance harness in temporary workspaces. It exercises every bundled method with human, AI, and swarm role holders without changing the current project.

See Installation and customization for user-level configuration, upgrades, editable installs, and team rollout options.

Guided setup

The recommended first experience is an interactive review of runtime, model, Method Pack, starter team, actor security, Git branch, and persistence scope:

cd my-project
agora setup

For an existing Git repository, agora adopt runs the read-only preflight before showing or applying the plan. Both wizards collect one decision at a time and write nothing before final confirmation. See the guided setup guide.

Create and advance daily work without assembling long commands:

agora work start
agora continue
agora work finish

work start selects a ready swarm and compatible assigned actor, collects acceptance criteria one at a time, and writes only after review. continue previews one bounded action. At a human boundary it lets the role holder act directly, use a capability-compatible AI executor without surrendering the role, or create a formal handoff when responsibility truly changes. work finish reviews criteria, artifacts, evidence, Git policy, and approvals before recording explicit acceptance and the Method Pack completion transition. The declarative commands remain the stable automation surface.

Start a governed project

Adopt an existing repository

Run the read-only adoption preflight, then create the governed feature branch and workspace:

cd existing-service
agora adopt --check --id payment-idempotency --base main
agora quickstart \
  --id payment-idempotency \
  --base main \
  --objective "Deliver payment idempotency"

The preflight checks repository state, branch safety, runtime availability, reserved identities, existing Agora state, and ignore rules. Quickstart is transactional: if a later step fails, Agora rolls back the branch and state it created.

The executable existing-codebase pilot demonstrates this path without requiring an LLM account or network service.

Start in a new repository

mkdir my-project
cd my-project
git init
agora quickstart --objective "Ship the first increment"

Quickstart initializes the protocol, registers a human and an AI actor, creates a swarm, assigns the roles required by the active Method Pack, and writes the selected environment adapter.

Add --secure to generate an external Ed25519 keypair for each quickstart actor and require signed authentication:

agora quickstart --objective "Ship the first increment" --secure

Private keys remain outside Agora. Only public identity, rotation or revocation history, and signed verification evidence become durable protocol records.

What Agora creates

Agora installs operational Markdown rather than a hidden database:

<project>/
├── .agora/
│   ├── project.md              # Effective project configuration
│   ├── constitution.md         # Project principles and restrictions
│   ├── PROTOCOL.md             # Collaboration protocol
│   ├── STANDARDS.md            # Cross-actor engineering standards
│   ├── PACKS.lock.md           # Deterministic pack composition
│   ├── methods/                # Roles, transitions, gates, and policy
│   ├── actors/                 # Actor identity and public-key history
│   ├── swarms/                 # Work state and usage ledgers
│   ├── actions/                # Prepared and applied mutations
│   ├── artifacts/              # Governed artifact references
│   ├── sessions/               # Resolved execution context
│   ├── tool-runs/              # External invocation requests and results
│   ├── intents/                # Reviewed problems and desired outcomes
│   ├── evaluations/            # Continuous evaluation contracts and results
│   ├── reviews/                # Structured review findings and decisions
│   ├── guardrails/             # Deterministic pre-action policies
│   ├── triggers/               # Idempotent external event routing
│   └── control-bands/          # Production signals and proposed intents
└── .agents/ or .claude/        # Environment-specific command projection

The repository ships the sources for these files under packs/. Actor, swarm, action, work, evidence, and Tool Run records are created dynamically as work progresses. The artifact location reference maps distribution sources to their materialized project paths.

Choose a workflow

The active Method Pack defines the lifecycle, not the CLI core.

Bundled method Best fit Governs
spec-driven Feature work that needs explicit intent before implementation Clarification, specification, planning, implementation, validation
scrum Time-boxed delivery with accountable product and facilitation roles Backlog, sprint flow, review, acceptance, increment evidence
kanban Continuous pull-based delivery Queue policy, WIP limits, review, service acceptance

Teams can author and install a custom Method Pack for another process without changing Agora's kernel. Start with the Method Pack reference and the custom lifecycle sample.

For continuous agent operation, Agora also stores reviewed intent, evaluation outcomes, structured review findings, deterministic guardrails, idempotent event routing, production control-band findings, and derived delivery metrics. See the AI-native SDLC controls guide.

Choose an agent environment

agora configure --integration codex
agora configure --integration claude
agora configure --integration generic --provider internal --model reviewed-model
Integration Execution model
codex Materializes portable commands for the installed Codex CLI
claude Materializes the same protocol for the installed Claude CLI
generic Uses an explicit structured runner supplied at launch time by the team

The configured model and provider are project or user choices. Agora governs the resulting work; it does not embed provider credentials or an LLM client in its core. See LLM environments. Generic sessions accept the runner explicitly, for example agora run --runner "company-agent run" --launch.

Both native integrations run unattended, so their commands are built with a non-interactive approval posture: codex exec runs with its own default read-only, unattended approval behavior, and claude --print is launched with --permission-mode bypassPermissions, since a governed session has nobody available to approve an interactive permission prompt. Changing an actor's runtime with agora actor runtime takes effect immediately, including on the next automatic retry of a failed session (agora resume / agora run --until-blocked recompute the launch command from the actor's current runtime rather than replaying the failed attempt's command) — the one exception is the generic integration, which has no runtime to derive a command from and always requires an explicit --runner, so a runner-less retry there reuses the prior explicit runner.

Actors may also declare ordered, reviewed fallbacks. Agora chooses the first executable declared runtime, and skips a runtime only when its most recent matching session contains a recognized quota or rate-limit signal; ordinary task failures remain on the primary runtime:

agora actor runtime --actor delivery-agent \
  --integration codex --provider openai --model primary \
  --fallback claude:anthropic:fallback-model

For specification tooling, agora work clarify, work checklist, work verify-consistency, and work gherkin create Markdown, evidence, and artifacts without transitioning work by themselves. The bundled Spec-Driven Method Pack requires the latest clarification run to cover current inputs and leave no unanswered questions before drafting -> clarified; other methods can opt into the same gate policy. Use agora work traceability to detect generated output made stale by changed criteria or artifacts, and agora status --board for a one-frame aggregate view. See the spec-tooling and runtime resilience guide. Clarification is Method Pack-aware: Core supplies the active lifecycle, protocol, gates, roles, and assignments to the configured runtime without privileging Scrum, Kanban, or Spec-driven behavior.

Run the daily loop

sequenceDiagram
    participant O as Role holder
    participant A as Agora
    participant F as Filesystem and Git
    participant X as External runtime or tool

    O->>A: Inspect next authorized action
    A->>F: Resolve method, role, work, and evidence
    A-->>O: Return bounded action and context
    O->>X: Perform or launch governed work
    X-->>A: Submit result and evidence
    A->>F: Validate and persist transition
    O->>F: Review and commit durable records
Loading

Use the guided controller for one reviewed action at a time. The explicit controller remains available for bounded automation:

agora continue
agora work finish
agora next
agora run --until-blocked --max-steps 10
agora inbox
agora validate
git status --short

Every lifecycle mutation is checked against the active Method Pack at the time it is applied. In authenticated projects, mutations use prepared ACTION.md intents whose signatures bind the actor, operation, work preconditions, and materialized session context.

The operational loop guide covers stopping, resuming, human handoffs, and durable failure recovery.

When Agora is driven from Codex, Claude Code, CI, or another non-TTY host, enable its independent engine trace to see progress without corrupting the structured result:

agora --trace compact run --until-blocked --max-steps 10
AGORA_TRACE=jsonl agora status

Trace phases are flushed to stderr; final JSON remains on stdout. Agora-launched agent sessions default to AGORA_TRACE=compact, so chat integrations can relay lifecycle phases while keeping provider reasoning and raw output out of the observation stream.

Ecosystem integrations

Agora separates stable capabilities from provider-specific translation:

  • Provider-neutral Tool Packs cover repositories, code review, work management, CI/CD, releases, repository governance, security scanning, documentation, cloud infrastructure, observability, and portfolio management.
  • Reviewed CLI adapters currently cover the GitHub and GitLab delivery ecosystems, Jira, Confluence, Terraform, and read-only AWS and Google Cloud inventory.
  • A provider-neutral Core issue port binds and explicitly reconciles GitHub and Jira through the same normalized snapshot contract. A closed -> open fact can create a new authorized local work revision; the synchronization itself remains read-only on the provider. Reopen currently fails closed for actors that require signed lifecycle actions until its prepare/apply contract exists.
  • Native CLIs are preferred when they are installed, version-compatible, and non-interactive. MCP remains an explicit alternative transport rather than an implicit dependency.
flowchart TD
    W[Governed work] --> P[Provider-neutral operation]
    P --> A[Reviewed adapter]
    A --> V{CLI version and<br/>capability valid?}
    V -- no --> B[Block with durable reason]
    V -- yes --> Q[Prepared structured command]
    Q --> R[Bounded external runner]
    R --> E[Redacted result and evidence]
    E --> D[Durable Tool Run]
Loading

Adapter commands are structured and shell-free, contain no credentials, and have explicit timeout and captured-output limits. Write or destructive capabilities such as merge, deployment, release publication, infrastructure apply, and incident resolution remain opt-in and policy-controlled.

Every launched operation persists RUN.md plus a bounded RESULT.md. Inspect both through the typed read command instead of parsing provider output from terminal logs:

agora tool result --run <tool-run-id>

Prepared runs return result: null; completed and failed runs return their validated status, exit code, result kind, stdout, stderr, and durable path. The Jira ACLI sample demonstrates this boundary through actual child processes without requiring Jira Cloud credentials.

See the GitHub ecosystem guide, CLI-first adapter guide, and Tool Pack reference.

Security model

Agora enforces governance at the protocol boundary while leaving operating-system isolation and credential custody to the execution environment:

  • Actor private keys and provider credentials are never stored by Agora.
  • Public-key rotation and revocation history remain auditable.
  • Authenticated changes are prepared, signed externally, verified, and revalidated before apply.
  • Tool permissions are bounded by actor capability, role, Method Pack policy, evidence, and explicit approvals.
  • Tool Sync and issue reconciliation are read-only and explicit; Agora performs no background polling or provider mutation through either path.
  • Containers or external runners provide filesystem, network, syscall, and resource isolation.

Read Actor authentication, Signed lifecycle actions, and Execution boundaries before enabling authenticated or write-capable integrations.

Verify Agora

Run the installed role harness:

agora self-test

Run the repository's complete verification pipeline:

uv sync --extra dev
uv run python scripts/verify_all.py

The verifier formats and lints Python, runs unit and failure-path tests, validates documentation links and packaging, exercises the role harness, discovers and runs every executable sample, and builds the distribution. CI repeats the supported Python-version matrix and the complete verifier.

For focused commands and expected output, see Complete verification and Role conformance test harness.

Current boundaries

Agora deliberately does not claim that governance files alone make arbitrary agent output safe or correct. Teams remain responsible for reviewing their Method Packs, custom runners, external tool authority, product evidence, and infrastructure isolation.

During the alpha series:

  • CLI and Markdown schemas may change with explicit migrations.
  • Custom Method and Tool Packs need organization-specific conformance and failure-path tests.
  • Provider behavior outside a reviewed adapter's exact operation subset is unsupported.
  • Production authorization should use organization-managed identities and keys, not quickstart credentials.
  • External systems remain sources of operational state; Agora persists their verified references and evidence rather than silently mirroring them.
  • Atomic replacement protects every individual Markdown document. Multi-document rollback currently covers work creation and specialized upgrade, registry, and pack transactions; extending one shared transaction boundary to every compound lifecycle mutation remains planned core work.

Documentation

Start with:

Understand the model:

Operate and extend it:

Executable scenarios live under samples/. They are part of the verification suite and show the protocol working without requiring live provider credentials.

Development

uv sync --extra dev
uv run python scripts/verify_all.py

Contributions must preserve Agora's language, model, provider, and process independence; keep the protocol Markdown-first; and use Conventional Commits. See CONTRIBUTING.md.

License

Agora is developed by Modern Ash and licensed under the Apache License 2.0, an open-source license.

About

Agents, Governance, Orchestration, Roles & Artifacts

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages