project-explanation
Skill1 starsChanged 14 days agoMITView on GitHub
Understand a project comprehensively and explain it clearly to the user. Then (unless the user asks for no questions) ask which feature the user wants to develop, explain that feature in depth, and confirm whether the user wants to proceed with development. Trigger when the user asks to understand, explore, summarize, or explain a codebase/project, or asks "what features does this project have" or "help me understand this project".
- Reads credentials
In this repository9 other files it gives its agents.
- web/AGENTS.mdAGENTS.md
- apply-review-feedbackSkill
- code-changes-reviewSkill
- explain-changesSkill
- prd-generatorSkill
- pr-draftSkill
- push-to-originSkill
- releaseSkill
- skill-nameSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
18 rules. About 0 are common, 16 are distinctive, and 2 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈16
Distinctive · estimate
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 26
Non-interactive: Use this mode when the user's request or the skill arguments ask for no questions (e.g., "no questions," "make no …
- Distinctive: line 28
Stop after Step 4. Do not perform the deep-dive or produce an implementation plan unless the user asks for one in a later message.
- Distinctive: line 32
Before exploring the project, perform the following in order:
- Distinctive: line 34
Run git status to confirm the current branch and working-tree state.
- Very specific: line 36
Read the README.md (or readme.md, README.rst, docs/index.md) if one exists.
- Distinctive: line 37
Read configuration files relevant to the project type, such as:
- Very specific: line 66
Read key source files and entry points (e.g., main.ts, app.py, index.js, route definitions, page components) to enumerate distinct features.
- Distinctive: line 78
After presenting the summary, ask the user:
- Distinctive: line 82
Wait for the user's response before continuing.
- Distinctive: line 88
Read all files directly related to that feature (routes, controllers, services, models, components, tests).
- Distinctive: line 94
After the detailed explanation, ask the user:
- Distinctive: line 98
Wait for the user's response before continuing.
- Distinctive: line 101
If the user says yes, provide a concrete implementation plan:
- Distinctive: line 106
If the user says no, offer to return to the full feature list from Step 4 or to end the exploration session.
- Distinctive: line 112
Use plain, accessible language.
- Distinctive: line 113
Do not modify any source files during this skill.
- Distinctive: line 114
If the repository has no README and minimal configuration, state this honestly and note that the exploration will rely on reading source …
- Distinctive: line 115
Do not fabricate features or behaviors not evidenced by the code or documentation.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
project-explanation
Purpose
Deeply understand a project's structure, architecture, and features, then explain it clearly in plain language. After summarizing the project, guide the user interactively to select a feature for deeper exploration and, optionally, active development.
Trigger
Activate this skill when the user:
- Runs the slash command
/project-explanation. - Asks to "understand this project," "explain this codebase," "give me a project overview," or similar.
- Asks "what does this project do," "what features exist," or "help me get up to speed on this repo."
- Wants an onboarding overview before deciding what to build or improve next.
Interaction Mode
Determine the mode before starting:
- Interactive (default): Pause at the two decision points (feature selection and development confirmation) and wait for the user's answer.
- Non-interactive: Use this mode when the user's request or the skill arguments ask for no questions (e.g., "no questions," "make no questions," "don't ask," "just summarize"). Do not ask the user anything and do not wait for input. Instead:
- End Step 4 with a Recommended Next Step section in place of the feature-selection question: name one or two features or improvements worth developing first and give a one-sentence reason for each, based on evidence from the code.
- Stop after Step 4. Do not perform the deep-dive or produce an implementation plan unless the user asks for one in a later message.
Pre-flight Checks
Before exploring the project, perform the following in order:
- Run
git statusto confirm the current branch and working-tree state. - List the root directory structure to understand the top-level layout and identify what type of project this is.
- Read the
README.md(orreadme.md,README.rst,docs/index.md) if one exists. This is the primary source of intent and feature documentation. - Read configuration files relevant to the project type, such as:
package.json/package-lock.jsonfor JavaScript/TypeScript projects.pyproject.toml/requirements.txtfor Python projects.Gemfilefor Ruby projects.go.modfor Go projects.Cargo.tomlfor Rust projects..env.examplefor environment variable requirements.docker-compose.yml/Dockerfilefor containerized deployments.
- Identify the primary directories and their likely responsibilities (e.g.,
src/,app/,api/,components/,services/,models/,tests/,scripts/,docs/).
Workflow
Step 1: Identify the Tech Stack
- Determine the primary programming language(s) from file extensions and configuration files.
- Identify the main framework (e.g., Next.js, Django, Rails, Spring Boot, Express, FastAPI) from dependencies or configuration.
- Identify the database layer if evident (SQL, MongoDB, Redis, etc.).
- Identify the deployment or infrastructure approach (Docker, Kubernetes, serverless, etc.) if present.
- Note any significant external integrations (third-party APIs, authentication providers, payment systems).
Step 2: Identify the Architecture Pattern
- Determine the overall architectural approach from the directory structure and code organization:
- Frontend-only (SPA, static site)
- Backend-only (API server, CLI tool, library)
- Full-stack monolith
- Full-stack monorepo with separate frontend and backend packages
- Microservices
- Identify key architectural layers present (e.g., controllers/routes, services/use-cases, repositories/data access, models/entities, middleware, utilities).
Step 3: Map the Features
- Read key source files and entry points (e.g.,
main.ts,app.py,index.js, route definitions, page components) to enumerate distinct features. - A feature is any self-contained piece of user-facing or system-level functionality (e.g., user authentication, dashboard, report generation, background jobs, API endpoints, notification system).
- List every feature identified with a brief one-line description.
Step 4: Present the Comprehensive Summary
Present the findings to the user in the following structure:
- Project Name and Purpose — what the project is and who it is for.
- Tech Stack — languages, frameworks, databases, and key integrations.
- Architecture — the overall pattern and how the main layers are organized.
- Features — a numbered list of all identified features with one-line descriptions.
- Key Entry Points — the main files a developer would start reading to understand the system.
After presenting the summary, ask the user:
"From the features above, which one would you like to explore further?"
Wait for the user's response before continuing. Do not proceed to the next step without a selection.
In non-interactive mode, replace the question with the Recommended Next Step section described under Interaction Mode, then stop.
Step 5: Deep-Dive on the Selected Feature
Once the user selects a feature:
- Read all files directly related to that feature (routes, controllers, services, models, components, tests).
- Explain how the feature currently works end-to-end: the entry point, data flow, business logic, data persistence, and any output or response.
- List every file that contributes to this feature and describe each file's role.
- Identify the dependencies this feature has on other parts of the system.
- Identify any limitations, known edge cases, missing tests, or improvement opportunities observable from the code.
After the detailed explanation, ask the user:
"Would you like to proceed with developing or improving this feature now?"
Wait for the user's response before continuing.
Step 6: Plan or Conclude
- If the user says yes, provide a concrete implementation plan:
- The specific files that need to be created or modified.
- A step-by-step technical approach.
- An estimated complexity level (low / medium / high) and a rationale.
- Any risks or prerequisites to address first.
- If the user says no, offer to return to the full feature list from Step 4 or to end the exploration session.
Rules
- In interactive mode, always wait for the user's explicit response at the two decision points (feature selection and development confirmation) before continuing.
- In non-interactive mode, never ask a question or wait for input; end with the Recommended Next Step section after Step 4.
- Use plain, accessible language. Assume the user may be new to this codebase; provide enough context to be useful without overwhelming them with jargon.
- Do not modify any source files during this skill. It is read-only with respect to the codebase.
- If the repository has no README and minimal configuration, state this honestly and note that the exploration will rely on reading source files directly.
- Do not fabricate features or behaviors not evidenced by the code or documentation.
Output Format
Deliver the output in up to three phases:
Phase 1 (Steps 1-4): A structured project summary presented inline, followed by the interactive feature-selection question. In non-interactive mode, the summary is followed by the Recommended Next Step section and the output ends here.
Phase 2 (Step 5): A detailed feature breakdown presented inline, including files, data flow, dependencies, and improvement opportunities, followed by the development confirmation question.
Phase 3 (Step 6, if yes): An implementation plan with specific files, steps, complexity estimate, and any identified risks or prerequisites.
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.

