agent-skill-creator/docs/NAMING_CONVENTIONS.md
Francy Lisboa ed58c077de docs: Organize documentation and add AgentDB learning verification
Major documentation reorganization and learning capability verification:

Documentation Structure:
- Move all .md files (except SKILL.md, README.md) to docs/ folder
- Create docs/README.md as documentation index
- Fix all broken links in README.md and SKILL.md to point to docs/
- Add comprehensive navigation and reading paths

New Learning Documentation:
- Add USER_BENEFITS_GUIDE.md (what learning means for end users)
- Add TRY_IT_YOURSELF.md (5-minute hands-on demo)
- Add QUICK_VERIFICATION_GUIDE.md (command reference)
- Add LEARNING_VERIFICATION_REPORT.md (complete technical proof)

Learning Verification:
- Add test_agentdb_learning.py (automated test script)
- Verify Reflexion Memory (3 episodes stored and retrievable)
- Verify Skill Library (3 skills created and searchable)
- Verify Causal Memory (4 causal edges with proofs)
- Demonstrate 40-70% speed improvements
- Prove 85-95% confidence in recommendations

Repository Improvements:
- Update .gitignore to include test_agentdb_learning.py
- Maintain clean root directory (only essentials visible)
- Professional documentation organization

All learning capabilities verified and operational.

🎉 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-23 07:23:50 -03:00

10 KiB

Convenções de Nomenclatura: Sufixo "-cskill"

🎯 Propósito e Visão Geral

Este documento estabelece a convenção de nomenclatura obrigatória para todas as Claude Skills criadas pelo Agent-Skill-Creator, utilizando o sufixo "-cskill" para garantir identificação clara e consistência profissional.

🏷️ O Sufixo "-cskill"

Significado

  • CSKILL = Claude SKILL (Habilidade Claude)
  • Indica que a skill foi criada automaticamente pelo Agent-Skill-Creator
  • Diferencia de skills criadas manualmente ou por outras ferramentas

Benefícios

Identificação Imediata

  • Qualquer pessoa vê "-cskill" e sabe imediatamente que é uma Claude Skill
  • Reconhecimento instantâneo da origem (Agent-Skill-Creator)

Organização Facilitada

  • Fácil filtrar e encontrar skills criadas pelo creator
  • Agrupamento lógico em sistemas de arquivos
  • Busca eficiente com padrão consistente

Profissionalismo

  • Convenção de nomenclatura profissional e padronizada
  • Clareza na comunicação sobre origem e tipo
  • Aparência organizada e intencional

Evita Confusão

  • Sem ambiguidade sobre o que é uma skill vs plugin
  • Distinção clara de skills manuais vs automatizadas
  • Prevenção de conflitos de nomes

📋 Regras de Nomenclatura

1. Formato Obrigatório

{descrição-descritiva}-cskill/

2. Estrutura do Nome Base

Simple Skills (Objetivo Único)

{ação}-{objeto}-csskill/

Exemplos:

  • pdf-text-extractor-cskill/
  • csv-data-cleaner-cskill/
  • image-converter-cskill/
  • email-automation-cskill/
  • report-generator-cskill/

Complex Skill Suites (Múltiplos Componentes)

{domínio}-analysis-suite-cskill/
{domínio}-automation-cskill/
{domínio}-workflow-cskill/

Exemplos:

  • financial-analysis-suite-cskill/
  • e-commerce-automation-cskill/
  • research-workflow-cskill/
  • business-intelligence-cskill/

Component Skills (Dentro de Suites)

{funcionalidade}-{domínio}-cskill/

Exemplos:

  • data-acquisition-cskill/
  • technical-analysis-cskill/
  • reporting-generator-cskill/
  • user-interface-cskill/

3. Regras de Formatação

OBRIGATÓRIO:

  • Sempre minúsculas
  • Usar hífens (-) para separar palavras
  • Terminar com "-cskill"
  • Ser descritivo e claro
  • Usar apenas caracteres alfanuméricos e hífens

PROIBIDO:

  • Letras maiúsculas
  • Underscores (_)
  • Espaços em branco
  • Caracteres especiais (!@#$%&*)
  • Números no início
  • Abreviações não-padrão

4. Comprimento Recomendado

  • Mínimo: 10 caracteres (ex: pdf-tool-cskill)
  • Ideal: 20-40 caracteres (ex: financial-analysis-suite-cskill)
  • Máximo: 60 caracteres (exceções justificadas)

🔧 Processo de Geração de Nomes

Lógica Automática do Agent-Skill-Creator

def generate_skill_name(user_requirements, complexity):
    """
    Gera nome da skill seguindo convenção -cskill
    """

    # 1. Extrair conceitos-chave do input do usuário
    concepts = extract_key_concepts(user_requirements)

    # 2. Criar nome base baseado na complexidade
    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. Sanitizar e formatar
    base_name = sanitize_name(base_name)

    # 4. Aplicar convenção -cskill
    skill_name = f"{base_name}-cskill"

    return skill_name

def create_simple_name(concepts):
    """Cria nome para skills simples"""
    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):
    """Cria nome para suites complexas"""
    if len(concepts) <= 2:
        return f"{concepts[0]}-automation"
    else:
        return f"{concepts[0]}-{'-'.join(concepts[1:3])}-suite"

def sanitize_name(name):
    """Sanitiza nome para formato válido"""
    # Converter para minúsculas
    name = name.lower()
    # Substituir espaços e underscores por hífens
    name = re.sub(r'[\s_]+', '-', name)
    # Remover caracteres especiais
    name = re.sub(r'[^a-z0-9-]', '', name)
    # Remover hífens múltiplos
    name = re.sub(r'-+', '-', name)
    # Remover hífens no início/fim
    name = name.strip('-')
    return name

Exemplos de Transformação

Input do Usuário Tipo Conceitos Extraídos Nome Gerado
"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/

📚 Exemplos Práticos por Domínio

Finanças e Investimentos

financial-analysis-suite-cskill/
portfolio-optimizer-cskill/
market-data-fetcher-cskill/
risk-calculator-cskill/
trading-signal-generator-cskill/

Análise de Dados

data-visualization-cskill/
statistical-analysis-cskill/
etl-pipeline-cskill/
data-cleaner-cskill/
dashboard-generator-cskill/

Automação de Documentos

pdf-processor-cskill/
word-automation-cskill/
excel-report-generator-cskill/
presentation-creator-cskill/
document-converter-cskill/

E-commerce e Vendas

inventory-tracker-cskill/
sales-analytics-cskill/
customer-data-processor-cskill/
order-automation-cskill/
price-monitor-cskill/

Pesquisa e Academia

literature-review-cskill/
citation-manager-cskill/
research-data-collector-cskill/
academic-paper-generator-cskill/
survey-analyzer-cskill/

Produtividade e Escritório

email-automation-cskill/
calendar-manager-cskill/
task-tracker-cskill/
note-organizer-cskill/
meeting-scheduler-cskill/

🔍 Validação e Qualidade

Verificação Automática

def validate_skill_name(skill_name):
    """
    Valida se o nome segue a convenção -cskill
    """

    # 1. Verificar sufixo -cskill
    if not skill_name.endswith("-cskill"):
        return False, "Missing -cskill suffix"

    # 2. Verificar formato minúsculas
    if skill_name != skill_name.lower():
        return False, "Must be lowercase"

    # 3. Verificar caracteres válidos
    if not re.match(r'^[a-z0-9-]+-cskill$', skill_name):
        return False, "Contains invalid characters"

    # 4. Verificar comprimento
    if len(skill_name) < 10 or len(skill_name) > 60:
        return False, "Invalid length"

    # 5. Verificar hífens consecutivos
    if '--' in skill_name:
        return False, "Contains consecutive hyphens"

    return True, "Valid naming convention"

Checklist de Qualidade

Para cada nome gerado, verificar:

  • Termina com "-cskill"
  • Está em minúsculas
  • Usa apenas hífens como separadores
  • É descritivo e claro
  • Não tem caracteres especiais
  • Comprimento adequado (10-60 caracteres)
  • Fácil de pronunciar e lembrar
  • Reflete a funcionalidade principal
  • É único no ecossistema

🚀 Boas Práticas

1. Seja Descritivo

✅ bom: pdf-text-extractor-cskill
❌ ruim: tool-cskill

✅ bom: financial-analysis-suite-cskill
❌ ruim: finance-cskill

2. Mantenha Simplicidade

✅ bom: csv-data-cleaner-cskill
❌ ruim: automated-csv-data-validation-and-cleaning-tool-cskill

✅ bom: email-automation-cskill
❌ ruim: professional-email-marketing-automation-workflow-cskill

3. Seja Consistente

✅ bom: data-acquisition-cskill, data-processing-cskill, data-visualization-cskill
❌ ruim: get-data-cskill, process-cskill, visualize-cskill

4. Pense no Usuário

✅ bom: weekly-report-generator-cskill (claro o que faz)
❌ ruim: wrk-gen-cskill (abreviado, confuso)

🔄 Migração e Legado

Skills Existentes Sem "-cskill"

Se você tem skills existentes sem o sufixo:

  1. Adicione o sufixo imediatamente

    mv old-skill-name old-skill-name-cskill
    
  2. Atualize referências internas

    • Atualize SKILL.md
    • Modifique marketplace.json
    • Atualize documentação
  3. Teste funcionamento

    • Verifique que a skill ainda funciona
    • Confirme instalação correta

Documentação de Migração

Para cada skill migrada, documente:

## 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

📖 Guia Rápido de Referência

Para Criar Novo Nome:

  1. Identificar objetivo principal (ex: "extract PDF text")
  2. Extrair conceitos-chave (ex: extract, pdf, text)
  3. Montar nome base (ex: pdf-text-extractor)
  4. Adicionar sufixo (ex: pdf-text-extractor-cskill)

Para Validar Nome Existente:

  1. Verificar sufixo "-cskill"
  2. Confirmar formato minúsculas
  3. Checar caracteres válidos
  4. Avaliar descritividade

Para Solucionar Problemas:

  • Nome muito curto: Adicionar descritor
  • Nome muito longo: Remover palavras secundárias
  • Nome confuso: Usar sinônimos mais claros
  • Conflito de nomes: Adicionar diferenciador

Resumo da Convenção

Fórmula: {descrição-descritiva}-cskill/

Regras Essenciais:

  • Sempre terminar com "-cskill"
  • Sempre minúsculas
  • Usar hífens como separadores
  • Ser descritivo e claro

Resultados:

  • 🎯 Identificação imediata como Claude Skill
  • 🏗️ Origem clara (Agent-Skill-Creator)
  • 📁 Organização facilitada
  • 🔍 Busca eficiente
  • 💬 Comunicação clara

Esta convenção garante consistência profissional e elimina qualquer confusão sobre a origem e tipo das skills criadas!