Skip to content

Commit c1dbef9

Browse files
committed
Update guides for agents
1 parent 901f930 commit c1dbef9

3 files changed

Lines changed: 35 additions & 18 deletions

File tree

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,3 +49,4 @@ __pycache__/
4949
.claude/
5050
.pytest_cache/
5151
.cache/
52+
docs/superpowers/

AGENTS.md

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -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**
290294
9. **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:
293301
1. **Test primarily public interfaces only**
294302
2. **Cover normal, edge, and error cases**

CLAUDE.md

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -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**
290294
9. **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:
293301
1. **Test primarily public interfaces only**
294302
2. **Cover normal, edge, and error cases**

0 commit comments

Comments
 (0)