Files
james.maesandClaude Opus 5.5 839fb72bec chore: adopt the KofTwentyTwo standards (#2)
## 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)

---------

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

2.1 KiB

Security Policy

Reporting a vulnerability

Do not open a public issue for a security problem.

Report it privately through GitHub's private vulnerability reporting (the repository's Security tab, then Report a vulnerability). That is the only reporting channel.

Security contact: James Maes (@KofTwentyTwo), maintainer.

Please include the affected package and version, how to reproduce it, and the impact you see. AppKit's attack surface is described in its threat model.

What to expect

KofTwentyTwo follows coordinated vulnerability disclosure. Timeframes are counted from the day the report arrives and come from the KofTwentyTwo security program (targets until the standards reach v1.0.0, commitments from then on):

Step Target
Acknowledge the report 7 days
Assess it: confirm or reject, with a severity 14 days
Release a fix for a CRITICAL vulnerability 7 days
Release a fix for a HIGH vulnerability 30 days
Release a fix for a MEDIUM vulnerability 90 days
Release a fix for a LOW vulnerability The next release
Publish the advisory (GitHub Security Advisory, CVE where applicable) When the fix ships, or 90 days after the report, whichever comes first

Reporters are credited in the advisory unless they ask not to be.

Supported versions

Version Security fixes
Latest minor release (0.1.x once published) Yes
Older No; upgrade to the latest release

All four packages release together under one version. Only the latest minor release receives fixes; a line stops receiving security fixes when the next minor version is released. After a new major version, the previous major's last minor receives security fixes for 6 months.

Published vulnerabilities

Fixed vulnerabilities are published as GitHub Security Advisories.