From mblode-agent-skills
Writes or rewrites a project's README.md tailored to its type (CLI, library, app, framework, monorepo, skill bundle). Analyzes manifests and writes section-by-section with validation.
How this skill is triggered — by the user, by Claude, or both
Slash command
/mblode-agent-skills:readme-creatorThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Write or rewrite a README.md tailored to the project type and audience.
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: copy the matching skeleton and section guidance |
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 the matching skeleton from references/section-templates.md and fill it. The skeleton plus its Notes block carries per-type detail; 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, place them under the title and one-liner, cap at 4.
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 hyphen separator (- **Name** - what it does. is the spaced-hyphen pattern this repo forbids).| 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 |
npx claudepluginhub joshuarweaver/cascade-code-general-misc-4 --plugin mblode-agent-skillsGenerates human-focused README files for projects. Activates on 'write README', 'create README', 'update README'.
Generates professional README.md for projects by scanning manifests like package.json/pyproject.toml, interviewing on type/language/depth/license, adding badges/sections.
Generates a README.md template for your project with customizable sections. Useful for starting new projects or improving existing documentation.