Sistema de Validação de Overlaps
O sistema de validação de overlaps é uma ferramenta automatizada que ajuda a manter a qualidade da documentação detectando conteúdo duplicado, inconsistências estruturais e possíveis redundâncias.
Visão Geral
Este sistema foi desenvolvido para fortalecer nosso hub de conhecimento, garantindo que cada tópico tenha um local único e bem definido, evitando confusão para os usuários e facilitando a manutenção.
Componentes do Sistema
1. Arquivo de Configuração (sidebars.json
)
sidebars.json
O arquivo
sidebars.json
centraliza toda a estrutura de navegação e serve como fonte da verdade para:
- Estrutura hierárquica: Define como a documentação está organizada
- Palavras-chave de monitoramento: Identifica termos que podem indicar overlaps
- Seções críticas: Define quais áreas precisam de atenção especial
- Regras de validação: Estabelece critérios para organização
2. Script de Validação (scripts/validate-overlaps.js
)
scripts/validate-overlaps.js
Script automatizado que executa verificações abrangentes:
- Validação de estrutura: Verifica se arquivos existem conforme definido
- Detecção de palavras-chave: Identifica uso excessivo de termos suspeitos
- Análise de similaridade: Compara conteúdo entre arquivos
- Geração de relatórios: Cria relatórios detalhados de problemas encontrados
3. Guidelines no CONTRIBUTING.md
Diretrizes claras para contribuidores sobre:
- Como verificar overlaps antes de contribuir
- Critérios para decidir onde colocar novo conteúdo
- Processo de revisão pré-merge
- Ferramentas de verificação disponíveis
Como Usar o Sistema
Execução Manual
Para executar a validação manualmente:
# Usando npm
npm run validate-overlaps
# Usando pnpm
pnpm validate-overlaps
# Comando alternativo
pnpm check-overlaps
Integração no Fluxo de Trabalho
O sistema pode ser integrado em diferentes pontos do fluxo de desenvolvimento:
Pré-commit
Adicione ao seu
.git/hooks/pre-commit
:
#!/bin/sh
npm run validate-overlaps
if [ $? -ne 0 ]; then
echo "❌ Validação de overlaps falhou. Verifique o relatório."
exit 1
fi
Pull Request
Configure no seu CI/CD para executar automaticamente em pull requests:
# .github/workflows/validate-overlaps.yml
name: Validate Overlaps
on: [pull_request]
jobs:
validate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: '18'
- run: npm install
- run: npm run validate-overlaps
Interpretando os Resultados
Tipos de Problemas Detectados
1. Problemas de Estrutura
- Arquivos ausentes: Arquivos referenciados no
que não existemsidebars.json
- Seções mal organizadas: Estrutura que não segue a hierarquia definida
2. Palavras-chave Suspeitas
- Uso excessivo: Termos que aparecem muitas vezes e podem indicar redundância
- Concentração: Palavras-chave agrupadas em poucos arquivos
3. Conteúdo Duplicado
- Títulos idênticos: Mesmos títulos em arquivos diferentes
- Conteúdo similar: Texto com alta similaridade (>70%)
Exemplo de Relatório
{
"metadata": {
"generatedAt": "2024-01-01T10:00:00.000Z",
"totalIssues": 5,
"configVersion": "1.0.0"
},
"summary": {
"structure": 2,
"keyword": 1,
"content": 1,
"similarity": 1
},
"issues": [
{
"type": "structure",
"message": "Arquivo não encontrado: guia-instalacao",
"path": "primeiros-passos/guia-instalacao",
"timestamp": "2024-01-01T10:00:00.000Z"
}
],
"recommendations": [
{
"type": "structure",
"priority": "high",
"message": "Corrigir estrutura de arquivos ausentes",
"count": 2
}
]
}
Configuração Avançada
Personalizando Palavras-chave
Edite o arquivo
sidebars.json
para adicionar ou remover palavras-chave:
{
"overlapDetection": {
"keywords": [
"instalação",
"configuração",
"autenticação",
"webhook",
"api",
"workflow",
"dados",
"integração",
"credential",
"trigger",
"sua-palavra-chave"
]
}
}
Ajustando Sensibilidade
Modifique o script para ajustar a sensibilidade da detecção:
// Em scripts/validate-overlaps.js
if (similarity > 0.7) { // Ajuste este valor (0.0 a 1.0)
// Detectar conteúdo similar
}
Adicionando Novas Seções
Para monitorar novas seções, adicione ao
sidebars.json
:
{
"overlapDetection": {
"sectionsToMonitor": [
"primeiros-passos",
"usando-n8n",
"integracoes",
"integracoes-br",
"nova-secao"
]
}
}
Boas Práticas
Para Contribuidores
- Execute a validação antes de submeter: Use
npm run validate-overlaps
- Revise o relatório: Corrija problemas antes do PR
- Consulte a estrutura: Verifique o
antes de criar conteúdosidebars.json
- Use links internos: Referencie conteúdo existente ao invés de duplicar
Para Mantenedores
- Execute validações regulares: Configure execução automática
- Revise relatórios: Analise problemas encontrados
- Atualize configuração: Mantenha
atualizadosidebars.json
- Documente decisões: Registre mudanças na estrutura
Para Revisores
- Verifique o relatório: Use como parte do processo de revisão
- Aplique guidelines: Siga as diretrizes do CONTRIBUTING.md
- Solicite correções: Peça ajustes quando necessário
- Mantenha consistência: Garanta que mudanças seguem a estrutura
Troubleshooting
Problemas Comuns
Script não executa
# Verifique se as dependências estão instaladas
npm install
# Verifique se o arquivo sidebars.json existe
ls sidebars.json
Relatório muito extenso
- Ajuste a sensibilidade da detecção
- Revise as palavras-chave configuradas
- Considere se o conteúdo realmente precisa ser consolidado
Falsos positivos
- Adicione exceções ao script
- Refine as palavras-chave
- Ajuste os critérios de similaridade
Logs e Debug
Para debug detalhado, modifique o script:
// Adicione logs detalhados
console.log('Analisando arquivo:', filePath);
console.log('Similaridade calculada:', similarity);
Integração com Outras Ferramentas
ESLint
Configure regras específicas para documentação:
// .eslintrc.js
module.exports = {
overrides: [
{
files: ['docs/**/*.md', 'docs/**/*.mdx'],
rules: {
// Regras específicas para documentação
}
}
]
};
Prettier
Configure formatação para arquivos markdown:
// .prettierrc
{
"overrides": [
{
"files": "*.md",
"options": {
"proseWrap": "always"
}
}
]
}
Próximos Passos
Melhorias Planejadas
- Interface web: Dashboard para visualizar relatórios
- Integração contínua: Execução automática em CI/CD
- Análise semântica: Detecção mais inteligente de similaridade
- Sugestões automáticas: Recomendações de consolidação
Contribuindo para o Sistema
Para contribuir com melhorias no sistema:
- Reporte bugs: Use issues do GitHub
- Sugira melhorias: Abra discussões
- Submeta PRs: Contribua com código
- Documente mudanças: Atualize esta documentação
Conclusão
O sistema de validação de overlaps é uma ferramenta essencial para manter a qualidade da nossa documentação. Ao seguir as diretrizes e usar as ferramentas disponíveis, contribuímos para um hub de conhecimento robusto e bem organizado.
Para dúvidas ou sugestões sobre o sistema, consulte as discussões da comunidade ou abra uma issue no repositório.