skills / wp-readme-optimizer
AGENTS.md100 starsChanged 7 months agoMITView on GitHub
Detailed rewrite guidance for Phase 2 (Rewrite). Read this file when producing the rewritten readme.txt. The parent SKILL.md has the workflow and audit checklist. These rules apply to every rewrite: The plugin name line (=== Plugin Name ===) is the H1 of the listing page and carries the most search weight. This is the single highest-leverage string in the entire readme. It appears in search results and on the plugin card. The long description is the body of the listing…
Where files are headingNew AGENTS.md files have more rules about keeping secrets out of the code, and fewer about code style.
Of the AGENTS.md files we read, the 31,774 first seen in the last six months, against the older ones: the kind of rule that gained most share, and the kind that lost most. About files like this in general, not this one, and an estimate, since a kind is a pattern in the words.
In this repository17 other files it gives its agents.
- astro-seo/AGENTS.mdAGENTS.md
- github-profile/AGENTS.mdAGENTS.md
- github-repo/AGENTS.mdAGENTS.md
- static-seo/AGENTS.mdAGENTS.md
- wp-static-clone/AGENTS.mdAGENTS.md
- astro-github-actionsSkill
- astro-seoSkill
- content-seoSkill
- emdash-github-actionsSkill
- github-profileSkill
- github-repoSkill
- metadata-checkSkill
- readability-checkSkill
- static-seoSkill
- wp-github-actionsSkill
- wp-readme-optimizerSkill
- wp-static-cloneSkill
The file
Show its rules and text
We split this AGENTS.md into the rules it gives an agent
26 rules. About 1 is common, 16 are distinctive, and 9 are very specific to this project.
≈1
Common · estimate
Many files like this have a rule of this kind.
≈16
Distinctive · estimate
This author's own choices. Worth a look.
9
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 24
If the original name is a brand-only name (e.g.
- Distinctive: line 25
If the name already contains the primary keyword, leave it.
- Distinctive: line 26
Use exactly 5 tags. Pick the highest-volume terms that directly describe what the plugin does.
- Distinctive: line 36
No period at the end (convention, not a rule — but most top plugins skip it).
- Distinctive: line 37
Avoid: "powerful", "easy", "best", "ultimate", "simple", "lightweight".
- Very specific: line 52
Use an H2 heading: == Features == or == What you get ==.
- Distinctive: line 59
If the plugin has notable stats (active installs, star rating, notable users), weave them in.
- Distinctive: line 60
Don't fabricate stats. If the original readme doesn't mention installs or reviews, leave this out.
- Very specific: line 64
If there's a Pro version, docs site, or demo, link to it with a clear CTA.
- Distinctive: line 65
Place the CTA after the features section, not before.
- Very specific: line 73
Use == Heading == for H2, = Subheading = for H3 (WordPress.org readme syntax, not standard Markdown).
- Very specific: line 74
Use bold for emphasis, backticks for code references.
- Distinctive: line 75
Keep paragraphs short — 2-4 sentences max.
- Distinctive: line 79
Keep installation steps short and standard.
- Distinctive: line 84
Search for "[Plugin Name]".
- Common: line 96
If the plugin requires configuration after activation (settings page, API key, wizard), add a step: "5.
- Distinctive: line 97
If no configuration is needed, add: "The plugin works out of the box — no configuration required."
- Distinctive: line 103
Write questions the way a user would phrase them, not the way a developer would: "How do I stop spam submissions?" not "What anti-spam …
- Distinctive: line 105
Keep answers concise — 1-3 sentences.
- Distinctive: line 108
If the original readme has no FAQ, don't invent fake questions.
- Distinctive: line 121
If the original readme has screenshots, improve the captions.
- Very specific: line 129
Don't invent screenshot filenames for screenshots that don't exist.
- Very specific: line 133
Keep the most recent 3-5 versions in the readme.
- Very specific: line 134
Use the format = X.X.X = with bullet points underneath.
- Very specific: line 135
Write entries that communicate user value: * Fix: Contact form no longer loses submissions when the page is cached beats * Fixed caching …
- Distinctive: line 137
Don't rewrite changelog entries that are factually accurate — only improve clarity and formatting.
≈ “Common” is an estimate: at least 1 in 5 of the 40,246 AGENTS.md files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
WordPress Plugin readme.txt Optimizer — Rewrite recipes
Detailed rewrite guidance for Phase 2 (Rewrite). Read this file when producing the rewritten readme.txt. The parent SKILL.md has the workflow and audit checklist.
Rewrite rules
These rules apply to every rewrite:
- Preserve all factual content — don't invent features, screenshots, or version numbers that weren't in the original.
- Improve, don't fabricate — if a section is missing (e.g. no FAQ), write a placeholder with
<!-- TODO: add real questions from your support forum -->rather than making things up. - Keep the exact readme.txt format — WordPress.org uses a specific Markdown-like syntax. Follow it precisely (see Format Reference below).
- Apply every audit finding — the rewrite should address every issue flagged in Phase 1.
- Keyword discipline — use the primary keyword in: plugin name (if it fits), short description, first paragraph of long description, at least one FAQ question, and screenshot captions. Don't keyword-stuff; natural usage only.
- Tone — professional but human. Write for the person installing the plugin, not for the developer who built it.
Section-by-section writing guidance
Plugin Name & Tags
The plugin name line (=== Plugin Name ===) is the H1 of the listing page and carries the most search weight.
- If the original name is a brand-only name (e.g. "Flavius"), append a dash and a keyword descriptor:
=== Flavius – Contact Form Builder ===. Keep the full string under ~60 characters. - If the name already contains the primary keyword, leave it. Don't double up.
- Use exactly 5 tags. Pick the highest-volume terms that directly describe what the plugin does. Avoid meta-tags like "widget" or "admin" unless the plugin is literally a widget or admin tool.
- Order tags by relevance — the first tag carries slightly more weight.
Short Description
This is the single highest-leverage string in the entire readme. It appears in search results and on the plugin card.
- Lead with a benefit or outcome, not the plugin name or a feature list. Bad: "A powerful plugin for forms." Good: "Add spam-free contact forms to any page in under a minute."
- Stay under 150 characters — hard limit, WordPress.org truncates after that. Aim for 120-140 to leave margin.
- Include the primary keyword naturally, ideally in the first half of the sentence.
- No period at the end (convention, not a rule — but most top plugins skip it).
- Avoid: "powerful", "easy", "best", "ultimate", "simple", "lightweight". These are noise words that every plugin uses.
- One concrete claim is worth more than three vague adjectives.
Long Description
The long description is the body of the listing page. Structure it for scanning — most visitors won't read every word.
First paragraph (the hook):
- Lead with the user's problem or desired outcome, not the plugin's history or technical architecture.
- Include the primary keyword in the first 150 words.
- This paragraph should answer: "Why should I install this instead of the other five plugins that showed up in search?"
Features section:
- Use an H2 heading:
== Features ==or== What you get ==. - Present features as benefits with bullet points. Bad:
* SMTP support. Good:* **Reliable email delivery** — route messages through any SMTP server so nothing lands in spam. - Bold the benefit at the start of each bullet, then explain in plain text.
- Group related features under H3 subheadings if the list is long (8+ items).
Social proof:
- If the plugin has notable stats (active installs, star rating, notable users), weave them in. A standalone line like "Trusted by 50,000+ sites" near the top is more effective than burying it in a paragraph.
- Don't fabricate stats. If the original readme doesn't mention installs or reviews, leave this out.
Call to action:
- If there's a Pro version, docs site, or demo, link to it with a clear CTA. Use Markdown links:
[View the demo](https://example.com). - Place the CTA after the features section, not before.
Secondary keywords:
- Weave them into headings, feature bullets, and the closing paragraph. Don't force them — if a keyword doesn't fit naturally, skip it.
Formatting:
- Use
== Heading ==for H2,= Subheading =for H3 (WordPress.org readme syntax, not standard Markdown). - Use
**bold**for emphasis, backticks for code references. - Keep paragraphs short — 2-4 sentences max. The listing page renders with narrow column width.
Installation
Keep installation steps short and standard. Most plugins follow the same pattern.
Automatic installation (always list first — it's what most users do):
- Go to Plugins > Add New in your WordPress dashboard.
- Search for "[Plugin Name]".
- Click Install Now, then Activate.
Manual installation:
- Download the plugin ZIP from WordPress.org.
- Go to Plugins > Add New > Upload Plugin.
- Upload the ZIP file and click Install Now.
- Activate the plugin.
Post-activation steps:
- If the plugin requires configuration after activation (settings page, API key, wizard), add a step: "5. Go to Settings > [Plugin Name] to configure."
- If no configuration is needed, add: "The plugin works out of the box — no configuration required."
FAQ
FAQs are indexed by WordPress.org search and are an excellent place for long-tail keywords.
- Write questions the way a user would phrase them, not the way a developer would: "How do I stop spam submissions?" not "What anti-spam mechanisms does this plugin implement?"
- Each question gets its own
= Question here? =block. - Keep answers concise — 1-3 sentences. If the answer needs more, link to documentation.
- Include at least one question that addresses a common objection: compatibility, performance impact, data privacy, or pricing.
- Include at least one question containing the primary keyword.
- If the original readme has no FAQ, don't invent fake questions. Instead, add a placeholder:
== Frequently Asked Questions ==
<!-- TODO: Add 3-5 real questions from your WordPress.org support forum. Common topics to cover: compatibility with popular themes/plugins, performance impact, data handling, and how to get support. -->Screenshots
Screenshot captions are indexed by WordPress.org search — they're SEO content, not just accessibility labels.
- Each caption should describe what the user sees AND include a relevant keyword: "1. The contact form editor — drag and drop fields to build your form" (not just "1. Editor screen").
- If the original readme has screenshots, improve the captions. If it has no screenshots section, add a placeholder:
== Screenshots ==
<!-- TODO: Add screenshots. Recommended: (1) the main plugin interface, (2) the settings page, (3) the end-user-facing output. Name files screenshot-1.png, screenshot-2.png, etc. in the /assets/ directory. -->- Don't invent screenshot filenames for screenshots that don't exist. Captions must match actual files in the SVN
/assets/directory.
Changelog
- Keep the most recent 3-5 versions in the readme. Move older entries to a separate
changelog.txtif the list is long. - Use the format
= X.X.X =with bullet points underneath. - Write entries that communicate user value:
* Fix: Contact form no longer loses submissions when the page is cachedbeats* Fixed caching bug. - Prefix each bullet with a category:
Fix:,Feature:,Enhancement:,Security:,Deprecated:. - Don't rewrite changelog entries that are factually accurate — only improve clarity and formatting.
Stable Tag & Plugin Headers
The headers block at the top of the readme must be accurate. Don't change version numbers, contributor usernames, or license info unless you know the correct values.
Stable tag:— must match the actual latest release tag. Never change this unless you know the correct value.Tested up to:— update to the current major WordPress version if the original is outdated and the user confirms compatibility.Requires at least:— keep conservative. If the original says 5.0 and there's no reason to raise it, leave it.Requires PHP:— add if missing, using the plugin's actual minimum (checkcomposer.jsonor code for type hints that imply a version).License:— should beGPL-2.0-or-laterfor WordPress.org plugins. Add if missing.
Format Reference
The complete readme.txt structure for WordPress.org:
=== Plugin Name ===
Contributors: username
Tags: tag1, tag2, tag3, tag4, tag5
Requires at least: 6.0
Tested up to: 6.7
Stable tag: 1.2.3
Requires PHP: 7.4
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Short description here. Max 150 chars. No period at end optional.
== Description ==
Long description here. Supports basic Markdown.
Use `== Heading ==` for H2, `= Subheading =` for H3.
**Bold**, `code`, and [links](https://example.com) work.
== Installation ==
1. Step one
2. Step two
== Frequently Asked Questions ==
= Question here? =
Answer here.
== Screenshots ==
1. Caption for screenshot-1.png
2. Caption for screenshot-2.png
== Changelog ==
= 1.2.3 =
* Fix: Description of fix
* Feature: Description of new feature
== Upgrade Notice ==
= 1.2.3 =
Brief note about why users should upgrade.Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

