Agora
Agents, Governance, Orchestration, Roles & Artifacts
Agora is a local, Markdown-first, Git-native lifecycle customization framework. It lets teams define how humans, AI agents, services, automations, and swarms collaborate from an objective through its completion. Install it once, select an agent or LLM environment, and materialize the roles, protocols, tools, Method Packs, artifacts, and gates that govern each project.
Agora is deliberately agnostic in three dimensions:
- Language: governed projects may use any programming language, runtime, architecture, or stack.
- LLM: providers and models are selected configuration, never dependencies of the core protocol.
- Development process: Spec-Driven, Scrum, and Kanban are included presets; any valid Method Pack can define the roles, states, transitions, policies, and evidence required by a team's own lifecycle.
The reference CLI is implemented in Python for portability and maintainability. That is an implementation detail of Agora itself, not a constraint placed on projects that use it.
Agora is not a project manager, an agent runtime, a coding framework, or an implementation of a particular methodology. It does not replace Jira, GitHub, CI/CD, Confluence, or cloud platforms. It installs a portable governance layer over those environments and keeps the customized lifecycle in reviewable files and Git branches.
Status: experimental MVP. Markdown contracts may evolve before the first stable release.
Installation model
Agora distribution
Python CLI + templates + Method Packs + adapters
~/.agora/
config.md Runtime, method, and delegation defaults
actors/*.md Reusable user actors
actors/*/keys/ Public actor key lifecycle histories
<project>/.agora/
project.md Effective project configuration
PACKS.lock.md Exact installed Method and Tool Pack composition
pack-removals/ Auditable records for applied composition removals
constitution.md Local principles and restrictions
PROTOCOL.md Shared collaboration protocol
coordination.md Optional external writer lease policy
STANDARDS.md Enforced cross-actor engineering standards
commands/*.md Portable agent commands
methods/ Built-in and custom lifecycle Method Packs
environments/*.md Project-defined Tool Run permission boundaries
registries/ Project-local pack catalog snapshots
actors/ Project actors and public key lifecycle histories
tools/ Policy and installed Tool Packs
artifacts/ Artifact catalog
delegations/ Parent-to-child work contracts and collection state
swarms/ Durable work state and evidence-backed usage ledgers
actions/ Prepared and applied lifecycle mutation intents
sessions/ Resolved runtimes and compiled execution context
tool-runs/ Governed external invocations and results
upgrades/ Applied migrations, manifests, and pre-change backups
Configuration precedence is:
Agora defaults < ~/.agora < project .agora < swarm configuration
Where the operational Markdown lives
The framework repository does not commit a generated .agora/ workspace. It ships the operational
sources that agora init, agora quickstart, and pack installation materialize in each governed
project:
| Operational source | What it becomes |
|---|---|
templates/commands/ |
Portable agent commands under .agora/commands/, plus the selected Codex or Claude projection |
templates/project/ |
Constitution, protocol, standards, catalogs, and project-level operational files under .agora/ |
templates/methods/ |
Role, transition, gate, and policy contracts under .agora/methods/ |
templates/tools/ |
Provider-neutral Tool Packs under .agora/tools/ |
templates/adapters/ |
Reviewed native CLI adapters installed under .agora/tools/ |
Actors, swarms, work items, actions, sessions, artifacts, evidence, approvals, and Tool Runs are not static templates: Agora creates their Markdown records as the team works. See documentation and artifact locations for the full source-to-runtime map.
Install from this repository
Agora requires Python 3.11 or newer. The recommended development and tool manager is uv.
Install a published release:
uv tool install agora-framework
agora --help
Release tags publish the same verified wheel to GitHub Releases and PyPI through OIDC Trusted Publishing. No PyPI token is stored in the repository.
uv sync --extra dev
uv tool install .
agora --help
Run the development checkout without a global installation:
uv run agora --help
Quickstart
Scaffold a runnable project in one command: it initializes .agora, registers a human
actor and an AI actor, creates a swarm with the default method, and assigns every
required role between the two.
cd my-project
agora quickstart --objective "Ship the MVP"
By default the created actors are unauthenticated: no keys and no signing. Add --secure to require
signed authentication for both actors. Quickstart then generates a local Ed25519 keypair per actor
for exploration, keeping private keys outside .agora. Production actors should manage their own
keys instead; see the
actor authentication guide.
agora quickstart --objective "Ship the MVP" --secure
agora quickstart --objective "Ship the MVP" --secure --key-dir ~/.my-team/dev-keys
Without --key-dir, the external key directory is
~/.config/agora-quickstart-keys/<project-hash>/. The command reports its exact path. See the
quickstart guide for rerun, custom Method Pack, and security behavior.
Inspect the next role-authorized action, run non-human actors until Agora reaches human authority, then inspect the human inbox:
agora next
agora run --until-blocked --max-steps 10
agora inbox
Codex and Claude run through their installed non-interactive CLIs. A generic integration supplies an
explicit structured runner with --runner. The controller stops when no governed progress is
recorded, so a successful process cannot create an unbounded empty loop. See the
operational agent loop guide.
Configure and initialize
The commands above are what quickstart runs for you. Use them directly for full control
over integration, provider, actors, and roles:
agora configure \
--integration codex \
--provider openai \
--model configured-by-codex \
--default-method scrum \
--max-delegation-depth 3
cd my-project
agora init
agora doctor
Initial integrations:
codex: installs skills under.agents/skills/agora-*/SKILL.md.claude: installs commands under.claude/commands/agora.*.md.generic: keeps portable commands under.agora/commands.
Provider and model values describe the selected environment. This MVP does not call an LLM API or store credentials.
Existing projects are never rewritten merely because the CLI was updated. Preview and then apply a supported protocol migration explicitly:
agora upgrade
agora upgrade --apply
agora validate
Each applied migration is recorded under .agora/upgrades with backups of every updated file. See
the project upgrade guide for compatibility and recovery rules.
Pack lifecycle changes are also preview-first. Removing a pack checks reverse dependencies and
durable project references before deleting files, updates PACKS.lock.md, and writes an auditable
record under .agora/pack-removals. See the pack removal guide.
Customize the lifecycle
A Method Pack is a Markdown contract for a work lifecycle. It defines role requirements, allowed actor kinds and actions, transition graphs, WIP limits, gates, approval requirements, protocol, and tool policy. The core does not attach special behavior to bundled method names.
Install a custom pack for reuse across projects:
agora method install --source ./my-method-pack --scope user
agora configure --default-method my-method
agora init
Install a pack only in the current initialized project:
agora method install --source ./my-method-pack --scope project
agora swarm create --id delivery --objective "Deliver the objective" --method my-method
See the custom lifecycle sample for a pack unrelated to the bundled methods.
Discover bundled and registered packs, or install a reviewed local or remote registry snapshot:
agora registry install --source ./team-registry --scope user
agora trust add --id team-release --registry team-catalog \
--public-key ./team-release.pem --scope user
agora trust organization add --id example-org \
--public-key ./example-org-root.pem --scope project
agora trust organization sync --id example-org \
--source https://trust.example.com/agora/BUNDLE.md --scope project
agora trust organization sync --id example-org --scope project --apply
agora trust organization rotate --id example-org \
--source ./ROOT-ROTATION.md --scope project --apply
agora trust transparency add --id rekor-2026 --log rekor-public \
--public-key ./rekor-public.pem --scope project
agora registry verify-transparency --source ./PROOF.md --scope project --record
agora registry install --source https://catalog.example.com/INDEX.md \
--version 1.0.0 --signature-threshold 2 --require-transparency --scope project
agora registry update --id team-catalog
agora registry update --id team-catalog --apply
agora registry audit --scope project --record
agora registry list
agora pack search --kind method --query release
agora pack install --kind method --id release-flow \
--registry team-catalog --scope project
agora pack update --kind method --id release-flow
agora pack update --kind method --id release-flow --apply
agora pack audit --scope project --record
agora pack apply-audit --id audit-20260815t120000z --scope project
Project registries override user registries, which override the bundled catalog when the same pack id
appears more than once. See the pack registry guide.
Pack manifests declare versions and optional Method or Tool dependencies. Catalog installation
resolves compatible dependencies before copying and rejects broken or cyclic compositions. See the
pack dependency guide.
Each catalog-installed pack persists its registry and checksum in SOURCE.md. Explicit
agora pack update previews dependency-aware changes and applies them only with --apply; see the
pack update guide.
PACKS.lock.md inventories the exact installed composition, while per-pack UPDATE.md files retain
each applied transition; see the pack lock guide.
Aggregate pack audits can record update and local-modification notifications without changing the
installed composition.
An explicitly selected, unchanged audit can then apply its bound dependency plans as one
transaction and persist an application record.
Remote releases are checksum-pinned and may require a threshold of distinct Ed25519 signatures;
Agora persists their signer evidence and policy beside the installed snapshot. See the
remote registry guide.
Trusted public keys, rotations, and revocations can be persisted at user or project scope. See the
registry trust guide.
Transparency checkpoint keys use a separate scoped trust store, so they cannot authorize registry
releases.
Signed organization feeds synchronize those keys and revocations through preview-first,
sequence-bound updates with a durable local history.
Organization roots rotate through an explicitly applied declaration signed by both the outgoing and
incoming roots and bound to the current feed position.
Registry updates are preview-only unless --apply is passed, preserve provenance and history, and
never update installed packs implicitly. See the
registry update guide.
Aggregate registry audits can persist authenticated Markdown notifications for an external
scheduler without applying any update.
Actors and swarms
Actors may be human, ai-agent, swarm, service, or automation. A Method Pack determines which
actor kinds, capabilities, and actions each role permits.
agora actor add --scope user \
--id owner --name "Product Owner" --kind human \
--capability backlog-management --capability acceptance
agora actor add --id facilitator --name "AI Facilitator" --kind ai-agent \
--capability facilitation --capability governance \
--integration codex --provider openai --model configured-by-codex
agora actor add --id delivery-swarm --name "Delivery Swarm" --kind swarm \
--capability implementation
agora actor add --id ai-developer --name "AI Developer" --kind ai-agent \
--capability implementation
agora swarm create --id payments --objective "Deliver governed payment changes"
agora swarm assign --swarm payments --role product-owner --actor user:owner
agora swarm assign --swarm payments --role scrum-master --actor facilitator
agora swarm assign --swarm payments --role developer --actor delivery-swarm
Direct assignment bootstraps vacant roles. Once a governance actor is assigned, remaining roles can be authorized through a durable Lifecycle Action:
agora swarm assign-prepare --id assign-payments-developer \
--swarm payments --role developer --actor delivery-swarm --by user:owner
agora action authorization --action assign-payments-developer \
--output /tmp/assign-payments-developer.json
agora action apply --action assign-payments-developer \
--signature /tmp/assign-payments-developer.sig
Assignments never overwrite an occupied role; use a governed handoff for replacement.
An actor may bind its identity to an external Ed25519 key and require signed authorization before applying supported lifecycle mutations or launching a Tool Run:
agora actor add --id authenticated-developer \
--name "Authenticated Developer" --kind ai-agent \
--capability implementation \
--public-key developer-public.pem \
--require-authentication
Agora stores only the public key and durable signature evidence. The private key remains in the actor's keychain, hardware, workload identity, or secret manager. See the actor authentication guide for the prepare, sign, and launch flow.
Authenticated work transitions use a two-phase lifecycle action:
agora work transition-prepare --id begin-payment-work \
--swarm payments --work payment-retry --to implementing --by authenticated-developer
agora action authorization --action begin-payment-work --output /tmp/begin-payment-work.json
agora action apply --action begin-payment-work --signature /tmp/begin-payment-work.sig
The external signer signs the exact bytes in /tmp/begin-payment-work.json. See
signed lifecycle actions for signing commands,
precondition rules, replay protection, and audit behavior.
Authenticated actors use the same boundary to change their own runtime selection:
agora actor runtime-prepare --id update-authenticated-runtime \
--actor authenticated-developer --swarm payments \
--integration generic --provider internal-gateway --model reviewed-model
agora action authorization --action update-authenticated-runtime \
--output /tmp/update-authenticated-runtime.json
agora action apply --action update-authenticated-runtime \
--signature /tmp/update-authenticated-runtime.sig
Authorize planned rotation with the active key. A different authenticated governance actor handles revocation and recovery without replacing historical evidence:
agora actor key rotate-prepare --id rotate-authenticated-developer \
--actor authenticated-developer --swarm payments \
--public-key developer-next-public.pem --reason "Scheduled rotation"
agora action authorization --action rotate-authenticated-developer \
--output /tmp/rotate-authenticated-developer.json
agora action apply --action rotate-authenticated-developer \
--signature /tmp/rotate-authenticated-developer.sig
agora actor key revoke-prepare --id revoke-authenticated-developer \
--actor authenticated-developer --swarm payments --by security-governor \
--reason "Credential exposure"
agora action authorization --action revoke-authenticated-developer \
--output /tmp/revoke-authenticated-developer.json
agora action apply --action revoke-authenticated-developer \
--signature /tmp/revoke-authenticated-developer.sig
agora actor key recover-prepare --id recover-authenticated-developer \
--actor authenticated-developer --swarm payments --by security-governor \
--public-key developer-recovery-public.pem --reason "Credential replacement"
agora actor key list --actor authenticated-developer
The governance authorizer must hold explicit Method Pack authority, be assigned with the target, and
use a different public-key fingerprint. Recovery follows the same action authorization and
action apply steps; the revoked key never authorizes its successor.
In a Git repository, swarm create creates agora/<swarm-id> by default. Use --no-branch to retain
the current branch. The global --project <path> option lets IDEs, runners, and cloud environments
operate on an initialized project without changing their working directory.
Responsibility may change actor form while work is running. A handoff validates the receiver against the same role and preserves both identities:
agora swarm handoff --id delivery-to-ai \
--swarm payments --role developer \
--from delivery-swarm --to ai-developer --by delivery-swarm \
--reason "Continue implementation in the approved AI runtime"
Role holders need handoff.create to transfer their own role. Governance roles need
handoff.manage to transfer another role. Current assignment changes in SWARM.md; history remains
under the swarm's handoffs/ directory and event log.
Recursive swarms
A project-scoped actor whose kind is swarm may link to a real child swarm:
agora actor add --id specialist-team --name "Specialist Team" --kind swarm \
--capability implementation --represented-swarm payment-specialists
agora swarm assign --swarm payments --role developer --actor specialist-team
The child must already be ready or running. Agora rejects direct and indirect cycles and any graph
whose longest chain exceeds project max-delegation-depth. Sessions for the linked actor include
both parent and child swarm context. Unlinked swarm actors remain valid for external composite teams.
Delegated work
A linked actor may turn a bounded part of parent work into a governed child work item. Proposal, child acceptance, and result collection are explicit steps:
agora delegation create --id specialist-task \
--swarm payments --work payment-api \
--to-actor specialist-team --child-work payment-internals \
--title "Implement payment internals" \
--criterion usable:"The parent can integrate the result" \
--required-artifact implementation --result-kind delegated-result \
--by specialist-team
agora delegation accept --delegation specialist-task --by owner
# The child completes payment-internals under its own method, roles, and gates.
agora delegation collect --delegation specialist-task --by specialist-team
Collection registers an agora:// reference and successful delegated-work evidence in the parent;
it does not copy child artifacts or bypass parent acceptance. See the
delegated work guide.
Delegations may also be blocked and resumed by parent governance, rejected by the child, or
cancelled by the parent. Each operation requires an attributed reason and preserves a sequenced
STATUS.md history.
Governed sessions
Prepare a durable context for an assigned actor and work item:
agora start --id payment-session --actor delivery-swarm \
--swarm payments --work payment-api
The session records the effective actor or project runtime and writes .agora/sessions/payment-session
with SESSION.md and CONTEXT.md; launched sessions also persist bounded output in RESULT.md. Add
--launch to execute the detected Codex or Claude command, or provide --runner "<command>" for a
generic environment. Agora delegates to the external process and does not import an LLM SDK.
Session time and output boundaries are configurable with --timeout-seconds and
--max-output-bytes, persisted in Markdown, and bound by signed launch authorization.
Governed developer tools
Tool Packs expose selected operations from repositories, issue trackers, CI/CD, documentation, cloud, observability, or communication CLIs. An operation declares structured arguments, required inputs, risk, a provider-neutral capability, and optional approval policy. Method Pack roles grant those capabilities explicitly.
Agora uses a CLI-first integration policy: prefer the provider CLI already configured in the developer environment, use a reviewed wrapper when normalization is necessary, and keep MCP as an explicit alternative when it provides capabilities unavailable through the CLI. Discovery never installs or selects a transport automatically:
agora tool adapter list --available
agora tool adapter list --check
agora tool adapter list --compatible
agora tool adapter install --id github-actions --scope project
agora tool adapter install --id github-issues --scope project
agora tool adapter install --id gitlab-ci --scope project
agora tool adapter install --id gitlab-issues --scope project
agora tool adapter install --id gitlab-merge-requests --scope project
agora tool adapter install --id jira --scope project
agora tool adapter install --id twg-confluence --scope project
agora tool adapter install --id terraform --scope project
agora tool adapter install --id aws-resource-inventory --scope project
agora tool adapter install --id gcp-asset-inventory --scope project
--check runs each available adapter's declared version command and reports the detected and
minimum versions. --compatible performs the same check and returns only runtimes that satisfy the
adapter contract. Version checks never authenticate or contact the provider.
Agora includes Git-backed repository plus provider-neutral work-management, ci-cd,
knowledge-base, cloud-infrastructure, and observability packs:
agora environment add --id staging --name "Staging" \
--capability cloud.read --capability cloud.plan
agora environment add --id production --name "Production" \
--capability observability.read
agora tool show --tool repository
agora tool invoke --id payment-status \
--tool repository --operation status \
--actor delivery-swarm --swarm payments --launch
# After staging the intended files:
agora tool invoke --id payment-commit \
--tool repository --operation commit \
--actor delivery-swarm --swarm payments \
--input message="feat(payments): add governed payment API" --launch
agora tool invoke --id inspect-payment-ticket \
--tool work-management --operation view \
--actor delivery-swarm --swarm payments \
--input issue=PAY-42 --launch
agora tool invoke --id verify-payments \
--tool ci-cd --operation trigger \
--actor delivery-swarm --swarm payments \
--input pipeline=verify --input ref=main \
--input parameters=suite=payments --launch
agora tool invoke --id inspect-payment-guide \
--tool knowledge-base --operation view \
--actor delivery-swarm --swarm payments \
--input document=DOC-42 --launch
agora tool invoke --id plan-payment-capacity \
--tool cloud-infrastructure --operation plan \
--actor delivery-swarm --swarm payments \
--environment staging \
--input environment=staging \
--input change=increase-payment-capacity --launch
agora tool invoke --id payment-health \
--tool observability --operation service-health \
--actor delivery-swarm --swarm payments \
--environment production \
--input service=payments --input environment=production --launch
The executable runs without a shell. Agora persists RUN.md, captures output and exit status in
RESULT.md, and stores no credentials. Omitting --launch creates a portable invocation for an IDE,
CI worker, or cloud executor. The commit operation validates Conventional Commits 1.0.0 before a run
record or Git commit is created.
Environment-aware operations additionally require a project policy, an assigned role that permits the environment, and any configured work approvals or successful evidence. Agora records the stable environment id separately from provider-specific Tool Pack inputs and rechecks it before launch. See the environment permissions guide.
The work-management pack defines a stable workctl interface for Jira, Linear, or an internal
tracker while keeping issue.read, issue.write, and issue.transition authority in the active
Method Pack. The github-issues and jira adapters map that contract directly to gh and ACLI;
the partial gitlab-issues adapter maps exact search, view, comment, and close/reopen operations to
glab without claiming unsupported typed creation.
See the work-management integration guide.
The code-review pack separates review reads, review writing, review decisions, and merge authority.
The github-pull-requests adapter maps the full contract to the installed gh CLI. The partial
gitlab-merge-requests adapter maps exact view, create, comment, and head-pipeline check operations
to glab without weakening unsupported decisions or merge strategies. No bundled role receives
review.merge; projects must opt in explicitly. See the
code-review integration guide.
The ci-cd pack defines a stable cictl interface for GitHub Actions, GitLab CI/CD, Jenkins, or an
internal platform. Routine pipeline access is separate from cancellation and deployment authority.
The independently installable github-actions adapter maps the complete contract to the
developer's existing gh CLI. The partial gitlab-ci adapter maps bounded pipeline listing,
inspection, and cancellation to glab without claiming trigger or deployment translations that
lose required neutral inputs. See the
CLI-first adapter guide and
CI/CD integration guide.
The knowledge-base pack defines a stable docsctl interface for Confluence, Notion, and internal
documentation. The independently installable twg-confluence adapter maps the exact Confluence
page view, draft create/update, publish, and archive subset to Atlassian Teamwork Graph CLI, with
optimistic concurrency tokens required for updates. Draft access remains separate from publication
and destructive archival. See the
knowledge-base integration guide.
The cloud-infrastructure pack defines cloudctl for AWS, Azure, Google Cloud, infrastructure as
code, or internal platforms. Inspection and planning remain distinct from apply and destruction.
The independently installable terraform adapter uses the developer's existing Terraform CLI and
applies only saved plans. Partial AWS and Google Cloud adapters expose bounded inventory reads
without plan, apply, or destruction operations. See the
cloud integration guide.
The observability pack defines observectl for monitoring and incident systems. Reading signals
and declaring incidents remain separate from resolution authority. See the
observability integration guide.
Governed work
agora work create --swarm payments --id payment-api --title "Implement payment API" \
--by owner --criterion api-works:"The API satisfies its contract" \
--required-artifact source-code --required-artifact test-report
agora work decompose --swarm payments --work payment-api \
--child payment-validation --title "Validate payment requests" \
--by owner --criterion covered:"Validation paths have tests"
agora work transition --swarm payments --work payment-api --to planned --by delivery-swarm
agora artifact add --swarm payments --work payment-api \
--kind source-code --uri repo://src/payment.py --by delivery-swarm
agora evidence add --swarm payments --work payment-api \
--type test-run --result success --artifact repo://src/payment.py --by facilitator
agora work criterion-satisfy --swarm payments --work payment-api \
--criterion api-works --by owner
agora approval add --swarm payments --work payment-api \
--role product-owner --by owner --note "Accepted for completion"
Method state and operational status are independent. A blocker preserves the current lifecycle state while suspending mutations; cancellation closes the item without claiming method completion:
agora work block --swarm payments --work payment-api --by delivery \
--reason "Waiting for an upstream contract"
agora work status-changes --swarm payments --work payment-api
agora work resume --swarm payments --work payment-api --by facilitator \
--reason "The contract is available"
agora work cancel --swarm payments --work payment-api --by owner \
--reason "The objective no longer requires this work"
See interruptions and cancellation for state, authority, delegation, and child-ownership rules.
Local decomposition links independently governed child work inside the same swarm. The parent cannot complete or be cancelled while a child remains open. See the work decomposition guide. Cross-swarm child work continues to use the separate delegation protocol.
Transitions come from Markdown files in the installed Method Pack. Packs may define rework paths and per-state WIP limits. A gated terminal transition can require:
- Every acceptance criterion is satisfied.
- Every required artifact kind is registered.
- At least one successful evidence record exists.
- Explicit approvals from configured roles.
- The acting participant holds a role permitted for that exact transition.
Persistence
Each swarm contains its manifest, assignments, interactions, events, work, artifacts, and evidence:
.agora/delegations/specialist-task/
DELEGATION.md
status-changes/<change-id>/STATUS.md
.agora/swarms/payments/
SWARM.md
events.md
interactions.md
artifacts.md
evidence.md
handoffs/
delivery-to-ai/HANDOFF.md
work/payment-api/
WORK.md
status-changes/<change-id>/STATUS.md
events.md
interactions.md
artifacts.md
evidence.md
approvals.md
The filesystem represents current state. Git provides history, branches, review, synchronization, and handoffs across IDEs, CLIs, CI/CD systems, and cloud agents.
Concurrent writers
Mutating operations take an operating-system lock for the complete project or user-home transaction.
This serializes local CLIs, IDE integrations, agent processes, and Python API clients without adding
runtime files to the repository. Contention fails immediately unless AGORA_LOCK_TIMEOUT configures
a bounded wait:
agora lock status
AGORA_LOCK_TIMEOUT=10 agora work transition \
--swarm payments --work payment-api --to reviewing --by delivery-swarm
Locks are reentrant for nested Agora operations and release on success, exceptions, or process exit. Projects may layer a reviewed external lease CLI over the mandatory local lock to coordinate separate hosts while keeping Markdown and Git authoritative. See the concurrent writers guide.
Operational queries and validation
Agora reads the Markdown source of truth into deterministic JSON views for humans, agents, IDEs, and CI:
agora status
agora actor list --scope project
agora swarm list --status running
agora work list --swarm payments --state reviewing
agora work list --swarm payments --operational-status blocked
agora work status-changes --swarm payments --work payment-api
agora delegation list --status accepted
agora delegation status-changes --delegation specialist-task
agora session list --status prepared
agora tool runs --status failed
agora event list --swarm payments --work payment-api --limit 20
agora validate
doctor checks environment prerequisites. validate performs a complete, non-mutating integrity
audit across schemas, portable commands, generated agent adapters, Method and Tool Packs,
environment policies, actors, role assignments, work, WIP, handoffs, delegations, sessions, tool
runs, events, and recursive swarm constraints. Validation emits all findings and exits with status
1 when errors are present. See the
operations and validation guide.
Development
Run the complete Python verification entry point:
uv run python scripts/verify_all.py
It checks Python, Markdown links, generated adapter semantics, all samples, tests, and both package
distributions. GitHub Actions runs the test suite on Python 3.11 through 3.13 and executes this same
complete verifier on Python 3.13. Version-matched vMAJOR.MINOR.PATCH tags publish checksum-protected
wheel and source artifacts as a GitHub release. See the
complete verification guide. The individual commands are:
uv run ruff format --check .
uv run ruff check .
uv run pytest
uv run python scripts/check_docs.py
uv build
uv run python samples/basic-swarm/run.py
uv run python samples/llm-environments/run.py
uv run python samples/custom-lifecycle/run.py
uv run python samples/tool-integration/run.py
uv run python samples/handoffs/run.py
uv run python samples/recursive-swarms/run.py
uv run python samples/delegated-work/run.py
uv run python samples/operational-query/run.py
uv run python samples/interruptions/run.py
uv run python samples/project-upgrade/run.py
uv run python samples/concurrent-writes/run.py
uv run python samples/pack-registry/run.py
uv run python samples/pack-dependencies/run.py
uv run python samples/remote-registry/run.py
uv run python samples/gate-waivers/run.py
uv run python samples/approval-delegation/run.py
uv run python samples/gitlab-ci-cli/run.py
uv run python samples/gitlab-issues-cli/run.py
uv run python samples/gitlab-merge-requests-cli/run.py
uv run python samples/distributed-coordination/run.py
uv run python samples/environment-permissions/run.py
uv run python samples/twg-confluence-cli/run.py
The basic swarm sample creates a temporary repository, installs Agora for Codex, registers a human, an AI agent, and a nested swarm, creates a branch, demonstrates a failed gate, and completes the work with evidence. The LLM environments sample materializes Codex, Claude, and generic configurations without invoking a model. The custom lifecycle sample installs and selects a Method Pack that does not derive from a bundled methodology. The tool integration sample invokes Git through a governed Tool Pack and persists its output. The handoff sample transfers one live Developer role from a human to an AI agent and then a swarm. The recursive swarm sample links a child team and enforces nesting depth. The delegated work sample creates accepted child work and collects its terminal result into the parent. The operational query sample summarizes and validates a complete workspace directly from its Markdown records. The operational loop sample launches a real external process, persists work while its session is running, prepares a Pull Request command, and stops at a human gate. The interruption sample exercises work and delegation blocking, resumption, rejection, and cancellation. The project upgrade sample applies a backed-up protocol migration, while the concurrent writers sample demonstrates local process contention and recovery. The pack dependency sample installs a Method Pack and resolves its compatible Tool Pack before copying either catalog selection. The remote registry sample signs, verifies, installs, and validates a versioned registry snapshot without persisting a private key. The GitLab Issues sample prepares native issue reads and transitions while rejecting deletion and unsupported typed creation. The GitLab CI/CD sample prepares bounded pipeline reads while rejecting unauthorized cancellation and unsupported trigger translation. The GitLab Merge Requests sample prepares native review creation and head-pipeline inspection while rejecting unsupported merge translation. The environment permissions sample gates a production Tool Run on role scope, Product Owner approval, and successful work evidence. The TWG Confluence sample prepares native page commands, requires an optimistic-concurrency token for updates, and rejects unsupported search translation. The distributed coordination sample wraps a project mutation in a structured external lease while retaining the local operating-system lock.
Documentation
- Visual adoption guide: move from installation to a validated first workflow with decision diagrams, minimal commands, and staged team adoption.
- Documentation index: guides grouped by onboarding, governance, agentic work, integrations, registries, concepts, and reference.
- Documentation and artifact locations: distinguish product
documentation, plugin output, protocol sources, generated agent adapters, durable
.agorastate, and externally owned work products. - Installation and customization and getting started.
- End-to-end delivery guides for Spec-Driven, Scrum, and Kanban.
- Operational agent loop and code-review integrations.
- Architecture, domain model, Method Pack reference, and Tool Pack reference.
- Executable samples: runnable examples with companion documentation.
- Contributing
Current limitations
- Spec-Driven, Scrum, and Kanban are starter Method Packs, not privileged core workflows or exhaustive methodology implementations.
- Method and Tool Packs can be discovered through bundled, user, project, and verified remote registry snapshots. Local and project trust stores, rotation, and revocation are implemented; explicit update checks, transactional application, and dependency-aware installation are implemented. Installed pack provenance and explicit dependency-aware updates are implemented. Signed organization trust synchronization and a locally verified feed history are implemented. Dual-signed organization root rotation and registry release signature thresholds are implemented. Explicit third-party transparency inclusion-proof verification and durable recording are implemented, and a recorded proof can be made a forward-only installation and update policy. Automatic proof discovery and background pack updates are not implemented. Aggregate update notifications and explicit audited batch application are available for external schedulers.
- The Tool Pack kernel plus Git repository, provider-neutral code-review, work-management, CI/CD, knowledge-base, cloud-infrastructure, and observability packs are implemented. Bundled vendor distributions currently include GitHub Actions, GitHub Issues, GitHub Pull Requests, Jira, and Terraform CLI adapters, partial GitLab CI/CD, Issues, Merge Requests, and Atlassian TWG Confluence adapters, plus partial AWS and Google Cloud inventory adapters.
- Governed same-swarm work decomposition and provider-neutral delegation budgets are implemented; the selected human, agent, or swarm remains responsible for proposing useful child contracts and external runtimes remain responsible for measuring usage. Agora provides an append-only, evidence-backed usage ledger with cumulative budget enforcement. Opt-in typed child artifact promotion is implemented as a reference to the authoritative child record; Agora deliberately does not copy opaque external bytes. Granular, evidence-backed Gate Waivers and single-use, work-scoped Approval Delegation are implemented. Distributed coordination is available through an optional reviewed lease CLI; remote scheduling remains external. Local cross-process writer locks, explicit child work acceptance, interruption, cancellation, and reference-based result collection are implemented.
- Optional Ed25519 actor authentication protects key rotation, independently authorized revocation and recovery, actor runtime updates, vacant-role assignment, work creation and decomposition, criteria, artifacts, evidence, transitions, interruptions, direct and delegated approvals, Gate Waivers, handoffs, the complete work-delegation lifecycle, Tool Run launch, and agent-session preparation and launch while leaving private keys external. Public-key rotation and revocation histories are implemented. Tool Packs and agent sessions declare portable direct-process timeouts and captured-output limits. Filesystem/network/syscall isolation, resource quotas, and detached process containment remain responsibilities of reviewed external runners.
- Credentials belong to the environment or secret manager; Agora stores references only.
- Front matter deliberately accepts a JSON-compatible subset of YAML.
License
Apache License 2.0. See LICENSE.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file agora_framework-0.3.2.tar.gz.
File metadata
- Download URL: agora_framework-0.3.2.tar.gz
- Upload date:
- Size: 461.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
be4de34a8db2dcd18cbf378356bbe960e415067b1c31dddbbba2821eac03606e
|
|
| MD5 |
a15c46c024f447b70e198742646ae0ac
|
|
| BLAKE2b-256 |
c4a41779767e0399e4d047c2343917116eeb775abe189c791e8bf3b6f6bd32ca
|
Provenance
The following attestation bundles were made for agora_framework-0.3.2.tar.gz:
Publisher:
release.yml on fabianaguero/agora
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
agora_framework-0.3.2.tar.gz -
Subject digest:
be4de34a8db2dcd18cbf378356bbe960e415067b1c31dddbbba2821eac03606e - Sigstore transparency entry: 2491542471
- Sigstore integration time:
-
Permalink:
fabianaguero/agora@bc045fd6e3444149fda0db389ad930a1f6917fe7 -
Branch / Tag:
refs/tags/v0.3.2 - Owner: https://github.com/fabianaguero
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@bc045fd6e3444149fda0db389ad930a1f6917fe7 -
Trigger Event:
push
-
Statement type:
File details
Details for the file agora_framework-0.3.2-py3-none-any.whl.
File metadata
- Download URL: agora_framework-0.3.2-py3-none-any.whl
- Upload date:
- Size: 294.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c0e41cbadcd7089df698f8c112f439179768cd8d3c08272ae8faa3f1de727c5e
|
|
| MD5 |
c8af36a0955a5761f83fbe84e9a45d5a
|
|
| BLAKE2b-256 |
1d5e77bfae7d07ac8547b473473e7f5b06246eb1997157a07b0d858e263568c3
|
Provenance
The following attestation bundles were made for agora_framework-0.3.2-py3-none-any.whl:
Publisher:
release.yml on fabianaguero/agora
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
agora_framework-0.3.2-py3-none-any.whl -
Subject digest:
c0e41cbadcd7089df698f8c112f439179768cd8d3c08272ae8faa3f1de727c5e - Sigstore transparency entry: 2491542624
- Sigstore integration time:
-
Permalink:
fabianaguero/agora@bc045fd6e3444149fda0db389ad930a1f6917fe7 -
Branch / Tag:
refs/tags/v0.3.2 - Owner: https://github.com/fabianaguero
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@bc045fd6e3444149fda0db389ad930a1f6917fe7 -
Trigger Event:
push
-
Statement type: