|
| 1 | +# Regras do Projeto Laravel Forge MCP |
| 2 | + |
| 3 | + |
| 4 | + |
| 5 | +## ⛔ Regras Invioláveis — SEMPRE APLICAR |
| 6 | + |
| 7 | + |
| 8 | + |
| 9 | +### Antes de Implementar |
| 10 | + |
| 11 | +**OBRIGATÓRIO**: Este é um servidor MCP para Laravel Forge. Consulte a estrutura antes de criar novas tools. |
| 12 | + |
| 13 | + |
| 14 | + |
| 15 | +### Tipagem e Código |
| 16 | + |
| 17 | +- **PHP 8.2+ estrito**: TODOS parâmetros, retornos e propriedades tipados |
| 18 | +- **Visibilidade explícita**: SEMPRE `public`, `private` ou `protected` |
| 19 | +- **Naming completo**: Sem abreviações (ex: `serverId` não `srvId`) |
| 20 | +- **Laravel moderno**: Dependency injection, DTOs com `spatie/laravel-data` |
| 21 | +- **Sem facades**: Preferir injection sobre facades quando possível |
| 22 | +- **Estrutura**: Early return, sem comentários óbvios, código limpo |
| 23 | + |
| 24 | + |
| 25 | + |
| 26 | +### Nomenclatura MCP Tools |
| 27 | + |
| 28 | +- **Formato**: `{action}-{resource}-tool` (ex: `list-servers-tool`, `create-site-tool`) |
| 29 | +- **Actions**: `list`, `get`, `create`, `update`, `delete`, `restart`, `deploy` |
| 30 | +- **Localização**: Todas em `app/Mcp/Tools/` |
| 31 | + |
| 32 | + |
| 33 | + |
| 34 | +### Validação Automática |
| 35 | + |
| 36 | +Após edições, SEMPRE: |
| 37 | + |
| 38 | +1. Verificar linter errors com `read_lints()` |
| 39 | +2. Executar `./vendor/bin/pint` para formatação |
| 40 | +3. Executar `./vendor/bin/phpstan analyse` para análise estática |
| 41 | +4. Rodar `php artisan test` se modificar lógica |
| 42 | + |
| 43 | + |
| 44 | + |
| 45 | +### Commits |
| 46 | + |
| 47 | +- Conventional Commits em português |
| 48 | +- ❌ NUNCA adicionar créditos de IA |
| 49 | + |
| 50 | + |
| 51 | + |
| 52 | +### Estrutura do Projeto |
| 53 | + |
| 54 | +- `app/Mcp/Tools/` - Ferramentas MCP (102 tools) |
| 55 | +- `app/Mcp/Resources/` - Recursos MCP (docs, guidelines) |
| 56 | +- `app/Mcp/Prompts/` - Prompts MCP (workflows) |
| 57 | +- `app/Mcp/Servers/` - Configuração servidor MCP |
| 58 | +- `app/Services/Forge/` - Serviços de integração Forge API |
| 59 | +- `tests/Feature/` - Testes de feature (Pest PHP) |
| 60 | +- `tests/Unit/` - Testes unitários |
| 61 | + |
| 62 | + |
| 63 | + |
| 64 | +### Comandos Úteis |
| 65 | + |
| 66 | +```bash |
| 67 | +php artisan test # Rodar testes |
| 68 | +./vendor/bin/pint # Formatar código |
| 69 | +./vendor/bin/phpstan analyse # Análise estática |
| 70 | +php artisan mcp:start forge # Iniciar servidor MCP |
| 71 | +``` |
| 72 | + |
| 73 | + |
| 74 | + |
| 75 | +### Documentação |
| 76 | + |
| 77 | +- [Laravel Forge Docs](https://forge.laravel.com/docs) |
| 78 | +- [Forge API Docs](https://forge.laravel.com/api-documentation) |
| 79 | +- [Laravel Forge SDK](https://github.com/laravel/forge-sdk) |
| 80 | +- [Model Context Protocol](https://modelcontextprotocol.io) |
| 81 | + |
| 82 | + |
| 83 | + |
| 84 | +--- |
| 85 | + |
| 86 | + |
| 87 | + |
| 88 | +**Stack**: Laravel 12 + MCP Protocol + Forge SDK | Auth: `FORGE_API_TOKEN` via `.env` |
| 89 | + |
| 90 | + |
| 91 | + |
| 92 | +**Prioridade**: Tipagem > Visibilidade > Naming > Estrutura > Testes |
0 commit comments