Borrowing it
Nothing to install: this file belongs to RailtownAI/railtracks. 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/RailtownAI/railtracks/main/.claude/skills/code-style/SKILL.mdgit clone --depth 1 https://github.com/RailtownAI/railtracksWrote 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/railtownai/railtracks/code-style)<a href="https://agentmods.dev/skills/railtownai/railtracks/code-style"><img src="https://agentmods.dev/badge/skills/railtownai/railtracks/code-style/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/railtownai/railtracks/code-style"><img src="https://agentmods.dev/badge/skills/railtownai/railtracks/code-style.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
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.00726 |
| Opus 5.5 | $0.00022 | $0.00290 |
| Sonnet 5.5 | $0.00011 | $0.00145 |
| Haiku 4.5 | $0.00006 | $0.00073 |
Grade A, and why
code-style 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 24d 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
railtracks Code Style
Code changes in this repo should be reviewed against these rules. Each one comes from a recurring, repeated PR review comment on railtracks, not a hypothetical style preference.
- Lint/format: run
ruff check --fixandruff format, required for every PR (CI-enforced). - Imports: prefer top-level imports. Local/inline imports are fine when there's a real reason (e.g.
deferring an expensive or optional dependency like
litellm); don't add them out of habit, and don't let a lint failure be the excuse either way. - Tests: new functionality gets tests in the matching package's
tests/directory; don't leave a behavior change uncovered. - Docstrings: must match the actual signature (param names, types,
| None/Iterable[...]etc.). Update the docstring any time a signature changes. - Tool docstrings/type hints: for any
@rt.function_node-wrapped tool, the docstring is the literal tool description the LLM sees and the type hints define its JSON schema parameters; don't write vague docstrings or omit type hints on a tool function. - Module-level comment strings: a docstring at the top of a file is welcome. Avoid long inline paragraph-style comments in the body of the code; keep inline comments short and targeted.
- Typing: no bare
Anywhen a concrete type is available or already imported nearby. Don't reach forAnyas a quick fix to silence something that's actually broken, either; fix the real type mismatch. - TODOs: no inline
# TODOcomments. Either fix it now or file a tracked GitHub issue and reference it. - Cruft: no dead/commented-out code, no stray debug/scratch files left in a change.
- Documentation paragraphs: keep prose paragraphs on one line, matching the existing docs; do not hard-wrap sentences. Preserve code-block formatting.
- Mutable defaults: don't store a mutable default (
x or []) by reference and mutate it later; copy defensively. - Errors: use
repr(e)rather thanstr(e)in error/log messages. __init__.py: don't add docstrings to__init__.pyfiles; not this repo's convention.- Consistency with siblings: when adding a new variant of something that already has 2+ siblings (chunkers, loaders, LLM providers, etc.), match their existing shape/behavior rather than introducing an ad hoc one-off.
- Model references in examples: use current, provider-documented model IDs in user-facing examples and bundled CLI skills. Verify IDs against the provider's model catalog and deprecation page when adding or refreshing examples. Keep a model-specific reference only when the example demonstrates behavior unique to that model, and explain that choice nearby when it would otherwise look stale. Historical upgrade guides and tests that intentionally exercise model-name passthrough may retain older IDs.
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.
- 24d ago Changed 9f1af80371ec
- 28d ago Changed · -1 lines 58669a124b7b
- 1mo ago Changed · +6 lines a173d6c26d1a
- 1mo ago First seen · 39 lines · 56 tokens per session scan A 789e59deec68
code-style is a skill published in the GitHub repository RailtownAI/railtracks (234 stars, last pushed today), licensed MIT. It adds 56 tokens to every session and 726 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-09-03.
Other skills, from other repositories
test-generator
Generate pytest test cases for Python functions and classes.
temporal-python-testing
Test Temporal workflows with pytest, time-skipping, and mocking strategies. Covers unit testing, integration testing, replay testing, and local development setup. Use when implementing Temporal workflow tests or debugging test failures.
building-pydantic-ai-agents
Build AI agents with Pydantic AI — tools, capabilities (including on-demand loading), workspaces, structured output, streaming, testing, and multi-agent patterns. Use when the user mentions Pydantic AI, imports pydanticai, or asks to build an AI agent, add tools/capabilities, attach a workspace, defer capability…
test-corpus
The testdocuments submodule is a bucket-fetched fixture corpus that is not committed. This skill covers readtestfixture, missing fixtures, valid A/B controls, and submodule push order. Load before running Rust tests on a fresh clone, setting up an A/B control, adding a fixture-backed test, or diagnosing…
migrating-mastra-to-pydantic-ai
Migrate TypeScript Mastra applications to Python with Pydantic AI and, only when needed, Pydantic AI Harness. Use when source code imports @mastra/ or relies on Mastra agents, tools, workflows, memory, processors, streaming, approvals, skills, or subagents.
migrating-vercel-ai-sdk-and-eve-to-pydantic-ai
Migrate TypeScript Vercel AI SDK or Eve applications to Python with Pydantic AI and, only when needed, Pydantic AI Harness. Use when source code imports ai, @ai-sdk/, or eve, or relies on generateText, streamText, ToolLoopAgent, useChat, Eve agents, tools, skills, subagents, approvals, sessions, channels, schedules…