Adicionando cursorrules

This commit is contained in:
Lucas Santana 2024-12-20 08:38:22 -03:00
parent b7d30fdc06
commit 5193ba95f4

View File

@ -1,27 +1,50 @@
{ {
"name": "Educational Platform Guidelines",
"version": "1.0.0",
"rules": {
"naming": {
"directories": {
"pattern": "^[a-z-]+$",
"message": "Use lowercase with dashes for directories (e.g., components/form-wizard)"
},
"components": {
"pattern": "^[A-Z][a-zA-Z0-9]*\\.tsx?$",
"message": "Use PascalCase for component files (e.g., VisaForm.tsx)"
},
"utilities": {
"pattern": "^[a-z][a-zA-Z0-9]*\\.ts$",
"message": "Use camelCase for utility files (e.g., formValidator.ts)"
},
"variables": {
"pattern": "^[a-z][a-zA-Z0-9]*$",
"message": "Use camelCase for variables and functions"
}
},
"typescript": {
"rules": [ "rules": [
{ {
"name": "Padrões de Código", "id": "use-interfaces",
"description": "Regras gerais para manter consistência no código", "message": "Prefer interfaces over types"
"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", "id": "avoid-enums",
"pattern": "^[A-Z][a-zA-Z0-9]*$", "message": "Use const objects with 'as const' assertion instead of enums"
"message": "Componentes React devem começar com letra maiúscula" },
{
"id": "explicit-returns",
"message": "Use explicit return types for all functions"
},
{
"id": "absolute-imports",
"pattern": "from '[./]",
"message": "Use absolute imports (@/...) instead of relative imports"
} }
] ]
}, },
{ "security": {
"name": "Segurança",
"description": "Regras para garantir segurança da aplicação",
"patterns": [ "patterns": [
{ {
"id": "no-sensitive-data", "id": "sensitive-data",
"pattern": "(password|senha|token|key|secret)", "pattern": "(password|senha|token|key|secret)",
"message": "Não exponha dados sensíveis no código" "message": "Não exponha dados sensíveis no código"
}, },
@ -32,9 +55,7 @@
} }
] ]
}, },
{ "accessibility": {
"name": "Acessibilidade",
"description": "Regras para garantir acessibilidade",
"patterns": [ "patterns": [
{ {
"id": "alt-text", "id": "alt-text",
@ -48,9 +69,7 @@
} }
] ]
}, },
{ "performance": {
"name": "Performance",
"description": "Regras para otimização de performance",
"patterns": [ "patterns": [
{ {
"id": "large-images", "id": "large-images",
@ -58,15 +77,13 @@
"message": "Evite imagens muito grandes (max 1200px)" "message": "Evite imagens muito grandes (max 1200px)"
}, },
{ {
"id": "memo-check", "id": "memo-usage",
"pattern": "React.memo\\(", "pattern": "React.memo\\(",
"message": "Verifique se o uso de memo é necessário" "message": "Verifique se o uso de memo é necessário"
} }
] ]
}, },
{ "styling": {
"name": "Estilo",
"description": "Regras de estilo e formatação",
"patterns": [ "patterns": [
{ {
"id": "tailwind-classes", "id": "tailwind-classes",
@ -80,9 +97,7 @@
} }
] ]
}, },
{ "content": {
"name": "Conteúdo",
"description": "Regras para conteúdo infantil",
"patterns": [ "patterns": [
{ {
"id": "child-friendly", "id": "child-friendly",
@ -90,13 +105,29 @@
"message": "Evite conteúdo inadequado para crianças" "message": "Evite conteúdo inadequado para crianças"
}, },
{ {
"id": "educational-content", "id": "educational-focus",
"pattern": "(educativo|educacional|aprendizado|ensino)", "pattern": "(educativo|educacional|aprendizado|ensino)",
"message": "Priorize conteúdo educacional e construtivo" "message": "Priorize conteúdo educacional e construtivo"
} }
] ]
} },
"git": {
"commit_prefixes": [
"fix:",
"feat:",
"perf:",
"docs:",
"style:",
"refactor:",
"test:",
"chore:"
], ],
"commit_rules": {
"pattern": "^(fix|feat|perf|docs|style|refactor|test|chore): [a-z].*$",
"message": "Use proper commit message format with prefix"
}
}
},
"ignoreFiles": [ "ignoreFiles": [
"node_modules/**", "node_modules/**",
"dist/**", "dist/**",
@ -104,5 +135,24 @@
".git/**", ".git/**",
"*.test.*", "*.test.*",
"*.spec.*" "*.spec.*"
],
"documentation": {
"required": [
"README.md",
"API.md",
"CHANGELOG.md"
],
"rules": [
{
"id": "readme-sections",
"required": [
"Setup Instructions",
"Development Workflow",
"Testing",
"Security",
"Contributing"
] ]
}
]
}
} }