Guide for creating effective fx/cc marketplace plugins. This skill should be used when users want to create a new Claude Code plugin (or update an existing plugin) for the fx/cc marketplace that extends Claude's capabilities with specialized agents, skills, commands, or hooks.
/plugin marketplace add fx/cc/plugin install fx-meta@fx-ccThis skill inherits all available tools. When active, it can use any tool Claude has access to.
references/fx-cc-guidelines.mdThis skill provides guidance for creating high-quality plugins for the fx/cc Claude Code marketplace.
Plugins are structured packages that extend Claude Code's capabilities by bundling related components:
All plugin development work defaults to: ~/.claude/plugins/marketplaces/fx-cc/
This is the local clone of the fx/cc marketplace repository where all plugins reside.
To create an effective plugin, gather concrete examples of how it will be used:
Example questions to ask:
Example for fx-git plugin:
Conclude when there's a clear understanding of:
Analyze examples to determine:
Follow fx/cc naming conventions (see references/fx-cc-guidelines.md):
fx- prefixfx-git, fx-aws, fx-docsDecide whether to:
Skills - When to include:
Agents - When to include:
Commands - When to include:
Hooks - When to include:
Navigate to the fx/cc marketplace and create plugin directory:
cd ~/.claude/plugins/marketplaces/fx-cc/plugins
# Create plugin directory structure
mkdir -p fx-plugin-name/.claude-plugin
# Create plugin.json manifest
cat > fx-plugin-name/.claude-plugin/plugin.json <<'EOF'
{
"name": "fx-plugin-name",
"version": "0.1.0",
"description": "Clear description of what this plugin does"
}
EOF
# Create component directories as needed
cd fx-plugin-name
mkdir -p skills agents commands hooks
Directory structure:
~/.claude/plugins/marketplaces/fx-cc/plugins/fx-plugin-name/
├── .claude-plugin/
│ └── plugin.json
├── skills/ (if needed)
├── agents/ (if needed)
├── commands/ (if needed)
├── hooks/ (if needed)
└── README.md
Create skill directories with SKILL.md:
mkdir -p skills/skill-name
cat > skills/skill-name/SKILL.md <<'EOF'
---
name: skill-name
description: When this skill should be used (third-person, specific)
---
# Skill Name
Instructions using imperative/infinitive form.
## Usage
How to use this skill and reference bundled resources.
EOF
See skill-creator skill for detailed skill development guidance.
Create agent markdown files:
cat > agents/agent-name.md <<'EOF'
---
name: agent-name
description: What this agent does and when to use it
model: sonnet # Optional: sonnet (default), opus, haiku
---
Agent instructions and behavior.
Usage examples showing when to invoke this agent.
EOF
Agent reference pattern: @agent-fx-plugin-name:agent-name
Create command files (markdown or shell):
# Markdown command
cat > commands/command-name.md <<'EOF'
---
name: command-name
description: What this command does
---
Command implementation and documentation.
EOF
# Or shell script
cat > commands/command-name.sh <<'EOF'
#!/bin/bash
# Command implementation
EOF
chmod +x commands/command-name.sh
Create hooks configuration:
cat > hooks/hooks.json <<'EOF'
{
"PreToolUse": {
"command": "bash -c 'echo \"Pre-tool hook\"'",
"timeout": 5000
}
}
EOF
Create comprehensive README.md:
# Plugin Name
Brief description of plugin purpose.
## Installation
\`/plugin install fx-plugin-name\`
## Components
### Skills (if applicable)
- **skill-name** - Auto-invoked when [trigger condition]
### Agents (if applicable)
- **agent-name** - Use via \`@agent-fx-plugin-name:agent-name\` for [purpose]
### Commands (if applicable)
- \`/command-name\` - [What it does]
## Usage Examples
[Concrete examples of using each component]
## Configuration
[Any settings or environment variables]
## Contributing
[Development and testing instructions]
Update ~/.claude/plugins/marketplaces/fx-cc/.claude-plugin/marketplace.json:
cd ~/.claude/plugins/marketplaces/fx-cc
# Edit marketplace.json to add new plugin entry
# Add to "plugins" array:
{
"name": "fx-plugin-name",
"source": "./plugins/fx-plugin-name"
}
Example using jq:
jq '.plugins += [{"name": "fx-plugin-name", "source": "./plugins/fx-plugin-name"}]' \
.claude-plugin/marketplace.json > /tmp/marketplace.json && \
mv /tmp/marketplace.json .claude-plugin/marketplace.json
Validate structure:
cd ~/.claude/plugins/marketplaces/fx-cc/plugins/fx-plugin-name
# Validate JSON
jq empty .claude-plugin/plugin.json
# Check frontmatter in components
grep -r "^---$" skills/ agents/ commands/ || echo "No frontmatter found"
Test functionality:
/agents list and invoke via Task toolGit workflow:
cd ~/.claude/plugins/marketplaces/fx-cc
# Create feature branch
git checkout -b feat/fx-plugin-name
# Stage changes
git add plugins/fx-plugin-name .claude-plugin/marketplace.json
# Commit with semantic message
git commit -m "feat(fx-plugin-name): add plugin for [purpose]"
# Push for review
git push -u origin feat/fx-plugin-name
After testing:
Pattern: fx-{domain}
Pattern: fx-{utility-type}
Pattern: fx-{meta-purpose}
Critical: All operations default to ~/.claude/plugins/marketplaces/fx-cc/
When creating, editing, or managing plugins, always work from this directory unless explicitly specified otherwise.
Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.
Applies Anthropic's official brand colors and typography to any sort of artifact that may benefit from having Anthropic's look-and-feel. Use it when brand colors or style guidelines, visual formatting, or company design standards apply.
Create beautiful visual art in .png and .pdf documents using design philosophy. You should use this skill when the user asks to create a poster, piece of art, design, or other static piece. Create original visual designs, never copying existing artists' work to avoid copyright violations.