Receber por email
← Voltar para o catálogo

phx:verify

Verify Elixir/Phoenix changes — compile, format, and test in one loop. Use after implementation, before PRs, or after fixing bugs.

457estrelas
Atualizado há 4 meses

Ver no GitHub ↗ Licença: MIT

Como adicionar

/plugin marketplace add oliver-kriska/claude-elixir-phoenix

O comando exato pode variar conforme o repositório. Confira o README no GitHub.

Para o autor da skill

Cole no README do seu repo

Mostra que sua skill está catalogada na Skillteca, gera backlink e tráfego rastreável.

[![Skillteca](https://www.skillteca.com.br/api/badge/phx-verify/svg)](https://www.skillteca.com.br/skills/phx-verify)

Skills relacionadas

Ver todas de DevOps e Infra →

Alerta por categoria

Receba novas skills de DevOps e Infra toda segunda

1 email curto, só com as skills novas de DevOps e Infra. 4 minutos de leitura, sem spam, cancela com 1 clique.

Você confirma o email no primeiro envio. Sem spam. Cancela com 1 clique.

Ler descrição completa

Verification Loop

Project-aware verification for Elixir/Phoenix. Reads mix.exs and .check.exs to discover tools, test commands, and custom aliases before running anything.

Iron Laws

  1. Discover before running — Read mix.exs first; never run mix credo if credo isn't a dependency
  2. Prefer ex_check — If :ex_check + .check.exs exists, mix check replaces individual steps
  3. Prefer project aliases — If mix ci or composite alias exists, use it over individual steps
  4. Run in order — Later steps assume earlier ones pass
  5. Ask before E2E tests — Unit tests run automatically; E2E/integration tests need user confirmation
  6. NEVER report success without showing actual command output — "should work" is not verification

Step 0: Project Discovery (ALWAYS FIRST)

Read mix.exs — extract deps/0, aliases/0, and cli/0 (for preferred_envs). Also check for .check.exs. See ${CLAUDE_SKILL_DIR}/references/project-discovery.md for full patterns.

Discover tools (deps): :credo, :dialyxir, :sobelow, :ex_check, :excoveralls, :boundary

Discover test commands (aliases + deps):

  • Unit: mix test (always), or custom alias like mix test.with_coverage
  • E2E: mix playwright.test, mix cypress.run, or similar (check preferred_envs for MIX_ENV)
  • Fast E2E: mix playwright.run (skips setup — for re-runs)

Discover composite runner: If .check.exs exists, read it — mix check may handle compile, format, credo, test, dialyzer, sobelow, and more.

Report discovery:

Project tools: compile ✓ | format ✓ | credo ✓ | dialyzer ✓ | sobelow ✓ | ex_check ✓
Test commands: mix test (unit) | mix playwright.test (E2E, MIX_ENV=int_test)
Composite runner: mix check (.check.exs covers: compiler, formatter, credo, dialyzer, sobelow, tests)
Strategy: Running `mix check` then asking about E2E

Verification Sequence

CRITICAL: Before using ANY discovered alias or composite command, verify it works:

  1. Check the dependency is in mix.lock (not just mix.exs) — deps may not be fetched
  2. Run the command — if it fails with "command not found" or dependency error, fall back to individual steps
  3. Log the fallback: "mix check failed (ex_check not installed?), falling back to individual steps"

If ex_check installed + .check.exs exists: Try mix check. If it fails, fall back to individual steps.

If composite alias found (e.g., mix ci, mix precommit): Try it. If it fails, fall back to individual steps.

Otherwise (or after fallback): Run individual steps, skipping unavailable tools.

Step 1: Compile

mix compile --warnings-as-errors — always

Step 2: Format

mix format --check-formatted — always (auto-fix with mix format if fails)

Step 3: Credo

mix credo --strict — if :credo in deps, else skip

Step 4: Test

mix test --trace — use project test alias if available

Step 5: Dialyzer

mix dialyzer — if :dialyxir in deps, pre-PR only

Step 6: Sobelow

mix sobelow --config — if :sobelow in deps

Skip unavailable tools with: "Credo: ⏭ Not installed"

Step 7: Additional Test Offer

After core verification passes, check if project has additional test commands (E2E, integration, coverage). Ask the user:

Core verification passed. Additional test commands available:
1. mix playwright.test (E2E, MIX_ENV=int_test) — ~5min
2. mix test.with_coverage (unit + coverage report)
Run any of these? [1/2/both/skip]

Respect preferred_envs / cli/0 for correct MIX_ENV on each command.

Quick Reference

| Step | Command | Condition | |------|---------|-----------| | Discovery | Read mix.exs + .check.exs | Always first | | Composite | mix check | If :ex_check installed | | Compile | mix compile --warnings-as-errors | Always | | Format | mix format --check-formatted | Always | | Credo | mix credo --strict | :credo in deps | | Test | mix test --trace | Always (use alias if exists) | | Dialyzer | mix dialyzer | :dialyxir in deps, pre-PR | | Sobelow | mix sobelow --config | :sobelow in deps | | E2E/Extra | Ask user | If additional test commands found |

Usage

  1. Run /phx:verify — discovery happens automatically
  2. Core checks run in order, adapted to project
  3. After pass, offered additional test commands (E2E, coverage)
  4. Commit only after all chosen checks pass
Compartilhar X LinkedIn