355 lines
12 KiB
Markdown
355 lines
12 KiB
Markdown
# Skill Structure Specification
|
|
|
|
**Version**: 1.0.0
|
|
**Last Updated**: 2026-02-16
|
|
**Authority**: Claude Skills Engineering Team
|
|
|
|
## Overview
|
|
|
|
This document defines the mandatory and optional components that constitute a well-formed skill within the claude-skills ecosystem. All skills must adhere to these structural requirements to ensure consistency, maintainability, and quality across the repository.
|
|
|
|
## Directory Structure
|
|
|
|
### Mandatory Components
|
|
|
|
```
|
|
skill-name/
|
|
├── SKILL.md # Primary skill documentation (REQUIRED)
|
|
├── README.md # Usage instructions and quick start (REQUIRED)
|
|
└── scripts/ # Python implementation scripts (REQUIRED)
|
|
└── *.py # At least one Python script
|
|
```
|
|
|
|
### Recommended Components
|
|
|
|
```
|
|
skill-name/
|
|
├── SKILL.md
|
|
├── README.md
|
|
├── scripts/
|
|
│ └── *.py
|
|
├── assets/ # Sample data and input files (RECOMMENDED)
|
|
│ ├── samples/
|
|
│ ├── examples/
|
|
│ └── data/
|
|
├── references/ # Reference documentation (RECOMMENDED)
|
|
│ ├── api-reference.md
|
|
│ ├── specifications.md
|
|
│ └── external-links.md
|
|
└── expected_outputs/ # Expected results for testing (RECOMMENDED)
|
|
├── sample_output.json
|
|
├── example_results.txt
|
|
└── test_cases/
|
|
```
|
|
|
|
### Optional Components
|
|
|
|
```
|
|
skill-name/
|
|
├── [mandatory and recommended components]
|
|
├── tests/ # Unit tests and validation scripts
|
|
├── examples/ # Extended examples and tutorials
|
|
├── docs/ # Additional documentation
|
|
├── config/ # Configuration files
|
|
└── templates/ # Template files for code generation
|
|
```
|
|
|
|
## File Requirements
|
|
|
|
### SKILL.md Requirements
|
|
|
|
The `SKILL.md` file serves as the primary documentation for the skill and must contain:
|
|
|
|
#### Mandatory YAML Frontmatter
|
|
```yaml
|
|
---
|
|
Name: skill-name
|
|
Tier: [BASIC|STANDARD|POWERFUL]
|
|
Category: [Category Name]
|
|
Dependencies: [None|List of dependencies]
|
|
Author: [Author Name]
|
|
Version: [Semantic Version]
|
|
Last Updated: [YYYY-MM-DD]
|
|
---
|
|
```
|
|
|
|
#### Required Sections
|
|
- **Description**: Comprehensive overview of the skill's purpose and capabilities
|
|
- **Features**: Detailed list of key features and functionality
|
|
- **Usage**: Instructions for using the skill and its components
|
|
- **Examples**: Practical usage examples with expected outcomes
|
|
|
|
#### Recommended Sections
|
|
- **Architecture**: Technical architecture and design decisions
|
|
- **Installation**: Setup and installation instructions
|
|
- **Configuration**: Configuration options and parameters
|
|
- **Troubleshooting**: Common issues and solutions
|
|
- **Contributing**: Guidelines for contributors
|
|
- **Changelog**: Version history and changes
|
|
|
|
#### Content Requirements by Tier
|
|
- **BASIC**: Minimum 100 lines of substantial content
|
|
- **STANDARD**: Minimum 200 lines of substantial content
|
|
- **POWERFUL**: Minimum 300 lines of substantial content
|
|
|
|
### README.md Requirements
|
|
|
|
The `README.md` file provides quick start instructions and must include:
|
|
|
|
#### Mandatory Content
|
|
- Brief description of the skill
|
|
- Quick start instructions
|
|
- Basic usage examples
|
|
- Link to full SKILL.md documentation
|
|
|
|
#### Recommended Content
|
|
- Installation instructions
|
|
- Prerequisites and dependencies
|
|
- Command-line usage examples
|
|
- Troubleshooting section
|
|
- Contributing guidelines
|
|
|
|
#### Length Requirements
|
|
- Minimum 200 characters of substantial content
|
|
- Recommended 500+ characters for comprehensive coverage
|
|
|
|
### Scripts Directory Requirements
|
|
|
|
The `scripts/` directory contains all Python implementation files:
|
|
|
|
#### Mandatory Requirements
|
|
- At least one Python (.py) file
|
|
- All scripts must be executable Python 3.7+
|
|
- No external dependencies outside Python standard library
|
|
- Proper file naming conventions (lowercase, hyphens for separation)
|
|
|
|
#### Script Content Requirements
|
|
- **Shebang line**: `#!/usr/bin/env python3`
|
|
- **Module docstring**: Comprehensive description of script purpose
|
|
- **Argparse implementation**: Command-line argument parsing
|
|
- **Main guard**: `if __name__ == "__main__":` protection
|
|
- **Error handling**: Appropriate exception handling and user feedback
|
|
- **Dual output**: Support for both JSON and human-readable output formats
|
|
|
|
#### Script Size Requirements by Tier
|
|
- **BASIC**: 100-300 lines of code per script
|
|
- **STANDARD**: 300-500 lines of code per script
|
|
- **POWERFUL**: 500-800 lines of code per script
|
|
|
|
### Assets Directory Structure
|
|
|
|
The `assets/` directory contains sample data and supporting files:
|
|
|
|
```
|
|
assets/
|
|
├── samples/ # Sample input data
|
|
│ ├── simple_example.json
|
|
│ ├── complex_dataset.csv
|
|
│ └── test_configuration.yaml
|
|
├── examples/ # Example files demonstrating usage
|
|
│ ├── basic_workflow.py
|
|
│ ├── advanced_usage.sh
|
|
│ └── integration_example.md
|
|
└── data/ # Static data files
|
|
├── reference_data.json
|
|
├── lookup_tables.csv
|
|
└── configuration_templates/
|
|
```
|
|
|
|
#### Content Requirements
|
|
- At least 2 sample files demonstrating different use cases
|
|
- Files should represent realistic usage scenarios
|
|
- Include both simple and complex examples where applicable
|
|
- Provide diverse file formats (JSON, CSV, YAML, etc.)
|
|
|
|
### References Directory Structure
|
|
|
|
The `references/` directory contains detailed reference documentation:
|
|
|
|
```
|
|
references/
|
|
├── api-reference.md # Complete API documentation
|
|
├── specifications.md # Technical specifications and requirements
|
|
├── external-links.md # Links to related resources
|
|
├── algorithms.md # Algorithm descriptions and implementations
|
|
└── best-practices.md # Usage best practices and patterns
|
|
```
|
|
|
|
#### Content Requirements
|
|
- Each file should contain substantial technical content (500+ words)
|
|
- Include code examples and technical specifications
|
|
- Provide external references and links where appropriate
|
|
- Maintain consistent documentation format and style
|
|
|
|
### Expected Outputs Directory Structure
|
|
|
|
The `expected_outputs/` directory contains reference outputs for testing:
|
|
|
|
```
|
|
expected_outputs/
|
|
├── basic_example_output.json
|
|
├── complex_scenario_result.txt
|
|
├── error_cases/
|
|
│ ├── invalid_input_error.json
|
|
│ └── timeout_error.txt
|
|
└── test_cases/
|
|
├── unit_test_outputs/
|
|
└── integration_test_results/
|
|
```
|
|
|
|
#### Content Requirements
|
|
- Outputs correspond to sample inputs in assets/ directory
|
|
- Include both successful and error case examples
|
|
- Provide outputs in multiple formats (JSON, text, CSV)
|
|
- Ensure outputs are reproducible and verifiable
|
|
|
|
## Naming Conventions
|
|
|
|
### Directory Names
|
|
- Use lowercase letters only
|
|
- Use hyphens (-) to separate words
|
|
- Keep names concise but descriptive
|
|
- Avoid special characters and spaces
|
|
|
|
Examples: `data-processor`, `api-client`, `ml-trainer`
|
|
|
|
### File Names
|
|
- Use lowercase letters for Python scripts
|
|
- Use hyphens (-) to separate words in script names
|
|
- Use underscores (_) only when required by Python conventions
|
|
- Use descriptive names that indicate purpose
|
|
|
|
Examples: `data-processor.py`, `api-client.py`, `quality_scorer.py`
|
|
|
|
### Script Internal Naming
|
|
- Use PascalCase for class names
|
|
- Use snake_case for function and variable names
|
|
- Use UPPER_CASE for constants
|
|
- Use descriptive names that indicate purpose
|
|
|
|
## Quality Standards
|
|
|
|
### Documentation Standards
|
|
- All documentation must be written in clear, professional English
|
|
- Use proper Markdown formatting and structure
|
|
- Include code examples with syntax highlighting
|
|
- Provide comprehensive coverage of all features
|
|
- Maintain consistent terminology throughout
|
|
|
|
### Code Standards
|
|
- Follow PEP 8 Python style guidelines
|
|
- Include comprehensive docstrings for all functions and classes
|
|
- Implement proper error handling with meaningful error messages
|
|
- Use type hints where appropriate
|
|
- Maintain reasonable code complexity and readability
|
|
|
|
### Testing Standards
|
|
- Provide sample data that exercises all major functionality
|
|
- Include expected outputs for verification
|
|
- Cover both successful and error scenarios
|
|
- Ensure reproducible results across different environments
|
|
|
|
## Validation Criteria
|
|
|
|
Skills are validated against the following criteria:
|
|
|
|
### Structural Validation
|
|
- All mandatory files and directories present
|
|
- Proper file naming conventions followed
|
|
- Directory structure matches specification
|
|
- File permissions and accessibility correct
|
|
|
|
### Content Validation
|
|
- SKILL.md meets minimum length and section requirements
|
|
- README.md provides adequate quick start information
|
|
- Scripts contain required components (argparse, main guard, etc.)
|
|
- Sample data and expected outputs are complete and realistic
|
|
|
|
### Quality Validation
|
|
- Documentation is comprehensive and accurate
|
|
- Code follows established style and quality guidelines
|
|
- Examples are practical and demonstrate real usage
|
|
- Error handling is appropriate and user-friendly
|
|
|
|
## Compliance Levels
|
|
|
|
### Full Compliance
|
|
- All mandatory components present and complete
|
|
- All recommended components present with substantial content
|
|
- Exceeds minimum quality thresholds for tier
|
|
- Demonstrates best practices throughout
|
|
|
|
### Partial Compliance
|
|
- All mandatory components present
|
|
- Most recommended components present
|
|
- Meets minimum quality thresholds for tier
|
|
- Generally follows established patterns
|
|
|
|
### Non-Compliance
|
|
- Missing mandatory components
|
|
- Inadequate content quality or length
|
|
- Does not meet minimum tier requirements
|
|
- Significant deviations from established standards
|
|
|
|
## Migration and Updates
|
|
|
|
### Existing Skills
|
|
Skills created before this specification should be updated to comply within:
|
|
- **POWERFUL tier**: 30 days
|
|
- **STANDARD tier**: 60 days
|
|
- **BASIC tier**: 90 days
|
|
|
|
### Specification Updates
|
|
- Changes to this specification require team consensus
|
|
- Breaking changes must provide 90-day migration period
|
|
- All changes must be documented with rationale and examples
|
|
- Automated validation tools must be updated accordingly
|
|
|
|
## Tools and Automation
|
|
|
|
### Validation Tools
|
|
- `skill_validator.py` - Validates structure and content compliance
|
|
- `script_tester.py` - Tests script functionality and quality
|
|
- `quality_scorer.py` - Provides comprehensive quality assessment
|
|
|
|
### Integration Points
|
|
- Pre-commit hooks for basic validation
|
|
- CI/CD pipeline integration for pull request validation
|
|
- Automated quality reporting and tracking
|
|
- Integration with code review processes
|
|
|
|
## Examples and Templates
|
|
|
|
### Minimal BASIC Tier Example
|
|
```
|
|
basic-skill/
|
|
├── SKILL.md # 100+ lines
|
|
├── README.md # Basic usage instructions
|
|
└── scripts/
|
|
└── main.py # 100-300 lines with argparse
|
|
```
|
|
|
|
### Complete POWERFUL Tier Example
|
|
```
|
|
powerful-skill/
|
|
├── SKILL.md # 300+ lines with comprehensive sections
|
|
├── README.md # Detailed usage and setup
|
|
├── scripts/ # Multiple sophisticated scripts
|
|
│ ├── main_processor.py # 500-800 lines
|
|
│ ├── data_analyzer.py # 500-800 lines
|
|
│ └── report_generator.py # 500-800 lines
|
|
├── assets/ # Diverse sample data
|
|
│ ├── samples/
|
|
│ ├── examples/
|
|
│ └── data/
|
|
├── references/ # Comprehensive documentation
|
|
│ ├── api-reference.md
|
|
│ ├── specifications.md
|
|
│ └── best-practices.md
|
|
└── expected_outputs/ # Complete test outputs
|
|
├── json_outputs/
|
|
├── text_reports/
|
|
└── error_cases/
|
|
```
|
|
|
|
This specification serves as the authoritative guide for skill structure within the claude-skills ecosystem. Adherence to these standards ensures consistency, quality, and maintainability across all skills in the repository. |