Aether/CLAUDE.md

34 lines
No EOL
1.5 KiB
Markdown

# Aether Project Rules for Claude Code
You are working on **Project Aether** — a beautiful, fast, native open-source Qt 6 client for the self-hosted Stoat backend.
**Non-negotiable rules (always follow):**
- Every source file (.cpp, .qml, CMakeLists.txt) must start with the exact AGPL-3.0 SPDX header:
```qml
// SPDX-License-Identifier: AGPL-3.0-or-later
// Copyright (C) 2026 Aether Contributors
//
// This file is part of Aether.
//
// Aether is free software: you can redistribute it and/or modify it
// under the terms of the GNU Affero General Public License as published
// by the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
Keep the modular QML structure: separate files in src/qml/components/, src/qml/styles/, src/qml/utils/.
Every QML file must import:
import QtQuick 2.15
import QtQuick.Controls 2.15
import QtQuick.Controls.Material 2.15
import QtQuick.Layouts 1.15
import Aether 1.0
Theme and Constants are singletons — always use Theme.xxx and Constants.xxx. Never use hard-coded colors or sizes.
Never use letterSpacing — use font.letterSpacing.
Never use modelData directly in Repeater — always use model.modelData or named roles.
When fixing errors, change only the necessary lines. Do not rewrite whole files unless asked.
Keep code clean, well-commented, and easily changeable later.
This is the permanent rule set for Aether. Follow it strictly in every response.