Skip to content

Plugin Authoring Guide

This guide walks you through creating a new division plugin for the Seer Agent Engine system.

Who this is for

  • Practitioners: Skip this and start with Quickstart.
  • Builders: Continue for plugin structure, commands, and skills.

Overview

A division plugin (e.g., SEO, Analytics, Paid Media) is a domain-specific extension that provides specialized workflows and methodologies. All division plugins are "thin", meaning they inherit shared standards and activation logic from core-dependencies.

1. Directory Structure

Create the following structure for your new division:

mkdir -p plugins/divisions/{division}/.claude-plugin
mkdir -p plugins/divisions/{division}/commands
mkdir -p plugins/divisions/{division}/skills/{division}-methods/resources

Last updated: 2026-01-26

2. Manifest Setup

Every plugin must have a plugin.json manifest. The most critical requirement is declaring the dependency on core-dependencies.

Create plugins/divisions/{division}/.claude-plugin/plugin.json:

{
  "name": "your-division-name",
  "version": "1.0.0",
  "description": "Domain-specific workflows for {division}",
  "dependencies": {
    "plugins": [
      {
        "name": "core-dependencies",
        "version": ">=1.0.0",
        "required": true
      }
    ]
  }
}

OpenCode Manifest (Optional)

If you want explicit OpenCode metadata, add:

plugins/divisions/{division}/.plugin/manifest.json

{
  "$schema": "https://opencode.ai/plugin-manifest-schema.json",
  "name": "{division}",
  "version": "1.0.0",
  "description": "Domain-specific workflows for {division}",
  "dependencies": {
    "plugins": [
      {
        "name": "core-dependencies",
        "version": ">=1.0.0",
        "required": true
      }
    ]
  }
}

3. Creating Commands

Commands are the primary way users interact with your plugin. Each command should represent a single, clear deliverable.

  • Path: plugins/divisions/{division}/commands/{command}.md
  • Discovery: Use the /utils:help and /utils:commands pattern (copy from the SEO plugin).

Command Frontmatter Template

---
name: command-name
description: "Brief one-line description for discovery"
skills: [division-methods]
mcp: [optional-dependencies]
version: 1.0.0
---

# Command Title

[Workflow instructions for the agent]

4. Creating Skills

Skills define the mental models and domain standards for your division.

  • Path: plugins/divisions/{division}/skills/{division}-methods/SKILL.md
  • Pattern: Keep the main skill file under 500 lines. Use the resources/ directory for deep-dive methodologies.

Detailed Skill Authoring Guide

For comprehensive skill creation including manual authoring, skill-seekers CLI automation, trigger types, and troubleshooting, see Creating Skills.

Quick Start: Skill Activation

To enable automatic activation, add a skill-rules-fragment.json to your skill directory:

{
  "{division}-methods": {
    "type": "domain",
    "enforcement": "suggest",
    "priority": "high",
    "promptTriggers": {
      "keywords": ["keyword1", "keyword2"],
      "intentPatterns": ["(action).*(topic)"]
    },
    "fileTriggers": {
      "pathPatterns": ["**/division-specific-path/**"]
    }
  }
}

5. Golden Rules for Builders

  1. Don't Duplicate Standards: If it's about tone, quality, or general writing, it belongs in core-dependencies.
  2. One Command = One Deliverable: Avoid "god commands" that do everything. Split them into logical outputs.
  3. Graceful Degradation: If your command requires an MCP server, check for its availability first and provide clear instructions if it's missing.
  4. Use Subagents for Heavy Lifting: If a task requires processing massive amounts of data or parallel work, delegate it to a subagent.

6. Testing Your Plugin

  1. Load for development: Use --plugin-dir flag to test locally:
    claude --plugin-dir ./plugins/divisions/{your-division}
    
  2. Verify commands: Run /your-division:command-name to test
  3. Check skills load: Watch for skill activation prompts
  1. Register the Plugin: Add it to .claude-plugin/marketplace.json.
  2. Start OpenCode: It will auto-discover plugins in plugins/divisions/
  3. Run End-to-End: Execute your commands and verify the output

7. Distributing Your Plugin

Once tested, add your plugin to the marketplace for others to install:

  1. Update marketplace.json: Add an entry in .claude-plugin/marketplace.json
  2. Users can then install via:
    /plugin marketplace add seerinteractive/agents-infra
    /plugin install {your-plugin}@seer-agent-core
    

Reference Implementation

See plugins/divisions/seo/ for the production-standard implementation of this architecture.