From rad-explain
This skill should be used when the user says "audit my README", "ground my README against the code", "check if my README overpromises", "review my README honestly", "rewrite my README without marketing language", "audit my marketplace listing", "check my plugin description", "ground this description against the code", "is my README honest", "does my README match the code", or wants to (a) audit an existing README/marketplace listing against actual code to find overpromise + unbacked claims, or (b) generate a README/listing from code with grounding controls so it doesn't overpromise. Two modes: `audit` (check existing) and `generate` (create new).
How this skill is triggered — by the user, by Claude, or both
Slash command
/rad-explain:ground-readme [--mode audit|generate] [--target README.md|plugin.json|marketplace-entry] [--repo <path>] [--output <path>][--mode audit|generate] [--target README.md|plugin.json|marketplace-entry] [--repo <path>] [--output <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 either auditing an existing README/marketplace listing for overpromise and unbacked claims, or generating a new one from actual code with grounding controls.
You are either auditing an existing README/marketplace listing for overpromise and unbacked claims, or generating a new one from actual code with grounding controls.
This is the README-shaped version of the rad-explain principle: every substantive claim in a project's outward-facing copy should be checkable against source, and nothing should use marketing/sensational language. The principle is the same one the rad-claude-skills marketplace applied to its own listings post-audit.
check-grounding.py validator runs against the output.check-overpromise.py validator runs against the output.These are non-negotiable. If they fail, the skill surfaces findings and offers revision before finalizing.
audit (most common)Review an existing README, marketplace listing, plugin.json description, or similar outward-facing copy. Produce a findings report.
Workflow:
README.md at repo root)check-overpromise.py against itcheck-grounding.py against the repoOutput: a findings report (Markdown) listing:
| Section | What was flagged |
|---|---|
| Overpromise findings | Each flagged phrase with line number, severity, and a suggested concrete replacement |
| Unbacked claims | Each claim with no traceable source, with suggested either: remove, add source, or rephrase |
| Capability mismatches | Claims that traced to source but the source DOESN'T support the claim (e.g., README says "supports MongoDB" and there's no MongoDB code) |
| Missing claims | Things the code actually does that the README doesn't mention (the inverse — under-promising) |
| Suggested rewrites | For high-severity findings, a concrete replacement sentence |
generateCreate a new README / marketplace listing from actual code with grounding controls.
Workflow:
package.json / pyproject.toml / equivalent for description, dependencies, entry pointsdocs/vision.md if present (highest-signal for project intent)Output: a Markdown README following the standard shape (Install, Usage, Features, Examples, License) but constrained to what the code actually supports.
If --mode was passed, use it. Otherwise infer:
README.md and the user said "audit" / "review" / "check" → auditgenerateDefault target for audit: README.md at repo root. Otherwise the user can specify a marketplace listing JSON path or plugin.json or similar.
Read the target file. Run both validators:
python3 ${CLAUDE_PLUGIN_ROOT}/scripts/check-overpromise.py <target> --json
python3 ${CLAUDE_PLUGIN_ROOT}/scripts/check-grounding.py <target> --repo <repo-root> --json
Capture results.
In parallel:
package.json / pyproject.toml / Cargo.toml / go.mod / etc.)docs/vision.md / docs/README.md / docs/getting-started.md if presentindex.ts, __init__.py, lib.rs)CHANGELOG.md if presentFor each capability claim in the target (e.g., "supports X", "integrates with Y", "validates Z"):
Walk the source for capabilities the README doesn't mention:
Flag these as info-severity "missing claim" findings. (Some are intentional omissions; some are real gaps.)
Standard README sections (skip any without source backing):
For each section, the substantive content must come from a specific file. If a section has no source, omit it.
python3 ${CLAUDE_PLUGIN_ROOT}/scripts/check-overpromise.py <output-path> --json
python3 ${CLAUDE_PLUGIN_ROOT}/scripts/check-grounding.py <output-path> --repo <repo-root> --json
If either validator surfaces critical/warning findings:
For each finding:
For audit mode, write a findings report (or print to stdout if no --output):
# README Audit: {target-file}
## Overpromise findings
[N critical, M warning, K info]
### Critical: line N "{matched phrase}"
**Suggested rewrite:** "..."
### Warning: line N "{matched phrase}"
**Suggested rewrite:** "..."
...
## Grounding findings
[N unbacked claims]
### Line N: "{claim text}"
Unbacked tokens: {list}
**Suggestion:** {drop | add evidence | rephrase}
...
## Capability mismatches
[N claims source doesn't support]
...
## Missing claims (under-promising)
[N capabilities the source has but README doesn't mention]
...
For generate mode, write the README to <output-path> (default README.md) and surface:
README generated and written to {path}.
Sections written: {list}
Sections skipped (no source backing): {list with reason}
Validators: grounding {pass|N flagged}, overpromise {pass|N flagged}
If you want to add unbacked content (vision-aspirational, marketing context),
add it manually and re-run /rad-explain:ground-readme --mode audit to keep it
in check.
narrate-project in this plugin.elevator-pitch or draft-pitch.explain-document.scripts/ dir.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.