# CLAUDE.md This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. ## Project Overview Mosis Designer is a Windows desktop application for previewing RML/RCSS files using the RmlUi library. It provides live reloading when files change in the assets directory. ## Build Commands ```bash # Configure the build (requires vcpkg for glfw3 and freetype) cmake -B build # Build debug cmake --build build --config Debug # Build release cmake --build build --config Release # Build with parallel jobs cmake --build build --parallel 4 ``` ## Running the Application ```bash # Run with an RML file ./build/Debug/mosis-designer.exe assets/demo.rml ``` The application watches the parent directory of the loaded file for changes and automatically reloads. ## Architecture Single-file C++23 application (`main.cpp`) that: - Uses RmlUi for rendering HTML/CSS-like markup (RML/RCSS) - Uses GLFW + OpenGL 3 backend from RmlUi - Windows-specific file watching via `FindFirstChangeNotification` - Automatically loads all `.ttf` fonts from the RML file's directory ## Dependencies - **RmlUi**: Fetched via CMake FetchContent from GitHub - **GLFW3**: Via vcpkg - **FreeType**: Via vcpkg ## Code Style - C++23 standard - 4 spaces indentation - snake_case for variables, camelCase for functions/classes - UPPER_CASE for constants and enums - Early returns preferred over nested conditionals - Smart pointers over raw pointers