with one click
project-conventions
Core conventions and patterns for AuroraFix (.NET MAUI)
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
Core conventions and patterns for AuroraFix (.NET MAUI)
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
| name | project-conventions |
| description | Core conventions and patterns for AuroraFix (.NET MAUI) |
| domain | project-conventions |
| confidence | medium |
| source | codebase-scan-2026-03-21 |
AuroraFix is a .NET MAUI (net10.0) aurora forecast app. C# with CommunityToolkit.Mvvm source generators. Single-page MVVM. No test project yet.
Use [ObservableProperty] for bindable properties (generates OnXxxChanged partials) and [RelayCommand] for commands in ViewModels. Never write INotifyPropertyChanged boilerplate manually.
[ObservableProperty] private string cityName = string.Empty;
[RelayCommand]
private async Task SearchCityAsync() { ... }
All ViewModels extend BaseViewModel : ObservableObject. Use IsBusy, SetError(), ClearError() from base. Set Title in constructor.
Register services as AddSingleton<T>() in MauiProgram.cs. Exception: WeatherService uses its own Instance singleton — do not add a second registration for it.
Services use try/catch returning null or a fallback value (never throw to ViewModel). ViewModels call SetError(message) on catch. Debug logging via System.Diagnostics.Debug.WriteLine.
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine($"Error: {ex.Message}");
return null; // or fallback value
}
#050810#2DCCAA (aurora green)#60FFFFFF, #20FFFFFFMontserrat, MontserratBoldStrokeShape="RoundRectangle 25", BackgroundColor="#0AFFFFFF"Always use ProbabilityDisplayHelper.CalculateAuroraProbability(kp, latitude, cloudCoverage). Do NOT use AuroraService.CalculateProbability (private, different formula, kept for internal use only).
AuroraFix/
Models/ — Plain data classes (no logic beyond simple helpers)
Services/ — External API calls, HttpClient usage
ViewModels/ — MVVM ViewModels (CommunityToolkit.Mvvm)
Views/ — XAML pages and controls
Helpers/ — Reusable calculation/display helpers
Platforms/ — Platform-specific code
Resources/ — Fonts, images, raw assets
*.xaml.cs minimal (only UI event wiring like Completed="OnSearchClicked")MainThread.InvokeOnMainThreadAsync if needed