Verify and refresh AI model pricing in Chatty's pricing.py from official provider pricing pages, and regenerate PRICING.md. Run during any PR that touches providers or usage. Skips re-fetching if pricing was already verified earlier in the current chat. Only operates inside the Chatty repo.
Scanned 9/11/2026
Install to Claude Code
npx -y skills add wwilson1017/chatty --skill price-check --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Price Check?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/wwilson1017-price-check)More formats (shields.io, HTML) on the badges page.
---
name: price-check
description: Verify and refresh AI model pricing in Chatty's pricing.py from official provider pricing pages, and regenerate PRICING.md. Run during any PR that touches providers or usage. Skips re-fetching if pricing was already verified earlier in the current chat. Only operates inside the Chatty repo.
---
# price-check
Keeps `backend/core/providers/pricing.py` (`MODEL_PRICING` + `PRICING_SOURCES`) current with published per-token rates and regenerates the reviewable report `backend/core/providers/PRICING.md`. No provider's models API exposes price, so this skill is the maintenance mechanism that keeps the usage/cost dashboard accurate as new models are added dynamically.
## When to run
- During any PR that adds/changes models or touches `core/providers/` or `core/agents/usage/` (required by the project `CLAUDE.md` → Model Pricing).
- On request: "check prices", "refresh model pricing", "is pricing current?".
## Guard 1 — ship only in the Chatty repo
Before writing or committing anything, confirm this is the Chatty repo:
- `git remote -v` contains `wwilson1017/chatty`, **OR**
- `CLAUDE.md` starts with `# Chatty` **AND** `backend/core/providers/pricing.py` exists.
If neither holds, STOP: report that price-check only runs in the Chatty repo, and make no changes.
## Guard 2 — skip if already verified this chat
If model pricing was already fetched/verified earlier in THIS conversation, or `backend/core/providers/PRICING.md` already shows `Last verified: <today>` with no pending diff, do NOT re-fetch. Reuse the in-session results and report "already current". Re-fetching wastes calls and risks rate limits.
## Procedure
1. **Model set.** Union of the keys in `MODEL_PRICING` and each provider's current model list — the fallback `*_MODELS` constants, plus (if credentials are configured) what `GET /api/providers/{provider}/models` returns. This prices newly-surfaced dynamic models, not just legacy ones.
2. **Fetch** current STANDARD-tier rates (USD per 1M input / output tokens) via WebFetch from the official pages:
- Anthropic — `https://platform.claude.com/docs/en/about-claude/models/overview`
- OpenAI — `https://developers.openai.com/api/docs/pricing`
- Google — `https://ai.google.dev/gemini-api/docs/pricing`
- Together — `https://www.together.ai/pricing`
Record tier caveats (e.g. Gemini 2.5 Pro is the ≤200K-prompt tier) in a code comment.
3. **Diff** against the current `MODEL_PRICING`; classify each model: added / changed / unchanged / unverifiable.
4. **Never fabricate.** If a model's rate isn't on the official page, leave it OUT of `MODEL_PRICING` and report it as "unknown" — the usage dashboard already flags unpriced paid models (`is_priced` / per-agent `has_unknown_pricing`). Do NOT guess from memory or community posts.
5. **Write** `backend/core/providers/pricing.py`:
- `MODEL_PRICING[model] = (input, output)`
- `PRICING_SOURCES[model] = (source_url, "<YYYY-MM-DD>")` — use the current session date.
Keep proven legacy entries (the dashboard prices historical rows by model id via longest-prefix match).
6. **Regenerate** `backend/core/providers/PRICING.md` from the updated `pricing.py` (do not hand-author divergent numbers): a header line `Last verified: <YYYY-MM-DD> (price-check)` followed by a per-provider table `model | input $/M | output $/M | source | verified`.
7. **Report** a concise diff table to the user. When run during a PR, also place the diff in the PR description.
## Commit
- Commit `pricing.py` and `PRICING.md` together, e.g. `Refresh model pricing (price-check <YYYY-MM-DD>)`.
- No `Co-Authored-By` or "Generated with Claude Code" footers (repo policy).
- Never commit secrets; never run `gcloud secrets`/`--set-secrets` commands.
## Notes
- The session date is authoritative for the `verified` date — read it from the environment context, don't compute it in code.
- This skill is committed into the Chatty repo so it travels with the project; it is the canonical place to evolve the pricing-refresh workflow.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!