explain
Skill4 starsChanged 5 days agoMITView on GitHub
Explain any software project in plain Arabic or English as an interactive explainer page (right-to-left for Arabic) with a real-world analogy, a clickable map of the project's layers, a step-by-step flow of one request, the screens or entry points, a glossary, a "where do I change what" table and starter exercises. Use whenever the user wants to understand, explain, document, teach or onboard someone to a codebase, for example "explain this project", "help me understand this repo", "how does this code work", "map out this codebase for me", "I inherited this project and don't get it", "onboard the new devs", "اشرح لي هذا المشروع", "شرح كامل بالعربية", "كيف يعمل هذا الكود", "ارسم لي مكونات المشروع", "أريد أن أفهم مشروع استلمته", or a vibe-coded project they don't understand yet, even if they don't say "skill", "diagram" or "page". Three depths: quick (سريع), full (default) and deep (عميق) with extra flows, function-level detail and review notes.
127 other projects use a version of this.
Adopted by
Most recently taken up by
- Soe-Reh/soes-skillstheir own version, first seen Nov 15, 2026
- fullstackhouse/skillstheir own version, first seen Nov 15, 2026
- jbellsolutions/hermes-super-agenttheir own version, first seen Nov 15, 2026
- ctskool/chase-animationstheir own version, first seen Nov 15, 2026
- NazmusSayad/skillstheir own version, first seen Nov 8, 2026
- sergeiwallace/skillstheir own version, first seen Nov 8, 2026
Used with
Projects with it also use debug-fix, root-cause and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
zebbernSkilldebug-fix
Find and fix a bug or issue — from any source (GitHub issue, error message, user report, or observed behavior)
Also in 3 projects that use this
Ingramradical235Skillroot-cause
Structured root cause analysis using WHERE (MECE decomposition) then WHY (causal structure diagrams) pipeline. Includes coin-flip detection, logical-leap detection, and vicious cycle intervention. Use when buffer enters YELLOW/RED, when metrics stall, or when Actions execute but don't produce results.
Also in 5 projects that use this
ralphkraussSkillresolve-conflicts
Resolve git merge conflicts or re-apply changes from a stale branch onto current main. Use when user says "resolve conflicts", "merge conflicts", "rebase branch", "branch is behind", "re-apply changes", "port branch", or a branch is too far behind main to merge cleanly.
Also in 4 projects that use this
neurofooSkillsocratic
Socratic questioning to examine beliefs, uncover assumptions, and develop deeper understanding. Use to challenge thinking, evaluate proposals, or teach without lecturing.
Also in 4 projects that use this
anombyte93Skilldiscover
Phase 1 of the prd-taskmaster pipeline: brainstorm-driven discovery. Delegates to superpowers:brainstorming in Interactive Mode (one adaptive question at a time), or self-brainstorms in Autonomous Mode when no user is present. Intercepts before the brainstorming chain hands off to writing-plans — this skill owns the exit. Extracts constraints, calibrates scale (Solo / Team / Enterprise), and advances the pipeline to GENERATE.
Also in 6 projects that use this
mitsuhikoSkillsummarize
Fetch a URL or convert a local file (PDF/DOCX/HTML/etc.) into Markdown using `uvx markitdown`, optionally it can summarize
Also in 8 projects that use this
Other versions127 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 127
- Z3Prover/z3★ 13ksame name
- crbnos/carbon★ 2.8ksame name
- poshan0126/dotclaude★ 871same name
- VinkyDev/vibestart★ 289same name
- hsantanna88/clo-author★ 262same name
- hugosantanna/clo-author★ 262same name
- entireio/skills★ 239same name
- sammcj/agentic-coding★ 169same name
- SerhiiKorniienko/bullshit-detector★ 151same name
- kv0906/pm-kit★ 138same name
117 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
The file
We split this skill into the rules it gives an agent
7 rules. 0 are common, 2 are distinctive, and 5 are very specific to this project.
0
Common
Most of the 114 edited versions we read keep these.
2
Distinctive
This author's own choices. Worth a look.
5
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 13
Every page is in one language, set as project.lang: ar (Arabic, right to left, the default) or en (English, left to right).
- Very specific: line 27
Start from scan.py, not from exploring by hand.
- Very specific: line 28
Read only files you will cite, and only the part you need (use offsets, or grep -n for one function).
- Distinctive: line 30
Write the DATA file once with one Write.
- Very specific: line 31
Don't syntax-check the page.
- Very specific: line 35
Every page is built at one depth.
- Distinctive: line 95
If a sentence sounds translated, rewrite it from scratch.
“Common” is measured: kept by at least 6 in 10 of the 114 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
/explain · project explainer (Arabic or English)
Turn a real codebase into one page, in Arabic or English, that a learner can read top to bottom and a developer can use as a map. The page layout is a fixed template filled from a JSON file, so your effort goes into understanding the code and writing clearly. Readers are students, junior developers, or anyone who inherited or vibe-coded a project.
Language
Every page is in one language, set as project.lang: ar (Arabic, right to left, the default) or en (English, left to right). Decide it in this order:
- A language the user names:
/explain en,english,in English,بالإنجليزيةgiveen;ar,arabic,عربي,بالعربيةgivear. - Otherwise, the language the user writes in: «اشرح لي المشروع» is Arabic, "explain this repo" is English. A bare
/explaintakes the language of the conversation so far. - With nothing to go on, Arabic.
Reply to the user in the page's language. Depth words work in both languages (سريع or quick).
SKILL below means this skill's folder (~/.claude/skills/explain for a personal install, .claude/skills/explain for a project install).
Keep it cheap
Tokens go to three places: reading code, writing the DATA file, and re-reading things. Spend them only on the first two.
- Start from
scan.py, not from exploring by hand. One call gives the tree, dependencies, entry points, the biggest files and their classes, routes, schema and git milestones. - Read only files you will cite, and only the part you need (use offsets, or
grep -nfor one function). Never read generated files, tests, lockfiles, assets or platform folders (ios/,android/). - Don't spawn a subagent for projects under about 400 source files (in
deep, about 200). For bigger ones, send one Explore subagent on thehaikumodel with a narrow question (the main flow's files and functions; indeep, one subagent per extra flow), never "map everything".quicknever needs one. - Write the DATA file once with one Write. Fix build or verify errors with Edit, never by rewriting the file. Don't read back the JSON or the built HTML.
- Don't syntax-check the page; the template is fixed and already tested.
build.pyandverify.pyare the only checks.
Three depths
Every page is built at one depth. Pick it from the user's words; default to full. Set it as project.mode.
| Mode | Words that pick it | Who it's for | What the page has | Rough cost |
quick | سريع، مختصر، نظرة سريعة، quick, short, overview, tl;dr | "What is this?" in 5 minutes | the one-liner, 2–4 layers with 5–12 parts, one flow of 3–5 steps, 4–6 "where do I change" rows, optionally a 3-role analogy and 5 words | ~25k tokens |
full | كامل، شرح، (nothing), full | learning the project, onboarding | everything below at the normal size: analogy, 12–22 parts, one flow, database, story, screens, glossary, change table, 3 exercises, tree | ~40–50k |
deep | عميق، مفصل، تفصيلي، للمراجعة، deep, detailed, in depth, review | maintainers and reviewers who will change the code | full, plus: 16–32 parts, 2–3 flows (moreFlows), what is inside each central part (inside: key functions with line numbers), review notes (notes: gaps, risks, security, tech debt, performance), 4–5 exercises, and figures where they help | ~90–100k, plus Haiku helpers on big repos |
Depth changes how much you read and write, never the template. In quick, stop reading as soon as you can name the layers and the one flow: grep the flow files for function signatures and read only the lines around them (about 100 lines in all is usually enough); don't read the database or git history. In deep, check every note yourself in the code before keeping it (drop any a subagent can't back with a line), but leave line numbers in inside to verify.py instead of grepping each one.
Workflow
1. Find the project and the depth
The user usually types /explain. Whatever follows is the input, in any order: a depth word (above), a language word, a path (/explain ~/Projects/shop), a part to focus on (/explain the payment flow), or nothing (the current project at full). /explain سريع ~/Projects/shop and /explain deep payments both work. A focus doesn't change the depth; it makes the main flow follow that focus. If the working directory isn't a project and no path was given, ask which project; don't guess.
2. Map it in one call
python3 -I SKILL/scripts/scan.py <project-root>From the output decide, within the depth's budget: the layers, the parts (layer nodes) that matter, the most common user action, whether there is a database worth a section, and whether git history is rich enough for a story. Then read only the central files: the entry point, the main state holder, controller or service, the data model, and the two or three files on the main flow's path.
3. Choose the analogy
Pick one analogy from the project's own world, so the reader already knows the roles: a scoreboard and umpire for a sports app, reception, doctor and medical file for a clinic, cashier and warehouse for a shop, a post office for chat, a restaurant for a generic backend. Map each role to one real class; mark the most central one key: true. 4–6 roles.
4. Write the DATA file
Read SKILL/references/data.md for the JSON shape, the rules for each field and each depth's sizes, then write the file in a scratch folder (not inside the user's project) in one go. Read SKILL/references/figures.md only if a figure would explain something the built-in sections can't (where things run, a safety or payment pipeline, a state machine); most pages need none.
5. Verify and build
python3 -I SKILL/scripts/verify.py <data.json> <project-root>
python3 -I SKILL/scripts/build.py <data.json> <out.html>verify.py checks every cited path, every exercise line number and snippet, and every story commit against the repo, and prints only problems. Fix each one with a small Edit and rerun. build.py checks the structure (ids, links, sections) and writes the page. Put the HTML in the scratch folder unless the user wants it in the project (for example docs/شرح-المشروع.html, or docs/explained.html for an English page).
6. Deliver
If the Artifact tool is available, publish the HTML as an artifact (icon book) and give the link. Otherwise rebuild it with --standalone (a complete HTML document), open the file in the browser and give its absolute path. The page is one self-contained file. Remind the user that it shows their file names, folders and commit messages before they share it. Reply in the page's language: the depth, what the page covers, and anything you could not verify. After a quick or full page, mention in one line that a deeper one is available.
Writing the page
The page succeeds or fails on the writing. Write how a good teacher talks, not how a manual reads. In both languages:
- Short sentences, one idea per sentence. No padding: every sentence teaches something about this project.
- Say what a part does in the reader's terms before naming the technology.
- Code names, file names and packages stay exactly as in the code. Western digits (0–9) for numbers and line numbers.
English pages: plain, direct English, "you" for the reader. "Saves the score on the phone after every point" before "uses SharedPreferences". Explain a framework term in a few words on first use instead of assuming it ("a hook, a React function that keeps state").
Arabic pages:
- Clear Modern Standard Arabic.
- Say what a part does in the reader's terms before naming the technology: «يحفظ النتيجة في ذاكرة الهاتف بعد كل نقطة» before «يستخدم SharedPreferences».
- Code names, file names and packages stay in English exactly as in the code. On first use of a concept give both: «المستودع (Repository)».
- If a sentence sounds translated, rewrite it from scratch.
What to avoid
- Inventing parts, or describing what a framework usually does instead of what this project does.
- Listing every file; the folder tree covers the rest.
- An analogy from the wrong world (a restaurant for a booking system).
- Changing the template's layout. Consistency across projects is the point; put the effort into the content.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

