GitHub Copilot Instructions for AetherSDR
July 30, 2026 · View on GitHub
Canonical project guide: /AGENTS.md. Read it
before suggesting non-trivial code. This file holds only the highest-
priority must-knows that fit in Copilot's chat context window.
Five must-knows before suggesting code
-
Signed commits required on
main. Branch protection enforces it. Seedocs/COMMIT-SIGNING.mdfor setup; the doc has explicit AI Assistant Instructions at the top. -
The AetherSDR Constitution governs every contribution. See
CONSTITUTION.md(canonical:.specify/memory/constitution.md). 14 principles, structured per Cisco's Foundry Constitution spec. Commit-message format:Short description (#NNNN). Principle <N>.when the change is principle-relevant. -
bin/validate-diff.shis the merge gate, enforced by infrastructure (Principle XII: Sandbox By Infrastructure, Not By Prompt). Don't suggest patterns that try to bypass it; the gate rejects PRs that touch protected paths regardless of prompt-level intent. -
Use
AppSettings, NOTQSettings. Persist as nested JSON under one root key per feature (Principle V). Example: a feature stores{"enabled": true, "mode": "auto"}underAppSettings["MyFeature"], backed by the SQLite store (RFC #4603). Credentials go to QtKeychain, never the settings store. notMyFeatureEnabled+MyFeatureModeas flat keys. -
All meter UI uses
MeterSmoother(AGENTS.md convention). Do not suggest envelope followers,std::pow/expsmoothing, or asymmetrickAlphablenders for new meter widgets. -
Assign yourself to an issue or PR before posting a review, comment, or merge action (
gh issue edit NNNN --add-assignee @meorgh pr edit NNNN --add-assignee @me). The assignees list is the visible multi-agent claim signal — Principle X. AetherClaude (@aethersdr-agent) auto-triages everything, so adding yourself alongside it is expected; only avoid double-assigning when another non-AetherClaude agent is already engaged — coordinate via comment in that case.
C++ / Qt6 style highlights (full guide in AGENTS.md)
- C++20, Qt6, no
QSettings, no nakednew/delete, nogoto, braces on all control flow. - Platform guards prefer
Q_OS_WIN/Q_OS_MAC/Q_OS_LINUX. - For new files: classes
PascalCase, methodscamelCase, member varsm_camelCase, constantskPascalCase.
Multi-agent context
AetherSDR is touched by ≥6 distinct AI tools. PRs from different agents must verify their base is current before producing patches (Principle X: Claims Are Atomic And Mortal — PR #2780 was the canonical stale-snapshot revert incident this principle exists to prevent).
For everything else, read /AGENTS.md.