Claude Plugin Description Restrictions: Complete Rules from the Anthropic Community Repository

Claude plugin descriptions must be concise, human-readable sentences that avoid brand names, aggressive verbs, copyrighted content, PII, and clearly define trigger phrases and scope boundaries.

The anthropics/claude-plugins-community repository enforces strict content guidelines for plugin descriptions across all SKILL.md files and marketplace manifests. These restrictions ensure plugins pass automated validation in the CI pipeline and comply with Anthropic's moderation policies.


Length and Formatting Requirements

Plugin descriptions must fit the marketplace UI as short, single-line statements.

In tres-finance-plugin/skills/testdino-sessions/SKILL.md, the description follows this pattern:

description: Use when the user wants to browse, inspect, create, or update exploratory testing sessions in TestDino.

This format—one sentence, action-oriented, starting with "Use when..."—appears consistently across the repository. Descriptions that exceed reasonable length or use multi-line formatting will fail validation in .github/workflows/validate-plugins.yml.


The quickdesign/skills/quickdesign/references/brand-and-moderation.md file codifies specific restrictions:

  • No literal brand adjacency: Avoid placing the word "brand" next to product descriptions
  • No copyrighted works: Descriptions cannot reference protected intellectual property
  • No aggressive verbs: Language implying violence, destruction, or policy-violating actions must be softened

The moderation guide explicitly instructs developers to "search the prompt for aggressive verbs and soften them" before submitting plugins.


Personal and Sensitive Data Restrictions

Descriptions must exclude:

  • Personal identifiable information (PII)
  • Secrets or API keys
  • Private organizational data

While no single file states this rule in isolation, the validation workflow enforces it across all plugin manifests. Any description containing suspected sensitive data triggers a CI failure.


Trigger Phrase Clarity and Scope Definition

Every SKILL.md must enumerate natural-language trigger phrases without overlapping unrelated skills.

From tres-finance-plugin/skills/tres-report-create/SKILL.md:

description: Use when the user wants to create, generate, export, or run a report in Tres Finance.

triggers:
  - create a report
  - generate a report
  - export
  - run a report
  - pull a report

The tres-finance-plugin/skills/tres-upload-tx-header-validation/SKILL.md demonstrates explicit negative scope:

description: Use when the user wants to validate transaction headers in a CSV file for upload to Tres Finance. Do NOT trigger for contacts import CSV or any other non-transactional upload.

This positive and negative scope definition prevents accidental plugin invocation.


Automated Enforcement via CI Pipeline

The repository validates all restrictions through .github/workflows/validate-plugins.yml. This workflow runs a validation script that checks:

  1. Description length and formatting
  2. Prohibited term detection
  3. Trigger phrase uniqueness across skills
  4. Schema compliance for .claude-plugin/marketplace.json

Pull requests cannot merge until this validation passes.


Key Files Governing Description Rules

File Path Purpose
SKILL.md (per skill) Contains the description: field and triggers: list
quickdesign/skills/quickdesign/references/brand-and-moderation.md Moderation policy for brand and language restrictions
.github/workflows/validate-plugins.yml CI enforcement of all description constraints
.claude-plugin/marketplace.json Root marketplace schema validated against same rules

Summary

  • Keep descriptions concise: Single-sentence, UI-friendly format starting with "Use when..."
  • Exclude prohibited content: No brands, copyrighted works, aggressive verbs, or sensitive data
  • Define triggers explicitly: List all natural-language phrases that should invoke the plugin
  • State negative scope: Clearly indicate what the plugin does not handle
  • ** Pass CI validation**: All descriptions are checked automatically before merge

Frequently Asked Questions

What happens if my plugin description violates the restrictions?

The CI validation workflow in .github/workflows/validate-plugins.yml blocks your pull request. The validation script outputs specific errors indicating which restriction was violated—length, prohibited terms, or schema mismatch.

Can I use product names in my Claude plugin description?

Only generic references. The brand-and-moderation.md guide prohibits placing "brand" adjacent to product descriptions and warns against literal brand mentions that could trigger moderation flags.

How specific must trigger phrases be in the description?

Each SKILL.md requires a dedicated triggers: list separate from the description. The description should summarize intent while triggers enumerate exact phrases. Overlap with unrelated skills causes validation failures.

Where is the root marketplace configuration stored?

The .claude-plugin/marketplace.json file at repository root contains top-level metadata. Its schema undergoes the same description validation as individual SKILL.md files.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →