From rad-explain
This skill should be used when the user says "narrate this project", "explain this project in plain English", "describe what this repo does", "summarize this project for a non-developer", "write a project narrative", "tell me what this project is", "explain this codebase to a collaborator", "draft an onboarding brief", "explain this project to my parents", "non-dev summary", or wants a plain-language description of a project synthesized from its source artifacts (code, docs, planning files, README, package.json). Works on any repo. Adapts to the named audience. Every substantive claim in the output is grounded against the repo source via check-grounding.py; no overpromising via check-overpromise.py. The output is prose for a human reader, not a planning artifact.
How this skill is triggered — by the user, by Claude, or both
Slash command
/rad-explain:narrate-project [--audience non-dev|investor|future-self|new-collaborator] [--output <path>] [--repo <path>][--audience non-dev|investor|future-self|new-collaborator] [--output <path>] [--repo <path>]This skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
You are synthesizing a plain-language description of a project from whatever artifacts the repo actually has. The deliverable is **prose for a human reader**: someone who needs to understand what the project is, who it's for, and what it does, without reading the code.
You are synthesizing a plain-language description of a project from whatever artifacts the repo actually has. The deliverable is prose for a human reader: someone who needs to understand what the project is, who it's for, and what it does, without reading the code.
This skill is the cross-project default in rad-explain. It works on any repo whether or not rad-planner is in use. It reads a docs/ directory if present (a PRD, plan, decision log) and falls back to README + manifest + source structure otherwise.
Both rules are enforced by validators at the end of generation. If either fails, surface the findings to the user and offer to revise before writing.
check-grounding.py validator runs against the output before it's finalized.check-overpromise.py validator runs against the output.If you find yourself wanting to write something that's NOT in the source, surface it to the user as a gap rather than inventing it.
Try these in order. Stop reading once you have enough material for the chosen audience.
| Priority | Source | Why |
|---|---|---|
| 1 | docs/vision.md / docs/architecture.md / docs/planning/current.md / docs/status.md / docs/decisions/*.md (rad-planner canonical structure) | Highest-signal — these were authored for synthesis use |
| 2 | README.md at repo root | Almost always present; primary user-facing description |
| 3 | package.json description field, pyproject.toml description, similar manifests | One-line product summary |
| 4 | AGENTS.md / CLAUDE.md | Operating-manual content; secondary signal |
| 5 | CHANGELOG.md / docs/roadmap.md | What's been built and what's next |
| 6 | Source structure: top-level directories, file names | What the codebase is shaped to do |
| 7 | Source content: imports, exports, public APIs | What the codebase actually exposes |
| 8 | tests/ or __tests__/ directories | What's verified to work |
If a docs/ directory is present (a PRD, plan, decision log), read it for richer, source-grounded coverage; otherwise fall back to README + manifest + source structure.
Adapt the narrative depth, vocabulary, and section emphasis based on the audience.
non-dev (default if not specified)For someone who isn't a developer: a family member, a stakeholder, a friend, a marketing partner.
Sections:
investorFor someone evaluating commercial potential.
Sections:
future-selfFor the project author returning after time away.
Sections:
status.md or recent commits)decisions/ or commit history)new-collaboratorFor someone joining the project who needs to ramp up.
AGENTS.md / CLAUDE.md / CONTRIBUTING.md)Sections:
If --audience was passed, use it. Otherwise ask:
Who is this narrative for?
1. Non-dev / general audience (default)
2. Investor / commercial evaluator
3. Future-self / working note
4. New collaborator / onboarding
If --output was passed, use it. Otherwise offer:
PROJECT-NARRATIVE.md at repo root (temporary share)docs/narrative.md (in-repo persistence)In parallel, gather what's available. Always read README.md, package.json / pyproject.toml / Cargo.toml / equivalent manifest. If present, also read the rad-planner canonical doc set, AGENTS.md / CLAUDE.md, CHANGELOG.md, top-level directory structure.
If a docs/ directory is present (a PRD, plan, decision log), read those for richer, source-grounded coverage.
For each section:
Before writing the final output:
# Use /tmp/draft.md as a temporary location
python3 ${CLAUDE_PLUGIN_ROOT}/scripts/check-grounding.py /tmp/draft.md --repo <repo-root> --json
python3 ${CLAUDE_PLUGIN_ROOT}/scripts/check-overpromise.py /tmp/draft.md --json
If either validator returns findings:
Single Markdown file. No frontmatter. H2 section headings.
Add a footer:
*Generated by /rad-explain:narrate-project on YYYY-MM-DD. Audience: {audience}.
Grounding: {N claims traced} / {M total}. Overpromise scan: {clean | N findings}.
Sources used: {file list}.*
A 5-line summary to the user:
Project narrative written to {path}.
Audience: {audience}
Sources read: {comma-separated list of files}
Validators: grounding {pass|N flagged}, overpromise {pass|N flagged}
Sections written: {list}
README.md or vision.md itself uses it.docs/ directory if present; otherwise works from README + manifest + source structure.check-grounding.py and check-overpromise.py) live in this plugin's scripts/ dir; they can be invoked by other plugins too.npx claudepluginhub radorigin-llc/rad-claude-skills --plugin rad-explainProvides behavioral guidelines to reduce common LLM coding mistakes, focusing on simplicity, surgical changes, assumption surfacing, and verifiable success criteria.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.