2.4 KiB
2.4 KiB
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
- Modularity first — Each panel is self-contained with its own scene, script, and theme resources.
- Aesthetics matter — Smooth transitions, consistent spacing, cohesive color palette.
- Data separation — Data collection logic is separate from presentation. Panels receive data from dedicated collector scripts.
- Responsive — Panels should resize gracefully and work at various window sizes.