agentleFS
AmrSabbagh35AmrSabbagh35/project-explainer/SKILL.md

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

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.
  • zebbernSkill

    debug-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

  • Ingramradical235Skill

    root-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

  • ralphkraussSkill

    resolve-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

  • neurofooSkill

    socratic

    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

  • anombyte93Skill

    discover

    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

  • mitsuhikoSkill

    summarize

    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

    1. Z3Prover/z3★ 13ksame name
    2. crbnos/carbon★ 2.8ksame name
    3. poshan0126/dotclaude★ 871same name
    4. VinkyDev/vibestart★ 289same name
    5. hsantanna88/clo-author★ 262same name
    6. hugosantanna/clo-author★ 262same name
    7. entireio/skills★ 239same name
    8. sammcj/agentic-coding★ 169same name
    9. SerhiiKorniienko/bullshit-detector★ 151same name
    10. 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
  1. Very specific:

    Every page is in one language, set as project.lang: ar (Arabic, right to left, the default) or en (English, left to right).

    line 13
  2. Very specific:

    Start from scan.py, not from exploring by hand.

    line 27
  3. Very specific:

    Read only files you will cite, and only the part you need (use offsets, or grep -n for one function).

    line 28
  4. Distinctive:

    Write the DATA file once with one Write.

    line 30
  5. Very specific:

    Don't syntax-check the page.

    line 31
  6. Very specific:

    Every page is built at one depth.

    line 35
  7. Distinctive:

    If a sentence sounds translated, rewrite it from scratch.

    line 95

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

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

/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:

  1. A language the user names: /explain en, english, in English, بالإنجليزية give en; ar, arabic, عربي, بالعربية give ar.
  2. Otherwise, the language the user writes in: «اشرح لي المشروع» is Arabic, "explain this repo" is English. A bare /explain takes the language of the conversation so far.
  3. 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 -n for 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 the haiku model with a narrow question (the main flow's files and functions; in deep, one subagent per extra flow), never "map everything". quick never 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.py and verify.py are 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.

ModeWords that pick itWho it's forWhat the page hasRough cost
quickسريع، مختصر، نظرة سريعة، quick, short, overview, tl;dr"What is this?" in 5 minutesthe 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), fulllearning the project, onboardingeverything 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, reviewmaintainers and reviewers who will change the codefull, 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.

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.