Creative Design & Branding
Elixir Meta Programming
Use this skill when building an Elixir macro or a declarative DSL — a schema/spec/route/workflow language in the shape of Ecto.Schema, Absinthe, Plug.Router, or ExUnit — with quote/unquote, __using__, module attributes, and @before_compile. It corrects the wrong defaults a model makes once it commits to metaprogramming — putting logic inside the quote block, re-evaluating unquoted expressions, forgetting Macro.escape, fighting hygiene with var!, generating code ad hoc instead of accumulating declarations, and validating the DSL at runtime rather than at compile time. Applies to writing or reviewing macro/DSL code. NOT for deciding whether to use a macro at all — that gate belongs to staff-level-elixir and adversarial-elixir, which say prefer plain functions.
- Publisher / source
- pproenca/dot-skills (found on skills.sh)
- Upstream record
- pproenca/dot-skills
- Version
- Version 3
- Published
- Publication review
- Approved for publication
- Content fingerprint
8610e3dc4778a9ba88aa6394e6b94de9c8b3e26fdb6e3915c59d6ce75a1bbdf2