Best for
- Creating a README for a package, library, SDK, or framework extension
- Rewriting a package README after major changes (new API, version bump, new registry)
- Improving a weak package README (missing install, no example, no compatibility info)
event4u-app/agent-config/src/skills/readme-writing-package/SKILL.md
Use when creating or rewriting a README for a reusable package or library. Focus on installability, minimal usage example, compatibility, and developer onboarding.
Decision brief
Focus on installability, minimal usage example, compatibility, and developer onboarding.
Compatibility matrix
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/event4u-app/agent-config --skill "src/skills/readme-writing-package"Inspect the Agent Skill "readme-writing-package" from https://github.com/event4u-app/agent-config/blob/0adf49a8ae84b0ff6e2de8759eea43257e020eff/src/skills/readme-writing-package/SKILL.md at commit 0adf49a8ae84b0ff6e2de8759eea43257e020eff. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
Before drafting, produce an evidence ledger from a fresh inspection of the package — manifest, source, CI, examples. Do not rely on prior turns or the existing README prose.
Creating a README for a package, library, SDK, or framework extension
Package README that makes adoption easy. A developer should know within 30 seconds: what it does, whether it fits their stack, how to install it, and how to use it.
User adoption over internal architecture — consumer first, maintainer second
Before drafting, produce an evidence ledger from a fresh inspection of the package — manifest, source, CI, examples. Do not rely on prior turns or the existing README prose.
Permission review
The documentation asks the agent to read local files, directories, or repositories.
If any cell is unknown, run `ls`, `grep`, `find`, or read the file beforeThe documentation asks the agent to run terminal commands or scripts.
npm install <package>The documentation asks the agent to run terminal commands or scripts.
pnpm add <package>Evidence record
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 96/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 7 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
Do NOT use when:
readme-writing instead/docsPackage README that makes adoption easy. A developer should know within 30 seconds: what it does, whether it fits their stack, how to install it, and how to use it.
Before drafting, produce an evidence ledger from a fresh inspection of the package — manifest, source, CI, examples. Do not rely on prior turns or the existing README prose.
ledger:
package: <name + version from manifest>
description: <verbatim from manifest>
install_cmd: <verified against the manifest's package manager>
requirements: <language version, framework version, ext-*, services>
public_api: <entry classes / functions / exports from source>
test_command: <real command from manifest scripts / Taskfile>
doc_targets: <list of /docs files actually linked from the new draft>
visual_keep: <line range of existing README header / banner / badges to preserve>
If any cell is unknown, run ls, grep, find, or read the file before
writing — never invent. When the user asks to keep the existing banner
or badge row, reproduce it byte-for-byte from the source.
| Type | Audience | README focus |
|---|---|---|
| Library | Any developer | Install → Usage → API surface |
| Framework extension | Framework users | Requirements → Install → Register → Use |
| Plugin | Plugin host users | Compatibility → Install → Config → Use |
| SDK | API consumers | Auth → Install → First request → Response handling |
| Internal shared package | Team members | Purpose → Install → Integration → Dev workflow |
Read and verify files that define actual package behavior (confirm each claim against the source — never paraphrase from memory):
composer.json, package.json, pyproject.toml, Cargo.toml, go.mod, or *.gemspec — name, description, requirements, scriptsCHANGELOG.md / releases — current state, breaking changesExtract: package name, purpose, install command, runtime requirements, supported versions, public API, setup steps, test/lint commands.
Priority order for packages:
Skip sections that have no real content. Never pad.
State only what is tested and supported. Pull the values from the package's manifest, not from memory. Examples per stack:
## Requirements (PHP)
- PHP ^8.2
- Laravel 11.x (optional integration)
- ext-json
## Requirements (JS / TS)
- Node.js >= 20
- TypeScript >= 5.4 (for typed consumers)
- npm / pnpm / yarn / bun
## Requirements (Python)
- Python >= 3.11
- pip / poetry / uv
- Optional: `fastapi >= 0.110` for the FastAPI integration
## Requirements (Go)
- Go >= 1.22
## Requirements (Rust)
- Rust >= 1.78 (stable)
- `cargo` workspace member or standalone crate
## Requirements (Ruby)
- Ruby >= 3.2
- Bundler >= 2.5
- Optional: Rails 7.1+ for the Rails integration
Do NOT imply broad compatibility if only tested in a narrow range. Include language version, framework version, required extensions, and services.
Document the exact install command and any required follow-up. Use the package manager native to the stack — never edit manifests by hand.
# PHP / Composer
composer require vendor/package
# Optional Laravel integration:
php artisan vendor:publish --tag=package-config
# JS / TS — pick whichever the consumer uses
npm install <package>
pnpm add <package>
yarn add <package>
bun add <package>
# Python
pip install <package>
poetry add <package>
uv add <package>
# Go
go get github.com/<owner>/<package>@latest
# Rust
cargo add <package>
# Ruby
bundle add <package>
# or, for a standalone gem:
gem install <package>
Validate each step against the actual codebase. Include post-install steps (config publish, service / module / provider registration, env vars, codegen, migrations) if the package requires them.
This is the most critical section. Rules:
Bad: abstract, large, requires unexplained setup. Good: 5-15 lines, directly relevant, immediately runnable.
Move deep content to dedicated docs. Recommended layout for packages:
README.md ← entry: what, why, install, minimal usage
docs/
installation.md ← full install matrix, post-install steps
usage.md ← extended examples, common patterns
architecture.md ← internal design, decisions
api.md ← full API reference
migration.md ← version upgrade guides
For multi-platform install (> 5 variants), prefer a single table with
deep links over stacked inline blocks. For occasionally-needed detail
(long platform quirks, troubleshooting), use <details> — never for
install, first example, or requirements.
→ See docs/guidelines/docs/readme-size-and-splitting.md for thresholds,
deep-link-table pattern, collapsibles, and anti-patterns (premature
splitting, duplication between README and /docs/).
For packages that target many AI assistants or platforms (CLI installers, agent-config tools, language SDKs with 10+ targets), prefer a flat per-AI catalog over a giant matrix. One line per target, install command on the left, aligned trailing comment naming the platform:
npx <package> init --tools=claude-code # Claude Code
npx <package> init --tools=cursor # Cursor
npx <package> init --tools=windsurf # Windsurf
# ... one line per supported target
Pair the catalog with a separate "Global install" subsection (same flags
plus --global) and an "Other commands" subsection. Reference example:
README.md § Pick specific AIs in
this repository — or any well-structured external skill README that
lists per-target install commands in a flat catalog.
Use the catalog when the package's primary install action varies by platform; use a matrix table (Tool / Rules / Skills / Commands) for capability comparison. They serve different jobs — install vs. coverage.
README = enough to adopt. Docs = enough to master.
For every internal link in the new draft:
test -f files, test -d directories. Strip
#anchor and ?query before the check.kept / added /
dropped. For every dropped target, search the rest of the repo
(grep -r over AGENTS.md, docs/, dist/agent-src*/, packages/).
No other reference → mark orphan-candidate.Surface the orphan-candidate list to the user — never delete silently.
composer.json, package.json, pyproject.toml, Cargo.toml, go.mod, *.gemspec) and the CI matrix/docs/kept / added / dropped with orphan-candidates flaggedcomposer.json, package.json, pyproject.toml, Cargo.toml, go.mod, *.gemspec) and source, not the old proseApply the Frugality Charter to every package README you author.
Examples in this artifact:
CHANGELOG.md.Pre-save self-check:
→ Final prose pass for audience-facing output: humanizer — remove AI-writing tells before delivery.
Alternatives
event4u-app/agent-config
ONLY when user asks for single-pass tech-stack detection or `agents/evidence/analysis/` write-up. Deep multi-pass audit → `universal-project-analysis`. Raw primitives → `project-analysis-core`.
MoizIbnYousaf/marketing-cli
Build applications and agents with Exa's API Platform: search, contents, answer, context, Agent API, monitors, websets, OpenAI-compatible endpoints, and exa-py / exa-js. Use when choosing Exa endpoints, writing Exa API calls, integrating semantic web search or research into products, or debugging Exa request shapes. Load references/ on demand for endpoint details.
MoizIbnYousaf/marketing-cli
Build an organic-traffic operating system for any site or app: a multi-phase, resumable engine that ships programmatic landing pages (alternatives, comparisons, use-cases, playbooks) on top of real keyword research. Use when the user says 'SEO machine', 'build organic traffic', 'rank on Google', 'we need traffic', 'alternatives pages', 'comparison pages', '/for/ pages', 'programmatic SEO', or 'build an SEO engine'. Distinct from `seo-audit` (one-off diagnostic) and `seo-content` (single-article
K-Dense-AI/scientific-agent-skills
Core Python library for astronomy and astrophysics workflows that need Astropy APIs, including units/quantities, coordinates, FITS I/O, tables, time systems, WCS, and cosmology. Use when implementing or debugging astronomical data analysis code with Astropy.