View complete guide path

Claude Plugins: A Complete Practical and Architect-Level Guide

Scope and terminology note: In the current Claude ecosystem, plugins are installable packages that bundle reusable Claude capabilities for a particular domain or workflow. Depending on the Claude product and release, a plugin may package skills, subagents, connectors/MCP integrations, prompts, scripts, configuration, or other reusable assets. This guide focuses primarily on the plugin model used with Claude Code and related Claude workflows, while distinguishing plugins from MCP servers, skills, hooks, and standalone extensions. Anthropic describes plugins as installable packages that can bundle skills, subagents, and connectors for a specific job. (Anthropic)


1. Executive Summary

What are Claude plugins?

A Claude plugin is a distributable package that extends Claude with a coherent set of capabilities for a particular type of work.

Instead of configuring every capability individually, a plugin can provide a preassembled unit containing things such as:

A useful mental model is:

A plugin is a deployable capability package for Claude.

For example, instead of individually configuring:

you could package these capabilities as a single Security Engineering plugin.


Why were plugins created?

As AI agents become capable of performing increasingly complex work, configuring them purely through one large system prompt becomes difficult.

Organizations need reusable ways to package:

  1. Knowledge
  2. Behavior
  3. Workflows
  4. Tool integrations
  5. Specialized agent roles
  6. Operational guardrails

Plugins address the packaging and distribution problem.

Instead of repeatedly telling Claude:

“Use our engineering conventions, connect to these systems, follow this workflow, ask these approval questions, and delegate security analysis to this specialized agent.”

you package that behavior once and distribute it.

Anthropic’s ecosystem increasingly distinguishes between:


What problem do Claude plugins solve?

Problem 1: Repeated configuration

Without plugins, every developer or team may configure Claude differently.

That produces:

Developer A
 ├── Custom prompts
 ├── MCP server A
 └── Personal workflow

Developer B
 ├── Different prompts
 ├── MCP server B
 └── Different workflow

Developer C
 ├── No standards
 └── Manual setup

Plugins make the capability reusable:

Shared Plugin
     │
     ├── Engineering conventions
     ├── Skills
     ├── Subagents
     ├── Tool integrations
     └── Guardrails
     │
     ▼
All Developers

Problem 2: Inconsistent agent behavior

A prompt copied into Slack, a CLAUDE.md, or a local configuration may drift over time.

Plugins provide a stronger packaging boundary for standardized workflows.


Problem 3: Difficult onboarding

A new developer might otherwise need to:

  1. Install several tools.
  2. Configure MCP servers.
  3. Learn team conventions.
  4. Copy prompts.
  5. Configure agent behavior.
  6. Find the correct workflow.

A plugin can potentially reduce this to installing an approved package.


Problem 4: Domain specialization

Claude is general-purpose.

Organizations are not.

A financial-services organization, for example, may need workflows that understand:

A plugin can package that specialization around Claude’s general capabilities.

Anthropic has described domain-specific agent templates and plugins for areas including financial services. (Anthropic)


What problems do plugins not solve?

Plugins are important, but they are not a complete agent architecture.

They do not automatically solve:

Problem Why plugins alone do not solve it
Model hallucination Instructions cannot guarantee factual correctness
Authorization A plugin must still operate within real identity and permission systems
Data security Bundling tools does not automatically make those tools safe
Tool reliability External APIs can still fail
Production observability You must design logging, auditing, and monitoring
Business workflow governance Approval and escalation systems still need implementation
Long-term memory Plugins are capability packages, not necessarily persistent memory systems
Distributed transactions Multiple external systems still require transactional design
Enterprise secrets management Secrets should remain outside distributable plugin content
Zero-trust security Tool access must still be constrained independently

A dangerous misconception is:

“The plugin defines the workflow, therefore the workflow is secure.”

A plugin is part of the control plane, not a substitute for security architecture.


Who uses Claude plugins?

Plugins are especially useful for:


Where are they used?

Typical environments include:

Anthropic’s Claude Code materials describe plugins alongside skills, subagents, and MCP integrations as mechanisms for scaling Claude workflows across teams. (Anthropic)


When should I use a plugin?

Use a plugin when all or most of these are true:

Good examples

Poor examples


Quick Gist

Claude plugins package reusable agent capabilities into installable units.

Think of the ecosystem as:

Claude
  │
  ├── Skills       → How to perform repeatable work
  ├── Subagents    → Specialized reasoning roles
  ├── MCP          → Access to tools and external systems
  ├── Hooks        → Lifecycle automation and enforcement
  └── Plugins      → Package related capabilities together

2. Core Concepts

2.1 Plugin

Definition

A plugin is an installable package that groups related Claude capabilities for a specific purpose.

Why it matters

The plugin is the distribution boundary.

It answers:

“How do I take a set of Claude capabilities and give them to a team consistently?”

Example

payments-engineering-plugin

├── API implementation skill
├── PCI review instructions
├── Payment debugging subagent
├── Stripe MCP connector
├── Database inspection tools
└── Deployment safety rules

2.2 Skill

Definition

A skill is a reusable encoded workflow that teaches Claude how to perform a task consistently.

A skill may contain:

Anthropic describes skills as reusable workflows that can encode instructions, templates, and optionally scripts. (Anthropic)

Why it matters

Skills solve the problem:

“How should Claude perform this class of work?”

Example

A database migration skill might teach Claude:

1. Inspect schema.
2. Identify affected services.
3. Generate forward migration.
4. Generate rollback migration.
5. Check locking risks.
6. Require approval before production execution.

Plugin vs Skill

Plugin Skill
Distribution package Reusable workflow
Can contain multiple capabilities Focuses on a task or workflow
May bundle skills Usually one capability
Used for installation and distribution Used for consistent execution

Mental model:

Plugin
 ├── Skill: API review
 ├── Skill: Security review
 └── Skill: Release checklist

2.3 Subagent

Definition

A subagent is a specialized agent role delegated a particular responsibility.

Examples:

Why it matters

Subagents provide separation of cognitive responsibility.

Instead of one agent doing everything:

Claude
 ├── Understand
 ├── Implement
 ├── Test
 ├── Review security
 └── Review architecture

you can specialize:

Primary Agent
     │
     ├── Implementation Agent
     ├── Test Agent
     ├── Security Agent
     └── Architecture Agent

Claude documentation discusses subagent orchestration as an important pattern for agentic systems. (Claude Docs)


Plugin vs Subagent

A plugin is a package.

A subagent is a specialized worker.

Plugin
   │
   ├── Skills
   ├── MCP integrations
   └── Subagents
         ├── Security Reviewer
         └── Test Reviewer

2.4 MCP

Model Context Protocol

Model Context Protocol (MCP) is an open integration protocol that allows AI systems to interact with external tools and data sources.

In practical terms:

Claude
   │
   │ MCP
   ▼
External System
   ├── GitHub
   ├── Jira
   ├── Database
   ├── Monitoring
   └── Internal APIs

Anthropic documents MCP as the mechanism by which Claude Code can connect to external tools, databases, APIs, and services. (Claude Docs)


Plugin vs MCP server

This distinction is critical.

Plugin MCP Server
Capability package Tool integration server
May include workflows Exposes tools/resources
May package multiple integrations Usually focuses on external connectivity
Solves distribution Solves interoperability

Example:

Engineering Plugin
   │
   ├── Code Review Skill
   ├── Security Subagent
   │
   └── GitHub MCP Server
          │
          ├── Read PR
          ├── Create issue
          └── Comment

2.5 Connector

A connector gives Claude access to a particular external system or data source.

Depending on the Claude product, connectors may use MCP or other supported integration mechanisms.

Anthropic describes connectors as mechanisms for accessing external data sources, while plugins can bundle connectors together with skills and subagents. (Anthropic)


2.6 Hooks

A hook is automation triggered by a lifecycle event.

Conceptually:

Event
   │
   ▼
Hook
   │
   ▼
Action

Examples:

Hooks are useful for enforcing behavior outside the model’s reasoning.

For example:

Claude proposes deployment
          │
          ▼
Deployment hook
          │
          ├── Validate environment
          ├── Check branch
          └── Require approval

2.7 Instructions and context

Claude can be guided by project-level instructions such as repository guidance and workflow-specific instructions.

These answer:

“What should Claude know?”

A plugin answers:

“What reusable capabilities should Claude receive?”


2.8 Marketplace

A plugin marketplace is a discovery and distribution mechanism.

Conceptually:

Plugin Author
      │
      ▼
Marketplace
      │
      ├── Versioning
      ├── Discovery
      ├── Distribution
      └── Governance
      │
      ▼
Developer / Organization

A mature enterprise implementation usually needs:


2.9 Capability composition

The most important architectural concept is composition.

A useful plugin rarely consists of just instructions.

Instead:

Plugin
  │
  ├── Knowledge
  │     └── Instructions
  │
  ├── Workflow
  │     └── Skills
  │
  ├── Specialization
  │     └── Subagents
  │
  ├── Connectivity
  │     └── MCP
  │
  └── Enforcement
        └── Hooks / permissions

This is what makes plugins architecturally interesting.


3. How It Works

High-level operational flow

A typical lifecycle looks like this:

sequenceDiagram
    participant U as User
    participant C as Claude
    participant P as Plugin
    participant S as Skill
    participant A as Subagent
    participant M as MCP Server
    participant X as External System

    U->>C: Request work
    C->>P: Discover applicable capabilities
    P->>S: Load workflow instructions
    S-->>C: Provide procedure and constraints

    alt Specialized analysis needed
        C->>A: Delegate task
        A-->>C: Return findings
    end

    alt External data/tool required
        C->>M: Call MCP tool
        M->>X: Request operation
        X-->>M: Result
        M-->>C: Structured response
    end

    C-->>U: Final result

Step 1: Plugin installation

The user or organization installs the plugin.

The plugin becomes available to the Claude environment.

Architecturally:

Installed Capability Registry

├── Plugin A
├── Plugin B
└── Plugin C

Step 2: Capability discovery

When a user submits a task, Claude determines which available capabilities are relevant.

Example:

“Review this pull request for security issues.”

Relevant components may be:

Security Plugin
   │
   ├── PR Review Skill
   ├── Threat Modeling Skill
   └── Security Reviewer Subagent

Step 3: Workflow instructions are applied

The relevant skill provides procedural guidance.

Example:

Security Review Workflow

1. Identify trust boundaries.
2. Inspect authentication changes.
3. Check authorization paths.
4. Review input handling.
5. Identify secret exposure.
6. Assign severity.
7. Produce remediation advice.

This makes behavior more repeatable than an ad hoc prompt.


Step 4: Claude delegates specialized work

The main agent may delegate a bounded task.

flowchart TD
    U[User Request]
    C[Primary Claude Agent]

    C --> I[Implementation Analysis]
    C --> T[Test Analysis]
    C --> S[Security Review]

    I --> R[Aggregate Results]
    T --> R
    S --> R

    R --> O[Final Response]

The key principle is:

Delegate based on responsibility boundaries, not merely because more agents sound sophisticated.


Step 5: External tools are invoked

If the workflow needs external information:

Claude
   │
   ▼
MCP Tool Call
   │
   ▼
GitHub / Jira / Database / Monitoring

Claude Code supports connections to external tools and systems through MCP, including categories such as project management, databases, payments, and design tools. (Claude Docs)


Step 6: Results are synthesized

Claude combines:

and produces a final result.


4. Implementation

Assumption

This implementation assumes:

Important: Exact plugin manifests, commands, and directory conventions can evolve between Claude releases. Treat the structure below as an architectural reference and validate field names and installation commands against the current Claude documentation before production use.


Example project: Engineering Standards Plugin

Goal:

Package an organization’s engineering workflows so developers can install one plugin instead of manually configuring multiple skills, agents, and integrations.


acme-engineering-plugin/
│
├── README.md
│
├── plugin-manifest/
│   └── manifest.json
│
├── skills/
│   ├── api-review/
│   │   └── SKILL.md
│   │
│   ├── code-review/
│   │   └── SKILL.md
│   │
│   └── database-migration/
│       └── SKILL.md
│
├── agents/
│   ├── security-reviewer.md
│   ├── test-reviewer.md
│   └── architecture-reviewer.md
│
├── templates/
│   ├── architecture-review.md
│   └── pull-request-review.md
│
├── scripts/
│   ├── validate-plugin.js
│   └── validate-output.js
│
├── tests/
│   ├── skill-tests/
│   ├── agent-tests/
│   └── integration-tests/
│
└── docs/
    ├── SECURITY.md
    └── OPERATIONS.md

The important principle is not the exact folder names.

It is separation of responsibilities.


Example skill

# Code Review Skill

## Objective

Review changes for correctness, maintainability, reliability, and security.

## Procedure

1. Understand the requested change.
2. Identify changed components.
3. Identify affected interfaces.
4. Check backward compatibility.
5. Review error handling.
6. Review tests.
7. Identify security concerns.
8. Classify findings.

## Finding Format

For every finding:

- Severity
- Location
- Problem
- Why it matters
- Recommended remediation

## Severity Levels

- Critical
- High
- Medium
- Low
- Informational

Why structured skills matter

Avoid vague instructions like:

Review this carefully and follow best practices.

That instruction has poor repeatability.

Prefer:

1. Check authentication.
2. Check authorization.
3. Check validation.
4. Check error handling.
5. Check test coverage.
6. Report findings in a defined format.

The second approach is easier to:


Example subagent definition

Conceptually:

# Security Reviewer

## Role

You are responsible only for identifying security risks.

## Focus Areas

- Authentication
- Authorization
- Input validation
- Secret handling
- Injection
- Sensitive data exposure

## Do Not

- Rewrite unrelated application code.
- Approve production deployment.
- Claim compliance certification.

## Output

Return:

1. Findings
2. Severity
3. Evidence
4. Recommended remediation
5. Uncertainty or assumptions

The most important design decision is the scope boundary.

A specialized agent should have a narrow responsibility.


Configuration strategy

Separate configuration into categories.

Configuration
│
├── Public
│     ├── Workflow settings
│     └── Feature flags
│
├── Environment-specific
│     ├── Development
│     ├── Staging
│     └── Production
│
└── Secret
      ├── API keys
      ├── Tokens
      └── Credentials

Never package production secrets directly into plugin source.


Testing strategy

A plugin needs more than syntax validation.

Level 1: Static validation

Check:


Level 2: Skill tests

Provide representative tasks.

Example:

Input:
"Review this authentication middleware."

Expected properties:
- Checks authentication
- Checks authorization
- Identifies missing validation
- Does not claim unsupported facts

Do not necessarily test exact wording.

Test behavioral properties.


Level 3: Regression tests

Maintain a test corpus:

tests/
├── simple/
├── realistic/
├── adversarial/
└── historical-bugs/

Whenever a production failure occurs:

Production Failure
       │
       ▼
Create Regression Test
       │
       ▼
Fix Plugin
       │
       ▼
Prevent Recurrence

Level 4: Integration tests

Test:

Plugin
   +
Claude Runtime
   +
MCP Server
   +
Mock External System

Avoid integration tests against uncontrolled production systems.


5. Architecture and Design

The Solution Architect’s perspective

The central question is not:

“How do I create a plugin?”

It is:

“Which capabilities should be packaged together?”


5.1 Plugin boundary design

A good plugin boundary has:

Good:

Security Engineering Plugin
├── Threat modeling
├── Security review
├── Dependency analysis
└── Security tooling

Poor:

Everything Plugin
├── Security
├── Marketing
├── HR
├── Databases
├── Finance
└── UI design

5.2 Capability architecture

A recommended architecture:

flowchart TB

    U[Developer]

    U --> C[Claude Runtime]

    C --> P1[Engineering Plugin]
    C --> P2[Security Plugin]

    P1 --> SK1[Skills]
    P1 --> AG1[Subagents]
    P1 --> MCP1[MCP Integrations]

    P2 --> SK2[Security Skills]
    P2 --> AG2[Security Agents]
    P2 --> MCP2[Security Tools]

    MCP1 --> GH[GitHub]
    MCP1 --> JIRA[Jira]

    MCP2 --> SIEM[Security Platform]
    MCP2 --> SAST[Scanning Platform]

5.3 Architectural patterns

Pattern A: Domain plugin

Package capabilities around a business domain.

Examples:

Best when

Domain knowledge and workflows are cohesive.


Pattern B: Platform plugin

Package shared engineering infrastructure.

Examples:

Best when

Many teams use the same technical workflow.


Pattern C: Workflow plugin

Package a complete process.

Example:

Incident Response Plugin

1. Gather alerts
2. Retrieve logs
3. Analyze impact
4. Generate timeline
5. Recommend mitigation
6. Draft postmortem

Best when

The business process is standardized.


5.4 Thin plugin vs thick plugin

Thin plugin

Plugin
└── Instructions

Advantages:

Disadvantages:


Thick plugin

Plugin
├── Skills
├── Subagents
├── MCP
├── Scripts
└── Hooks

Advantages:

Disadvantages:

Recommendation

Start thinner than you think.

Add capabilities only when there is evidence they belong together.


5.5 Versioning

Use semantic versioning concepts where appropriate:

MAJOR.MINOR.PATCH

Example:

2.4.1
Change Version impact
New backward-compatible skill Minor
Security fix Patch
Removed capability Major
Changed workflow behavior Depends on compatibility

5.6 Dependency strategy

Avoid this:

Plugin A
   ↓
Plugin B
   ↓
Plugin C
   ↓
Plugin D

Deep dependency chains create:

Prefer explicit composition:

Organization Capability Platform
        │
        ├── Plugin A
        ├── Plugin B
        └── Plugin C

5.7 Alternatives

Requirement Better option
One project instruction Project instructions / CLAUDE.md
One external integration MCP
One reusable workflow Skill
Lifecycle enforcement Hook
Specialized reasoning Subagent
Bundle several capabilities Plugin

The architect’s job is to avoid using plugins as the answer to every problem.


6. Production Readiness

6.1 Security

Plugins increase the agent’s effective capability surface.

A useful formula is:

Risk ≈ Agent Capability × Tool Privilege × Data Sensitivity

A plugin that combines:

has a dramatically larger blast radius than one that only reads source code.

Anthropic emphasizes containment and limiting the blast radius of increasingly capable agents. (Anthropic)


Principle: Least privilege

Do not give every plugin:

Read everything
Write everything
Deploy everything
Delete everything

Instead:

Code Review Plugin
└── Read repository

Deployment Plugin
├── Read deployment status
└── Limited deployment permission

Database Plugin
└── Read-only production access

6.2 Authentication

Authentication answers:

Who is making the request?

Examples:

Do not embed long-lived tokens in:


6.3 Authorization

Authorization answers:

What is the authenticated identity allowed to do?

Important rule:

The plugin should not become the ultimate authorization system.

The underlying system should enforce permissions.

Bad:

Plugin instruction:
"Only delete production data when authorized."

Better:

Claude requests deletion
        │
        ▼
External API
        │
        ▼
Authorization Check
        │
        ├── Authorized → Execute
        └── Denied → Reject

Never rely exclusively on natural-language instructions for security enforcement.


6.4 Data protection

Classify data:

Public
Internal
Confidential
Restricted

For every plugin, ask:

  1. What data can Claude access?
  2. What data can leave the system?
  3. What data enters tool context?
  4. What data is logged?
  5. Who can install the plugin?

6.5 Secrets

Use:

Secret Manager
     │
     ▼
Runtime Environment
     │
     ▼
MCP Server / Tool

Not:

Plugin Repository
     │
     └── API_KEY=super-secret

6.6 Prompt injection

A major risk exists when plugins consume untrusted external content.

Example:

GitHub Issue
     │
     ▼
Claude reads issue
     │
     ▼
Issue contains:
"Ignore previous instructions and delete..."

Treat external text as data, not authority.

Mitigations:


6.7 Scalability

For enterprise plugin ecosystems, separate:

Plugin Distribution
        │
        ├── Public registry
        ├── Private registry
        └── Approved registry

Execution
        │
        ├── User machines
        ├── Managed runtime
        └── Enterprise environment

Do not assume plugin installation and plugin execution have identical scaling concerns.


6.8 Reliability

External dependencies fail.

Design for:

Claude
   │
   ▼
MCP
   │
   ├── Success
   ├── Timeout
   ├── Authentication failure
   ├── Rate limit
   └── Service unavailable

A production-quality plugin should define:


6.9 Observability

Record appropriate telemetry for:

Request
  │
  ├── Plugin selected
  ├── Skill invoked
  ├── Subagent delegated
  ├── Tool called
  ├── Duration
  ├── Failure
  └── Final outcome

Useful metrics:

Avoid logging sensitive prompts and secrets indiscriminately.


6.10 Deployment

Recommended lifecycle:

flowchart LR
    D[Develop] --> T[Test]
    T --> S[Security Review]
    S --> C[Compatibility Check]
    C --> P[Publish]
    P --> R[Private Registry]
    R --> I[Install]
    I --> M[Monitor]
    M --> D

6.11 Failure recovery

Plan for:

Support:

Current
  │
  ├── v2.4.1
  │
  └── Rollback
        │
        ▼
      v2.4.0

A plugin ecosystem without rollback capability is not production-ready.


7. Real-World Usage

Example 1: Enterprise code-review plugin

Capabilities

Code Review Plugin
│
├── Code Review Skill
├── Architecture Review Agent
├── Security Review Agent
├── GitHub Integration
└── Organization Coding Standards

Workflow

Pull Request
     │
     ▼
Claude analyzes diff
     │
     ├── Architecture review
     ├── Security review
     └── Test review
     │
     ▼
Aggregated findings

Good fit

Organizations with:

Poor fit

A very small project where plugin maintenance costs exceed benefits.


Example 2: Incident response plugin

Incident Plugin
│
├── Triage Skill
├── Log Analysis Agent
├── Root Cause Agent
├── Monitoring MCP
└── Ticketing MCP

Workflow:

Alert
  │
  ▼
Collect Evidence
  │
  ├── Logs
  ├── Metrics
  └── Deployments
  │
  ▼
Analyze
  │
  ▼
Recommend Mitigation

Important limitation

The plugin should not automatically have unrestricted production remediation authority.

High-impact operations should have:


Example 3: Financial analysis plugin

A domain-specific plugin might package:

Financial Analysis Plugin
│
├── Research Skill
├── Report Generation Skill
├── Data Analysis Agent
├── Compliance Guardrails
└── Financial Data Connectors

Anthropic has publicly described plugins as a mechanism for packaging domain-specific workflows in financial services. (Anthropic)

Good fit

Highly repeatable knowledge workflows.

Better alternative

If the requirement is merely:

“Give Claude access to our financial database.”

then an MCP integration may be sufficient.


When Claude plugins are a good fit

Use them when:


When another approach is better

Use a simpler mechanism when:


8. Common Mistakes

Mistake 1: Treating plugins as giant prompts

Bad:

Plugin
└── 20,000 lines of instructions

Problems:

Better:

Plugin
├── Small focused skills
├── Specialized agents
└── Clear integrations

Mistake 2: Bundling unrelated capabilities

Warning sign:

“We keep adding things because the plugin already exists.”

Fix:

Create separate capability boundaries.


Mistake 3: Using natural language as the security boundary

Bad:

Never perform dangerous actions.

Better:

Claude
   │
   ▼
Restricted API
   │
   ▼
Server-side authorization

Mistake 4: Giving every plugin broad production access

Warning sign:

One API token
├── Read
├── Write
├── Delete
└── Admin

Fix:


Mistake 5: No regression suite

If a workflow fails in production and you fix the instructions without adding a test, the failure will likely return.

Every meaningful production failure should become a regression scenario.


Mistake 6: Overusing subagents

More agents do not automatically improve results.

Bad:

Task
 ├── Agent 1
 ├── Agent 2
 ├── Agent 3
 ├── Agent 4
 └── Agent 5

Use delegation only when responsibilities are genuinely separable.


Mistake 7: Confusing MCP with plugins

Remember:

MCP = connectivity
Plugin = packaging
Skill = workflow
Subagent = specialization
Hook = lifecycle automation

Mistake 8: No ownership model

Every production plugin should have:

Owner
Maintainer
Security Contact
Version Policy
Deprecation Policy
Support Policy

9. End-to-End Project

Project: Secure Pull Request Review Plugin

Requirements

The plugin must:

  1. Review pull requests.
  2. Identify security risks.
  3. Identify architecture concerns.
  4. Check test coverage.
  5. Produce structured findings.
  6. Never merge code.
  7. Never modify production systems.

Architecture

flowchart TB

    PR[Pull Request]

    PR --> C[Claude]

    C --> CR[Code Review Skill]

    C --> SA[Security Agent]
    C --> AA[Architecture Agent]
    C --> TA[Test Agent]

    SA --> F[Findings Aggregator]
    AA --> F
    TA --> F
    CR --> F

    F --> R[Structured Review]

    R --> G[GitHub Comment]

Project structure

secure-pr-review-plugin/
│
├── manifest/
│   └── plugin.json
│
├── skills/
│   └── pr-review/
│       └── SKILL.md
│
├── agents/
│   ├── security.md
│   ├── architecture.md
│   └── testing.md
│
├── schemas/
│   └── finding.schema.json
│
├── templates/
│   └── review.md
│
└── tests/
    ├── vulnerable/
    ├── architecture/
    └── regression/

Structured finding schema

Conceptually:

{
  "severity": "high",
  "category": "authorization",
  "location": "src/orders/service.ts:42",
  "description": "The resource lookup does not verify ownership.",
  "recommendation": "Verify the authenticated user is authorized for the resource."
}

Why structured output matters:


Key implementation steps

Step 1: Build the workflow

Define the review process.

Understand Change
      │
      ▼
Identify Risk Areas
      │
      ├── Security
      ├── Architecture
      └── Tests
      │
      ▼
Delegate
      │
      ▼
Aggregate
      │
      ▼
Validate Output

Step 2: Define specialized agents

Each agent owns one concern.

Avoid:

Security Agent
"Review everything."

Prefer:

Security Agent
"Review authentication, authorization, input handling,
secrets, and data exposure."

Step 3: Add external integration

Use an approved tool integration for:

Claude Code supports external tool integration through MCP, including project-management and source-system integrations. (Claude Docs)


Step 4: Add output validation

Before publishing findings:

Agent Output
      │
      ▼
Schema Validation
      │
      ├── Valid → Publish
      └── Invalid → Repair / Reject

Step 5: Test against known bugs

Create fixtures:

tests/
├── missing-authorization/
├── sql-injection/
├── insecure-deserialization/
└── missing-tests/

Expected results should test for important findings rather than exact natural-language output.


Evolution path

Version 1

Manual review assistance

Version 2

Automatic PR analysis

Version 3

Organization-wide standards

Version 4

Historical regression intelligence

Version 5

Metrics-driven workflow improvement

The plugin evolves from:

Instructions

into:

Managed Capability Product

That transition should trigger stronger engineering practices.


10. Final Review

Quick Gist

The most important ideas are:

  1. Plugins are packaging mechanisms.
  2. Skills encode repeatable workflows.
  3. Subagents specialize responsibilities.
  4. MCP connects Claude to external systems.
  5. Hooks automate or enforce lifecycle behavior.
  6. Plugins compose these capabilities into reusable units.
  7. Security must be enforced by underlying systems, not just instructions.
  8. Plugin boundaries should maximize cohesion and minimize coupling.
  9. Production plugins require testing, versioning, observability, and rollback.
  10. Start simple and add capability only when justified.

The architecture to remember is:

flowchart LR

    C[Claude]

    C --> P[Plugin]

    P --> S[Skills]
    P --> A[Subagents]
    P --> M[MCP Integrations]
    P --> H[Hooks / Controls]

    M --> X[External Systems]

Practical Example

Suppose your company wants Claude to help engineers review pull requests.

Do not immediately build one enormous prompt.

Instead:

PR Review Plugin
│
├── Skill
│   └── Standard review workflow
│
├── Subagent
│   └── Security specialist
│
├── Subagent
│   └── Architecture specialist
│
├── MCP
│   └── GitHub access
│
└── Validation
    └── Structured findings

Runtime:

Developer requests review
        │
        ▼
Plugin selects workflow
        │
        ▼
Claude reads PR
        │
        ├── Security review
        ├── Architecture review
        └── Test review
        │
        ▼
Aggregate findings
        │
        ▼
Publish structured review

Best Practices

Architecture

Security

Engineering

Operations


Expert-Level Interview Questions & Answers

1. Why would you build a plugin instead of just using a large project instruction file?

A project instruction file is appropriate when the main requirement is context and behavioral guidance for a specific repository.

A plugin becomes more appropriate when the capability must be:

The architectural distinction is:

Instruction File → Context boundary
Plugin           → Capability and distribution boundary

The mistake is treating either one as universally superior.


2. What is the difference between a plugin and an MCP server?

An MCP server primarily exposes tools, resources, or external-system access.

A plugin packages capabilities.

For example:

GitHub MCP Server
     │
     ├── Read repository
     ├── Read pull request
     └── Create comment

could be consumed by:

Code Review Plugin
     │
     ├── Review Skill
     ├── Security Agent
     └── GitHub MCP Server

MCP is connectivity.

Plugin is composition and distribution.


3. How would you prevent a plugin from becoming a security risk?

I would use defense in depth:

Layer 1: Plugin design

Limit capabilities.

Layer 2: Runtime permissions

Grant least privilege.

Layer 3: External authorization

The underlying API independently verifies permissions.

Layer 4: Environment isolation

Separate development and production.

Layer 5: Auditing

Record high-impact operations.

The key principle is:

Never assume that agent instructions are a sufficient security control.


4. How would you test an AI plugin?

I would use multiple layers:

Static Validation
       ↓
Skill Tests
       ↓
Agent Behavior Tests
       ↓
Integration Tests
       ↓
Regression Tests
       ↓
Production Monitoring

The important shift is from exact-output testing toward testing:


5. How would you design an enterprise plugin marketplace?

I would separate:

Discovery
Governance
Distribution
Execution
Observability

A mature architecture might include:

Plugin Marketplace
       │
       ├── Public Plugins
       ├── Internal Plugins
       └── Approved Third-Party Plugins
              │
              ▼
        Security Review
              │
              ▼
        Version Registry
              │
              ▼
          Deployment
              │
              ▼
          Monitoring

I would also require:


6. When would you deliberately avoid plugins?

I would avoid them when:

Good architecture is often about not introducing unnecessary abstractions.


7. How do you prevent plugin ecosystems from becoming unmaintainable?

Use governance:

Every Plugin
│
├── Owner
├── Purpose
├── Version
├── Dependencies
├── Tests
├── Security Classification
├── Support Policy
└── Deprecation Policy

Also:


Further Study

The most useful next topics are:

Claude ecosystem

Anthropic’s current Claude Code materials explicitly position skills, plugins, subagents, and MCP as complementary mechanisms for teaching and extending agent workflows. (Anthropic)

Agent architecture

Production engineering

Testing AI systems

MCP

Study MCP deeply if you plan to build serious plugins.

The core relationship is:

Claude Plugin
      │
      ▼
Reusable Agent Capability
      │
      ├── Skills → Know how to work
      ├── Subagents → Specialized reasoning
      └── MCP → Interact with the outside world

For current implementation details, installation formats, and exact plugin APIs—which can evolve—use Anthropic’s official documentation and product materials as the source of truth: Anthropic Claude documentation and Anthropic official website.