---
aliases: ["Code Explainer"]
tags: [pm-skills, skill]
skill: code-explainer
description: "Explain what a piece of code does in plain English, at the depth the reader needs. Use when asked to explain code, walk through a function, understand an unfamiliar snippet, or onboard to a file. Produces a one-line summary, a step-by-step walkthrough, the non-obvious parts called out, and any bugs or smells spotted along the way."
---

# Code Explainer Skill

Make unfamiliar code understandable — fast — without dumbing it down.

## Working from a brief

Infer the language and intent from the code itself; label assumptions *(assumed — confirm)*. Always produce a complete explanation even from a fragment. Match depth to the apparent level of the question.

## Input

The code snippet or file, plus (if given) the language, the reader's level, and what they're trying to understand. Infer the rest.

## Output Structure

### In one line
What this code does, in a single sentence a busy reader can repeat.

### Step by step
A walkthrough of the logic in order — group by block/function. Explain *why*, not just *what*, for anything non-trivial. Reference line ranges where helpful.

### Worth knowing
The non-obvious bits: clever tricks, gotchas, side effects, complexity, dependencies, or assumptions the code makes.

### Anything off?
Bugs, edge cases, or smells you noticed while reading — with the fix. (If it's clean, say so.)

## Quality Checks

- [ ] The one-line summary stands alone
- [ ] The walkthrough explains *why*, not just restating the code in words
- [ ] Non-obvious behaviour (side effects, complexity, edge cases) is surfaced
- [ ] Any bug/smell spotted is flagged with a fix

## Anti-Patterns

- [ ] Do not narrate line-by-line in English ("this line sets x to 5") — explain intent and structure
- [ ] Do not skip the gotchas — the value is in the non-obvious parts
- [ ] Do not assume expert level if the question reads like a beginner's (or vice-versa)
- [ ] Do not ignore a bug you can see just because you weren't asked to review it

---
<!-- Run as an AI-plugin prompt. {{selection}} is the Text Generator / Templater
     variable for the highlighted text — replace it with your plugin's equivalent
     (e.g. {} in Copilot for Obsidian), or paste your input there manually. -->
Apply the skill above to the following input:

{{selection}}
