sortie

module
v0.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 18, 2026 License: Apache-2.0

README

Sortie

CI codecov

Sortie is an orchestration service that turns issue tracker tickets into autonomous coding agent sessions. It polls for work, creates isolated per-issue workspaces, dispatches agents, and manages their lifecycle through retries, reconciliation, and observability.

Engineers manage work at the ticket level. Agents handle implementation.

Note: Sortie is under active development and is not yet ready for use.

Why "Sortie"

A sortie is a military and aviation term for a single mission executed autonomously. The metaphor is precise: the orchestrator dispatches agents on missions (issues), each with an isolated workspace, a defined objective, and an expected return. The name is short, two syllables, pronounceable across languages, and does not conflict with existing projects in this domain.

How It Works

  1. Polls an issue tracker for tickets in active states.
  2. Creates an isolated workspace for each ticket.
  3. Renders a prompt from the ticket data and a workflow template.
  4. Launches a coding agent session inside the workspace.
  5. Monitors execution: stall detection, timeout enforcement, state reconciliation.
  6. Retries failed runs with exponential backoff.
  7. Cleans up workspaces when tickets reach terminal states.

The workflow definition (prompt template and runtime configuration) lives in a single WORKFLOW.md file that is version-controlled alongside the target repository. Changes to the workflow are detected and applied without restart.

Architecture

Sortie is a single Go binary. It uses SQLite for persistent state (retry queues, session metadata, run history) and communicates with coding agents over stdio. The orchestrator is the single authority for all scheduling decisions; there is no external job queue or distributed coordination. For full architectural details, see docs/architecture.md.

Issue trackers and coding agents are integrated through adapter interfaces. Adding support for a new tracker or agent is an additive change: implement the interface in a new package.

The initial implementation targets Jira and Claude Code. See docs/decisions/ for detailed rationale on technology choices.

Prior Art

Sortie's architecture is informed by OpenAI Symphony, a spec-first orchestration framework with an Elixir reference implementation. Key differences:

  • Go instead of Elixir for deployment simplicity and broader contributor accessibility.
  • SQLite persistence instead of in-memory state, surviving process restarts.
  • Pluggable trackers and agents via adapter interfaces, instead of hardcoded Linear and Codex integration.
  • Claude Code as first agent adapter, with the interface designed for any runtime (Codex, Copilot, HTTP-based agents).

License

Apache License 2.0

Directories

Path Synopsis
cmd
sortie command
Package main is the entry point for the Sortie orchestration service.
Package main is the entry point for the Sortie orchestration service.
internal
config
Package config converts raw workflow front matter into typed runtime configuration.
Package config converts raw workflow front matter into typed runtime configuration.
logging
Package logging provides structured logging primitives for the Sortie orchestrator.
Package logging provides structured logging primitives for the Sortie orchestrator.
prompt
Package prompt renders per-issue prompt templates using Go text/template in strict mode.
Package prompt renders per-issue prompt templates using Go text/template in strict mode.
workflow
Package workflow loads and parses Sortie workflow files.
Package workflow loads and parses Sortie workflow files.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL