Skip to main content

Crate forza

Crate forza 

Source
Expand description

forza — autonomous GitHub issue runner.

Turns GitHub issues into pull requests through a staged pipeline. Core domain logic lives in forza-core; this crate provides the CLI, REST API, MCP server, and concrete implementations.

GitHub (issues/PRs)  -->  Runner  -->  Agent (claude/codex/etc)
    platform layer       pipeline       execution layer

§Architecture

  • Platform (github, git): GitHub and git client implementations
  • Runner (runner): Discovery, scheduling, and pipeline execution via forza-core
  • Execution (executor, isolation): Agent invocation and work isolation
  • Adapters (adapters): Bridge existing clients to forza-core traits

§Re-exports

  • RunnerConfig: top-level configuration loaded from forza.toml
  • SubjectType: distinguishes issue routes from PR routes
  • RouteOutcome: the final outcome recorded for a completed run

Re-exports§

pub use config::RunnerConfig;
pub use config::SubjectType;
pub use state::RouteOutcome;

Modules§

adapters
Adapters that bridge existing implementations to forza-core traits.
api
REST API server — HTTP interface for forza operations.
config
Configuration — the route-based config model.
deps
Dependency validation — checks that required external tools are available on startup.
error
Error types for forza.
executor
Executor — agent-agnostic task execution.
git
Git operations — trait abstraction over git CLI and gix.
github
GitHub platform adapter — issues, PRs, comments, labels.
isolation
Work isolation — git worktrees and cleanup.
mcp
MCP server — exposes forza capabilities over the Model Context Protocol.
notifications
Notification channels fired on run completion.
plan
Plan helpers shared between the CLI and the REST API.
planner
Planner — turn an issue + workflow template into an execution plan.
runner
Runner — discovery, scheduling, and pipeline execution.
state
Run state — persisted records of execution attempts.
workflow
Workflow templates — configurable stage chains per issue type.