Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/grinv/mal-mcp/docs-consistency-checknpx skills add Grinv/mal-mcp --skill docs-consistency-checkgit 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.svg" alt="Measured on agentmods" 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 | $0.00056 | $0.01049 |
| Opus 5 | $0.00028 | $0.00524 |
| Sonnet 5 | $0.00011 | $0.00210 |
| Haiku 4.5 | $0.00006 | $0.00105 |
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 4d ago.
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's andserver.json'stoolsarrays list the same tool names as what's actually registered — 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.
- 4d 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 (2 stars, last pushed 11d ago), licensed MIT. It adds 56 tokens to every session and 1,049 once invoked, about $0.0003 per session on Opus 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 anilist-mcp-server — build/test/lint gate, live MCP tool edge-case sweep (input validation, not-found paths, mutations with capture/revert), source-level code review, and docs/metadata consistency. Use when asked to test/audit the published or just-fixed anilist-mcp-server package, hunt for bugs/edge cases, or…
prompt-check
Live-test every MCP Prompt in src/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, 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 description…
release
Cut a release of anilist-mcp-server — 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.
fixture-accuracy-check
Make sure a mocked-fetch test fixture mirrors AniList's real GraphQL response shape, not just whatever fields make the current code pass. Use before writing or changing a fixture in src/tests/.test.ts.
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.