About explain-code
explain-code is a skill for explaining code conversationally through an analogy, an ASCII diagram, a step-by-step walkthrough, and a common gotcha. It is intended for people seeking structured explanations of code and its flow.
Key features
- 01Begins with an everyday analogy
- 02Illustrates structure with ASCII diagrams
- 03Explains execution step by step
- 04Highlights a common gotcha
- 05Offers multiple diagram formats
Use cases
- 01Explaining a function’s control flow
- 02Clarifying how modules call one another
- 03Showing a data structure’s hierarchy
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ helderberto/ agent-skills --skill explain-codeAfter installing, type/explain-codein Claude Code to confirm it loaded.
Details
From the project READMEWhen explaining code, always include:
- Start with an analogy: Compare the code to something from everyday life
- Draw a diagram: Use ASCII art to show the flow, structure, or relationships
- Walk through the code: Explain step-by-step what happens
- Highlight a gotcha: What's a common mistake or misconception?
Keep explanations conversational. For complex concepts, use multiple analogies.
Diagram Types
Flow / Control flow:
Input -> [Validate] -> [Process] -> [Save] -> Output
|
[Error] -> Return 400
Call stack / Sequence:
Client API DB
|--request--> | |
| |--query----> |
| |<--result--- |
|<-response-- | |
Tree / Hierarchy:
App
+-- Header
| +-- Nav
+-- Main
| +-- Sidebar
| +-- Content
+-- Footer
State machine:
[Idle] --submit--> [Loading] --success--> [Done]
|
error|
[Failed] --retry--> [Loading]
Data structure:
User {
id: string
profile: Profile --> { name, avatar, bio }
posts: Post[] --> [{ id, title, body }]
}
Before / After:
Before: After:
fn() fn()
doA() doA()
doB() doB()
doC() -> helpers()
doD() doC()
doE() doD()
doE()
Error Handling
- Code references external files/modules -- read them before explaining
- Diagram too complex -- split into multiple focused diagrams, each covering one concept
Comments
Markdown supported