This file defines repository-wide guidance for the SoundSwitch workspace. More specific AGENTS.md files in subdirectories override or extend this guidance for their own areas.
- Primary language: C#
- Platform: .NET on Windows
- UI stack: WinForms desktop application
- Main solution entry point:
SoundSwitch.sln
SoundSwitch/: main WinForms application, localization, framework, services, UI, and application modelSoundSwitch.Audio.Manager/: Windows audio device management and policy switchingSoundSwitch.Common/: shared code used across projectsSoundSwitch.CLI/: command-line entry points and automation surfaceSoundSwitch.IPC/: inter-process communication componentsSoundSwitch.UI.Menu/andSoundSwitch.UI.UserControls/: UI-focused reusable componentsSoundSwitch.Tests/andSoundSwitch.Audio.Manager.Tests/: automated regression coverage
- Keep changes consistent with an existing C#/.NET codebase; prefer small, targeted fixes over broad refactors.
- Treat this repository as a Windows desktop app first; avoid introducing cross-platform assumptions into WinForms and Windows integration code.
- Keep user-facing strings in localization resources instead of hardcoded literals.
- Preserve existing public behavior unless the change explicitly intends to alter it.
- Prefer
NameCleanover raw device names when dealing with displayed audio device names.
- Use conventional commits for commit messages.
- Follow the repository semantic-release config in
package.jsonrather than generic conventional-commit defaults. - Release-relevant commit types are
feat,fix,perf,lang, andboost. featproduces a minor release;fix,perf,lang,boost, andrevertproduce a patch release; breaking changes produce a major release.testsis recognized in generated release notes, but it does not trigger a release on its own.- Scoped or module-style commit messages are encouraged when useful, for example
fix(localization): ...orfeat(audio-manager): .... - Keep the subject concise and focused on the user-visible or engineering outcome.
For additional developer-focused documentation — including build instructions, contribution guidelines, architecture overviews, and deep dives into specific components — see the docs/ folder:
- Building SoundSwitch — Setup, build commands, and CI/CD pipeline.
- Contributing — Standards, commit conventions, and PR process.
- Architecture Overview — Project structure and key layers.
- Banner Manager — Deep dive into the microphone mute banner subsystem.
- Default validation:
dotnet build SoundSwitch.sln -c Debug - Run targeted tests for the area you change, and at minimum run the related test project when changing shared logic.