Fixes every finding the new quality gate reports, without changing behavior:
- One type per file (MA0048): AppBrand, Attribution, NullActivityLog,
LogSnapshot, ISanitizable, AppTheme, UpdateCheckResult, UpdateText,
IUpdateBackend, ContentDialogPrompter, WindowExtensions, MessageBoxPrompter,
and the samples' SampleSettings/SampleSettingsContext get their own files
(the samples now link samples/Shared/*.cs).
- Regex match timeouts on the two generated regexes (MA0009).
- AppInfo.Id reports nameof(value) as the parameter (MA0015); test updated.
- Splash dismissal is a named DismissAfterAsync started through the
dispatcher (MA0147, MA0134), and the WinUI splash constructor is split into
builders (MA0051). The WPF countdown must go through the dispatcher: the
sample builds its window before Application.Run, when no synchronization
context exists.
- The WinUI sample's startup update check is a named method (MA0147).
- CA1859 in BrandTool and the version tests; private static readonly fields
renamed to s_camelCase (IDE1006).
- A header comment on every type and method (K22-CODE-09/CS-04): hand-written
for library, sample, and tool code; test methods summarize their
Subject_Behavior names.
Verified: zero-warning x64 build, 115 unit tests with 100% line coverage of
KofTwentyTwo.AppKit and KofTwentyTwo.AppKit.Updates, 12 UI tests, and
dotnet format --verify-no-changes --severity warn.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: James Maes <james@kof22.com>