Explain Cairo declarative macros, macro hygiene, and macro vs function tradeoffs; use when a request involves writing or understanding `macro` definitions in Cairo.
Installs into .claude/skills of the current project.
Are you the author of Cairo Macros?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/david-li0406-cairo-macros)
---
name: cairo-macros
description: Explain Cairo declarative macros, macro hygiene, and macro vs function tradeoffs; use when a request involves writing or understanding `macro` definitions in Cairo.
---
# Cairo Macros
## Overview
Explain declarative (inline) macros, pattern matching, and hygiene in Cairo.
## Quick Use
- Read `references/macros.md` before answering.
- Show a small `macro` definition with pattern and expansion.
- Mention `$defsite`, `$callsite`, and `expose!` when hygiene matters.
## Response Checklist
- Explain that macros expand at compile time and can take variable arguments.
- Note that macros must be defined or imported before use.
- Use match-like patterns with `$()` and repetition modifiers.
## Example Requests
- "How do I write an array-building macro?"
- "What are $defsite and $callsite in Cairo macros?"
- "When should I use a macro instead of a function?"