Borrowing it
Nothing to install: this file belongs to NickZaitsev/ru-normalizr. 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/NickZaitsev/ru-normalizr/main/.claude/skills/production-readiness/SKILL.mdgit clone --depth 1 https://github.com/NickZaitsev/ru-normalizrWrote 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/nickzaitsev/ru-normalizr/production-readiness)<a href="https://agentmods.dev/skills/nickzaitsev/ru-normalizr/production-readiness"><img src="https://agentmods.dev/badge/skills/nickzaitsev/ru-normalizr/production-readiness/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/nickzaitsev/ru-normalizr/production-readiness"><img src="https://agentmods.dev/badge/skills/nickzaitsev/ru-normalizr/production-readiness.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector warn
SkillSpector: 3 findings, up to high
These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →
- high Anti-Refusal · line 82 Skill instructs the agent to omit warnings, disclaimers, or ethical commentary. Stripping safety caveats hides risk from the user and is a common jailbreak preamble.Fix: Remove instructions that suppress warnings, disclaimers, or ethical commentary. Let the agent surface safety-relevant caveats to the user.
- medium MCP Rug Pull · line 104 Docker image references without a specific tag (:latest is implicit) or digest (@sha256:...) can be silently replaced by a malicious image.Fix: Pin the image: image:tag or image@sha256:abc123
- low Tool Misuse · line 104 Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).Fix: Validate all tool parameters against an allowlist. Reject dangerous parameter values (shell=True, --force, -rf /) and use safe defaults.
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.00029 | $0.04711 |
| Opus 5 | $0.00015 | $0.02355 |
| Sonnet 5 | $0.00006 | $0.00942 |
| Haiku 4.5 | $0.00003 | $0.00471 |
Grade A, and why
production-readiness 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 12d 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.
How it starts
The opening of the file, as written. The whole thing — 205 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Review the project against the checklist below. Every item comes from a real production incident: code that worked perfectly in dev broke the moment it ran behind a real domain, TLS terminator, and reverse proxy. The recurring root cause is assuming the dev environment instead of treating the deployed environment as configuration — keep that lens on while reviewing.
Work through each section, inspect the actual files (compose files, Dockerfiles, nginx configs, dependency manifests, deploy scripts), and report findings as: Blocker (will break production), Risk (will break under a plausible condition), OK. Do not fix anything until the user asks — the deliverable of the review is the report.
1. Behind-proxy and public-origin correctness
The app almost never terminates TLS itself. Assume: browser → external TLS terminator → frontend nginx → API.
- Every absolute URL the app emits must work behind the proxy chain: OAuth/OIDC redirect URIs, post-login and error redirects, links in emails/notifications,
Securecookie flags, HSTS. Localhost defaults are fine for dev only if they are overridden per-request or per-env in production. - Never assume
X-Forwarded-Protoarrives from upstream — an external TLS terminator may not send it. The public scheme is explicit deployment config (e.g.PUBLIC_SCHEME=httpsenv var injected into the nginx template), not a guess from client headers. - OAuth redirect_uri used in the token exchange must be the same one used at login — store it in the auth state, don't re-derive it at callback time.
- Trust
X-Forwarded-*only from declared proxy CIDRs (trusted-proxies setting); otherwise rate limiting and client-IP logic key on the proxy's IP and every client shares one bucket.
2. Runtime dependencies
- Everything imported at runtime must be a declared runtime dependency — not a dev dependency, not a transitive one that happens to be present locally. A package can work in the local venv and be absent from the production image.
- Verify by starting the service in a clean production image, not the dev environment.
- Guard with a manifest test: a test that imports the runtime modules (or asserts the manifest contains known runtime imports) so a missing dependency fails CI, not production.
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.
- 12d ago First seen · 205 lines · 29 tokens per session scan A 6333a91292e7
production-readiness is a skill published in the GitHub repository NickZaitsev/ru-normalizr (22 stars, last pushed 1mo ago), licensed MIT. It adds 29 tokens to every session and 4,711 once invoked, about $0.0001 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-30.
Other skills, from other repositories
minimax-cli
Nested swiss-knife reference for the MiniMax mmx CLI and the canonical MiniMax CLI procedure shipped with the TUI: install mmx-cli, discover the correct TUI-managed MiniMax preset/key slot without leaking secrets, match mainland vs international regions, and route image/video/music/TTS generation or one-shot shell…
video-script
A Chinese-language video editing and narration workflow that plans the story, selects clips, assigns visuals and sound, writes timestamped narration, and validates the result.
video-assemble
A video finishing tool that combines a source video with recorded narration, adjusted original sound, and subtitles. It can create subtitle files, burn them into the video, and optionally standardise loudness.
video-cut
A video-editing skill that turns selected time ranges from a long source video into a shorter video. It follows decisions recorded in a clip plan and can also map an existing narration timeline to the edited result.
module-new
Scaffold a new Gacela module under src/php/ with Facade, Provider, and CLAUDE.md.
video-understanding
A video analysis tool that turns a video into a structured index of scenes, spoken words, visual observations, quiet sections, and a writing brief. ASR means automatic speech recognition, which converts speech in the video into timestamped text.