# Recipes

The question-to-tools sequences: what to ask, which tools answer it, and how the answer is read.

These are the sequences [the AffiliateRail skill](/mcp/skill) uses to turn one question into a composed answer. You never name a tool yourself; asking the question in the left column is enough, and this table shows what happens underneath.

One question usually takes several tools. These are the sequences that answer the questions
merchants actually ask; run the steps in order and interpret across them.

| The merchant asks | Tools, in order | What to do with the results |
| --- | --- | --- |
| "Set up my affiliate program" | `setup_guide`, then the tool it names for the next step, then `setup_guide` again | Work the steps in order until it says the setup is complete. Ask the user before each write (their rate, their partner's email, their colours), and hand them the Stripe link from `payment_connection_status` to click themselves. Use `get_install_instructions` for the code and `check_install` to prove it. |
| "Who went quiet?" | `idle_partners`, then `partner_detail` per result | Separate never-active partners from lapsed earners; the lapsed ones with past commissions are the re-engagement list. |
| "Who should I pay this month?" | `pending_commissions`, then `list_risk_flags`, then `payout_status` | Approvals minus anyone with an open flag; then check the last run's failures so the same payout does not fail twice. |
| "Is my program healthy?" | `report`, then `top_partners`, then `revenue_by_period` | Trend beats snapshot: compare periods, then check how concentrated revenue is in the top few partners. |
| "Am I about to pay someone I shouldn't?" | `list_risk_flags`, then `list_commissions` with status `pending` | Cross the open flags against the pending queue by partner; anything on both lists gets reviewed before approval. |
| "Why is nobody activating?" | `list_partners` with status `active`, then `recent_referrals`, then `rules_summary` | Many active partners with few referrals is an enablement problem; check whether the commission rules give a clear first win. |
| "Why was this commission rejected?" | `list_commissions` with status `rejected`, then `partner_detail` | The rejection reason is on the commission; the partner's history says whether it was a one-off. |
| "Did my partners get paid?" | `payout_status` | Failed and not-eligible payouts carry their reason; each is a task for the merchant, usually on the partner's side. |
| "What can I ask about?" | `schema_introspect`, then `program://current` | The object and field vocabulary, then the program's own settings, currency and counts. |

Every tool named here is documented in [the tool reference](/mcp/tools), and the same table ships inside the skill, from one source, so the two cannot drift apart.
