Files
marcocosta10000 c299a4ae21 feat(city): implement marketplace, missions, customization and admin dashboard
- Add database migrations for market_listings, missions and character cosmetics
- Create controllers for marketplace, missions, presence and character customization
- Implement admin world dashboard with live platform metrics
- Add feature tests for world functionality
- Include phase 2 design documents and gap analysis
2026-10-17 23:21:23 -03:00

5.5 KiB
Executable File

RULES.md — Regras para IA e Desenvolvedores do City10

Este documento reúne as regras obrigatórias que modelos de IA (agentes, copilotos, assistentes de código) e desenvolvedores humanos devem seguir ao trabalhar neste repositório.


1. Diretrizes Gerais

1.1. Priorize a segurança. Nunca introduza código que exponha, registre ou transmita segredos (chaves de API, senhas, tokens). Chave do OpenRouter vive apenas em .env (não versionado).

1.2. Não remova a proteção LGPD. Consentimento, banner de cookies, trilha de auditoria e direitos do titular são obrigatórios e não podem ser desativados ou contornados.

1.3. Comentários PHPDoc em inglês. Todo arquivo PHP de origem deve possuir comentários técnicos em inglês usando o padrão PHPDoc.

1.4. Multi-idioma. Toda string visível ao usuário deve existir nos arquivos lang/pt_BR.json, lang/en.json e lang/es.json.

1.5. CSRF em formulários. Todo formulário HTML deve incluir @csrf. Nunca desative o middleware VerifyCsrfToken.

1.6. CAPTCHA nos formulários públicos. Login e registro devem manter o CAPTCHA matemático (soma) nativo, sem bibliotecas externas.

1.7. Senhas com ícone "eye". Campos de senha em formulários devem exibir o botão de alternar visibilidade (olho).


2. Regras para Modelos de IA (Agentes do City10)

2.1. Somente modelos gratuitos allow-listed. Agentes só podem usar modelos definidos em config/ai.php (allowed_models). A validação acontece no backend (AiAgentRequest) — não contorne.

2.2. Nunca envie dados pessoais ao modelo. Ao chamar o OpenRouter, envie apenas contexto simulado da cidade (posições, metas, estado de lojas). Nunca inclua nome, e-mail, senha ou outros dados cadastrais de usuários.

2.3. Respeite o intervalo de raciocínio. Não faça chamadas à API com frequência maior que config('ai.think_interval') por agente.

2.4. Trate falhas com backoff. Erros da API devem incrementar error_count e usar espera exponencial; não repita chamadas em loop.

2.5. Persista metas e decisões. O estado do agente (current_goal, last_decision) deve ser gravado no banco para auditoria e retomada.

2.6. Não execute ações destrutivas por conta própria. Decisões que alterem dados de usuários ou excluam recursos exigem aprovação humana.


3. Regras para Desenvolvedores

3.1. Estrutura Laravel 13 (estilo atual) - Middleware customizado em app/Http/Middleware/, registrado em bootstrap/app.php via alias. - Controllers em app/Http/Controllers/{Api,Web}/. - Validação em app/Http/Requests/. - Rotas em routes/api.php e routes/web.php.

3.2. Migrations - Nunca edite uma migration já executada em produção; crie uma nova. - Use tipos adequados (foreignId, decimal para coordenadas 3D).

3.3. Eloquent - Declare relações e casts() nos models. - Use $fillable (ou attributes #[Fillable]) para evitar mass-assignment.

3.4. Autorização - admin e user são os papéis suportados (User::ROLE_*). - Proteja rotas administrativas com o middleware admin.

3.5. Testes - Rode php artisan test antes de considerar uma tarefa concluída. - Rode ./vendor/bin/pint --test para validar o estilo de código.

3.6. Bibliotecas e licenças - Antes de adicionar qualquer dependência, verifique a licença. - Apenas licenças que permitam uso comercial (MIT, Apache-2.0, BSD, ISC, etc.) são aceitáveis. - Registre a licença e o autor aqui (ver seção 4).

3.7. Imagens e assets - Use apenas imagens, fontes e ícones de licença livre ou própria.

3.8. Variáveis de ambiente - Adicione novas chaves ao .env.example (sem valores secretos). - Documente o propósito no .env com comentário.


4. Registro de Bibliotecas e Licenças

Biblioteca Licença Autor / Origem Uso
Laravel Framework MIT Laravel LLC / Taylor Otwell Backend
Laravel Sanctum MIT Laravel LLC Tokens de API
Laravel Boost MIT Laravel LLC Diretrizes do agente de IA
Three.js MIT Ricardo Cabello (Mr.doob) e contribuidores Renderização 3D (Fase 2)
Tailwind CSS MIT Tailwind Labs Estilos
Instrument Sans OFL 1.1 Instrument (Google Fonts) Tipografia
PHP PHP License The PHP Group Runtime
MariaDB GPL / comercial MariaDB Foundation Banco de dados

Observação: licenças MIT, Apache-2.0, BSD, ISC e OFL permitem uso comercial livremente, atendendo à exigência da Syspanel. Registre aqui toda nova dependência antes de mergear.


5. Padrões de Código

5.1. Siga o estilo do Laravel (Pint). Formate com ./vendor/bin/pint.

5.2. Prefira código explícito a "mágica" obscura; legibilidade primeiro.

5.3. Valide sempre a entrada do usuário (Form Requests).

5.4. Retorne respostas de erro consistentes (JSON com message e errors).

5.5. Use as traduções (__() / @lang) em vez de strings literais no meio das views e controllers.


6. Commits e Versionamento

6.1. Mensagens de commit claras e no imperativo (ex.: Add store CRUD API).

6.2. Nunca commite: .env, chaves, storage/logs/*, vendor/, node_modules/.

6.3. Uma mudança por commit quando possível; mantenha o histórico legível.


© 2026 — Todos os direitos reservados — Powered by Syspanel — www.syspanel.com.br