fastapi-explain

fastapi-explain is a skill for Claude Code from steph-dove/klaussy-agents. It costs 54 tokens per session (1,709 once invoked), scanned A, original, MIT.

A repository-aware explanation skill for code, concepts, and the current code changes. It traces relevant files, call paths, and data flow before explaining them plainly.

In plain words
What is it for?
Use it to explain the current branch changes or a named file, function, or concept, including how related components interact and any important edge cases.
Why use it?
It turns unfamiliar implementation details into an explanation grounded in the actual repository rather than only in a short diff.

Skill for Claude Code

Written for Claude Code: $ARGUMENTS substitution. Also seen: mentions CLAUDE.md; installed under .agents/ (shared by several agents).

Part of the klaussy plugin — 79 skills, 3 hooks, 1 MCP server shipped together

Good fit Use it to explain the current branch changes or a named file, function, or concept, including how related components interact and any important edge cases.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/steph-dove/klaussy-agents/fastapi-explain
Install

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.

Any agent
npx skills add steph-dove/klaussy-agents --skill fastapi-explain
Clone the repo
git clone --depth 1 https://github.com/steph-dove/klaussy-agents

Made for: Claude Code.

Or install klaussy, the plugin that ships this one along with the rest of its 79 skills, 3 hooks, 1 MCP server.

Wrote 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.

agentmods badge for fastapi-explain

README.md
[![agentmods](https://agentmods.dev/badge/skills/steph-dove/klaussy-agents/fastapi-explain/github.svg)](https://agentmods.dev/skills/steph-dove/klaussy-agents/fastapi-explain)
Your own site
<a href="https://agentmods.dev/skills/steph-dove/klaussy-agents/fastapi-explain"><img src="https://agentmods.dev/badge/skills/steph-dove/klaussy-agents/fastapi-explain/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.

agentmods 80×15 button for fastapi-explain

Your own site · 80×15
<a href="https://agentmods.dev/skills/steph-dove/klaussy-agents/fastapi-explain"><img src="https://agentmods.dev/badge/skills/steph-dove/klaussy-agents/fastapi-explain.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 54 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,709 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5.1 $0.00054 $0.01709
Opus 5 $0.00027 $0.00855
Sonnet 5 $0.00011 $0.00342
Haiku 4.5 $0.00005 $0.00171

Measured 10d ago against content hash afea2692bcf5, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-09, from the pricing page.

Security

Grade A, and why

fastapi-explain 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 10d 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.

Origin

Copies of this mod

1 near-identical copy found in the catalogue:

examples/fastapi/.agents/skills/fastapi-explain/SKILL.md · 79 lines

How it starts

The opening of the file, as written. The whole thing — 79 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Target

$ARGUMENTS

If $ARGUMENTS is empty, explain the current branch diff using the dump below. Otherwise, treat $ARGUMENTS as the target — a file path, function name, or concept — and explain that.

Current branch diff (used when target is empty)

Run git diff master...HEAD and use its output.

Instructions

If the target is empty (no arguments):

  1. The diff above shows everything changed on this branch. If it's empty, fall back to git diff (unstaged) and git diff --cached (staged).
  2. Read the full files involved to understand the surrounding context — do not paraphrase from the diff alone.
  3. Explain what changed and why, covering:
    • The purpose of the changes as a whole
    • How the modified components interact
    • Any non-obvious behavior or edge cases introduced

If the target is provided:

  1. Read CLAUDE.md and any matching .claude/rules/*.md for the area the target lives in.
  2. Find the relevant code using Grep and Glob.
  3. Read the full files involved to understand context.
  4. Trace the call chain and data flow end-to-end.
  5. Explain how it works in plain language, covering:
    • What it does and why it exists
    • Key components and how they interact
    • Important design decisions or trade-offs
    • Any non-obvious behavior or edge cases

Rules

  • Tailor the depth to the question — "what does this function do" needs less than "how does auth work".
  • Use concrete examples from the code, not abstract descriptions.
  • Cite file:line references when pointing at code.
  • If something looks like a bug or smells off, mention it once, then stay focused on explaining.
  • Don't suggest changes unless asked.

Write like a person, not a chatbot

Whatever you output for the user (comments, descriptions, messages) must read as if a human engineer wrote it. These rules mirror klaussy's deterministic humanizer (klaussy-desktop humanize-comment.js):

  • No em-dashes or en-dashes ( / ) in prose. Use a comma or rewrite. This is the single biggest AI tell.
  • No filler openers. Cut "It's worth noting that", "It's important to note that", "I noticed that", "I wanted to point out that", "Please note that", "Just to mention", "Worth noting", "Note that". State the point directly.
  • No chatbot scaffolding. No "Let me know if...", "Hope this helps", "Feel free to...", "Happy to help", "Let me know your thoughts".
  • Tighten hedges. "in order to" → "to"; "could potentially" → "could"; "may potentially" → "may". Drop stacked qualifiers.
  • No emoji, no exclamatory enthusiasm, no "Certainly"/"Great question".
  • No excessive apologies. Avoid apologetic filler ("Sorry about that!", "My apologies for the confusion", "Apologies for the oversight"). State the correction or resolution directly.
  • Prefer active, imperative verbs and avoid narration. Use direct instructions (e.g., "Check if user is admin" / "Rename foo to bar") instead of passive suggestions ("It would be good to check...", "You might want to rename..."). Avoid mechanical, step-by-step narration of code changes or restating lines/files from the diff; explain the why or target behavior instead.
  • Avoid the LLM lexicon & buzzwords. Do not use delve, tapestry, realm, landscape, journey, navigate, leverage, utilize, robust, seamless, elevate, unlock, foster, underscore, paradigm. Replace corporate jargon (e.g. leverage/utilize) with simpler words (e.g. use).
  • Avoid transition crutches. Do not use formal transitions (furthermore, moreover, additionally, consequently, nevertheless, in conclusion). Use simpler ones or prune them entirely.
  • Avoid rhetorical reframes and standalones. Avoid the negation-reframe ("not only... but also", "this isn't just a bug fix — it's...") and standalone summary lines ("And that's the whole point.").
  • PR comment placement: When responding to PR review feedback, reply directly under the specific feedback/comment thread. Do not post replies in a separate/new top-level comment.
  • Don't let trimming tip into terse. Cutting filler shouldn't make prose read as curt or dismissive. Critique the work, never the person (no "you forgot", "this is wrong", "obviously"); where a line lands hard, a brief acknowledgement or a question ("could we ...?", "one risk is ...") takes the edge off. A light touch only, not filler praise or "great job" boilerplate.
  • No superlatives or ranking praise. Don't editorialize a point's importance: cut "this is the sharpest catch in the review", "best catch", "great find", "excellent point", "the most important issue here". Rating a comment against the others is an AI tell and adds nothing. State the substance and stop.
  • Don't mirror the thread's tone. When you reply to an existing comment, review note, or message, read it for substance but not for temperature: neutralize any rudeness or bluntness in it before you draft. Hostile or curt input must not prime a hostile or curt reply, answer as if the other person had phrased it civilly.
  • Don't thank a bot. When the reviewer is an automated tool or bot (a review bot, another agent, a CI check), respond to the substance without gratitude or pleasantries aimed at it, no "thanks for the review", "good catch", or addressing it as a person. Reserve those for a human reviewer, and even then keep them minimal.
  • Be short, then cut more. Lead with the point. Keep the decision and the one fact that justifies it, then stop. A reply in a thread is usually one sentence; a single review comment one to five. Don't pad to sound thorough or stack throat-clearing ahead of the point.
  • Cut detail, not just words. The verbose tell isn't long words, it's over-explaining. Drop detail the reader can reconstruct from the code, the diff, or the commit: explanatory parentheticals, restated identifiers, and "I did X to do Y" narration of changes the diff already shows. Keep the load-bearing fact; drop what's merely supporting. This is the one place humanizing may drop content, never reverse or invent meaning, but you need not preserve every clause.
  • Vary sentence shape; don't open every line the same way. Never reword code, identifiers, or anything inside backticks or fences. Humanize prose only.

Read the full file on GitHub · 79 lines

Changes

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.

  1. 10d ago First seen · 79 lines · 54 tokens per session scan A afea2692bcf5

Subscribe to this mod's changes

fastapi-explain is a skill published in the GitHub repository steph-dove/klaussy-agents (16 stars, last pushed 13d ago), licensed MIT. It adds 54 tokens to every session and 1,709 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-30.