Also includes dev's CI fix, so it supersedes #1; the dev branch goes away under GitHub Flow.
Why
AppKit is the first Product repository to adopt the standards. Static conformance before: 16 FAIL; after: 0 FAIL, 0 WARN (the remaining UNKNOWN rows are GitHub settings and rulesets, applied separately).
How tested
Locally with CI=true (lock files enforced): locked restore x64 and ARM64; zero-warning x64 build; 115 unit tests with 100% line coverage of KofTwentyTwo.AppKit and KofTwentyTwo.AppKit.Updates; 12 FlaUI UI tests (WinUI + WPF samples); dotnet format --verify-no-changes --severity warn clean; pack produces 4 packages + symbols; actionlint, zizmor (pedantic), gitleaks clean.
The UI tests caught a regression introduced while fixing MA0147 (the WPF splash stopped dismissing because no UI context existed yet); fixed by starting the countdown through the dispatcher in both packages.
Notes
ci.yml and release.yml are pinned to KofTwentyTwo/standards#3's head commit; they are repinned after that PR merges.
This pull request's new check names become required checks once the repository's rulesets are updated.
## What
Brings AppKit into conformance with [KofTwentyTwo/standards](https://github.com/KofTwentyTwo/standards). Reviewable commit by commit:
| Commit | Change |
| --- | --- |
| build | Quality gate from `configs/dotnet` (analyzers incl. Meziantou, warnings as errors), `packages.lock.json` per project, locked-mode restore |
| style | Kingsrook layout and LF line endings, produced mechanically by `dotnet format` (formatting only) |
| docs | SPDX license header on every C# file |
| refactor | Real code changes: analyzer findings fixed (one type per file, regex timeouts, async void, …) and header comments on every type and member |
| ci | Old workflows replaced by callers of the shared standards workflows (PR gates, security, CodeQL, .NET CI, NuGet release with SBOM + attestation + trusted publishing), Scorecard |
| docs | README, CONTRIBUTING (GitHub Flow, DCO, signing), SECURITY, CODEOWNERS, templates, Dependabot, threat model, ADRs, RELEASING |
Also includes `dev`'s CI fix, so it supersedes #1; the `dev` branch goes away under GitHub Flow.
## Why
AppKit is the first Product repository to adopt the standards. Static conformance before: 16 FAIL; after: 0 FAIL, 0 WARN (the remaining UNKNOWN rows are GitHub settings and rulesets, applied separately).
## How tested
Locally with `CI=true` (lock files enforced): locked restore x64 and ARM64; zero-warning x64 build; 115 unit tests with 100% line coverage of `KofTwentyTwo.AppKit` and `KofTwentyTwo.AppKit.Updates`; 12 FlaUI UI tests (WinUI + WPF samples); `dotnet format --verify-no-changes --severity warn` clean; pack produces 4 packages + symbols; actionlint, zizmor (pedantic), gitleaks clean.
The UI tests caught a regression introduced while fixing MA0147 (the WPF splash stopped dismissing because no UI context existed yet); fixed by starting the countdown through the dispatcher in both packages.
## Notes
- `ci.yml` and `release.yml` are pinned to KofTwentyTwo/standards#3's head commit; they are repinned after that PR merges.
- This pull request's new check names become required checks once the repository's rulesets are updated.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
You are seeing this message because GitHub Code Scanning has recently been set up for this repository, or this pull request contains the workflow file for the Code Scanning tool.
What Enabling Code Scanning Means:
The 'Security' tab will display more code scanning analysis results (e.g., for the default branch).
Depending on your configuration and choice of analysis tool, future pull requests will be annotated with code scanning analysis results.
You will be able to see the analysis results for the pull request's branch on this overview once the scans have completed and the checks have passed.
For more information about GitHub Code Scanning, check out the documentation.
You are seeing this message because GitHub Code Scanning has recently been set up for this repository, or this pull request contains the workflow file for the Code Scanning tool.
### What Enabling Code Scanning Means:
- The 'Security' tab will display more code scanning analysis results (e.g., for the default branch).
- Depending on your configuration and choice of analysis tool, future pull requests will be annotated with code scanning analysis results.
- You will be able to see the analysis results for the pull request's branch on this [overview](/KofTwentyTwo/AppKit/security/code-scanning?query=pr%3A2+is%3Aopen) once the scans have completed and the checks have passed.
For more information about GitHub Code Scanning, check out [the documentation](https://docs.github.com/code-security/code-scanning/introduction-to-code-scanning/about-code-scanning).
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
Brings AppKit into conformance with KofTwentyTwo/standards. Reviewable commit by commit:
configs/dotnet(analyzers incl. Meziantou, warnings as errors),packages.lock.jsonper project, locked-mode restoredotnet format(formatting only)Also includes
dev's CI fix, so it supersedes #1; thedevbranch goes away under GitHub Flow.Why
AppKit is the first Product repository to adopt the standards. Static conformance before: 16 FAIL; after: 0 FAIL, 0 WARN (the remaining UNKNOWN rows are GitHub settings and rulesets, applied separately).
How tested
Locally with
CI=true(lock files enforced): locked restore x64 and ARM64; zero-warning x64 build; 115 unit tests with 100% line coverage ofKofTwentyTwo.AppKitandKofTwentyTwo.AppKit.Updates; 12 FlaUI UI tests (WinUI + WPF samples);dotnet format --verify-no-changes --severity warnclean; pack produces 4 packages + symbols; actionlint, zizmor (pedantic), gitleaks clean.The UI tests caught a regression introduced while fixing MA0147 (the WPF splash stopped dismissing because no UI context existed yet); fixed by starting the countdown through the dispatcher in both packages.
Notes
ci.ymlandrelease.ymlare pinned to KofTwentyTwo/standards#3's head commit; they are repinned after that PR merges.🤖 Generated with Claude Code
You are seeing this message because GitHub Code Scanning has recently been set up for this repository, or this pull request contains the workflow file for the Code Scanning tool.
What Enabling Code Scanning Means:
For more information about GitHub Code Scanning, check out the documentation.