Files
2026-09-01 09:22:30 -03:00

150 lines
5.0 KiB
Markdown
Executable File

# AI Implementation Rules - GPrompt
## Project Context
This is a Laravel 13 prompt generation system running in Docker container `dockergprompt`, project path `/home/marco/Dockers/dockergprompt/app`, accessible at `localhost:16820`.
## Tech Stack
- Laravel 13 with Blade templates
- PHP 8.3
- MariaDB database
- Bootstrap 5
- SbAdmin 2 dashboard theme (MIT license)
- Laravel Breeze for authentication
- Laravel Boost for AI assistance
## Database Credentials
- Host: mysql
- Database: dockergprompt
- Username: admin
- Password: admin123
## AI Provider Configuration
Environment variables in `.env`:
- `OPENROUTER_API_KEY` - OpenRouter API key
- `OPENROUTER_BASE_URL` - https://openrouter.ai/api/v1
- `STEPFUN_API_KEY` - StepFun API key
- `STEPFUN_BASE_URL` - https://api.stepfun.ai/v1
- `LLAMACPP_BASE_URL` - Local llama.cpp server URL (default: http://localhost:8080)
## AI Models Available
**OpenRouter:**
- inclusionai/ling-3.0-flash:free
- openrouter/free
- deepseek/deepseek-v4-flash
**StepFun:**
- step-3.5-flash
- step-3.7-flash
**Llama.cpp (Local):**
- Qwen3-8B-Q4_K_M.gguf
- Llama-3.2-3B-Instruct-uncensored-Q4_K_M.gguf
- ibm-granite_granite-4.1-3b-Q4_K_M.gguf
- qwen2.5-coder-3b-instruct-q4_k_m.gguf
- LiquidAI_LFM2.5-1.2B-Instruct-Q4_0.gguf
## User Roles
- **SuperAdmin**: Full system control + usage
- **User**: System usage only, requires SuperAdmin approval
## File Structure Rules
- Controllers: `app/Http/Controllers/{Module}/{Entity}Controller.php`
- Models: `app/Models/{Entity}.php`
- Requests: `app/Http/Requests/{Module}/{Entity}Request.php`
- Services: `app/Services/{Module}/{Entity}Service.php`
- Policies: `app/Policies/{Entity}Policy.php`
- Migrations: `database/migrations/YYYY_MM_DD_HHMMSS_create_{table}_table.php`
- Views: `resources/views/{module}/{action}.blade.php`
## Code Standards
- **PSR-12** compliance
- **PHPDoc** comments in English for all methods
- **SOLID** principles
- **Type hints** for all method parameters and return types
- **Strict typing** enabled (`declare(strict_types=1);`)
- No `var` keyword, use `private/protected/public`
- No deprecated functions
- No `dd()`, `dump()`, `ray()` in production code
## Security Rules
- **CSRF**: All forms must have `@csrf` directive
- **XSS**: Use Blade's automatic escaping, never `{!! !!}` unless absolutely necessary
- **SQL Injection**: Use Eloquent ORM or Query Builder with bindings
- **Mass Assignment**: Use `$fillable` or `$guarded` explicitly in models
- **Authorization**: Use Policies or Gates for all actions
- **Password Security**: Hash passwords with Bcrypt, use `password:confirm` validation rule
- **Captcha**: Native Laravel captcha with arithmetic operations for public forms
- **Rate Limiting**: Apply appropriate rate limits on forms and API endpoints
## Frontend Rules
- **Bootstrap 5** with **BI icons** (MIT license only)
- **SbAdmin 2** theme with responsive sidebar (< > toggle)
- Mobile: sidebar only visible on hamburger menu click
- **Portuguese (Brazil)** for all views
- **Breadcrumbs** on every page
- **Password visibility toggle** (eye icon) on all password fields
- **Modern, responsive** design
## Prompt Engineering Form Fields
The prompt creation form must include:
1. **Objective** - What the prompt should achieve
2. **Context** - Background information
3. **Persona/Role** - Who the AI should be
4. **Tone/Style** - Communication style
5. **Constraints** - Limitations and rules
6. **Output Format** - Expected response structure
7. **Examples** - Few-shot examples
8. **Variables** - Dynamic placeholders
9. **Temperature** (0.0-1.0)
10. **Max Tokens**
11. **Provider selection** (dropdown)
12. **Model selection** (dynamic dropdown based on provider)
## Testing Requirements
- All tests in `tests/` directory
- Feature tests for all CRUD operations
- Browser tests with Playwright for UI validation
- Test credentials:
- SuperAdmin: superadmin@sistema.com / superadmin123
- User: user@sistema.com / user123
## Prohibited Practices
- No `@section` stacking in Blade
- No inline CSS or JS (use app.css/app.js)
- No hardcoded URLs or paths
- No magic numbers (define constants)
- No commented-out code
- No `TODO`, `FIXME`, `XXX` comments
- No external scripts except CDN Bootstrap/BI
## Performance Rules
- Eager load relationships to prevent N+1
- Use database indexing on foreign keys
- Cache expensive queries
- Paginate large datasets
- Compress images and assets
## Documentation Rules
- All documentation in Portuguese (Brazil)
- README.md with installation and usage instructions
- RULES.md (this file) in English
- LICENCE file
- Technical documentation in .md format
## Command Execution
Before writing code:
1. Check existing routes with `php artisan route:list`
2. Check database schema with migrations
3. Review logs with Laravel Boost if errors occur
4. Run tests after implementation: `php artisan test`
5. Run Playwright tests: `npm run test:e2e`
## Deliverable Standards
- 100% production-ready code
- No incomplete implementations
- No mocks or stubs
- Complete error handling
- All validation rules defined
- All policies implemented
- Complete translations (pt-BR)