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).
91
91%
Does it follow best practices?
Impact
91%
1.37xAverage score across 56 eval scenarios
Advisory
Suggest reviewing before use
{
"context": "Tests whether the agent correctly configures a Phoenix application for production deployment following Elixir/Phoenix best practices: using runtime.exs with System.get_env!/1 for secrets, implementing release-based migrations, adding a database-querying health endpoint, setting the correct log level, using Docker multi-stage builds, and attaching telemetry handlers in Application.start/2.",
"type": "weighted_checklist",
"checklist": [
{
"name": "runtime.exs uses System.get_env!/1",
"description": "config/runtime.exs calls System.get_env!/1 (with the bang/! suffix) — not System.get_env/1 — for at least one secret or URL (e.g., DATABASE_URL, SECRET_KEY_BASE)",
"max_score": 12
},
{
"name": "Secrets in runtime.exs only",
"description": "DATABASE_URL and SECRET_KEY_BASE are configured in config/runtime.exs, NOT hardcoded in config/config.exs or config/prod.exs",
"max_score": 10
},
{
"name": "Release module with Ecto.Migrator",
"description": "lib/pay_core/release.ex (or similar) defines a migrate/0 function that uses Ecto.Migrator.with_repo/3 or Ecto.Migrator.run/4 to run migrations",
"max_score": 12
},
{
"name": "No mix ecto.migrate in deployment",
"description": "DEPLOYMENT.md and any scripts reference bin/pay_core eval or bin/migrate (release commands) for running migrations — NOT mix ecto.migrate",
"max_score": 8
},
{
"name": "Health endpoint queries database",
"description": "The health controller performs an actual database query (e.g., Ecto.Adapters.SQL.query, Repo.query, or equivalent) rather than simply returning a static 200 response",
"max_score": 12
},
{
"name": "Health endpoint returns JSON",
"description": "The health controller action returns a JSON response (uses json/2 or render with JSON format) indicating the database connection status",
"max_score": 6
},
{
"name": "Logger level :info in production",
"description": "config :logger, level: :info appears in config/runtime.exs or config/prod.exs — the level is :info, NOT :debug",
"max_score": 10
},
{
"name": "Docker multi-stage build",
"description": "Dockerfile contains at least two FROM instructions — a build stage (with Elixir/Mix) and a separate runtime stage (e.g., Alpine or Debian slim without Elixir toolchain)",
"max_score": 12
},
{
"name": "Telemetry in Application.start/2",
"description": "lib/pay_core/application.ex attaches telemetry handlers inside the start/2 callback — not inside a GenServer init/1 or at module level",
"max_score": 10
},
{
"name": "No debug-level log config",
"description": "No production configuration file sets the logger level to :debug (the level must be :info or higher, never :debug)",
"max_score": 8
}
]
}.tessl-plugin
evals
scenario-1
scenario-2
scenario-3
scenario-4
scenario-5
scenario-6
scenario-7
scenario-8
scenario-9
scenario-10
scenario-11
scenario-12
scenario-13
scenario-14
scenario-15
scenario-16
scenario-17
scenario-18
scenario-19
scenario-20
scenario-21
scenario-22
scenario-23
scenario-24
scenario-25
scenario-26
scenario-27
scenario-28
scenario-29
scenario-30
scenario-31
scenario-32
scenario-33
scenario-34
scenario-35
scenario-36
scenario-37
scenario-38
scenario-39
scenario-40
scenario-41
scenario-42
scenario-43
scenario-44
scenario-45
scenario-46
scenario-47
scenario-48
scenario-49
scenario-50
scenario-51
scenario-52
scenario-53
scenario-54
scenario-55
scenario-56
skills
frameworks
ash-framework
infrastructure
orchestration
elixir-skill-router
personas
phoenix
quality
security
security-essentials
tooling
mix-tasks-generators