73 lines
2.2 KiB
Markdown
73 lines
2.2 KiB
Markdown
# Mosis Designer Agent Guidelines
|
|
|
|
## Build, Lint, and Test Commands
|
|
|
|
### Build Commands
|
|
- `cmake --build build --config Debug` - Build the project in debug mode
|
|
- `cmake --build build --config Release` - Build the project in release mode
|
|
- `cmake -B build` - Configure the build system
|
|
- `cmake --build build --parallel 4` - Build with 4 parallel jobs
|
|
|
|
### Lint Commands
|
|
- No specific linting tools configured
|
|
- Uses C++23 standard with clang-tidy if available
|
|
|
|
### Test Commands
|
|
- No unit tests configured
|
|
- Manual testing required for functionality verification
|
|
|
|
## Code Style Guidelines
|
|
|
|
### General
|
|
- Follow C++23 standard with modern C++ features
|
|
- Use snake_case for variable and function names
|
|
- Use camelCase for class and struct names
|
|
- Use uppercase for constants and enum values
|
|
|
|
### Naming Conventions
|
|
- Functions: camelCase
|
|
- Variables: snake_case
|
|
- Classes/Structs: camelCase
|
|
- Constants: UPPER_CASE
|
|
- Enums: UPPER_CASE with prefix (e.g., `enum class FileType { XML, RML };`)
|
|
|
|
### Includes and Imports
|
|
- Use angle brackets for system headers: `#include <iostream>`
|
|
- Use quotes for local headers: `#include "header.h"`
|
|
- Group includes: system headers, then local headers
|
|
- Sort includes alphabetically within groups
|
|
|
|
### Formatting
|
|
- 4 spaces for indentation (no tabs)
|
|
- No trailing whitespace
|
|
- Unix line endings (\n)
|
|
- One statement per line
|
|
- Function definitions: space after function name, no space before opening parenthesis
|
|
- If statements: space after keyword, no space before opening parenthesis
|
|
|
|
### Error Handling
|
|
- Use exceptions for error conditions
|
|
- Check return values of system calls
|
|
- Prefer early returns over nested conditionals
|
|
- Use constexpr for compile-time constants
|
|
|
|
### Memory Management
|
|
- Prefer stack allocation over heap
|
|
- Use smart pointers (std::unique_ptr, std::shared_ptr)
|
|
- Avoid raw pointers when possible
|
|
- Use RAII principles
|
|
|
|
### Documentation
|
|
- Document public APIs with comments
|
|
- Use Doxygen-style comments for functions and classes
|
|
- Keep comments concise and clear
|
|
|
|
## Special Rules
|
|
|
|
### Cursor Rules
|
|
- No cursor rules configured
|
|
- No .cursorrules file found
|
|
|
|
### Copilot Rules
|
|
- No copilot instructions configured
|
|
- No .github/copilot-instructions.md file found |