|  | 
|  | 1 | +# Agents.md | 
|  | 2 | + | 
|  | 3 | +## Project Overview | 
|  | 4 | + | 
|  | 5 | +123view is a Symfony-based code review and commit notification application built with PHP 8.3+ and Symfony 7.2. It provides features for creating code reviews, managing commit notifications, and integrating with version control systems. | 
|  | 6 | + | 
|  | 7 | +## Core Architecture | 
|  | 8 | + | 
|  | 9 | +**Backend (PHP/Symfony):** | 
|  | 10 | +- **Namespace**: `DR\Review\` - all PHP classes use this base namespace | 
|  | 11 | +- **Entity Layer**: Domain entities in `src/Entity/` organized by feature (Review, Repository, User, etc.) | 
|  | 12 | +- **Controller Layer**: Split into `Api/` and `App/` controllers, with mail controllers in `Mail/` | 
|  | 13 | +- **Service Layer**: Business logic in `src/Service/` with feature-based organization | 
|  | 14 | +- **Repository Layer**: Doctrine repositories in `src/Repository/` following entity structure | 
|  | 15 | +- **Message/Event System**: Async messaging in `src/Message/` with handlers in `src/MessageHandler/` | 
|  | 16 | +- **Form Layer**: Symfony forms in `src/Form/` organized by domain | 
|  | 17 | + | 
|  | 18 | +**Frontend (TypeScript/Stimulus):** | 
|  | 19 | +- **Assets**: TypeScript controllers in `assets/ts/controllers/` | 
|  | 20 | +- **Styling**: SCSS files in `assets/styles/` with theme support (dark/light) | 
|  | 21 | +- **Build System**: Webpack Encore configuration in `webpack.config.js` | 
|  | 22 | + | 
|  | 23 | +## Development Commands | 
|  | 24 | + | 
|  | 25 | +**Frontend Development:** | 
|  | 26 | +```bash | 
|  | 27 | +npm run dev         # Development build | 
|  | 28 | +npm run watch       # Watch mode for development | 
|  | 29 | +npm run build       # Production build | 
|  | 30 | +npm run stylelint   # Lint SCSS files | 
|  | 31 | +npm run eslint      # Lint TypeScript files | 
|  | 32 | +``` | 
|  | 33 | + | 
|  | 34 | +**PHP Development:** | 
|  | 35 | +```bash | 
|  | 36 | +composer check          # Run all checks (PHPStan, PHPMD, PHPCS) | 
|  | 37 | +composer check:phpstan  # Static analysis | 
|  | 38 | +composer check:phpmd    # Mess detection | 
|  | 39 | +composer check:phpcs    # Code style check | 
|  | 40 | +composer fix:phpcbf     # Auto-fix code style | 
|  | 41 | +composer test           # Run all tests | 
|  | 42 | +composer test:unit      # Unit tests only | 
|  | 43 | +composer test:integration # Integration tests only | 
|  | 44 | +composer test:functional  # Functional tests only | 
|  | 45 | +``` | 
|  | 46 | + | 
|  | 47 | +**Docker Environment:** | 
|  | 48 | +```bash | 
|  | 49 | +./bin/start.sh      # Start development environment | 
|  | 50 | +./bin/install.sh    # Run installation wizard | 
|  | 51 | +``` | 
|  | 52 | + | 
|  | 53 | +## Key Domain Concepts | 
|  | 54 | + | 
|  | 55 | +**Code Reviews:** | 
|  | 56 | +- Reviews are created from specific revisions (commits) | 
|  | 57 | +- Support for attaching/detaching revisions | 
|  | 58 | +- Comment system with threading and reactions | 
|  | 59 | +- Reviewer workflow with accept/reject states | 
|  | 60 | + | 
|  | 61 | +**Repositories:** | 
|  | 62 | +- Git repository integration with credential management | 
|  | 63 | +- Branch and revision tracking | 
|  | 64 | +- External tool integrations (GitLab, etc.) | 
|  | 65 | + | 
|  | 66 | +**Notifications:** | 
|  | 67 | +- Rule-based commit notifications | 
|  | 68 | +- Frequency controls (hourly, daily, weekly) | 
|  | 69 | +- Filter system for including/excluding commits | 
|  | 70 | +- Email delivery with theme support | 
|  | 71 | + | 
|  | 72 | +## Test Structure | 
|  | 73 | + | 
|  | 74 | +Tests are organized in three directories: | 
|  | 75 | +- `tests/Unit/` - Isolated unit tests | 
|  | 76 | +- `tests/Integration/` - Integration tests with database | 
|  | 77 | +- `tests/Functional/` - Full application tests | 
|  | 78 | + | 
|  | 79 | +Use the specific test suites when working on particular areas to speed up feedback loops. | 
|  | 80 | + | 
|  | 81 | +## Configuration Files | 
|  | 82 | + | 
|  | 83 | +- `webpack.config.js` - Frontend build configuration | 
|  | 84 | +- `tsconfig.json` - TypeScript compiler settings | 
|  | 85 | +- `composer.json` - PHP dependencies and scripts | 
|  | 86 | +- `phpstan.neon` - Static analysis configuration | 
|  | 87 | +- `phpunit.xml.dist` - Test configuration | 
0 commit comments