375 lines
9.7 KiB
Markdown
375 lines
9.7 KiB
Markdown
# Naming Conventions: The "-cskill" Suffix
|
|
|
|
## 🎯 **Purpose and Overview**
|
|
|
|
This document establishes the mandatory naming convention for all Claude Skills created by Agent-Skill-Creator, using the "-cskill" suffix to ensure clear identification and professional consistency.
|
|
|
|
## 🏷️ **The "-cskill" Suffix**
|
|
|
|
### **Meaning**
|
|
- **CSKILL** = **C**laude **SKILL**
|
|
- Indicates the skill was automatically created by Agent-Skill-Creator
|
|
- Differentiates from manually created skills or other tools
|
|
|
|
### **Benefits**
|
|
|
|
✅ **Immediate Identification**
|
|
- Anyone sees "-cskill" and immediately knows it's a Claude Skill
|
|
- Instant recognition of origin (Agent-Skill-Creator)
|
|
|
|
✅ **Easy Organization**
|
|
- Easy to filter and find skills created by the creator
|
|
- Logical grouping in file systems
|
|
- Efficient search with consistent pattern
|
|
|
|
✅ **Professionalism**
|
|
- Professional and standardized naming convention
|
|
- Clarity in communication about origin and type
|
|
- Organized and intentional appearance
|
|
|
|
✅ **Avoids Confusion**
|
|
- No ambiguity about what's a skill vs plugin
|
|
- Clear distinction between manual vs automated skills
|
|
- Prevention of name conflicts
|
|
|
|
## 📋 **Naming Rules**
|
|
|
|
### **1. Mandatory Format**
|
|
```
|
|
{descriptive-description}-cskill/
|
|
```
|
|
|
|
### **2. Base Name Structure**
|
|
|
|
#### **Simple Skills (Single Objective)**
|
|
```
|
|
{action}-{object}-csskill/
|
|
```
|
|
|
|
**Examples:**
|
|
- `pdf-text-extractor-cskill/`
|
|
- `csv-data-cleaner-cskill/`
|
|
- `image-converter-cskill/`
|
|
- `email-automation-cskill/`
|
|
- `report-generator-cskill/`
|
|
|
|
#### **Complex Skill Suites (Multiple Components)**
|
|
```
|
|
{domain}-analysis-suite-cskill/
|
|
{domain}-automation-cskill/
|
|
{domain}-workflow-cskill/
|
|
```
|
|
|
|
**Examples:**
|
|
- `financial-analysis-suite-cskill/`
|
|
- `e-commerce-automation-cskill/`
|
|
- `research-workflow-cskill/`
|
|
- `business-intelligence-cskill/`
|
|
|
|
#### **Component Skills (Within Suites)**
|
|
```
|
|
{functionality}-{domain}-cskill/
|
|
```
|
|
|
|
**Examples:**
|
|
- `data-acquisition-cskill/`
|
|
- `technical-analysis-cskill/`
|
|
- `reporting-generator-cskill/`
|
|
- `user-interface-cskill/`
|
|
|
|
### **3. Formatting Rules**
|
|
|
|
✅ **REQUIRED:**
|
|
- Always lowercase
|
|
- Use hyphens (-) to separate words
|
|
- End with "-cskill"
|
|
- Be descriptive and clear
|
|
- Use only alphanumeric characters and hyphens
|
|
|
|
❌ **PROHIBITED:**
|
|
- Uppercase letters
|
|
- Underscores (_)
|
|
- Whitespace
|
|
- Special characters (!@#$%&*)
|
|
- Numbers at the beginning
|
|
- Non-standard abbreviations
|
|
|
|
### **4. Recommended Length**
|
|
|
|
- **Minimum:** 10 characters (ex: `pdf-tool-cskill`)
|
|
- **Ideal:** 20-40 characters (ex: `financial-analysis-suite-cskill`)
|
|
- **Maximum:** 60 characters (justified exceptions)
|
|
|
|
## 🔧 **Name Generation Process**
|
|
|
|
### **Agent-Skill-Creator Automatic Logic**
|
|
|
|
```python
|
|
def generate_skill_name(user_requirements, complexity):
|
|
"""
|
|
Generates skill name following -cskill convention
|
|
"""
|
|
|
|
# 1. Extract key concepts from user input
|
|
concepts = extract_key_concepts(user_requirements)
|
|
|
|
# 2. Create base name based on complexity
|
|
if complexity == "simple":
|
|
base_name = create_simple_name(concepts)
|
|
elif complexity == "complex_suite":
|
|
base_name = create_suite_name(concepts)
|
|
else: # hybrid
|
|
base_name = create_hybrid_name(concepts)
|
|
|
|
# 3. Sanitize and format
|
|
base_name = sanitize_name(base_name)
|
|
|
|
# 4. Apply -cskill convention
|
|
skill_name = f"{base_name}-cskill"
|
|
|
|
return skill_name
|
|
|
|
def create_simple_name(concepts):
|
|
"""Creates name for simple skills"""
|
|
if len(concepts) == 1:
|
|
return f"{concepts[0]}-tool"
|
|
elif len(concepts) == 2:
|
|
return f"{concepts[1]}-{concepts[0]}"
|
|
else:
|
|
return "-".join(concepts[:2])
|
|
|
|
def create_suite_name(concepts):
|
|
"""Creates name for complex suites"""
|
|
if len(concepts) <= 2:
|
|
return f"{concepts[0]}-automation"
|
|
else:
|
|
return f"{concepts[0]}-{'-'.join(concepts[1:3])}-suite"
|
|
|
|
def sanitize_name(name):
|
|
"""Sanitizes name to valid format"""
|
|
# Convert to lowercase
|
|
name = name.lower()
|
|
# Replace spaces and underscores with hyphens
|
|
name = re.sub(r'[\s_]+', '-', name)
|
|
# Remove special characters
|
|
name = re.sub(r'[^a-z0-9-]', '', name)
|
|
# Remove multiple hyphens
|
|
name = re.sub(r'-+', '-', name)
|
|
# Remove hyphens at start/end
|
|
name = name.strip('-')
|
|
return name
|
|
```
|
|
|
|
### **Transformation Examples**
|
|
|
|
| User Input | Type | Extracted Concepts | Generated Name |
|
|
|------------------|------|-------------------|-------------|
|
|
| "Extract text from PDF" | Simple | ["extract", "text", "pdf"] | `pdf-text-extractor-cskill/` |
|
|
| "Clean CSV data automatically" | Simple | ["clean", "csv", "data"] | `csv-data-cleaner-cskill/` |
|
|
| "Complete financial analysis platform" | Suite | ["financial", "analysis", "platform"] | `financial-analysis-suite-cskill/` |
|
|
| "Automate e-commerce workflows" | Suite | ["automate", "ecommerce", "workflows"] | `ecommerce-automation-cskill/` |
|
|
| "Generate weekly status reports" | Simple | ["generate", "weekly", "reports"] | `weekly-report-generator-cskill/` |
|
|
|
|
## 📚 **Practical Examples by Domain**
|
|
|
|
### **Finance and Investments**
|
|
```
|
|
financial-analysis-suite-cskill/
|
|
portfolio-optimizer-cskill/
|
|
market-data-fetcher-cskill/
|
|
risk-calculator-cskill/
|
|
trading-signal-generator-cskill/
|
|
```
|
|
|
|
### **Data Analysis**
|
|
```
|
|
data-visualization-cskill/
|
|
statistical-analysis-cskill/
|
|
etl-pipeline-cskill/
|
|
data-cleaner-cskill/
|
|
dashboard-generator-cskill/
|
|
```
|
|
|
|
### **Document Automation**
|
|
```
|
|
pdf-processor-cskill/
|
|
word-automation-cskill/
|
|
excel-report-generator-cskill/
|
|
presentation-creator-cskill/
|
|
document-converter-cskill/
|
|
```
|
|
|
|
### **E-commerce and Sales**
|
|
```
|
|
inventory-tracker-cskill/
|
|
sales-analytics-cskill/
|
|
customer-data-processor-cskill/
|
|
order-automation-cskill/
|
|
price-monitor-cskill/
|
|
```
|
|
|
|
### **Research and Academia**
|
|
```
|
|
literature-review-cskill/
|
|
citation-manager-cskill/
|
|
research-data-collector-cskill/
|
|
academic-paper-generator-cskill/
|
|
survey-analyzer-cskill/
|
|
```
|
|
|
|
### **Productivity and Office**
|
|
```
|
|
email-automation-cskill/
|
|
calendar-manager-cskill/
|
|
task-tracker-cskill/
|
|
note-organizer-cskill/
|
|
meeting-scheduler-cskill/
|
|
```
|
|
|
|
## 🔍 **Validation and Quality**
|
|
|
|
### **Automatic Verification**
|
|
```python
|
|
def validate_skill_name(skill_name):
|
|
"""
|
|
Validates if name follows -cskill convention
|
|
"""
|
|
|
|
# 1. Check -cskill suffix
|
|
if not skill_name.endswith("-cskill"):
|
|
return False, "Missing -cskill suffix"
|
|
|
|
# 2. Check lowercase format
|
|
if skill_name != skill_name.lower():
|
|
return False, "Must be lowercase"
|
|
|
|
# 3. Check valid characters
|
|
if not re.match(r'^[a-z0-9-]+-cskill$', skill_name):
|
|
return False, "Contains invalid characters"
|
|
|
|
# 4. Check length
|
|
if len(skill_name) < 10 or len(skill_name) > 60:
|
|
return False, "Invalid length"
|
|
|
|
# 5. Check consecutive hyphens
|
|
if '--' in skill_name:
|
|
return False, "Contains consecutive hyphens"
|
|
|
|
return True, "Valid naming convention"
|
|
```
|
|
|
|
### **Quality Checklist**
|
|
|
|
For each generated name, verify:
|
|
|
|
- [ ] **Ends with "-cskill"** ✓
|
|
- [ ] **Is in lowercase** ✓
|
|
- [ ] **Uses only hyphens as separators** ✓
|
|
- [ ] **Is descriptive and clear** ✓
|
|
- [ ] **Has no special characters** ✓
|
|
- [ ] **Appropriate length (10-60 characters)** ✓
|
|
- [ ] **Easy to pronounce and remember** ✓
|
|
- [ ] **Reflects main functionality** ✓
|
|
- [ ] **Is unique in ecosystem** ✓
|
|
|
|
## 🚀 **Best Practices**
|
|
|
|
### **1. Be Descriptive**
|
|
```
|
|
✅ good: pdf-text-extractor-cskill
|
|
❌ bad: tool-cskill
|
|
|
|
✅ good: financial-analysis-suite-cskill
|
|
❌ bad: finance-cskill
|
|
```
|
|
|
|
### **2. Keep It Simple**
|
|
```
|
|
✅ good: csv-data-cleaner-cskill
|
|
❌ bad: automated-csv-data-validation-and-cleaning-tool-cskill
|
|
|
|
✅ good: email-automation-cskill
|
|
❌ bad: professional-email-marketing-automation-workflow-cskill
|
|
```
|
|
|
|
### **3. Be Consistent**
|
|
```
|
|
✅ good: data-acquisition-cskill, data-processing-cskill, data-visualization-cskill
|
|
❌ bad: get-data-cskill, process-cskill, visualize-cskill
|
|
```
|
|
|
|
### **4. Think About the User**
|
|
```
|
|
✅ good: weekly-report-generator-cskill (clear what it does)
|
|
❌ bad: wrk-gen-cskill (abbreviated, confusing)
|
|
```
|
|
|
|
## 🔄 **Migration and Legacy**
|
|
|
|
### **Existing Skills Without "-cskill"**
|
|
If you have existing skills without the suffix:
|
|
|
|
1. **Add the suffix immediately**
|
|
```bash
|
|
mv old-skill-name old-skill-name-cskill
|
|
```
|
|
|
|
2. **Update internal references**
|
|
- Update SKILL.md
|
|
- Modify marketplace.json
|
|
- Update documentation
|
|
|
|
3. **Test functionality**
|
|
- Verify skill still works
|
|
- Confirm correct installation
|
|
|
|
### **Migration Documentation**
|
|
For each migrated skill, document:
|
|
```markdown
|
|
## Migration History
|
|
- **Original Name**: `old-name`
|
|
- **New Name**: `old-name-cskill`
|
|
- **Migration Date**: YYYY-MM-DD
|
|
- **Reason**: Apply -cskill naming convention
|
|
- **Impact**: None, purely cosmetic change
|
|
```
|
|
|
|
## 📖 **Quick Reference Guide**
|
|
|
|
### **To Create New Name:**
|
|
1. **Identify main objective** (ex: "extract PDF text")
|
|
2. **Extract key concepts** (ex: extract, pdf, text)
|
|
3. **Build base name** (ex: pdf-text-extractor)
|
|
4. **Add suffix** (ex: pdf-text-extractor-cskill)
|
|
|
|
### **To Validate Existing Name:**
|
|
1. **Check "-cskill" suffix**
|
|
2. **Confirm lowercase format**
|
|
3. **Check valid characters**
|
|
4. **Evaluate descriptiveness**
|
|
|
|
### **To Troubleshoot:**
|
|
- **Name too short**: Add descriptor
|
|
- **Name too long**: Remove secondary words
|
|
- **Confusing name**: Use clearer synonyms
|
|
- **Name conflict**: Add differentiator
|
|
|
|
## ✅ **Convention Summary**
|
|
|
|
**Formula:** `{descriptive-description}-cskill/`
|
|
|
|
**Essential Rules:**
|
|
- ✅ Always end with "-cskill"
|
|
- ✅ Always lowercase
|
|
- ✅ Use hyphens as separators
|
|
- ✅ Be descriptive and clear
|
|
|
|
**Results:**
|
|
- 🎯 Immediate identification as Claude Skill
|
|
- 🏗️ Clear origin (Agent-Skill-Creator)
|
|
- 📁 Easy organization
|
|
- 🔍 Efficient search
|
|
- 💬 Clear communication
|
|
|
|
**This convention ensures professional consistency and eliminates any confusion about the origin and type of created skills!**
|