Files
gclo/.gitattributes
james.maesandClaude Fable 5.1 50b3c134eb style: adopt the Kingsrook C# layout and the standard .NET quality gate (#70)
* style: adopt the Kingsrook C# layout and the standard .NET quality gate

The standard .editorconfig and Directory.Build.props from KofTwentyTwo/standards
(3-space indent, Allman braces, `if(` without a space, file-scoped namespaces,
var only when apparent, `s_` static fields, IDE0055 and the Meziantou analyzers
as build errors, NuGetAudit on the whole graph, CI-conditional locked restore),
central package management in Directory.Packages.props, LF line endings via
.gitattributes, and the SPDX header on every C# file. Members are separated by
three blank lines, one top-level type per file (24 types moved into their own
files), ArgumentException parameter names, bounded regex match times, the
announcement event in the EventHandler<AnnouncementEventArgs> shape, and the
CLI sync command split into option parsing, the run, and summary reporting.

Repository-specific adjustments, each justified in .editorconfig: namespaces
keep the product name `gclo`; MA0051 flags only extremes (160 lines / 100
statements); the app project keeps CA1822, IDE0051/52 (XAML-referenced
handlers; dotnet format's fixer would delete them) and IDE0060 (handler
signatures) off; XAML stays at 4 spaces.

PowerShell scripts use the standard PSScriptAnalyzer settings: strict mode,
comment-based help, Allman and 3-space layout, no Write-Host; the NuGet update
script now edits Directory.Packages.props. The CI format gate runs at
--severity warn and PSScriptAnalyzer.

Behavior is unchanged: Engine 422, CLI 129 and FlaUI 11 tests pass, line
coverage stays at 100%.

Closes #65

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Signed-off-by: James Maes <james@kof22.com>

* ci: analyze PowerShell scripts one file at a time

PSScriptAnalyzer 1.25.0 intermittently fails with "Object reference not set to
an instance of an object" when Invoke-ScriptAnalyzer is handed a directory (it
passed on the same scripts an hour earlier, and locally the same call crashes on
some runs and not others). Handing it one script per call never crashed in
repeated local runs, so the format job now loops over the scripts.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Signed-off-by: James Maes <james@kof22.com>

---------

Signed-off-by: James Maes <james@kof22.com>
Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-09 14:39:43 -05:00

10 lines
377 B
Plaintext

# Text is stored and checked out as LF everywhere (K22-CODE-07), matching
# .editorconfig (end_of_line = lf) so the dotnet format gate behaves the same at
# developers' desks and on CI runners regardless of their git config. Windows-only
# script formats that require CRLF are the exception.
* text=auto eol=lf
*.cmd text eol=crlf
*.bat text eol=crlf
*.png binary
*.ico binary