Agent Skills: WordPress.org Plugin Compliance

Ensures WordPress.org compliance for freemium plugins and prevents trialware violations. Reviews premium features, upsells, license keys, and teasers before WordPress.org submission. Triggers: "premium", "upsell", "freemium", "license key", "wp.org guidelines", "trialware".

UncategorizedID: bonny/wordpress-simple-history/wordpress-org-compliance

Install this agent skill to your local

pnpm dlx add-skill https://github.com/bonny/WordPress-Simple-History/tree/HEAD/.claude/skills/wordpress-org-compliance

Skill Files

Browse the full folder contents for wordpress-org-compliance.

Download Skill

Loading file tree…

.claude/skills/wordpress-org-compliance/SKILL.md

Skill Metadata

Name
wordpress-org-compliance
Description
Reviews plugin code for WordPress.org compliance and trialware violations. Use when checking premium features, upsells, or license keys before submission.

WordPress.org Plugin Compliance

Ensures WordPress.org compliance for free vs premium code and upselling.

Core Rule: No Locked Code

Golden Rule: All code in WordPress.org plugins must be free and fully functional.

  • Every feature works completely without a license key
  • No trial periods or usage limits
  • No features requiring payment to unlock

Quick Reference

Not Allowed

  • Trial periods or time limits
  • Usage quotas or artificial limits
  • License keys for local features
  • Disabled features requiring payment
  • Intrusive nag screens

Allowed

  • Informational upselling (non-intrusive)
  • Separate premium plugin from your site
  • Feature detection (not restriction)
  • Comparison tables and teasers
  • Disabled form previews for premium-only features

Key Patterns

// ❌ WRONG: Feature Restriction
if ( ! $this->is_premium() ) {
    echo 'Premium required';
    return;
}

// ✅ CORRECT: Feature Detection
$this->show_basic_export();
if ( $this->has_premium_addon() ) {
    do_action( 'sh_premium_export_options' );
}

// ❌ WRONG: Artificial Limits
$limit = $this->is_premium() ? 10000 : 100;

// ✅ CORRECT: No Artificial Limits
$limit = apply_filters( 'sh_event_limit', 10000 );

Compliance Checklist

  • [ ] All features work without license key
  • [ ] No trial periods or time limits
  • [ ] No usage quotas
  • [ ] Upselling is informational, not obstructive
  • [ ] Free version provides real value

Detailed Information

Resources

The Simple Rule: If it's in the WordPress.org version, it must work completely without payment.