Skip to main content

ADR-153: Plugin Development Framework

Status

Accepted - 2026-02-03

Context

With the plugin architecture established in ADR-152, CODITECT needs a standardized framework for:

  1. Creating new plugins (from scratch or by converting existing workflows)
  2. Customizing existing plugins for enterprise needs
  3. Validating plugin quality before activation
  4. Distributing plugins through a marketplace

This ADR defines the plugin development lifecycle, tooling, and quality gates.

Decision

1. Plugin Development Lifecycle

┌──────────────────────────────────────────────────────────────────┐
│ PLUGIN DEVELOPMENT LIFECYCLE │
├──────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │ CREATE │──▶│ DEVELOP │──▶│ VERIFY │──▶│ PUBLISH │ │
│ └─────────┘ └─────────┘ └─────────┘ └─────────┘ │
│ │ │ │ │ │
│ ▼ ▼ ▼ ▼ │
│ /plugin-new Edit skills MoE judges /plugin-publish │
│ scaffolds and commands validate registers in │
│ structure quality marketplace │
│ │
└──────────────────────────────────────────────────────────────────┘

2. Plugin Creation Command

# Create new plugin from scratch
/plugin-new enterprise-analytics "Analytics and business intelligence"

# Create adapter for Anthropic plugin
/plugin-new --adapter sales "Extended sales automation"

# Convert existing workflows to plugin
/plugin-from-workflows devops --tracks C,E

# Clone and customize existing plugin
/plugin-fork coditect/sales my-sales-plugin

3. Plugin Directory Structure

plugins/enterprise/<plugin-name>/
├── plugin.json # Plugin manifest (required)
├── README.md # User-facing documentation
├── CONNECTORS.md # MCP server configuration
├── .claude-plugin/
│ └── plugin.json # Claude Code compatibility

├── skills/ # Auto-triggered capabilities
│ ├── <skill-1>/
│ │ ├── SKILL.md # CODITECT skill format
│ │ └── references/ # Optional reference docs
│ └── <skill-2>/
│ └── SKILL.md

├── commands/ # Explicit user commands
│ ├── <command-1>.md # /plugin:command-1
│ └── <command-2>.md # /plugin:command-2

├── agents/ # Optional specialized agents
│ └── <agent-1>.md

├── workflows/ # Optional workflow definitions
│ └── <workflow-1>.yaml

├── config/ # Plugin configuration
│ ├── defaults.json # Default settings
│ └── schema.json # Configuration schema

└── tests/ # Plugin tests
├── skill-tests.yaml
└── command-tests.yaml

4. Plugin Manifest Schema

{
"$schema": "https://coditect.ai/schemas/plugin-v1.json",
"name": "coditect-enterprise-analytics",
"version": "1.0.0",
"description": "Enterprise analytics and business intelligence workflows",
"author": {
"name": "CODITECT Team",
"email": "support@coditect.ai"
},
"license": "Apache-2.0",

"coditect": {
"min_version": "2.11.0",
"track": "AD",
"cef_tracks": ["I-1", "I-3", "IN-3"],
"experience_pack": "data-analyst",
"quality_score": 85,
"moe_verified": true
},

"extends": null,

"connectors": {
"required": [],
"optional": [
{
"id": "snowflake-mcp",
"description": "Snowflake data warehouse connection",
"capabilities": ["query", "schema"]
},
{
"id": "tableau-mcp",
"description": "Tableau visualization integration",
"capabilities": ["publish", "embed"]
}
]
},

"skills": [
{
"path": "skills/data-exploration/SKILL.md",
"triggers": ["analyze data", "explore dataset", "data analysis"]
},
{
"path": "skills/dashboard-builder/SKILL.md",
"triggers": ["create dashboard", "build visualization"]
}
],

"commands": [
{
"path": "commands/run-query.md",
"name": "run-query",
"description": "Execute SQL query against connected data source"
},
{
"path": "commands/refresh-metrics.md",
"name": "refresh-metrics",
"description": "Refresh business metrics from data sources"
}
],

"dependencies": {
"plugins": [],
"mcp_servers": [],
"python_packages": ["pandas", "sqlalchemy"],
"npm_packages": []
},

"configuration": {
"schema": "config/schema.json",
"defaults": "config/defaults.json"
},

"keywords": ["analytics", "bi", "data", "sql", "visualization"],

"repository": {
"type": "git",
"url": "https://github.com/coditect-ai/plugin-enterprise-analytics"
}
}

5. Quality Gates

Plugins must pass MoE verification before activation:

# Quality gate configuration
quality_gates:
required:
- manifest_valid: true
- skills_have_triggers: true
- commands_have_descriptions: true
- readme_exists: true
- min_skill_quality: 70

moe_verification:
judges:
- persona: technical_architect
focus: architecture, patterns
- persona: domain_expert
focus: domain accuracy, completeness
- persona: qa_evaluator
focus: testability, edge cases

thresholds:
min_score: 75
consensus_required: 2/3

automated_checks:
- lint_markdown
- validate_yaml_frontmatter
- check_broken_links
- verify_connector_availability

6. Plugin Commands

# Discovery
/plugin-search "sales automation" # Search marketplace
/plugin-list # List installed plugins
/plugin-info <name> # Plugin details

# Installation
/plugin-install coditect/sales # Install from marketplace
/plugin-install ./my-plugin # Install local plugin
/plugin-update <name> # Update to latest version
/plugin-uninstall <name> # Remove plugin

# Development
/plugin-new <name> <description> # Create new plugin
/plugin-validate <path> # Validate plugin structure
/plugin-test <path> # Run plugin tests
/plugin-publish <path> # Publish to marketplace

# Customization
/plugin-configure <name> # Interactive configuration
/plugin-fork <name> <new-name> # Clone for customization
/plugin-export <name> # Export as standalone

7. Plugin Customization Model

# config/customization.yaml
customization:
terminology:
# Replace generic terms with company-specific
customer: client
deal: opportunity
pipeline: forecast

branding:
company_name: "Acme Corp"
product_name: "Acme Analytics Platform"

connectors:
# Override connector configurations
crm:
provider: salesforce
instance_url: "https://acme.salesforce.com"

workflows:
# Customize workflow behavior
approval_required:
- contract_review
- large_deal_close

access_control:
# Role-based plugin access
sales_team:
- sales/*
- customer-support/escalation
engineering:
- data/*
- enterprise-search/*

8. Plugin Discovery and Marketplace

┌─────────────────────────────────────────────────────────────┐
│ CODITECT PLUGIN MARKETPLACE │
├─────────────────────────────────────────────────────────────┤
│ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ OFFICIAL │ │ COMMUNITY │ │ ENTERPRISE │ │
│ │ (Tier 1) │ │ (Tier 2) │ │ (Tier 3) │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
│ │ │ │ │
│ ▼ ▼ ▼ │
│ Anthropic 11 Community-built Org-specific │
│ CODITECT core MoE-verified Private plugins │
│ Curated quality Quality varies Custom workflows │
│ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ PLUGIN REGISTRY │ │
│ │ - Searchable index (platform.db) │ │
│ │ - Quality scores and ratings │ │
│ │ - Dependency resolution │ │
│ │ - Version management │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘

9. Workflow-to-Plugin Conversion

Convert existing CODITECT workflows to plugin format:

# Convert single workflow
/plugin-from-workflow workflows/WF-CODE-REVIEW-PIPELINE.yaml \
--output plugins/enterprise/code-review/

# Convert track workflows
/plugin-from-workflows --track C \
--output plugins/enterprise/devops/

# Bulk conversion with filtering
/plugin-from-workflows \
--track C,E,D \
--min-usage 10 \
--quality-score 75 \
--output plugins/enterprise/

Conversion mapping:

Workflow ElementPlugin Element
stepsSkills (auto-trigger)
triggersCommands (explicit)
agentsAgents directory
variablesConfiguration schema
prerequisitesDependencies

Consequences

Positive

  1. Standardized Development: Clear patterns for plugin creation
  2. Quality Assurance: MoE verification ensures consistency
  3. Easy Customization: Enterprise-friendly configuration model
  4. Discoverable: Marketplace enables plugin sharing
  5. Migration Path: Convert existing workflows to plugins

Negative

  1. Learning Curve: New development model to learn
  2. Tooling Required: Need to build /plugin-* commands
  3. Testing Overhead: Plugin tests add maintenance burden

Risks

  1. Quality Dilution: Community plugins may have varying quality
  2. Version Conflicts: Plugin dependency management complexity
  3. Security: Malicious plugins could compromise systems

Implementation Plan

Phase 1: Core Commands (Week 1)

  • Implement /plugin-new scaffolding
  • Implement /plugin-validate checker
  • Implement /plugin-list and /plugin-info

Phase 2: Development Workflow (Week 2)

  • Add MoE verification integration
  • Implement /plugin-test runner
  • Create plugin development guide

Phase 3: Conversion Tools (Week 3)

  • Implement /plugin-from-workflow converter
  • Batch conversion script for existing workflows
  • Create 10 pilot converted plugins

Phase 4: Marketplace (Week 4+)

  • Design marketplace database schema
  • Implement /plugin-search discovery
  • Build /plugin-publish workflow

References


Track: H (Framework Autonomy) Task ID: H.21.2