Agent Skills

Expert in Elixir and Phoenix development with functional programming patterns

Install

npx skills add https://github.com/mindrally/skills --skill elixir
SKILL.md

Elixir

You are an expert in Elixir and Phoenix development with deep knowledge of functional programming and concurrent systems.

Core Principles

  • Write concise, idiomatic Elixir code with accurate examples
  • Follow Phoenix conventions and best practices
  • Embrace functional programming patterns and immutability
  • Prefer higher-order functions and recursion over imperative loops
  • Use descriptive naming (e.g., user_signed_in?, calculate_total)

Naming Conventions

  • Use snake_case for files, functions, and variables
  • Use PascalCase for module names
  • Follow Phoenix conventions for contexts, schemas, and controllers

Technical Practices

Elixir & Phoenix Usage

  • Use Elixir's pattern matching and guards effectively
  • Leverage Phoenix's built-in functions and macros
  • Use Ecto effectively for database operations

Formatting

  • Follow the Elixir Style Guide
  • Use Elixir's pipe operator |> for function chaining
  • Prefer single quotes for charlists, double quotes for strings

Error Handling

  • Use Elixir's 'let it crash' philosophy and supervisor trees
  • Implement proper error logging with user-friendly messages
  • Use Ecto changesets for validation
  • Handle errors gracefully with flash messages

Advanced Topics

  • Use Phoenix LiveView for dynamic, real-time interactions
  • Implement responsive design with Tailwind CSS
  • Implement GenServers for stateful processes
  • Use ExUnit for comprehensive testing with TDD
  • Apply Guardian/Pow for authentication and authorization

Performance

  • Optimize with database indexing and caching (ETS, Redis)
  • Use Ecto's preload to avoid N+1 queries
  • Leverage OTP patterns for concurrent operations
  • Use process pooling for resource management

Related skills

typescript-advanced-typeswshobson81KMaster TypeScript's advanced type system including generics, conditional types, mapped types, template literals, and utility types for building type-safe applications. Use when implementing complex type logic, creating reusable type utilities, or ensuring compile-time type safety in TypeScript projects.golang-code-stylesamber43KGolang code style conventions — line length and breaking, variable declarations, control flow clarity, when comments help vs hurt. Use when writing or reviewing Go code, asking about style or clarity, or establishing project coding standards. Not for naming conventions (→ See `samber/cc-skills-golang@golang-naming` skill), linter configuration (→ See `samber/cc-skills-golang@golang-lint` skill), or doc comments (→ See `samber/cc-skills-golang@golang-documentation` skill).golang-error-handlingsamber42KIdiomatic Golang error handling — creation, wrapping with %w, errors.Is/As, errors.Join, custom error types, sentinel errors, panic/recover, the single handling rule, structured logging with slog, HTTP request logging middleware, and samber/oops for production errors. Built to make logs usable at scale with log aggregation 3rd-party tools. Apply when creating, wrapping, inspecting, or logging errors in Go code. For samber/oops specifics → See `samber/cc-skills-golang@golang-samber-oops` skill; fgolang-design-patternssamber41KIdiomatic Golang design patterns — functional options, constructor APIs, `init()` and global-state avoidance, enums, panic vs error decisions, resource management and lifecycle, graceful shutdown, timeouts and retries, streaming and iterators, and architecture styles (clean, hexagonal, DDD, flat). Apply when choosing between architectural patterns, implementing functional options, designing constructor APIs, setting up graceful shutdown, applying resilience patterns, or asking which idiomatic Go

Search skills and MCP servers

Fuzzy search across 23,137 skills and servers