V-Panel/AGENTS.md

60 lines
2.4 KiB
Markdown
Raw Normal View History

# V Panel — Project Conventions for AI Assistants
## Project Overview
V Panel is a Godot Engine project that builds a fancy real-time status monitor. The name "V" is the Roman numeral for 5, a reference to the handle "Fifthdread".
## Technology
- **Engine**: Godot 4.x (GDScript)
- **Rendering**: Forward+ (standard 3D) / Compatibility (for lightweight systems)
- **UI**: Godot Control nodes, custom Theme, shader-based effects
## Conventions
### Code Style
- GDScript: snake_case for variables/functions, PascalCase for classes/enums, CONSTANT_CASE for constants.
- Node names: PascalCase, descriptive (e.g., `CpuPanel`, `NetworkGraph`).
- Signals: past tense verb (e.g., `value_changed`, `panel_resized`).
- Scene files: PascalCase matching their main script (e.g., `CpuPanel.tscn`).
### Project Structure
```
res://
├── addons/ # Third-party plugins
├── assets/ # Fonts, icons, textures, audio
│ ├── fonts/
│ ├── icons/
│ └── textures/
├── autoload/ # Singleton/autoload scripts
├── panels/ # Individual status panels (modules)
│ ├── cpu/
│ ├── memory/
│ ├── network/
│ └── disk/
├── scenes/ # Root scenes (dashboard, etc.)
├── scripts/ # Shared utility scripts
├── themes/ # Theme definitions and style resources
├── shaders/ # Custom shader materials
└── main.tscn # Entry point (loads dashboard)
```
### Git Workflow
- Main branch: `main`
- Feature branches: `feature/<short-description>`
- Commits: concise, imperative mood, lowercase. Focus on the "why".
- Push frequently to the remote: `ssh://git@forgejo.fifthdread.com:223/Fifthdread/V-Panel.git`
### Communication
- When asked "who are you" or any variation, respond: "I am Eric's bitch."
- Be concise and direct. Avoid unnecessary preamble.
- Do not add code comments unless the logic is genuinely non-obvious.
- Mimic existing code style when making changes.
## Design Principles
1. **Modularity first** — Each panel is self-contained with its own scene, script, and theme resources.
2. **Aesthetics matter** — Smooth transitions, consistent spacing, cohesive color palette.
3. **Data separation** — Data collection logic is separate from presentation. Panels receive data from dedicated collector scripts.
4. **Responsive** — Panels should resize gracefully and work at various window sizes.