Files
labFusion/AGENTS.md

176 lines
4.7 KiB
Markdown

# LabFusion Agent Instructions
## Project Overview
LabFusion is a unified dashboard and integration hub for homelab services, built with a polyglot microservices architecture using Java Spring Boot, Python FastAPI, Node.js Express, and React.
## Code Style
### Naming Conventions
- **Java**: PascalCase for classes, camelCase for methods, UPPER_SNAKE_CASE for constants
- **Python**: PascalCase for classes, snake_case for functions, UPPER_SNAKE_CASE for constants
- **JavaScript/TypeScript**: PascalCase for classes, camelCase for functions, UPPER_SNAKE_CASE for constants
### Component Design
- Single responsibility per component
- Maximum 50 lines per component file
- Props validation with PropTypes
- Error boundary protection
- Reusable and composable design
## Architecture
### Service Structure
- Follow the repository pattern
- Keep business logic in service layers
- Use dependency injection
- Implement proper error handling
- Clear separation of concerns
### Frontend Structure
- Use functional components in React
- Implement custom hooks for state logic
- Use error boundaries for error handling
- Follow component composition patterns
- Centralize constants and utilities
## Documentation Requirements
### README Files
Every service MUST have a comprehensive README.md that includes:
- Service overview and purpose
- Architecture and key components
- Features and capabilities
- API endpoints with descriptions
- Configuration and environment variables
- Development setup and running instructions
- Dependencies and versions
- Reference to CLEAN_CODE.md
### Clean Code Documentation
Every service MUST have a CLEAN_CODE.md that includes:
- Architecture overview
- Clean code principles applied
- Code quality improvements
- Best practices and guidelines
- Performance optimizations
- Testing strategies
- Code review checklist
- Future improvements
### Project Documentation
- Update docs/structure.txt when adding files
- Update docs/progress.md when completing tasks
- Update service READMEs when modifying functionality
- Update main README.md when adding features
## API Standards
### OpenAPI Documentation
- All endpoints MUST have OpenAPI documentation
- Include request/response schemas
- Provide example requests and responses
- Document error responses
- Include authentication requirements
### Error Handling
- Use consistent error response format
- Implement proper HTTP status codes
- Provide user-friendly error messages
- Log errors for debugging
### Validation
- Validate all inputs
- Use appropriate data types
- Implement rate limiting
- Sanitize user data
## Testing
### Unit Tests
- Test business logic
- Test error conditions
- Test edge cases
- Maintain high coverage
### Integration Tests
- Test API endpoints
- Test service interactions
- Test error scenarios
- Test configuration
### End-to-End Tests
- Test critical user flows
- Test service integration
- Test error recovery
- Test performance
## Quality Assurance
### Code Review Checklist
- [ ] Naming conventions followed
- [ ] Error handling implemented
- [ ] Input validation present
- [ ] Documentation updated
- [ ] Tests written and passing
- [ ] Clean code principles followed
### Documentation Review
- [ ] README files comprehensive
- [ ] Clean code documentation complete
- [ ] Project structure updated
- [ ] Progress tracking current
- [ ] Links working and relevant
## Performance
### Database Optimization
- Use appropriate indexes
- Implement connection pooling
- Use lazy loading where appropriate
- Optimize queries
### Caching
- Implement appropriate caching
- Use Redis for distributed caching
- Cache frequently accessed data
- Implement cache invalidation
### API Performance
- Use pagination for large datasets
- Implement response compression
- Use appropriate HTTP methods
- Optimize response sizes
## Security
### Input Validation
- Validate all inputs
- Sanitize user data
- Use appropriate data types
- Implement rate limiting
### Error Handling
- Don't expose sensitive information
- Log errors appropriately
- Use consistent error responses
- Implement proper status codes
### Authentication
- Implement proper authentication
- Use secure token handling
- Implement authorization checks
- Follow security best practices
## When Working on This Project
1. **Always update documentation** when making changes
2. **Follow clean code principles** in all implementations
3. **Write tests** for new functionality
4. **Use consistent naming conventions** across all languages
5. **Implement proper error handling** in all services
6. **Update progress tracking** when completing tasks
7. **Maintain code quality** through regular reviews
8. **Keep documentation current** and comprehensive
Remember: Good documentation is as important as good code. When in doubt, document it!