Claude Code Skill
Install the opinionated Atribu skill so Claude Code applies our attribution rules automatically
Atribu ships an opinionated Claude Code skill that teaches Claude how to reason about your attribution data. Once installed, the skill auto-loads whenever you ask about ROAS, campaigns, creatives, or customer journeys — Claude follows the skill's rules and calls the right MCP tools in the right order.
What the skill does
The MCP server returns raw data; the skill supplies the judgment:
- Cash-ROAS by default — the skill teaches Claude that
revenue_type='cash'is the only thing that counts as ROAS. GHL pipeline deals are "deal value," not revenue. - Tool ordering heuristics — for each common question ("which ads should I kill?", "why is ROAS dropping?", "who's converting?"), the skill specifies which MCP tools to call and in what order.
- Model guidance — when to use
last_touchvsengagement_weightedvscompare_attribution_modelsbased on conversion volume and sales cycle. - Write-back safety — mandatory preview → user-confirm → confirm-with-idempotency-key flow for
send_meta_conversions. - PII explanations — when you ask for unmasked data and your token can't provide it, Claude explains exactly what to change instead of silently returning masked values.
Install
The skill is distributed as a Claude Code plugin from the public repo AtribuCore/atribu-attribution-skill.
Add the marketplace and install the plugin
In any Claude Code session, run:
/plugin marketplace add AtribuCore/atribu-attribution-skill
/plugin install atribu-attribution@atribu-attributionThe first command registers the marketplace; the second installs the atribu-attribution plugin (which bundles the skill).
Restart Claude Code
A fresh session guarantees the skill is loaded. You can verify with:
What skills are available?You should see atribu-attribution in the list.
Configure the MCP server
If you haven't already, add the Atribu MCP server (quickstart):
claude mcp add atribu --transport http \
https://mcp.atribu.app/mcp \
--header "Authorization: Bearer atb_user_YOUR_TOKEN"Updating
When the skill is updated upstream, refresh with:
/plugin update atribu-attributionOther MCP clients
Cursor, Claude Desktop, Windsurf, and other MCP-compatible tools use the same MCP server but don't have Claude Code's plugin system. Copy the contents of SKILL.md into your system prompt or project rules for equivalent behavior.
Skill structure
Inside the public repo, the plugin is laid out as:
atribu-attribution-skill/
├── .claude-plugin/marketplace.json # Marketplace manifest
├── plugins/
│ └── atribu-attribution/
│ ├── .claude-plugin/plugin.json # Plugin manifest
│ └── skills/atribu-attribution/
│ ├── SKILL.md # Main instructions
│ ├── references/
│ │ ├── tool-ordering.md # Detailed heuristics
│ │ └── error-playbook.md # Error code handling
│ └── evals/evals.json # Test cases
├── README.md
└── LICENSE # MITThe main SKILL.md stays focused — the quick reference. When Claude needs deeper detail (error handling or tool selection), it reads files in references/ on demand. This follows Anthropic's recommendation to keep SKILL.md lean and lazy-load verbose material.
Evals
The skill ships with evals/evals.json — test cases with expected behavior. Each eval is a { prompt, expected_output, assertions } object that documents what Claude should do when the skill is loaded.
Example assertions:
"Which ads should I kill?"→ must callcreative_fatigue_checkfirst, thentop_creatives"Show me actual email addresses"→ must explain the three-condition PII requirement, not silently return masked data"Send conversions to Meta"→ must callpreviewfirst, ask for user confirmation, generate an idempotency key, report theaudit_id
Evals aren't automatically run by Claude Code — they're reference test cases for anyone modifying the skill. Use them as a regression checklist before changing SKILL.md.
Contributing
The skill is open source under MIT. If you find it giving bad guidance, open an issue or send a PR at AtribuCore/atribu-attribution-skill. Released versions are tagged so end users can pin if they want.