BREAKING CHANGES: - Remove -cskill suffix from all skill names (use standard kebab-case) - Simplify marketplace.json to only official fields (fixes Issue #5) - SKILL.md body must be <500 lines (progressive disclosure via references/) New features: - Cross-platform support for 8+ platforms (Claude Code, Copilot, Cursor, Windsurf, Cline, Codex CLI, Gemini CLI) - scripts/install-template.sh: Auto-detect platform installer with --dry-run - scripts/validate.py: Spec compliance checker for generated skills - scripts/security_scan.py: Security scanner for hardcoded keys and dangerous patterns - MIGRATION.md: v3.x to v4.0 migration guide - 6 new reference files for progressive disclosure from lean SKILL.md Key changes: - SKILL.md: 4,116 → 272 lines with spec-compliant YAML frontmatter - marketplace.json: Stripped to {name, plugins} only - article-to-prototype-cskill/ → article-to-prototype/ - stock-analyzer-cskill/ → stock-analyzer/ - Export system integrates validation + security scanning - README.md rewritten for all supported platforms - Phase 5 pipeline outputs SKILL.md-first, spec-compliant skills Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
297 lines
No EOL
9.7 KiB
Markdown
297 lines
No EOL
9.7 KiB
Markdown
# Agent Creator: Decision Logic and Architecture Selection
|
|
|
|
## 🎯 **Purpose**
|
|
|
|
This document explains the decision-making process used by the Agent Creator meta-skill to determine the appropriate architecture for Claude Skills.
|
|
|
|
## 📋 **Decision Framework**
|
|
|
|
### **Phase 1: Requirements Analysis**
|
|
|
|
During user input analysis, the Agent Creator evaluates:
|
|
|
|
#### **Complexity Indicators**
|
|
- **Number of distinct objectives**: How many different goals?
|
|
- **Workflow complexity**: Linear vs branching vs parallel
|
|
- **Data sources**: Single vs multiple API/data sources
|
|
- **Output formats**: Simple vs complex report generation
|
|
- **Integration needs**: Standalone vs interconnected systems
|
|
|
|
#### **Domain Complexity Assessment**
|
|
- **Single domain** (e.g., PDF processing) → Simple Skill likely
|
|
- **Multi-domain** (e.g., finance + reporting + optimization) → Complex Suite likely
|
|
- **Specialized expertise required** (technical, financial, legal) → Component separation beneficial
|
|
|
|
### **Phase 2: Architecture Decision Tree**
|
|
|
|
```
|
|
START: Analyze User Request
|
|
↓
|
|
┌─ Single, clear objective?
|
|
│ ├─ Yes → Continue Simple Skill Path
|
|
│ └─ No → Continue Complex Suite Path
|
|
↓
|
|
Simple Skill Path:
|
|
├─ Single data source?
|
|
│ ├─ Yes → Simple Skill confirmed
|
|
│ └─ No → Consider Hybrid architecture
|
|
├─ Linear workflow?
|
|
│ ├─ Yes → Simple Skill confirmed
|
|
│ └─ No → Consider breaking into components
|
|
└─ <1000 lines estimated code?
|
|
├─ Yes → Simple Skill confirmed
|
|
└─ No → Recommend Complex Suite
|
|
|
|
Complex Suite Path:
|
|
├─ Multiple related workflows?
|
|
│ ├─ Yes → Complex Suite confirmed
|
|
│ └─ No → Consider Simple + Extensions
|
|
├─ Team maintenance expected?
|
|
│ ├─ Yes → Complex Suite confirmed
|
|
│ └─ No → Consider advanced Simple Skill
|
|
└─ Domain expertise specialization needed?
|
|
├─ Yes → Complex Suite confirmed
|
|
└─ No → Consider Hybrid approach
|
|
```
|
|
|
|
### **Phase 3: Specific Decision Rules**
|
|
|
|
#### **Simple Skill Criteria**
|
|
✅ **Use Simple Skill when:**
|
|
- Single primary objective
|
|
- One or two related sub-tasks
|
|
- Linear workflow (A → B → C)
|
|
- Single domain expertise
|
|
- <1000 lines total code expected
|
|
- One developer can maintain
|
|
- Development time: <2 weeks
|
|
|
|
**Examples:**
|
|
- "Create PDF text extractor"
|
|
- "Automate CSV data cleaning"
|
|
- "Generate weekly status reports"
|
|
- "Convert images to web format"
|
|
|
|
#### **Complex Skill Suite Criteria**
|
|
✅ **Use Complex Suite when:**
|
|
- Multiple distinct objectives
|
|
- Parallel or branching workflows
|
|
- Multiple domain expertise areas
|
|
- >2000 lines total code expected
|
|
- Team maintenance anticipated
|
|
- Development time: >2 weeks
|
|
- Component reusability valuable
|
|
|
|
**Examples:**
|
|
- "Complete financial analysis platform"
|
|
- "E-commerce automation system"
|
|
- "Research workflow automation"
|
|
- "Business intelligence suite"
|
|
|
|
#### **Hybrid Architecture Criteria**
|
|
✅ **Use Hybrid when:**
|
|
- Core objective with optional extensions
|
|
- Configurable component selection
|
|
- Main workflow with specialized sub-tasks
|
|
- 1000-2000 lines code expected
|
|
- Central orchestration important
|
|
|
|
**Examples:**
|
|
- "Document processor with OCR and classification"
|
|
- "Data analysis with optional reporting components"
|
|
- "API client with multiple integration options"
|
|
|
|
### **Phase 4: Implementation Decision**
|
|
|
|
#### **Simple Skill Implementation**
|
|
```python
|
|
# Decision confirmed: Create Simple Skill
|
|
architecture = "simple"
|
|
base_name = generate_descriptive_name(requirements)
|
|
skill_name = base_name # Standard kebab-case naming
|
|
files_to_create = [
|
|
"SKILL.md",
|
|
"scripts/ (if needed)",
|
|
"references/ (if needed)",
|
|
"assets/ (if needed)"
|
|
]
|
|
marketplace_json = False # Single skill doesn't need manifest
|
|
```
|
|
|
|
#### **Complex Suite Implementation**
|
|
```python
|
|
# Decision confirmed: Create Complex Skill Suite
|
|
architecture = "complex_suite"
|
|
base_name = generate_descriptive_name(requirements)
|
|
suite_name = base_name # Standard kebab-case naming
|
|
components = identify_components(requirements)
|
|
component_names = list(components)
|
|
files_to_create = [
|
|
".claude-plugin/marketplace.json",
|
|
f"{component}/SKILL.md" for component in component_names,
|
|
"shared/utils/",
|
|
"shared/config/"
|
|
]
|
|
marketplace_json = True # Suite needs organization manifest
|
|
```
|
|
|
|
#### **Hybrid Implementation**
|
|
```python
|
|
# Decision confirmed: Create Hybrid Architecture
|
|
architecture = "hybrid"
|
|
base_name = generate_descriptive_name(requirements)
|
|
skill_name = base_name # Standard kebab-case naming
|
|
main_skill = "primary_skill.md"
|
|
optional_components = identify_optional_components(requirements)
|
|
component_names = list(optional_components)
|
|
files_to_create = [
|
|
"SKILL.md", # Main orchestrator
|
|
"scripts/components/", # Optional sub-components
|
|
"config/component_selection.json"
|
|
]
|
|
```
|
|
|
|
#### **Naming Convention Logic**
|
|
```python
|
|
def generate_descriptive_name(user_requirements):
|
|
"""Generate descriptive base name from user requirements"""
|
|
# Extract key concepts from user input
|
|
concepts = extract_concepts(user_requirements)
|
|
|
|
# Create descriptive base name
|
|
if len(concepts) == 1:
|
|
base_name = concepts[0]
|
|
elif len(concepts) <= 3:
|
|
base_name = "-".join(concepts)
|
|
else:
|
|
base_name = "-".join(concepts[:3]) + "-suite"
|
|
|
|
# Ensure valid filename format
|
|
base_name = sanitize_filename(base_name)
|
|
return base_name
|
|
|
|
def apply_naming_convention(base_name):
|
|
"""Apply standard kebab-case naming convention"""
|
|
# Ensure valid kebab-case format
|
|
base_name = base_name.lower().strip()
|
|
base_name = re.sub(r'[^a-z0-9-]', '-', base_name)
|
|
base_name = re.sub(r'-+', '-', base_name).strip('-')
|
|
return base_name
|
|
|
|
# Examples of naming logic:
|
|
# "extract text from PDF" → "pdf-text-extractor"
|
|
# "financial analysis with reporting" → "financial-analysis-suite"
|
|
# "clean CSV data" → "csv-data-cleaner"
|
|
```
|
|
|
|
## 🎯 **Decision Documentation**
|
|
|
|
### **DECISIONS.md Template**
|
|
|
|
Every created skill includes a `DECISIONS.md` file documenting:
|
|
|
|
```markdown
|
|
# Architecture Decisions
|
|
|
|
## Requirements Analysis
|
|
- **Primary Objectives**: [List main goals]
|
|
- **Complexity Indicators**: [Number of objectives, workflows, data sources]
|
|
- **Domain Assessment**: [Single vs multi-domain]
|
|
|
|
## Architecture Selection
|
|
- **Chosen Architecture**: [Simple Skill / Complex Suite / Hybrid]
|
|
- **Key Decision Factors**: [Why this architecture was selected]
|
|
- **Alternatives Considered**: [Other options and why rejected]
|
|
|
|
## Implementation Rationale
|
|
- **Component Breakdown**: [How functionality is organized]
|
|
- **Integration Strategy**: [How components work together]
|
|
- **Maintenance Considerations**: [Long-term maintenance approach]
|
|
|
|
## Future Evolution
|
|
- **Growth Path**: [How to evolve from simple to complex if needed]
|
|
- **Extension Points**: [Where functionality can be added]
|
|
- **Migration Strategy**: [How to change architectures if requirements change]
|
|
```
|
|
|
|
## 🔄 **Learning and Improvement**
|
|
|
|
### **Decision Quality Tracking**
|
|
The Agent Creator tracks:
|
|
- **User satisfaction** with architectural choices
|
|
- **Maintenance requirements** for each pattern
|
|
- **Evolution patterns** (simple → complex transitions)
|
|
- **Success metrics** by architecture type
|
|
|
|
### **Pattern Recognition**
|
|
Over time, the system learns:
|
|
- **Common complexity indicators** for specific domains
|
|
- **Optimal component boundaries** for multi-domain problems
|
|
- **User preference patterns** for different architectures
|
|
- **Evolution triggers** that signal need for architecture change
|
|
|
|
### **Feedback Integration**
|
|
User feedback improves future decisions:
|
|
- **Architecture mismatch** reports
|
|
- **Maintenance difficulty** feedback
|
|
- **Feature request patterns**
|
|
- **User success stories**
|
|
|
|
## 📊 **Examples of Decision Logic in Action**
|
|
|
|
### **Example 1: PDF Text Extractor Request**
|
|
**User Input:** "Create a skill to extract text from PDF documents"
|
|
|
|
**Analysis:**
|
|
- Single objective: PDF text extraction ✓
|
|
- Linear workflow: PDF → Extract → Clean ✓
|
|
- Single domain: Document processing ✓
|
|
- Estimated code: ~500 lines ✓
|
|
- Single developer maintenance ✓
|
|
|
|
**Decision:** Simple Skill
|
|
**Implementation:** `pdf-extractor/SKILL.md` with optional scripts folder
|
|
|
|
### **Example 2: Financial Analysis Platform Request**
|
|
**User Input:** "Build a complete financial analysis system with data acquisition, technical analysis, portfolio optimization, and reporting"
|
|
|
|
**Analysis:**
|
|
- Multiple objectives: 4 distinct capabilities ✗
|
|
- Complex workflows: Data → Analysis → Optimization → Reporting ✗
|
|
- Multi-domain: Data engineering, finance, reporting ✗
|
|
- Estimated code: ~5000 lines ✗
|
|
- Team maintenance likely ✗
|
|
|
|
**Decision:** Complex Skill Suite
|
|
**Implementation:** 4 component skills with marketplace.json
|
|
|
|
### **Example 3: Document Processor Request**
|
|
**User Input:** "Create a document processor that can extract text, classify documents, and optionally generate summaries"
|
|
|
|
**Analysis:**
|
|
- Core objective: Document processing ✓
|
|
- Optional components: Classification, summarization ✓
|
|
- Configurable workflow: Base + extensions ✓
|
|
- Estimated code: ~1500 lines ✓
|
|
- Central orchestration important ✓
|
|
|
|
**Decision:** Hybrid Architecture
|
|
**Implementation:** Main skill with optional component scripts
|
|
|
|
## ✅ **Quality Assurance**
|
|
|
|
### **Decision Validation**
|
|
Before finalizing architecture choice:
|
|
1. **Requirements completeness check**
|
|
2. **Complexity assessment verification**
|
|
3. **Maintenance feasibility analysis**
|
|
4. **User communication and confirmation**
|
|
|
|
### **Architecture Review**
|
|
Post-creation validation:
|
|
1. **Component boundary effectiveness**
|
|
2. **Integration success**
|
|
3. **Maintainability assessment**
|
|
4. **User satisfaction measurement**
|
|
|
|
This decision logic ensures that every created skill has the appropriate architecture for its requirements, maximizing effectiveness and minimizing maintenance overhead. |