module.exports = {
rules: [
{
name: "Documentação de referência",
matches: "**/*.{ts,tsx}",
message:
"Consulte sempre os arquivos requirements/backend_instructions.md e requirements/frontend_instructions.md para referência",
},
{
name: "Componentes devem estar no diretório correto",
matches: "**/*.tsx",
excludes: ["app/**/*.tsx", "pages/**/*.tsx"],
assert: "file.path.startsWith('components/')",
message: "Componentes devem estar no diretório /components",
},
{
name: "Nomenclatura de componentes",
matches: "components/**/*.tsx",
pattern: "^[a-z][a-zA-Z0-9-]*\\.tsx$",
message: "Nomes de componentes devem usar kebab-case e terminar com .tsx",
},
{
name: "Imports do Supabase",
matches: "**/*.ts",
pattern: "import.*@supabase/supabase-js",
message: "Certifique-se de usar as credenciais corretas do Supabase",
},
{
name: "Rotas de API",
matches: "app/api/**/*.ts",
pattern: "export async function (GET|POST|PUT|DELETE)",
message: "Handlers de API devem ser funções assíncronas",
},
{
name: "Verificação de autenticação",
matches: "app/api/**/*.ts",
pattern: "auth\\(\\)",
message: "Endpoints de API devem verificar autenticação usando Clerk",
},
{
name: "Componentes UI shadcn",
matches: "components/ui/**/*.tsx",
pattern: "React\\.forwardRef",
message:
"Componentes UI devem usar forwardRef para compatibilidade com shadcn",
},
{
name: "Tipagem TypeScript",
matches: "**/*.{ts,tsx}",
excludes: ["*.d.ts"],
pattern: "interface|type",
message: "Use tipagem TypeScript apropriada",
},
{
name: "Estilização Tailwind",
matches: "**/*.tsx",
pattern: "className=",
message: "Use classes do Tailwind para estilização",
},
{
name: "Use client directive",
matches: "components/**/*.tsx",
pattern: '"use client"',
message: "Componentes interativos devem usar 'use client' directive",
},
{
name: "Variáveis de ambiente",
matches: "**/*.{ts,tsx}",
pattern: "process\\.env\\.",
message: "Use variáveis de ambiente com tipagem apropriada",
},
{
name: "Verificação de perfil de usuário",
matches: "app/api/user/**/*.ts",
pattern: "profiles.*user_id",
message:
"Verifique se o usuário existe na tabela profiles antes de prosseguir",
},
],
};
clerk
css
javascript
react
shadcn/ui
supabase
tailwindcss
typescript
First Time Repository
TypeScript
Languages:
CSS: 2.0KB
JavaScript: 1.7KB
TypeScript: 150.0KB
Created: 12/8/2024
Updated: 1/16/2025