Skip to content

Latest commit

 

History

History
63 lines (44 loc) · 2.04 KB

File metadata and controls

63 lines (44 loc) · 2.04 KB

Symphony

Elixir agent orchestration service that polls Linear, creates per-issue workspaces, and runs Codex in app-server mode.

Environment

  • Elixir: 1.19.x (OTP 28) via mise.
  • Install deps: mix setup.
  • Main quality gate: make all (format check, lint, coverage, dialyzer).

Codebase-Specific Conventions

  • Runtime config is loaded from WORKFLOW.md front matter via SymphonyElixir.Workflow and SymphonyElixir.Config.
  • Keep the implementation aligned with SPEC.md where practical.
    • The implementation may be a superset of the spec.
    • The implementation must not conflict with the spec.
    • If implementation changes meaningfully alter the intended behavior, update the spec in the same change where practical so the spec stays current.
  • Prefer adding config access through SymphonyElixir.Config instead of ad-hoc env reads.
  • Workspace safety is critical:
    • Never run Codex turn cwd in source repo.
    • Workspaces must stay under configured workspace root.
  • Orchestrator behavior is stateful and concurrency-sensitive; preserve retry, reconciliation, and cleanup semantics.
  • Follow docs/logging.md for logging conventions and required issue/session context fields.

Tests and Validation

Run targeted tests while iterating, then run full gates before handoff.

make all

Required Rules

  • Public functions (def) in lib/ must have an adjacent @spec.
  • defp specs are optional.
  • @impl callback implementations are exempt from local @spec requirement.
  • Keep changes narrowly scoped; avoid unrelated refactors.
  • Follow existing module/style patterns in lib/symphony_elixir/*.

Validation command:

mix specs.check

PR Requirements

  • PR body must follow .github/pull_request_template.md exactly.
  • Validate PR body locally when needed:
mix pr_body.check --file /path/to/pr_body.md

Docs Update Policy

If behavior/config changes, update docs in the same PR:

  • README.md for project overview and run instructions.
  • WORKFLOW.md for workflow/config contract changes.