Use when a README cannot be followed verbatim -- setup or test commands fail or are vague, environment requirements are unstated, or a new engineer or agent cannot bootstrap the project quickly.
Scanned 9/6/2026
Install to Claude Code
npx -y skills add yeaight7/agent-powerups --skill readme-hardening --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Readme Hardening?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/yeaight7-readme-hardening-agent-powerups)More formats (shields.io, HTML) on the badges page.
---
name: readme-hardening
description: Use when a README cannot be followed verbatim -- setup or test commands fail or are vague, environment requirements are unstated, or a new engineer or agent cannot bootstrap the project quickly.
---
## Purpose
A good README is an executable contract, not a marketing page. It must allow an agent or a new engineer to clone the repository and run tests within 3 minutes.
## When to Use
- Onboarding feedback says setup instructions fail or are ambiguous
- The project's scripts, dependencies, or env requirements changed
- Before publishing the repo or handing it to another team or agent
## Inputs
- The current README and the repo it claims to describe
- The actual scripts and tooling (package manifest, Makefile, CI config)
## Workflow
1. **Verify commands.** Extract every shell command from the README (npm install, docker-compose up, cargo test) and check each against repo evidence — then run them in a clean environment where possible. If they fail, fix the README:
```bash
rg -n "^( {4}|\t)\S|^\$ " README.md # command lines in the README
rg -n "\"scripts\"" -A 20 package.json # do documented npm scripts exist?
```
2. **Remove ambiguity.** Replace "Install dependencies" with the exact command (npm ci). Replace "Run the app" with the exact script (npm run start:dev).
3. **Environment checklist.** Clearly list required environment variables in an env-example block — do not just say "set up your environment." Cross-check against what the code actually reads:
```bash
rg -no "process\.env\.[A-Z0-9_]+" src/ | sort -u
```
4. **Architecture pointers.** Provide exact file paths for entry points (e.g., "Main API routing is in src/routes.ts") to save agents from searching the entire tree.
5. **Cover the minimum outline** — confirm each section exists and is accurate:
```markdown
# Project name + one-line purpose
## Install # exact commands
## Run # exact commands, expected output
## Test # exact commands
## Configuration # env vars with example values
## Architecture # entry points by path
## Troubleshooting # the 2-3 most common failures and their fixes
```
## Output
- A README whose every command was verified against the repo (or actually run)
- An env-var block matching what the code actually reads
- Entry-point paths for the main flows
## Verification
- [ ] Every README command exists in scripts/tooling or ran successfully
- [ ] No vague instructions remain ("install dependencies" without the command)
- [ ] Env-var list cross-checked against the code's actual reads
- [ ] Entry-point file paths verified to exist
- [ ] Outline covered: install, run, test, configuration, architecture, troubleshooting
## Failure Modes
- **Marketing-page drift** — features and badges grow while install instructions rot.
- **Untested commands** — a command transcribed from memory instead of verified against the scripts.
- **Hidden environment** — the app reads six env vars and the README names two.
- **Path-free architecture prose** — "the API layer handles routing" helps nobody; name the file.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!