Generated skills included activation.keywords, activation.patterns, test_queries, and usage.when_to_use fields in marketplace.json — none of which are supported by Claude Code's official schema. This caused installation failures. Root cause was references/phase4-detection.md instructing the agent to put activation data into marketplace.json instead of the SKILL.md description field. The description is the only activation mechanism. Changes: - Rewrote phase4-detection.md activation section (description-based only) - Removed marketplace.json from stock-analyzer example directory structure - Fixed quality-standards.md checklist reference - Fixed multi-agent-guide.md wording implying marketplace.json has keywords - Deleted marketplace-robust-template.json (source of non-standard fields) - Bumped version to 4.1.0 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
15 KiB
Multi-Agent Suite Creation
Overview
A multi-agent suite is a collection of related skills that work together as a unified system. Instead of creating one monolithic skill, the suite splits responsibilities across multiple focused skills that share references and coordinate through a common integration layer.
The 5-phase pipeline applies to each component skill, but Phase 3 (Architecture) makes the critical decision: simple skill vs. complex suite.
When to Use Batch Creation
| Scenario | Single Skill | Multi-Agent Suite |
|---|---|---|
| 1-2 distinct workflows | Recommended | Overkill |
| 3+ distinct workflows | Unwieldy | Recommended |
| Total code > 2,000 lines | Hard to maintain | Organized by component |
| Team maintenance | Single owner ok | Multiple contributors benefit |
| Shared data sources across workflows | Duplicated logic | Shared reference layer |
| Independent scaling of capabilities | Not possible | Each skill evolves independently |
Rule of thumb: If you find yourself describing more than two unrelated tasks in a single skill description, you need a suite.
Suite Creation Process
Step 1: Analyze Relationships
The system examines the user's requirements and identifies distinct workflow clusters.
User: "I need to track our e-commerce store -- monitor sales,
analyze customer behavior, track inventory levels, and
generate executive reports."
Analysis:
Cluster 1: Sales Monitoring (revenue, orders, conversion)
Cluster 2: Customer Analytics (segmentation, cohorts, churn)
Cluster 3: Inventory Tracking (stock levels, reorder alerts)
Cluster 4: Executive Reporting (aggregated dashboards)
Shared resources: Shopify API connection, date utilities,
report generation templates
Step 2: Determine Structure
Based on the cluster analysis, the system designs the suite directory:
ecommerce-suite/
├── SKILL.md # Suite-level overview (<500 lines)
├── .claude-plugin/
│ └── marketplace.json # Suite manifest (official fields only)
├── skills/
│ ├── sales-monitor/
│ │ ├── SKILL.md # Sales-specific instructions
│ │ └── scripts/
│ │ └── monitor_sales.py
│ ├── customer-analytics/
│ │ ├── SKILL.md # Customer-specific instructions
│ │ └── scripts/
│ │ └── analyze_customers.py
│ ├── inventory-tracker/
│ │ ├── SKILL.md # Inventory-specific instructions
│ │ └── scripts/
│ │ └── track_inventory.py
│ └── executive-reports/
│ ├── SKILL.md # Reporting instructions
│ └── scripts/
│ └── generate_reports.py
├── shared/
│ ├── api_client.py # Shared Shopify API connection
│ ├── date_utils.py # Common date handling
│ └── report_templates/ # Shared report assets
│ └── executive_template.html
├── references/
│ └── api-guide.md # Shared API documentation
├── install.sh # Installs entire suite
└── README.md # Multi-platform instructions
Step 3: Create Individual Skills
Each component skill goes through Phases 1-5 independently, but with awareness of the shared resources:
- Discovery -- Each skill identifies its specific API endpoints (e.g., sales-monitor uses Shopify Orders API, inventory-tracker uses Shopify Inventory API).
- Design -- Each skill defines its own analyses, scoped to its cluster.
- Architecture -- Each skill follows the simple skill structure within the suite.
- Detection -- Each skill gets its own description and keywords for independent activation.
- Implementation -- Each skill references shared utilities from
shared/.
Step 4: Integration Layer
The suite-level SKILL.md serves as the orchestration layer. It describes how the component skills relate and when to invoke which one:
# E-commerce Suite
## Component Skills
This suite contains four specialized skills:
- **sales-monitor**: Activate for revenue, orders, and conversion queries
- **customer-analytics**: Activate for segmentation, cohort, and churn queries
- **inventory-tracker**: Activate for stock levels, reorder, and supply queries
- **executive-reports**: Activate for dashboards, summaries, and executive briefings
## Cross-Skill Workflows
When the user asks for a "full store overview" or "weekly executive summary",
invoke executive-reports which aggregates data from all three other skills.
Suite-Level marketplace.json
For complex suites that need Claude Code plugin registration, a marketplace.json is generated with only official fields:
{
"name": "ecommerce-suite",
"plugins": [
{
"name": "sales-monitor",
"description": "Monitor e-commerce sales, revenue trends, order volumes, and conversion rates using Shopify data.",
"source": "./skills/sales-monitor/",
"skills": ["./skills/sales-monitor/"]
},
{
"name": "customer-analytics",
"description": "Analyze customer behavior, segmentation, cohort retention, and churn patterns from e-commerce data.",
"source": "./skills/customer-analytics/",
"skills": ["./skills/customer-analytics/"]
},
{
"name": "inventory-tracker",
"description": "Track inventory stock levels, predict reorder points, and alert on low-stock items.",
"source": "./skills/inventory-tracker/",
"skills": ["./skills/inventory-tracker/"]
},
{
"name": "executive-reports",
"description": "Generate executive dashboards and PDF summaries aggregating sales, customer, and inventory data.",
"source": "./skills/executive-reports/",
"skills": ["./skills/executive-reports/"]
}
]
}
Important: The marketplace.json uses ONLY the official fields: name and plugins at the top level, and name, description, source, skills per plugin entry. No version, author, repository, tags, icon, or other non-standard fields.
Suite Examples
Financial Suite
User request: "Create a suite for comprehensive financial analysis -- stock tracking, portfolio management, and market research."
financial-suite/
├── SKILL.md
├── .claude-plugin/marketplace.json
├── skills/
│ ├── stock-tracker/ # Real-time and historical price data
│ ├── portfolio-manager/ # Holdings, allocation, performance
│ └── market-research/ # Sector analysis, news sentiment
├── shared/
│ ├── market_data_client.py # Alpha Vantage + Yahoo Finance
│ └── financial_utils.py # Common calculations (returns, ratios)
├── references/
├── install.sh
└── README.md
E-commerce Suite
User request: "I manage an online store and need to track everything -- sales, customers, inventory, and generate weekly reports."
(See the detailed structure in the Suite Creation Process section above.)
Climate Suite
User request: "Build a climate analysis system with historical trend analysis, forecast monitoring, and extreme event alerting."
climate-suite/
├── SKILL.md
├── .claude-plugin/marketplace.json
├── skills/
│ ├── historical-trends/ # Long-term climate data analysis
│ ├── forecast-monitor/ # Short-term forecast tracking
│ └── extreme-events/ # Severe weather alerting
├── shared/
│ ├── climate_data_client.py # NOAA + Open-Meteo connections
│ └── geo_utils.py # Geographic region handling
├── references/
├── install.sh
└── README.md
Suite Orchestration Patterns
The suite-level SKILL.md is the most important file in a suite. It doesn't just list components — it tells the agent how to think about routing, sequencing, and combining them.
Pattern 1: Intent-Based Routing
The simplest pattern. The suite SKILL.md maps user intent to component skills:
# /ecommerce-suite — E-commerce Intelligence
You coordinate four specialized e-commerce skills. Route every user
query to the right component based on intent.
## Routing Table
| If the user asks about... | Invoke | Examples |
|---------------------------|--------|---------|
| Revenue, orders, sales, conversion, AOV | /sales-monitor | "What were last week's sales?" |
| Customers, segments, cohorts, churn, retention | /customer-analytics | "Show me customer retention" |
| Stock, inventory, reorder, supply, out-of-stock | /inventory-tracker | "Which SKUs need reordering?" |
| Summary, dashboard, executive, weekly report | /executive-reports | "Generate the weekly report" |
If the query doesn't clearly match one component, ask the user to clarify.
If the query spans multiple components, use the cross-component workflows below.
Pattern 2: Sequential Pipeline
Some workflows require components in sequence — the output of one feeds the next:
## Cross-Component Workflows
### Weekly Executive Report
When user asks for "weekly report", "executive summary", or "full store overview":
1. Run /sales-monitor: Get revenue, orders, conversion for the past 7 days
2. Run /customer-analytics: Get new vs returning customer split, churn rate
3. Run /inventory-tracker: Get low-stock alerts and reorder recommendations
4. Run /executive-reports: Compile all three into a single PDF dashboard
The executive-reports component expects data from the other three.
Pass the outputs as context — do not ask the user to run each step manually.
### Churn Revenue Impact
When user asks about "revenue impact of churn" or "how much are we losing":
1. Run /customer-analytics: Get churned customer segments and churn rate
2. Run /sales-monitor: Get revenue breakdown by customer segment
3. Calculate: revenue_at_risk = churned_segment_revenue × churn_rate
4. Present combined analysis with both the churn data and revenue impact
Pattern 3: Parallel Aggregation
When components can run independently and results are combined:
### Store Health Check
When user asks for "store health" or "how's the business":
Run these in parallel (no dependencies between them):
- /sales-monitor → revenue trend (up/down/flat)
- /customer-analytics → retention rate
- /inventory-tracker → stock health score
Then synthesize:
- All green: "Store is healthy — revenue trending up, retention stable, stock well-managed"
- Mixed: Report which areas need attention
- All concerning: "Multiple areas need attention" + specific recommendations
Pattern 4: Conditional Routing
When the right component depends on data discovered during the conversation:
## Conditional Workflows
### Deep Dive Analysis
When user asks to "deep dive" or "investigate" a metric:
1. Identify which metric they're asking about
2. Route to the appropriate component:
- Revenue metric → /sales-monitor with detailed=true
- Customer metric → /customer-analytics with detailed=true
- Stock metric → /inventory-tracker with detailed=true
3. If the deep dive reveals a cross-domain issue (e.g., revenue dropped
because of stockouts), invoke the relevant second component
4. Present the combined root-cause analysis
Orchestration Anti-Patterns
| Anti-Pattern | Why It's Wrong | Do This Instead |
|---|---|---|
| Suite SKILL.md just lists components without routing logic | Agent has to guess which component to use | Provide explicit routing table with example queries |
| Components call each other's scripts directly | Creates tight coupling, breaks independence | Agent orchestrates — passes output from A as context to B |
| Suite SKILL.md duplicates component instructions | Maintenance nightmare, instructions drift apart | Reference component skills: "Invoke /sales-monitor for this" |
| No cross-component workflow examples | Agent doesn't know how to combine results | Document 2-3 concrete multi-component workflows |
| Every query goes through all components | Wastes tokens and time | Route to specific component; only aggregate when explicitly asked |
Complete Suite SKILL.md Example
# /financial-suite — Comprehensive Financial Analysis
You are a financial analysis coordinator managing three specialized skills.
Your job is to route queries to the right specialist and combine results
when needed.
## Component Skills
- **/stock-analyzer**: Real-time and historical price data, technical indicators
- **/portfolio-tracker**: Holdings, allocation, performance, rebalancing
- **/market-research**: Sector analysis, news sentiment, peer comparison
## Routing Logic
| User Intent | Route To |
|-------------|----------|
| Price, chart, technical indicator, RSI, MACD | /stock-analyzer |
| My portfolio, allocation, performance, rebalance | /portfolio-tracker |
| Sector trends, news, competitor, peer comparison | /market-research |
## Cross-Skill Workflows
### Portfolio Review with Market Context
When user asks for "portfolio review" or "how am I doing":
1. Invoke /portfolio-tracker for current holdings and performance
2. Invoke /market-research for sector trends affecting held positions
3. Synthesize: performance attribution + market context + recommendations
### Buy/Sell Analysis
When user asks "should I buy X" or "should I sell X":
1. Invoke /stock-analyzer for technical analysis of the specific stock
2. Invoke /market-research for sector sentiment and peer comparison
3. Invoke /portfolio-tracker to check current exposure and allocation impact
4. Synthesize: technical signal + market context + portfolio fit
## When to Combine vs. Route Directly
- Single-domain question → Route to one component
- "How am I doing" or "full analysis" → Combine all components
- If unsure → Ask the user: "Would you like a quick check on [X]
or a comprehensive analysis across your portfolio?"
Benefits of Suite Creation
Time Efficiency
Creating a suite through the batch process is significantly faster than creating individual skills separately:
| Approach | API Research | Shared Code | Integration | Total |
|---|---|---|---|---|
| 4 separate skills | 4x (redundant) | 0 (duplicated) | Manual | ~4 hours |
| 1 suite (batch) | 1x (shared) | 1x (reused) | Automatic | ~1.5 hours |
Built-in Integration
Component skills within a suite share:
- API client code (no duplicated connection logic)
- Utility functions (date handling, formatting, calculations)
- Reference documentation (API guides written once)
- Report templates (consistent styling across outputs)
Independent Maintenance
Each component skill can be:
- Updated independently without affecting others
- Tested in isolation
- Replaced with an improved version
- Extended with new analyses
The suite structure makes it possible to update the inventory-tracker without touching the sales-monitor, while still sharing the underlying Shopify API client.
Marketplace Discoverability
Each plugin entry in marketplace.json has its own description field. This means a suite's individual components can be discovered by different searches:
- "track sales" finds the sales-monitor plugin
- "customer churn" finds the customer-analytics plugin
- "inventory alerts" finds the inventory-tracker plugin
The suite functions as both a single installable unit and a collection of independently discoverable capabilities.