Ash Framework — resources, actions, policies, aggregates; Use when generating resources via mix ash.codegen, editing…
日本語の概要は準備中です。原文の説明を表示しています。
OTP/BEAM patterns and Elixir idioms — GenServer, Supervisor, Task, Registry, pattern matching, with chains, pipes. Use when designing processes or debugging BEAM issues.
インストールする前に、エージェントに与えられる指示の中身を確認できます。
Reference for writing idiomatic Elixir code with BEAM-aware patterns.
and/or/not — Never use short-circuit operators in guards (guards require boolean operands)cast/4 for user input, change/2 for internalString.to_atom(user_input) causes memory leak (atoms aren't GC'd)@external_resourceGenServer.start_link/Agent.start_link in production. Use supervision treesMix.Task.run("app.config") + Application.ensure_all_started/1, never Mix.Task.run("app.start") (boots the FULL tree: endpoint port, Oban consuming)case, then cond{:ok, _}/{:error, _} for expected errors, raise for bugsNeed patterns? → case (or function heads)
Multiple operations? → with
Boolean conditions? → cond (multiple) or if (single)
Expected failure? → {:ok, _}/{:error, _} tuples
Unexpected/bug? → raise exception (let supervisor handle)
External library? → rescue (only here!)
Need state?
├─ No → Plain functions
├─ Simple get/update → Agent or ETS
├─ Complex messages/timeouts → GenServer
└─ One-off async → Task
# Pattern match in function head
def process(%{status: :active} = user), do: activate(user)
def process(%{status: :inactive} = user), do: deactivate(user)
# with for happy path
with {:ok, user} <- get_user(id),
{:ok, order} <- create_order(user) do
{:ok, order}
end
# Task for async
Task.Supervisor.async_nolink(TaskSup, fn -> work() end)
|> Task.yield(5000) || Task.shutdown(task)
| Wrong | Right |
|---|---|
length(list) == 0 | list == [] or Enum.empty?(list) |
list ++ [item] | [item | list] |> Enum.reverse() |
String.to_atom(input) | String.to_existing_atom(input) |
spawn(fn -> log(conn) end) | ip = conn.ip; spawn(fn -> log(ip) end) |
unless condition | if !condition (unless deprecated in 1.18) |
For detailed patterns, see:
${CLAUDE_SKILL_DIR}/references/pattern-matching.md - Pattern matching, guards, binary matching${CLAUDE_SKILL_DIR}/references/otp-patterns.md - GenServer, Supervisor, Task, Registry${CLAUDE_SKILL_DIR}/references/error-handling.md - Tagged tuples, rescue, with${CLAUDE_SKILL_DIR}/references/with-and-pipes.md - When to use with and |> (idiomatic patterns)${CLAUDE_SKILL_DIR}/references/troubleshooting.md - Production BEAM debugging (memory, performance, crashes)${CLAUDE_SKILL_DIR}/references/anti-patterns.md - Common mistakes and fixes${CLAUDE_SKILL_DIR}/references/mix-tasks.md - Mix task naming, option parsing, shell output${CLAUDE_SKILL_DIR}/references/elixir-118-features.md - Duration module, dbg improvements (1.18+)${CLAUDE_SKILL_DIR}/references/elixir-120-type-system.md - Gradual type checker, dynamic(), verified bugs as compile warnings (1.20+, OTP 27+)まだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
Ash Framework — resources, actions, policies, aggregates; Use when generating resources via mix ash.codegen, editing…
日本語の概要は準備中です。原文の説明を表示しています。
Ash Framework — resources, actions, policies, aggregates, calculations, AshPhoenix.Form, LiveView, migrations. Use when generating resources via mix ash.codegen, editing changes, checks, types, validations, or domain code interfaces.
日本語の概要は準備中です。原文の説明を表示しています。
Compatibility alias for the Elixir/Phoenix plugin's LiveView assigns audit. Invoke explicitly with /lv:assigns.
日本語の概要は準備中です。原文の説明を表示しています。
Inspect LiveView socket assigns for memory bloat — missing temporary_assigns, unused assigns, unbounded lists needing streams, memory estimates. Use when LiveView memory grows or you need to add temporary_assigns.
日本語の概要は準備中です。原文の説明を表示しています。
Project health audit and health check — architecture, performance, tests, dependencies, code quality. Use when assessing overall project health, before releases, or after refactors.
日本語の概要は準備中です。原文の説明を表示しています。
Analyze Phoenix context boundaries and module coupling via mix xref. Use when checking cross-context calls, validating dependencies, before splitting modules, or reviewing architecture.
日本語の概要は準備中です。原文の説明を表示しています。