Minimal Phoenix 1.8 starter optimized for fast local feedback and AI-assisted development.
- The app starts without Ecto so a fresh clone works without database setup.
- Tidewave is enabled only in the dev environment, matching its current Phoenix installation guidance.
- TimelessPhoenix is mounted behind Phoenix dev routes at /dev/dashboard so the starter stays safe by default.
- usage_rules keeps AGENTS.md and .agents/skills aligned with the exact project dependencies.
- Elixir 1.19.x
- Erlang/OTP 28
- A working C/C++ toolchain for native dependency builds
mix deps.get
mix setupmix setup fetches dependencies, syncs agent guidance, and builds the default frontend assets.
iex -S mix phx.serverVisit http://localhost:4000. Observability is available at http://localhost:4000/dev/dashboard.
- Tidewave is mounted only in development and becomes available when the Phoenix server is running.
- Timeless provides local logs, metrics, and traces at
/dev/dashboard. - Timeless stores local observability data under
priv/observability/. - usage_rules generates dependency-aware agent references under
.agents/skills/.
mix test
mix credo --strict
mix format --check-formattedOr use the repo helpers:
make setup
make check
make symphony-setup
make symphony-build
make symphony-checkUse mix check or make check before pushing changes to stay aligned with CI.
Use make symphony-check for changes under symphony/elixir.
- Start the Phoenix server in development when you want Tidewave runtime context available to an agent.
- Use the Timeless dashboard for logs, metrics, and traces while iterating locally.
- Run mix usage_rules.sync after dependency changes to refresh dependency-aware guidance.
- Keep AGENTS.md and generated skills committed so a fresh clone is immediately agent-ready.
This repository now vendors the Symphony service under ./symphony/elixir alongside the repo-facing files it uses to orchestrate Codex against Brier:
WORKFLOW.mdis the project workflow contract Symphony reads at startup..codex/worktree_init.shbootstraps a fresh workspace clone withmix setup..codex/skills/contains repo-local skills forcommit,pull,push,land,linear, andlaunch-app..github/pull_request_template.mdgives Symphony a stable PR body shape.ai_docs/symphony.mdis the local operator runbook for pointing Symphony at this repository.symphony/elixir/contains the vendored Elixir/OTP Symphony service.
Before using Symphony, update WORKFLOW.md for your Linear project:
- replace
tracker.project_slug - confirm your Linear workflow includes
Todo,In Progress,Human Review,Merging,Rework, andDone, or adjust the state names inWORKFLOW.md - change
workspace.rootif you want workspaces somewhere other than~/code/brier-symphony-workspaces - change the clone URL in
hooks.after_createif this repository remote changes
Install and validate the vendored service from the repo root:
mise trust --yes
mise install
make symphony-setup
make symphony-build
make symphony-checkStart Symphony from the vendored service directory and point it at this repo's workflow:
cd symphony/elixir
mise exec -- ./bin/symphony ../../WORKFLOW.md \
--i-understand-that-this-will-be-running-without-the-usual-guardrailsTo expose the optional observability dashboard, add --port 4040.