Curated library of 38 atomic skills, 7 personas, and 1 orchestrator for Elixir and Phoenix development. Organized by category: fundamentals, phoenix, database, testing, auth, infrastructure, quality, security, integrations, tooling, frameworks, personas, and orchestration. Covers core Elixir patterns, Phoenix LiveView, Ecto, OTP, Oban, testing, security, deployment, real-time, and modern tooling (Req, Swoosh, Cachex, Broadway, Ash).
73
91%
Does it follow best practices?
Impact
—
No eval scenarios have been run
Advisory
Suggest reviewing before use
Orchestrates complete project setup from scratch, CI/CD configuration, and environment validation.
Inline setup (always applicable):
# Verify Elixir/Erlang versions match .tool-versions
elixir --version
# Install dependencies
mix deps.get
# Create the database
mix ecto.create
# Run migrations
mix ecto.migrate
# Confirm test runner is operational
mix test --seed 0
# Compile to catch early errors
mix compile --warnings-as-errors
# Copy env example if missing
cp .env.example .env 2>/dev/null || trueHARD GATE — Environment Check (all items must pass before Phase 2):
.tool-versions or elixir_buildpack.config)mix local.hex, mix local.rebar)mix ecto.create succeeds or DB already exists).envSECRET_KEY_BASE env var)If environment check FAILS: Fix the failing item above before proceeding to Phase 2.
Proceed only after environment check passes.
Shared action versions (used in every job below — match your .tool-versions):
| Action | Pinned SHA |
|---|---|
actions/checkout | 34e114876b0b11c390a56381ad16ebd13914f8d5 |
erlef/setup-beam | 5304e04ea2b355f03681464e683d92e3b2f18451 |
elixir-version | "1.17.x" |
otp-version | "27.x" |
.github/workflows/ci.yml.steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5
- uses: erlef/setup-beam@5304e04ea2b355f03681464e683d92e3b2f18451
with:
elixir-version: "1.17.x"
otp-version: "27.x"
- run: mix deps.get
- run: mix compile --warnings-as-errors
- run: mix format --check-formatted
- run: mix credo --strict
- run: mix test --cover
- run: mix dialyzerConfigure CD pipeline — write to .github/workflows/cd.yml.
Fill in DEPLOY_CLI (e.g., flyctl, gigalixir, custom Docker) and the appropriate secret names. Use the same action SHAs and versions from the shared table above.
jobs:
deploy-staging:
runs-on: ubuntu-latest
environment: staging
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5
- uses: erlef/setup-beam@5304e04ea2b355f03681464e683d92e3b2f18451
with:
elixir-version: "1.17.x"
otp-version: "27.x"
- run: mix deps.get
- run: mix ecto.migrate
env:
MIX_ENV: staging
DATABASE_URL: ${{ secrets.STAGING_DATABASE_URL }}
- run: <DEPLOY_CLI>Duplicate deploy-staging as deploy-production with environment: production, needs: deploy-staging, MIX_ENV: prod, and DATABASE_URL: ${{ secrets.PRODUCTION_DATABASE_URL }}.
Verify everything works end-to-end:
Confirm every item in the Phase 1 HARD GATE checklist is still fully passing, then additionally verify:
# Start Phoenix server
mix phx.server
# CI simulation (if using act)
act pushWrite SETUP_CHECKLIST.md recording the final state of all Phase 1 HARD GATE items plus:
When completing project setup, output a Setup Report with the following required fields:
.tool-versions), Erlang/OTP version, database version and connection status, env vars source.mix deps.get, mix ecto.create, mix ecto.migrate, mix test --seed 0 (with counts).SETUP_CHECKLIST.md written confirmation.Use ✓/✗ symbols and include counts (e.g., number of deps, migrations, tests) for each item.
System Modification Approval Gate (CRITICAL): Before suggesting ANY action that modifies the host system:
Non-obvious failure pointers:
.tool-versions and ensure the correct version is active via asdf or mise before retryingpg_isready to confirm PostgreSQL is running; check config/dev.exs credentials and create any missing rolemix deps.get and mix deps.compile; check for missing system librariesgit ls-remote, replace @v4 with @<full-sha> in workflow files| Predecessor | This Persona | Successor |
|---|---|---|
| elixir-skill-router | setup | tdd |
| None (standalone) | setup | quality |
| mix phx.new | setup | liveview |