mirror of
https://github.com/lucasrcsantana/story-generator.git
synced 2025-12-16 13:27:52 +00:00
108 lines
3.0 KiB
Plaintext
108 lines
3.0 KiB
Plaintext
{
|
|
"rules": [
|
|
{
|
|
"name": "Padrões de Código",
|
|
"description": "Regras gerais para manter consistência no código",
|
|
"patterns": [
|
|
{
|
|
"id": "naming-conventions",
|
|
"pattern": "^[a-z][a-zA-Z0-9]*$",
|
|
"message": "Use camelCase para nomes de variáveis e funções"
|
|
},
|
|
{
|
|
"id": "component-naming",
|
|
"pattern": "^[A-Z][a-zA-Z0-9]*$",
|
|
"message": "Componentes React devem começar com letra maiúscula"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Segurança",
|
|
"description": "Regras para garantir segurança da aplicação",
|
|
"patterns": [
|
|
{
|
|
"id": "no-sensitive-data",
|
|
"pattern": "(password|senha|token|key|secret)",
|
|
"message": "Não exponha dados sensíveis no código"
|
|
},
|
|
{
|
|
"id": "child-safety",
|
|
"pattern": "(idade|age).*(>12|<6)",
|
|
"message": "Verifique restrições de idade (6-12 anos)"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Acessibilidade",
|
|
"description": "Regras para garantir acessibilidade",
|
|
"patterns": [
|
|
{
|
|
"id": "alt-text",
|
|
"pattern": "<img(?!.*alt=)[^>]*>",
|
|
"message": "Imagens devem ter texto alternativo (alt)"
|
|
},
|
|
{
|
|
"id": "aria-labels",
|
|
"pattern": "<button(?!.*aria-label)[^>]*>",
|
|
"message": "Botões devem ter aria-label quando não têm texto"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Performance",
|
|
"description": "Regras para otimização de performance",
|
|
"patterns": [
|
|
{
|
|
"id": "large-images",
|
|
"pattern": "unsplash.com/.*w=(\\d{4,})",
|
|
"message": "Evite imagens muito grandes (max 1200px)"
|
|
},
|
|
{
|
|
"id": "memo-check",
|
|
"pattern": "React.memo\\(",
|
|
"message": "Verifique se o uso de memo é necessário"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Estilo",
|
|
"description": "Regras de estilo e formatação",
|
|
"patterns": [
|
|
{
|
|
"id": "tailwind-classes",
|
|
"pattern": "className=\"[^\"]{150,}\"",
|
|
"message": "Considere extrair classes Tailwind longas para componentes"
|
|
},
|
|
{
|
|
"id": "color-consistency",
|
|
"pattern": "text-(purple|green|orange|blue|yellow)",
|
|
"message": "Use cores consistentes com a paleta definida"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Conteúdo",
|
|
"description": "Regras para conteúdo infantil",
|
|
"patterns": [
|
|
{
|
|
"id": "child-friendly",
|
|
"pattern": "(violência|morte|guerra|violento)",
|
|
"message": "Evite conteúdo inadequado para crianças"
|
|
},
|
|
{
|
|
"id": "educational-content",
|
|
"pattern": "(educativo|educacional|aprendizado|ensino)",
|
|
"message": "Priorize conteúdo educacional e construtivo"
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"ignoreFiles": [
|
|
"node_modules/**",
|
|
"dist/**",
|
|
"build/**",
|
|
".git/**",
|
|
"*.test.*",
|
|
"*.spec.*"
|
|
]
|
|
} |