Borrowing it
Nothing to install: this file belongs to Grinv/mal-mcp. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/Grinv/mal-mcp/main/.agents/skills/docs-consistency-check/SKILL.mdgit clone --depth 1 https://github.com/Grinv/mal-mcpWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/grinv/mal-mcp/docs-consistency-check)<a href="https://agentmods.dev/skills/grinv/mal-mcp/docs-consistency-check"><img src="https://agentmods.dev/badge/skills/grinv/mal-mcp/docs-consistency-check/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/grinv/mal-mcp/docs-consistency-check"><img src="https://agentmods.dev/badge/skills/grinv/mal-mcp/docs-consistency-check.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00056 | $0.01063 |
| Opus 5.5 | $0.00022 | $0.00425 |
| Sonnet 5.5 | $0.00011 | $0.00213 |
| Haiku 4.5 | $0.00006 | $0.00106 |
Grade A, and why
docs-consistency-check scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured today.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
What it actually says
Docs/metadata consistency
Check every one of these, not just a sample:
README.md's tool table matchessrc/tools/*.ts's registrations (names, and the auth-tier column — none / Client ID / OAuth token, perdocs/auth.md— against what each tool actually needs).manifest.json'stoolsarray lists the same tool names as what's actually registered (server.jsonhas notoolsarray — the MCP Registry schema doesn't define one) — treat a test failure here as authoritative if one exists. Theirdescriptionfields are deliberately short, independent marketing-style summaries, NOT a copy of the tool's full.describe()/descriptiontext insrc/tools/*.ts— don't "fix" them to match verbatim, that's not a bug. Do re-read them for accuracy if a tool's behavior changed in a way the short summary now misrepresents.- Tool
description/field.describe()text insrc/tools/*.tsitself: does it still match the actualinputSchema/outputSchemaand the real behavior? Cross-check new/edited descriptions against thetool-description-checkskill (Glama's TDQS rubric) per AGENTS.md. CHANGELOG.md's[Unreleased]section (see thechangelog-styleskill for entry style) has one line per real behavior change made in this pass — add missing entries, don't just flag them as missing. Runnode scripts/check-changelog-coverage.mjsto list every commit since the last release tag and flag which ones CHANGELOG.md doesn't reference at all — it's not a hard gate (plenty of commits are legitimately internal: dev-dependency bumps, docs-about-docs, CI-only fixes), but triage every line it reports as either "needs an entry" or "correctly excluded," don't skip the check just because most commits usually are internal.docs/api-references.md's "verified live" claims still match the current client code, especially any claim this pass's own fixes just invalidated — and especially the official-API fallback field-gap list, which is exactly the kind of claim a MAL API change could quietly break.docs/auth.md's credential-tier breakdown still matches what each tool actually requires.AGENTS.md's project-shape/file-tree description (including this.agents/skills/entry) still matches the filesystem.notes/tenrai-reliability.md(gitignored) — if this pass turned up a new Tenrai quirk or reliability data point, log it there with a date, the same way past passes have; don't let a fresh finding live only in this conversation's transcript.PRIVACY.mdandSECURITY.md: re-verify every specific claim against the actual current code, don't just skim for plausibility — which credentials exist and how each is transmitted/redacted (e.g.src/lib/errors.ts'sredact()actually covering bothkey=valueand JSON"key":"value"shapes, and thetokens.jsonstore's0600/0700permissions), what is and isn't cached (incl. cache key/TTL — cross-check the "deliberately not cached" list againstsrc/lib/cache.tscall sites), the current list of read-only vs. OAuth/write tools, and the host-allowlist statement (config.ts's Zod validation vs. an actual fixed allowlist — there isn't one). This class of drift is easy to miss because it reads fine on its own and only breaks against the code: a sibling repo'sSECURITY.md/PRIVACY.mdboth claimed "player-specific data is never cached" after a later feature added exactly that caching, and a separate claim conflated an actually-cached field with a similarly-named never-cached one — neither doc was self-evidently wrong, both required re-reading the client code to catch. Also confirm every root-level doc a README link points to (PRIVACY.md,SECURITY.md, …) is actually inpackage.json'sfilesarray — a new one added there without updatingfiles404s on the npm tarball (bitPRIVACY.mdonce already, then recurred forSECURITY.md).
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- today Changed · +1 lines 57004525950e
- 1mo ago First seen · 64 lines · 56 tokens per session scan A f1f6bc367266
docs-consistency-check is a skill published in the GitHub repository Grinv/mal-mcp (3 stars, last pushed today), licensed MIT. It adds 56 tokens to every session and 1,063 once invoked, about $0.0002 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
live-audit
Audit steam-games-mcp — build/test/lint gate, live MCP tool edge-case sweep (input validation, SteamID64/vanity/appid edge cases, key-gating), and source-level code review. Use when asked to test/audit the published or just-fixed steam-games-mcp package, hunt for bugs/edge cases, or repeat "the same kind of testing as…
prompt-check
Live-test every MCP Prompt in src/tools/prompts.ts through the real MCP protocol (not a static read) across every argument combination. Use when a prompt is added or its argument-handling logic changes, or as part of a live-audit pass.
tool-description-check
Self-check a new or edited MCP tool description/field .describe() text before committing — verify every behavioral claim against live testing or source, check for contradictions with sibling tools, and score against Glama's Tool Definition Quality Score (TDQS) rubric. Use whenever a tool description or schema field…
release
Cut a release of steam-games-mcp — draft CHANGELOG entries, check docs/metadata consistency, then bump/tag/push. Use when asked to release, cut a version, or publish a new version of this package.
docs-consistency-check
Check README/manifest.json/server.json/CHANGELOG.md/AGENTS.md and docs/.md for drift against the actual registered tools and source. Use after adding, renaming, or removing a tool, or as part of a live-audit pass.
changelog-style
Turn a commit range into CHANGELOG.md entries following common-changelog style. Use when finishing a PR (adding to the [Unreleased] section) or cutting a release (moving [Unreleased] under a new version heading).