app/exchange-rate/SKILL.md
When a user asks for FX rates or currency conversion → return exchange rates or the converted amount.
npx skillsauth add davidkk/vercel-openapi exchange-rateInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
base=EUR style queries.from/to/amount are all required; if one is missing, ask once instead of guessing.base is optional (default USD). Parse ISO currency codes from text if unambiguous.from, to (strings), amount (number). Parse first (e.g. “100 USD to EUR”); if any field missing, do not guess — ask once for from, to, and amount as explicit values.base (optional, string): base currency code, default USD (e.g. USD, EUR, CNY).from (string, required), to (string, required), amount (number, required): conversion request.data; skip the HTTP call; go to formatting only.amount finite and sensible). On failure → Multi-turn.GET /api/exchange-rate or GET /api/exchange-rate?base=... for rates; POST /api/exchange-rate with JSON body for conversion.{ code, message, data }.data: rates object and date for GET; from, to, amount, result, rate, date for POST.GET (cacheable, short TTL on server):
GET /api/exchange-rate
GET /api/exchange-rate?base=EUR
POST Content-Type: application/json:
{ "from": "USD", "to": "EUR", "amount": 100 }
Standard envelope { code, message, data } on success paths used by this route.
data includes base, date, rates (map of currency → rate). POST: data includes conversion fields above.base or invalid POST body → do not retry blindly; fix parameters / ask user.amount from ≈ result to (rate ...)” style.data in the same conversation./api/exchange-rate?base=EUR → summarize data.rates (verify live data).{ "from":"USD","to":"CNY","amount":50 } → report result (verify live data).Prefer GET for rate lookup; POST only for conversion; follow Steps.
base or malformed conversion body — clarify required fields, do not retry with the same bad payload.message / data if present.tools
When a user asks for weather or short forecast at a latitude/longitude → return current conditions or forecast.
data-ai
When a user asks whether today is a public holiday in mainland China → return holiday status/name.
development
When a user provides China latitude/longitude → reverse geocode to province/city/district.
tools
When a user asks for China Fuel Price by province or a recharge promo → return current/previous prices or promo result.