Card Transfer
Goal
Return the transfer-program view of one exact card variant in compact format.
Search Strategy: knowledge-first
Use training knowledge plus one issuer page fetch + one secondary source for current transfer ratios. Do NOT spawn a subagent — answer directly.
Workflow
- Resolve the card using ../card-identity/SKILL.md. If ambiguous, return a numbered choice list and stop.
- Run one Brave Search API call (see
search_methodin ../card-shared/source-policy.yaml):
Ifcurl -sS "https://api.search.brave.com/res/v1/web/search?q=CARD+NAME+transfer+partners&count=10" -H "X-Subscription-Token: $BRAVE_API_KEY"$BRAVE_API_KEYis not set, fall back to WebSearch. - Fetch pages — pick the top issuer URL and top 1 secondary URL (prefer thepointsguy.com, then onemileatatime.com) from the search results. Fetch both in parallel:
Search snippets are too shallow for transfer partner lists — the full page has complete partner tables and ratios.curl -sS -L "URL" | sed 's/<[^>]*>//g' | tr -s '\n' | head -200 - Combine the fetched page content + search snippets + training knowledge to fill all required sections.
- Follow ../card-shared/confidence-rules.md. Flag any detail that may have changed since training data.
- Return compact markdown using the
card-transfercontract in ../card-shared/command-contracts.yaml. - YAML is internal only — do not include it in user-facing output.
- Do not show a "Why It Matters" section.
Required Sections
## 🔄 Transfer Program## 🤝 Transfer Partners## ⚠️ Transfer Caveats## 📋 Confidence Notes## 🔗 Sources— numbered list of URLs fetched, as markdown hyperlinks with short "Site - Topic" labels, e.g.[Chase - Sapphire Preferred](https://...)
Omit ## Card Identity when the match is confident. Use a numbered list for transfer partners with ratio and one short note per item.