File size: 1,850 Bytes
fd036de |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# AGENTS.md - Chatm2 Project Guidelines
## Build/Lint/Test Commands
- **Run app**: `python app.py` or `flask run --host=0.0.0.0 --port=7860`
- **Install dependencies**: `pip install -r requirements.txt`
- **Docker build**: `docker build -t chatm2 .`
- **Docker run**: `docker run -p 7860:7860 chatm2`
## Code Style Guidelines
### Python Standards
- **Imports**: Standard library first, then third-party, then local imports. One import per line.
- **Naming**: snake_case for functions/variables, PascalCase for classes, UPPER_CASE for constants
- **Types**: Use type hints for function parameters and return values when possible
- **Error Handling**: Use try/except blocks with specific exceptions, log errors appropriately
- **Docstrings**: Use triple quotes for function/class documentation in French (matching existing code)
### Flask/Web Standards
- **Routes**: Use descriptive route names, handle both GET/POST appropriately
- **JSON Responses**: Use `jsonify()` for API responses, include error handling
- **File Uploads**: Validate file types and sizes, use secure_filename()
- **Templates**: Use Jinja2 templating with Tailwind CSS classes
### Frontend/JavaScript
- **Styling**: Use Tailwind CSS utility classes, maintain dark theme consistency
- **Markdown**: Use marked.js for rendering, apply consistent styling
- **Async**: Use modern async/await patterns for API calls
### Security
- **Environment Variables**: Store sensitive data in .env files, never commit secrets
- **File Handling**: Validate uploads, limit file sizes (currently 16MB max)
- **API Keys**: Load from environment variables only
### Project Structure
- Keep documentation in `documentation_gemini/` directory
- Store templates in `templates/` directory
- Use `SESSION_FILE_DIR/` for temporary file storage
- Place system instructions in `instructions/` directory |