skills/readme-creator/SKILL.md
Writes or rewrites a project's README.md tailored to its type (CLI, library, app, framework, monorepo, or skill bundle). Discovers project context from manifests, dispatches on the detected type, writes section by section, and validates against a quality checklist. Use when "write a README for this project", "create a README", "write a README from scratch", "rewrite this bad README", "bootstrap project documentation", or "the create-next-app README is still here". For auditing or improving an existing README or a docs site, use docs-writing. For AGENTS.md or CLAUDE.md agent-instruction files, use agents-md.
npx skillsauth add mblode/agent-skills readme-creatorInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Write or rewrite a README.md tailored to the project type and audience.
docs-writing); AGENTS.md or CLAUDE.md agent-instruction files (use agents-md). A README that already covers the project and just needs polish is docs-writing, not a rewrite.| File | Read when |
|------|-----------|
| references/section-templates.md | Phase 3: per-section markup plus the per-type notes |
| references/badges-and-shields.md | Phase 4: only if publishing to a registry |
| references/quality-checklist.md | Phase 5: score before declaring done |
Copy this checklist to track progress:
README progress:
- [ ] Phase 1: Detect project type from manifests and structure
- [ ] Phase 2: Select sections for that type
- [ ] Phase 3: Write each section from the template
- [ ] Phase 4: Add badges (published projects only)
- [ ] Phase 5: Score against the checklist; record the pass count
Read the project before asking anything; the type drives every later decision, so detect from evidence.
Read the manifest (package.json, Cargo.toml, pyproject.toml, go.mod) for name, description, license, scripts, bin, and "private". Read the existing README if rewriting. Scan the top-level layout.
Classify into exactly one type. First matching row wins, top to bottom:
| Type | Decisive signal |
|------|-----------------|
| Skill bundle | skills/ dir of SKILL.md files |
| Monorepo (private) | workspace config (turbo.json, pnpm-workspace.yaml, workspaces) plus "private": true; no publish |
| Monorepo (published) | workspace config; packages published to a registry |
| CLI tool | bin field, src/cli.*, or commander/yargs/clap dep |
| Framework | plugin/middleware architecture, config API, documented extension points |
| Library / package | main/exports set, no bin, src/index.* entry |
| Web app | framework config (next.config.*, vite.config.*); no publish |
If two types fit (a CLI that also exports an API, a framework published as a library), pick how most users consume it and fold the secondary role into one extra section.
Ask the user only what code cannot reveal:
If unreachable, infer the "why" from the manifest and code, note the assumption in your summary, and proceed rather than block.
Load references/section-templates.md. Use this matrix to pick sections (yes = include, opt = include if warranted, blank = omit):
| Section | CLI | Library | App | Framework | Mono (pub) | Mono (priv) | Skills | |---------|-----|---------|-----|-----------|------------|-------------|--------| | Title + one-liner | yes | yes | yes | yes | yes | yes | yes | | Badges | yes | yes | | yes | yes | | | | Features / highlights | yes | yes | yes | yes | | | yes | | Install | yes | yes | | yes | yes | | | | Quick start / usage | yes | yes | yes | yes | yes | yes | yes | | Options / API reference | yes | yes | | yes | | | | | Configuration | opt | opt | yes | yes | opt | | | | Environment variables | | | yes | | | | | | Packages / workspaces table | | | | | yes | yes | | | Skills table | | | | | | | yes | | Requirements | yes | yes | opt | yes | opt | yes | | | Common commands | | | | | opt | yes | | | Contributing | opt | opt | opt | opt | opt | opt | opt | | License | yes | yes | yes | yes | yes | opt | opt |
Copy each selected section's skeleton from references/section-templates.md, fill it, then apply the per-type notes at the end of that file. These rules hold across every type:
npm install -g (CLIs), npm install (libraries), clone-and-run (apps).foo, bar, example, test).Skip entirely unless the project publishes to a registry (npm, crates.io, PyPI). Private apps, internal monorepos, unpublished skill bundles: no badges.
When badges apply, load references/badges-and-shields.md for markup and placement. Cap at 4; past that they read as decoration and push the one-liner down.
Load references/quality-checklist.md. Score every applicable item, report the pass count as evidence; do not exit on "it reads fine". Fix every failed item, then reread top to bottom once to confirm flow.
Attach a render-check alongside the pass count: rg -n "foo|bar|TODO|\{\{" README.md must return nothing (no leftover placeholders or unresolved {{...}} mustaches). A non-empty result means not done.
The checklist's Automatic Fail list is the hard gate: missing description, missing install/getting-started, leftover boilerplate (unchanged create-next-app README), or a code example that cannot run. Any of these means not done, regardless of score.
git clone Getting Started, or an app README with npm install/registry badges, means the type was guessed wrong and sends readers down a dead path.name field, not the old README (it may predate a rename).- **Name:** what it does. with a colon, never a spaced hyphen (- **Name** - what it does.), which reads as a stand-in for an em dash.| When | Run |
|------|-----|
| README exists and needs a prose audit, or a full docs site | docs-writing |
| Project needs agent instructions (AGENTS.md, CLAUDE.md) | agents-md |
development
Fans out four concurrent review agents over the current diff, then APPLIES fixes directly to the working tree and verifies the build. Mutates code; it does not produce a report. Covers reuse (duplicate logic, hand-rolled stdlib, reinvented platform features), quality (hacky patterns, React/TypeScript hygiene, over-memoisation, exhaustive-deps, `any`, dead code, `CLAUDE.md`/`AGENTS.md` violations), efficiency (unnecessary work, missed concurrency, hot-path bloat), and test discipline (bug fixes without a repro test, useless tests to delete, missing tests only when they prevent a named failure). Use when the user says "tidy this up", "simplify", "clean up this diff", "polish my changes", "check for duplication", or "any reuse opportunities?", i.e. when the intent is to have the changes made automatically. For a read-only report that lists findings without touching files, use `pr-reviewer` instead. This skill edits code; for the PR's title, description, or commit history, use `pr-creator`.
development
Decides what an interface should do before UI is built or audited: interaction choice, action scope and consequence, reachable states, resilience, and accessibility as task completion. Works from a brief, spec, mockup, intent, or existing UI. Use when asked "is this the right interaction", "design the flow", "what control should this use", "what should this action affect", "which states should this have", "make this resilient", or "what breaks here". For building or styling use ui-design; for built-code audits use ui-audit; for copy wording use copywriting.
development
Builds and stress-tests implementation plans in two modes. Create mode scans code and docs, asks one question at a time with a recommended answer, runs a blindspot pass when the user is new to the area, then writes a plan file. Review mode scores completeness, feasibility, scope, testability, risk, and assumptions, verifies checkable claims, and writes resolutions back until every dimension reaches 5/5. Use when asked to "create a plan", "plan this feature", "I want to build X", "grill me", "think this through", "blindspot pass", "unknown unknowns", "this is new to me", "review my plan", "rubber duck this", "stress test this plan", "is this plan ready", "get this plan to 5/5", "what am I missing", "verify this claim", "prove this plan", "fact-check this plan", or when the user explicitly wants a plan artifact before implementation. For code review use pr-reviewer; for architecture briefs use define-architecture.
tools
Audits the smallest relevant developer-facing surface of a library, CLI, SDK, or npm package across API contracts, errors, CLI behavior, public types, onboarding, and config. Uses candidate-first rule loading, bounded local evidence, and compact root-cause findings. Use when asked to "audit my CLI", "make this CLI agent-friendly", "is this API ergonomic", "review the developer experience", "improve these errors", "simplify first run", or "review my SDK". For end-user UI use ui-audit, for agentic-app trust use ax-audit, for docs prose use docs-writing, for README work use readme-creator, and for repo architecture use define-architecture. Inside a product that also ships a UI, this is the skill for the developer-facing half, so pick it when the complaint is about an import, command, error string, exported type, or config rather than a screen.