Files
gh-francyjglisboa-agent-ski…/docs/NAMING_CONVENTIONS.md
2025-11-29 18:27:25 +08:00

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!**