ground-readme — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited ground-readme (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
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> --jsonCapture 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> --jsonIf 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.~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.