AgentYard is a self-hosted Elixir/Phoenix control plane for team coding agents. It lets teams start, observe, and steer repository runs on infrastructure they control.
- Follow
docs/STYLE_GUIDE.mdfor the visual language, tokens, UI patterns, and brand usage. - Brand assets live in
priv/static/images/; CSS lives inpriv/static/css/. - Keep changes focused, reuse existing components and tokens, and preserve accessible labels, keyboard focus, and CSRF protection.
The application uses Elixir, Phoenix, Phoenix LiveView, Ecto/Postgres, and Oban. For the normal local stack:
docker compose up --buildThe seeded demo login is documented in README.md:
demo@agentyard.local / demo-password. For a dependency-only setup, run
mix deps.get; use the repository's configured environment variables rather
than committing local secrets.
Before pushing, run the same static checks as
.github/workflows/ci.yml:
mix format --check-formatted
mix compile --warnings-as-errors
mix credo --strictUse Phoenix conventions for controllers and HEEx, keep LiveViews thin around context operations, and respect Oban's worker/queue boundaries. Put domain logic in contexts or supervised processes rather than templates or controllers.
Run the full suite with:
mix testCI provisions Postgres and sets DATABASE_URL before creating and migrating
the test database. Keep controllers, LiveViews, and contexts covered. Prefer
ConnCase for HTML/controller assertions; auth tests should verify the root
layout and stylesheet links, not just inner text. Store reusable fixtures in
test/fixtures/.
Never commit passwords, API keys, tokens, .env files, or generated secret
material.
README.md— quickstart, deployment, and API overviewdocs/CONCEPT.md— product and technical rationaledocs/FEATURES.md/docs/FEATURES.csv— feature catalogdocs/IMPLEMENTATION-TODO.md— MVP gap mapdocs/STYLE_GUIDE.md— UI tokens and patternsdocs/prototype/— static visual referencespriv/static/openapi.yaml— API contract
Do not bake .env files or secrets into images or commits. Production secrets
are runtime-only and must be supplied through the deployment environment.
Keep DEMO_MODE=false in production; demo credentials are for local
development only.