Workstream 3 of #62: the standard .editorconfig and Directory.Build.props, Directory.Packages.props (central package management), LF line endings, SPDX headers, the Kingsrook layout (3-space, Allman, if(, three blank lines between members, one type per file, s_ statics), Meziantou analyzers, and the PowerShell scripts restyled under the standard PSScriptAnalyzer settings. The CI format gate moves to --severity warn and gains PSScriptAnalyzer.
Stacked on #69 (which is stacked on #68); GitHub retargets as they merge. Review tip: this is a whole-repository reformat; the behavior-relevant changes are the CLI sync command split (ParseOptions / ReportSummary), AnnouncementEventArgs, regex timeouts, and the NuGet update script's move to Directory.Packages.props.
Repository-specific .editorconfig adjustments are each commented: namespaces keep the product name gclo (the published package namespace cannot change in a patch), MA0051 flags extremes only, and the app project keeps CA1822 / IDE0051 / IDE0052 / IDE0060 off because XAML-referenced handlers are invisible to the analyzer (the IDE0051 fixer actually deleted three XAML event handlers during the first pass; they were restored and the rule disabled for that project).
How it was tested
dotnet build gclo.slnx -p:WindowsPackageType=None: 0 warnings, 0 errors with every rule active.
dotnet format gclo.slnx --verify-no-changes --severity warn --no-restore: clean.
Engine 422 and CLI 129 tests green; line coverage 100% on gclo.Engine, gclo.ViewModels, gclo.
FlaUI suite 11/11 on the restyled x64 app (smoke + table fixture).
PSScriptAnalyzer (1.25.0, standard settings): 0 findings; Update-PackageManifests.ps1 exercised on a scratch copy.
A declaration-level diff against main confirmed no member was lost by the reformat (one unused test constant removed deliberately).
Checklist
Commits are signed and signed off (git commit -S -s)
Zero build warnings; format and lint are clean
Tests added or updated; the coverage gate still passes
Docs updated for user-visible changes (CONTRIBUTING describes the style; no user-visible behavior changed)
No secrets, credentials, or personal data
New dependencies are justified: Meziantou.Analyzer 3.0.296 (build-time analyzer required by the C# profile)
Substantial AI assistance is noted: authored with Claude Code, reviewed by the maintainer
## What
Workstream 3 of #62: the standard `.editorconfig` and `Directory.Build.props`, `Directory.Packages.props` (central package management), LF line endings, SPDX headers, the Kingsrook layout (3-space, Allman, `if(`, three blank lines between members, one type per file, `s_` statics), Meziantou analyzers, and the PowerShell scripts restyled under the standard PSScriptAnalyzer settings. The CI format gate moves to `--severity warn` and gains PSScriptAnalyzer.
Stacked on #69 (which is stacked on #68); GitHub retargets as they merge. Review tip: this is a whole-repository reformat; the behavior-relevant changes are the CLI sync command split (`ParseOptions` / `ReportSummary`), `AnnouncementEventArgs`, regex timeouts, and the NuGet update script's move to `Directory.Packages.props`.
## Why
K22-CODE-01..09, 18, 24; K22-CODE-CS-01..13; K22-CODE-SH-04..06; K22-DEP-11. Closes #65.
Repository-specific `.editorconfig` adjustments are each commented: namespaces keep the product name `gclo` (the published package namespace cannot change in a patch), MA0051 flags extremes only, and the app project keeps CA1822 / IDE0051 / IDE0052 / IDE0060 off because XAML-referenced handlers are invisible to the analyzer (the IDE0051 fixer actually deleted three XAML event handlers during the first pass; they were restored and the rule disabled for that project).
## How it was tested
- `dotnet build gclo.slnx -p:WindowsPackageType=None`: 0 warnings, 0 errors with every rule active.
- `dotnet format gclo.slnx --verify-no-changes --severity warn --no-restore`: clean.
- Engine 422 and CLI 129 tests green; line coverage 100% on `gclo.Engine`, `gclo.ViewModels`, `gclo`.
- FlaUI suite 11/11 on the restyled x64 app (smoke + table fixture).
- PSScriptAnalyzer (1.25.0, standard settings): 0 findings; `Update-PackageManifests.ps1` exercised on a scratch copy.
- A declaration-level diff against `main` confirmed no member was lost by the reformat (one unused test constant removed deliberately).
## Checklist
- [x] Commits are signed and signed off (`git commit -S -s`)
- [x] Zero build warnings; format and lint are clean
- [x] Tests added or updated; the coverage gate still passes
- [x] Docs updated for user-visible changes (CONTRIBUTING describes the style; no user-visible behavior changed)
- [x] No secrets, credentials, or personal data
- [x] New dependencies are justified: Meziantou.Analyzer 3.0.296 (build-time analyzer required by the C# profile)
- [x] Substantial AI assistance is noted: authored with Claude Code, reviewed by the maintainer
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
What
Workstream 3 of #62: the standard
.editorconfigandDirectory.Build.props,Directory.Packages.props(central package management), LF line endings, SPDX headers, the Kingsrook layout (3-space, Allman,if(, three blank lines between members, one type per file,s_statics), Meziantou analyzers, and the PowerShell scripts restyled under the standard PSScriptAnalyzer settings. The CI format gate moves to--severity warnand gains PSScriptAnalyzer.Stacked on #69 (which is stacked on #68); GitHub retargets as they merge. Review tip: this is a whole-repository reformat; the behavior-relevant changes are the CLI sync command split (
ParseOptions/ReportSummary),AnnouncementEventArgs, regex timeouts, and the NuGet update script's move toDirectory.Packages.props.Why
K22-CODE-01..09, 18, 24; K22-CODE-CS-01..13; K22-CODE-SH-04..06; K22-DEP-11. Closes #65.
Repository-specific
.editorconfigadjustments are each commented: namespaces keep the product namegclo(the published package namespace cannot change in a patch), MA0051 flags extremes only, and the app project keeps CA1822 / IDE0051 / IDE0052 / IDE0060 off because XAML-referenced handlers are invisible to the analyzer (the IDE0051 fixer actually deleted three XAML event handlers during the first pass; they were restored and the rule disabled for that project).How it was tested
dotnet build gclo.slnx -p:WindowsPackageType=None: 0 warnings, 0 errors with every rule active.dotnet format gclo.slnx --verify-no-changes --severity warn --no-restore: clean.gclo.Engine,gclo.ViewModels,gclo.Update-PackageManifests.ps1exercised on a scratch copy.mainconfirmed no member was lost by the reformat (one unused test constant removed deliberately).Checklist
git commit -S -s)🤖 Generated with Claude Code