1.5 KiB
1.5 KiB
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:
// 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.