All skills
wordpress avatar

/wp-plugin-directory-guidelines

@20324d2 official
by wordpresswordpress/agent-skills2.2k stars
327

Use when reviewing WordPress plugins for GPL compliance, checking license headers or compatibility, evaluating upsell/freemium/trialware patterns, validating plugin naming or trademark rules, checking plugin slugs, understanding why a plugin was rejected from WordPress.org, or answering any question about the 18 WordPress.org Plugin Directory guidelines — even if the user doesn't mention 'guidelines' explicitly.

Use this Skill: https://skilld.dev/gh/wordpress/agent-skills/wp-plugin-directory-guidelines

This session only. Nothing lands on disk.

referencesnaming-rules.md

≈1.8k tokens on demand. Your agent reads this file only when SKILL.md points to it.

Plugin Naming Rules (Guideline 17 + Plugin Check Namer)

Sources: Plugin Header Requirements · Detailed Plugin Guidelines §17 · Plugin Check Plugin_Header_Fields_Check, Trademarks_Check, and AI Namer prompts.

Technical Name Requirements

Rule Details Error Code
Must not use placeholder names "Plugin Name" or "My Basics Plugin" are rejected plugin_header_invalid_plugin_name
Minimum 5 alphanumeric characters Name must contain at least 5 latin letters (a–Z) or digits plugin_header_unsupported_plugin_name (new plugins only)
Name must exist in readme === Plugin Name === header required and must be valid invalid_plugin_name / empty_plugin_name
Name must match across files Readme and plugin header name must match (case/entity-decoded) mismatched_plugin_name (warning)

Slug rules: lowercase, hyphens only, max 50 characters, derived from display name.

Naming Quality Rules (AI Namer)

1. No generic names Names must be specific enough to distinguish the plugin from ~60,000 others.

  • Rejected: "Shipping", "Ecommerce Tracker", "SEO Plugin"
  • Accepted: "ShipGlex Shipping", "Shipping Tracker for UPS"
  • Exception: invented/original terms are allowed if placed at the beginning of the name

2. Name must relate to plugin function The display name must correlate with what the plugin actually does. Exception: original invented terms.

3. No keyword stuffing Unnaturally repeating keywords in the name for SEO purposes is not allowed.

4. No names too similar to existing plugins Checked against the WordPress.org Plugin Directory. If similar, suggest a distinctive term (author name, brand, or crafted term) at the beginning.

5. Trademark/project name usage rules Trademarks and project names are allowed only after connectors like for, with, using, or and:

  • ✅ "My Plugin for WooCommerce" — trademark after "for", no affiliation implied
  • ✅ "Pricing Rates for WooCommerce" — OK
  • ❌ "WooCommerce Pricing Rates" — starts with trademark, implies affiliation
  • ❌ "Nicedev Paypal for WooCommerce" — PayPal is not after a no-affiliation structure; correct form: "Nicedev Payment Gateway with PayPal for WooCommerce"
  • ❌ "PricingPress" — portmanteau using -Press (WordPress trademark)
  • Check for portmanteaus: names blending a trademark (e.g., -Press, Woo-) are not allowed

6. Banned and discouraged terms

Banned/discouraged terms cannot appear anywhere in the name — not even after for/with.

Banned Terms (hard block)
Term Reason
Facebook, FB, fbook, Whatsapp, WA, Instagram, Insta, Gram, INS, Threads, Oculus Meta legal request: no use in name, slug, or banners
WordPress, wordpess, wpress WordPress trademark; redundant in the WP.org directory
WP (as standalone/redundant, e.g., "for WP") Same as WordPress — redundant in context
Trustpilot Direct request from trademark holder
Binance Pay Direct request from trademark holder
Discouraged Terms (must be removed)
Term Reason
plugin (when redundant, e.g., "SEO Plugin") Redundant; forbidden as first word
best, #1, First, Perfect, The most Superlatives / unverifiable comparative claims
free (when redundant, e.g., "(free)") All directory plugins are free — redundant
WP, W P (at beginning or end, referring to WordPress) WordPress abbreviation — redundant
Gutenberg, gberg, guten, berg Creates confusion; block editor is the current name

Trademark Slug List (static check — Trademarks_Check)

The following slugs are statically blocked. Terms ending in - cannot begin a slug; terms without - cannot appear anywhere in the slug. woocommerce (no dash) is allowed only as for-woocommerce, with-woocommerce, using-woocommerce, or and-woocommerce.

adobe-, adsense-, advanced-custom-fields-, adwords-, akismet-,
all-in-one-wp-migration, amazon-, android-, apple-, applenews-, applepay-,
aws-, azon-, bbpress-, bing-, booking-com, bootstrap-, buddypress-,
chatgpt-, chat-gpt-, cloudflare-, contact-form-7-, cpanel-, disqus-, divi-,
dropbox-, easy-digital-downloads-, elementor-, envato-,
fbook, facebook, fb-, fb-messenger, fedex-, feedburner, firefox-,
fontawesome-, font-awesome-, ganalytics-, gberg, github-, givewp-, google-,
googlebot-, googles-, gravity-form-, gravity-forms-, gravityforms-, gtmetrix-,
gutenberg, guten-, hubspot-, ig-, insta-, instagram, internet-explorer-,
ios-, jetpack-, macintosh-, macos-, mailchimp-, microsoft-,
ninja-forms-, oculus, onlyfans-, only-fans-, opera-, paddle-, paypal-,
pinterest-, plugin, skype-, stripe-, tiktok-, tik-tok-, trustpilot,
twitch-, twitter-, tweet, ups-, usps-, vvhatsapp, vvcommerce, vva-, vvoo,
wa-, webpush-vn, wh4tsapps, whatsapp, whats-app, watson, windows-,
wocommerce, woocom-, woocommerce, woocomerce, woo-commerce, woo-, wo-,
wordpress, wordpess, wpress, wp, wc, wp-mail-smtp-, yandex-, yahoo-,
yoast, youtube-, you-tube-

Portmanteaus also blocked: any slug starting with woo (case-insensitive) — e.g., woopress, wooland.

Naming Examples

Plugin Name Verdict Reason
Shipping ❌ Too generic
Ecommerce Tracker ❌ Too generic, no context
Shipping Tracker for UPS ✅ Descriptive + context
ShipGlex Shipping ✅ Invented term at beginning
WooCommerce Pricing Rates ❌ Starts with trademark
Pricing Rates for WooCommerce ✅ Trademark after "for"
PricingPress ❌ -Press portmanteau
PRT Text editor for WP ❌ WP is banned/redundant; correct: PRT Text editor
Nicedev Paypal for WooCommerce ❌ PayPal not after no-affiliation structure
Nicedev Payment Gateway with PayPal for WooCommerce ✅ Correct structure
Best SEO Plugin for WordPress ❌ Superlative + banned terms
My Free Slider ❌ "free" is redundant/discouraged

Naming Review Checklist (pre-submission)

  • Name is not a placeholder (Plugin Name, My Basics Plugin)
  • Name has at least 5 alphanumeric characters
  • Name matches between plugin header and readme
  • Name is specific — not too generic for 60,000+ plugins
  • Name relates to what the plugin actually does
  • No keyword stuffing
  • No banned terms anywhere (Meta brands, WordPress/WP redundant, Trustpilot, Binance Pay)
  • No discouraged terms (Plugin, Best/#1, Free, Gutenberg, standalone WP)
  • Trademarks/project names only appear after for/with/using/and
  • No portmanteaus using WordPress or WooCommerce trademarks
  • Slug is lowercase, hyphens only, max 50 chars, no blocked terms

Source: SKILL.md on GitHub

No alerts16d3 checks · Risk SAFE
  • Gen Agent Trust Hub16d

    This skill is a security auditing tool for WordPress plugins, providing checklists for GPL compliance, naming rules, and directory guidelines. It is designed to help identify potential violations such as obfuscated code or unauthorized data collection. No malicious behavior was detected within the skill's instructions or references.

  • Socket16d

    No alerts

  • Snyk16d

    Risk: LOW · No issues

Signed by skilld at 20324d2. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub 2 days ago.

Activeupdated 3 months ago
compatibility
Targets WordPress 7.0+ (PHP 7.4.0+).
  • wordpress
  • gpl
  • licensing
  • plugin-compliance
  • trademark
  • wordpress-org
  • php
  • plugin-directory

README badge

README badge for wordpress/agent-skills/wp-plugin-directory-guidelines

Authoritative reference for the 18 WordPress.org Plugin Directory guidelines covering GPL licensing, plugin naming, trademark rules, trialware restrictions, and submission requirements. Use this skill to audit plugins for compliance before WordPress.org submission, verify GPL header validity and license compatibility, or answer questions about what is allowed in the plugin directory.

Generated from the current SKILL.md.

Does this skill cover all 18 WordPress.org Plugin Directory guidelines?
Yes. The skill is an authoritative reference for all 18 guidelines, with detailed checklists and specific procedures for GPL compliance, naming rules, trialware restrictions, and submission requirements.
What license headers does WordPress.org accept?
WordPress.org accepts GPL-2.0-or-later, GPL-3.0-or-later, or GPLv2/GPLv3 or later formats, with a corresponding License URI header pointing to the GPL text.
Does this help identify why a plugin was rejected from WordPress.org?
Yes. The skill guides you through the 18-guideline checklist to identify common violations (GPL incompatibility, trialware patterns, trademark issues, obfuscation) that typically cause rejections.
Can I use MIT or BSD licensed libraries in my WordPress plugin?
Yes, MIT, BSD, ISC, zlib, and Boost are commonly accepted as GPL-compatible. For conditional licenses like Apache-2.0 or MPL-2.0, the skill provides detailed compatibility guidance.
What counts as trialware and violates the guidelines?
The skill includes a trialware checklist covering premium upsells, freemium flows, license checks, and teaser UI. It flags patterns that restrict core functionality based on payment or licensing.

Generated from the current SKILL.md. These answers refresh after source changes.