CtrlK
BlogDocsLog inGet started
Tessl Logo

igmarin/elixir-phoenix-skills

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

1.37x
Quality

91%

Does it follow best practices?

Impact

91%

1.37x

Average score across 56 eval scenarios

SecuritybySnyk

Advisory

Suggest reviewing before use

Overview
Quality
Evals
Security
Files

criteria.jsonevals/scenario-44/

{
  "context": "Checks whether the final artifact follows the ecto-nested-associations instructions from the published Elixir Phoenix Skills plugin.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "instruction-1",
      "description": "The submitted artifact follows this skill instruction: **Use `cast_assoc/3` for has_many/has_one** — never manually insert children in a separate step",
      "max_score": 10
    },
    {
      "name": "instruction-2",
      "description": "The submitted artifact follows this skill instruction: **Use `Ecto.Multi` for operations spanning multiple unrelated tables** — do NOT use `Ecto.Multi` for nested associations",
      "max_score": 10
    },
    {
      "name": "instruction-3",
      "description": "The submitted artifact follows this skill instruction: **Always create indexes on foreign key columns**",
      "max_score": 10
    },
    {
      "name": "instruction-4",
      "description": "The submitted artifact follows this skill instruction: **Use `on_replace: :delete` in `cast_assoc` for list management** — allows removing items by omitting them",
      "max_score": 10
    },
    {
      "name": "instruction-5",
      "description": "The submitted artifact follows this skill instruction: **Use `Repo.transaction/1` with `Ecto.Multi`** — wrap multi-table operations for atomicity",
      "max_score": 10
    },
    {
      "name": "instruction-6",
      "description": "The submitted artifact follows this skill instruction: **Identify ownership** — determine if children are owned (cascade delete) or independent",
      "max_score": 10
    },
    {
      "name": "instruction-7",
      "description": "The submitted artifact follows this skill instruction: **Define schema** — add `has_many`/`belongs_to` with appropriate `on_replace` strategy",
      "max_score": 10
    },
    {
      "name": "instruction-8",
      "description": "The submitted artifact follows this skill instruction: **Create migration** — add FK column with `on_delete` and create index",
      "max_score": 10
    },
    {
      "name": "instruction-9",
      "description": "The submitted artifact follows this skill instruction: **Define changesets** — child changeset does NOT require FK field; parent uses `cast_assoc`",
      "max_score": 10
    },
    {
      "name": "instruction-10",
      "description": "The submitted artifact follows this skill instruction: **Write tests** — test create, update (including removal), and error cases",
      "max_score": 10
    }
  ]
}

evals

.mcp.json

README.md

tile.json