$ show openai/symphony
Symphony is an autonomous AI agent orchestration service written in Elixir/Phoenix, designed to manage coding agents (like OpenAI's Codex) that resolve issues from project trackers. In production, it polls Linear, GitHub, GitLab, Jira, or Asana for new work, creates isolated per-issue workspaces, launches Codex agents with provider-native tools, manages retries and backoff, and provides live observability via a terminal dashboard and optional web UI. The architecture follows OTP best practices: a supervisor tree with GenServers for the orchestrator state machine, polling loop, status dashboard, and tracker adapters. Key entry points include the CLI (`SymphonyElixir.CLI.main`), the Phoenix web endpoint, and Mix tasks for code quality checks. Data flows are event-driven: poll tracker -> normalize to Issue struct -> dispatch via AgentRunner -> create workspace -> run Codex turns -> cleanup. The system is explicitly experimental ("engineering preview") but demonstrates strong engineering in its adapter pattern, configuration design, and test infrastructure.
The LLM identified 4 files worth highlighting for reuse:
Provides safe symlink-aware path canonicalization to prevent directory traversal attacks. Demonstrates a clean, isolated utility function that can be extracted into any Elixir project needing path safety.
AST-based tool that enforces @spec declarations for all public functions. Shows advanced macro/AST usage and can be reused as a custom Mix task in any Elixir project to enforce typing discipline.
Provides a snapshot testing framework for terminal UI by comparing rendered output against stored snapshots. Demonstrates a clean test helper pattern that could be extracted for any project needing CLI output validation.
Abstracts local vs remote command execution over SSH into a unified interface. Implements authentication, command streaming, and error handling in a decoupled module suitable for extraction into a standalone library.