app/movies/SKILL.md
When a user asks for the latest cached movie list → return merged movie catalog.
npx skillsauth add davidkk/vercel-openapi moviesInstall 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.
data.movies, state “not in current cache” instead of fabricating entries.GET /api/movies. If the user wants one specific title not in the list, answer from the returned list or say it is not in the cached set — do not invent movies.GET /api/movies.GET /api/movies already returned 200 in this conversation and the user asks again without needing fresher data, reuse data.GET /api/movies.{ code, message, data }.data.movies, data.cachedAt (ms timestamp when cache updated).GET /api/movies — read-only; does not trigger upstream writes.
Envelope: HTTP 200 with { code: 0, message: "ok", data: { movies, cachedAt } }.
data.movies — array of merged movie objects (may be empty if cache has no rows yet). Do not invent titles not present in this array.data.cachedAt — number (typically Unix ms) when the list was last updated in cache — useful to mention if the user asks how fresh the list is.Typical fields on each item (subset may be missing; use only what exists): name, score, sources, poster/image URLs, links — prefer quoting fields from the payload over guessing.
Provider mix: Maoyan + TMDB merge may mean partial sources; missing optional fields are normal, not an error.
/api/movies → summarize data.movies (verify live).data.movies.Single GET; follow Steps; do not call external TMDB/Maoyan if this list suffices.
| Status | Agent behavior |
| ------- | --------------------------------------------------------------------------------------------- |
| 200 | Success — data.movies may be []; explain “no cached list” instead of fabricating films. |
| 500 | Server error — report briefly; one retry later is OK; do not spam retries. |
| 4xx | Rare — do not blind retry; pass through message from JSON 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.