- Comprehensive skill validation, testing, and quality scoring framework - skill_validator.py: validates structure, documentation, and compliance (700+ LOC) - script_tester.py: tests syntax, functionality, and runtime behavior (800+ LOC) - quality_scorer.py: multi-dimensional quality assessment with scoring (1100+ LOC) - Complete reference documentation (structure spec, tier requirements, scoring rubric) - Sample skill with assets and expected outputs for testing - CI/CD integration examples and pre-commit hook support - Zero external dependencies, dual output formats (JSON + human-readable) - Self-testing capable meta-skill for quality assurance automation
163 lines
5.3 KiB
Markdown
163 lines
5.3 KiB
Markdown
# Sample Text Processor
|
|
|
|
---
|
|
|
|
**Name**: sample-text-processor
|
|
**Tier**: BASIC
|
|
**Category**: Text Processing
|
|
**Dependencies**: None (Python Standard Library Only)
|
|
**Author**: Claude Skills Engineering Team
|
|
**Version**: 1.0.0
|
|
**Last Updated**: 2026-02-16
|
|
|
|
---
|
|
|
|
## Description
|
|
|
|
The Sample Text Processor is a simple skill designed to demonstrate the basic structure and functionality expected in the claude-skills ecosystem. This skill provides fundamental text processing capabilities including word counting, character analysis, and basic text transformations.
|
|
|
|
This skill serves as a reference implementation for BASIC tier requirements and can be used as a template for creating new skills. It demonstrates proper file structure, documentation standards, and implementation patterns that align with ecosystem best practices.
|
|
|
|
The skill processes text files and provides statistics and transformations in both human-readable and JSON formats, showcasing the dual output requirement for skills in the claude-skills repository.
|
|
|
|
## Features
|
|
|
|
### Core Functionality
|
|
- **Word Count Analysis**: Count total words, unique words, and word frequency
|
|
- **Character Statistics**: Analyze character count, line count, and special characters
|
|
- **Text Transformations**: Convert text to uppercase, lowercase, or title case
|
|
- **File Processing**: Process single text files or batch process directories
|
|
- **Dual Output Formats**: Generate results in both JSON and human-readable formats
|
|
|
|
### Technical Features
|
|
- Command-line interface with comprehensive argument parsing
|
|
- Error handling for common file and processing issues
|
|
- Progress reporting for batch operations
|
|
- Configurable output formatting and verbosity levels
|
|
- Cross-platform compatibility with standard library only dependencies
|
|
|
|
## Usage
|
|
|
|
### Basic Text Analysis
|
|
```bash
|
|
python text_processor.py analyze document.txt
|
|
python text_processor.py analyze document.txt --output results.json
|
|
```
|
|
|
|
### Text Transformation
|
|
```bash
|
|
python text_processor.py transform document.txt --mode uppercase
|
|
python text_processor.py transform document.txt --mode title --output transformed.txt
|
|
```
|
|
|
|
### Batch Processing
|
|
```bash
|
|
python text_processor.py batch text_files/ --output results/
|
|
python text_processor.py batch text_files/ --format json --output batch_results.json
|
|
```
|
|
|
|
## Examples
|
|
|
|
### Example 1: Basic Word Count
|
|
```bash
|
|
$ python text_processor.py analyze sample.txt
|
|
=== TEXT ANALYSIS RESULTS ===
|
|
File: sample.txt
|
|
Total words: 150
|
|
Unique words: 85
|
|
Total characters: 750
|
|
Lines: 12
|
|
Most frequent word: "the" (8 occurrences)
|
|
```
|
|
|
|
### Example 2: JSON Output
|
|
```bash
|
|
$ python text_processor.py analyze sample.txt --format json
|
|
{
|
|
"file": "sample.txt",
|
|
"statistics": {
|
|
"total_words": 150,
|
|
"unique_words": 85,
|
|
"total_characters": 750,
|
|
"lines": 12,
|
|
"most_frequent": {
|
|
"word": "the",
|
|
"count": 8
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
### Example 3: Text Transformation
|
|
```bash
|
|
$ python text_processor.py transform sample.txt --mode title
|
|
Original: "hello world from the text processor"
|
|
Transformed: "Hello World From The Text Processor"
|
|
```
|
|
|
|
## Installation
|
|
|
|
This skill requires only Python 3.7 or later with the standard library. No external dependencies are required.
|
|
|
|
1. Clone or download the skill directory
|
|
2. Navigate to the scripts directory
|
|
3. Run the text processor directly with Python
|
|
|
|
```bash
|
|
cd scripts/
|
|
python text_processor.py --help
|
|
```
|
|
|
|
## Configuration
|
|
|
|
The text processor supports various configuration options through command-line arguments:
|
|
|
|
- `--format`: Output format (json, text)
|
|
- `--verbose`: Enable verbose output and progress reporting
|
|
- `--output`: Specify output file or directory
|
|
- `--encoding`: Specify text file encoding (default: utf-8)
|
|
|
|
## Architecture
|
|
|
|
The skill follows a simple modular architecture:
|
|
|
|
- **TextProcessor Class**: Core processing logic and statistics calculation
|
|
- **OutputFormatter Class**: Handles dual output format generation
|
|
- **FileManager Class**: Manages file I/O operations and batch processing
|
|
- **CLI Interface**: Command-line argument parsing and user interaction
|
|
|
|
## Error Handling
|
|
|
|
The skill includes comprehensive error handling for:
|
|
- File not found or permission errors
|
|
- Invalid encoding or corrupted text files
|
|
- Memory limitations for very large files
|
|
- Output directory creation and write permissions
|
|
- Invalid command-line arguments and parameters
|
|
|
|
## Performance Considerations
|
|
|
|
- Efficient memory usage for large text files through streaming
|
|
- Optimized word counting using dictionary lookups
|
|
- Batch processing with progress reporting for large datasets
|
|
- Configurable encoding detection for international text
|
|
|
|
## Contributing
|
|
|
|
This skill serves as a reference implementation and contributions are welcome to demonstrate best practices:
|
|
|
|
1. Follow PEP 8 coding standards
|
|
2. Include comprehensive docstrings
|
|
3. Add test cases with sample data
|
|
4. Update documentation for any new features
|
|
5. Ensure backward compatibility
|
|
|
|
## Limitations
|
|
|
|
As a BASIC tier skill, some advanced features are intentionally omitted:
|
|
- Complex text analysis (sentiment, language detection)
|
|
- Advanced file format support (PDF, Word documents)
|
|
- Database integration or external API calls
|
|
- Parallel processing for very large datasets
|
|
|
|
This skill demonstrates the essential structure and quality standards required for BASIC tier skills in the claude-skills ecosystem while remaining simple and focused on core functionality. |