@@ -10,6 +10,7 @@ This document provides directive guidelines for AI assistants working on the YUP
1010- ** Build System:** CMake
1111- ** Testing Framework:** Google Test
1212- ** Primary Dependencies:** Rive, OpenGL/Metal/D3D
13+ - ** C++ Standard** : >= C++20
1314
1415## Code Generation Rules
1516
@@ -67,6 +68,8 @@ For main module headers (e.g., `yup_graphics.h`), include this declaration block
6768*/
6869```
6970
71+ Refer to ` ./docs/YUP Module Format.md ` for more info if needed.
72+
7073### 3. Formatting Rules (Allman Style)
7174``` cpp
7275// Classes
@@ -278,17 +281,22 @@ TEST (ClassNameTests, StaticMethodBehavesCorrectly)
278281
279282## AI Decision Making Rules
280283
281- ### When implementing new features:
282- 1 . ** Check existing patterns** in similar modules first
283- 2 . ** Use YUP conventions** for similar functionality
284- 3 . ** Prefer composition over inheritance**
285- 4 . ** Make classes small and focused** (single responsibility)
286- 5 . ** Use const-correctness** throughout
287- 6 . ** Do not leak internal details**
288- 7 . ** Follow the open-closed principle**
289- 8 . ** Always provide extensive and useful doxygen documentation** for public APIs
284+ ### Always:
285+ 1 . ** Rely on the C++20 language and standard library** so use it (unless the feature is not supported in all YUP's platforms)
286+ 2 . ** Check existing patterns** in similar modules first
287+ 3 . ** Use YUP conventions** for similar functionality
288+ 4 . ** Use YUP infrastructure** instead of reinventing the wheel
289+ 5 . ** Prefer composition over inheritance**
290+ 6 . ** Make classes small and focused** (single responsibility)
291+ 6 . ** Use const-correctness** throughout
292+ 7 . ** Do not leak internal details**
293+ 8 . ** Follow the open-closed principle**
2902949 . ** Never assume we use plain JUCE7 functionality, always check APIs** as they might have evolved
291295
296+ ### When implementing new features:
297+ 1 . ** Always provide extensive and useful doxygen documentation** for public APIs
298+ 2 . ** Make sure new code is always tested**
299+
292300### When writing tests:
2933011 . ** Test primarily public interfaces only**
2943022 . ** Cover normal, edge, and error cases**
0 commit comments