Contribution Definition of Done
This checklist defines the minimum completion criteria before opening or merging a pull request.
1. Change Classification
Select at least one category:
- [ ] Feature
- [ ] Bug fix
- [ ] Refactor
- [ ] Docs only
- [ ] CI/build/tooling
2. Code And Behavior
- [ ] Behavior is implemented in the intended layer (Abstractions, Core, Platform, Facade).
- [ ] Public API surface changes are intentional and documented.
- [ ] New or changed public types/members have accurate
///XML doc comments — this is the single source of truth for the generated API reference (Docs/api/, built viaDocs/docfx.json). CS1591 is enabled on all API projects, so a missing comment on a new public member fails the build; an inaccurate one won't, so review it like code, not an afterthought. - [ ] Unsupported operations use the intended exception type (
NotSupportedExceptionorPlatformNotSupportedException). - [ ] New async operations expose
CancellationToken cancellationToken = default. - [ ] State transitions and callbacks are consistent with existing lifecycle patterns.
3. Platform Impact Review
- [ ] Platform matrix impact reviewed for Android, iOS/macOS, Windows, DotNetCore fallback.
- [ ] Platform-specific behavior differences are explicit in code and docs.
- [ ] API-level/version gates are validated where applicable.
- [ ] Fallback behavior is defined for unsupported capability paths.
4. Logging And Exceptions
- [ ] New logs use structured logging and appropriate EventId range.
- [ ] EventId allocation does not conflict with existing ranges.
- [ ] Exceptions preserve context (
innerException, useful message, and relevant identifiers). - [ ] Error behavior is deterministic across retry and cancellation paths.
5. Tests
Note: the repository has no unit/integration test projects yet (see Testing.md) — the first three items below are currently unenforceable and exist for when that infrastructure lands. Manual validation is the only real coverage today.
- [ ] Unit tests updated or added for changed logic.
- [ ] Unsupported-path behavior tested where applicable.
- [ ] Existing tests pass for affected projects.
- [ ] Manual validation performed for affected platforms when automated test coverage is unavailable.
6. Documentation
- [ ] Relevant conceptual docs are updated in the same PR (
Docs/Core-Concepts/,Docs/Configuration/,Docs/Platforms/,Docs/Getting-Started/,Docs/Best-Practices/). Member-level API reference does not need manual updates — it's generated from XML doc comments (see item 2 above). - [ ] Capability tables match implemented behavior.
- [ ] Code samples in conceptual docs reflect current interfaces and signatures (compile them mentally — a fabricated/renamed API in a doc sample is exactly the class of bug a 2026-08-17 audit found dozens of).
- [ ] New docs links resolve to existing files, or use
xref:for links into the generated API reference rather than a hand-written path underDocs/api/. - [ ] Docs tone remains factual (no promotional language).
7. Dependency Injection And Composition
- [ ] Service registration order changes are reviewed for override effects.
- [ ] Default interface resolution behavior remains intentional.
- [ ] Removal or addition of registrations is documented when it changes runtime composition.
8. PR Readiness
- [ ] Commit messages follow repository commit format.
- [ ] PR description states what changed and why.
- [ ] Risk level and rollout considerations are identified.
- [ ] Follow-up tasks are listed when work is intentionally partial.
9. Docs-Only Fast Path
For docs-only PRs, minimum required checks:
- [ ] Link validation complete
- [ ] Capability claims verified against current code
- [ ] Terminology and naming aligned with repository conventions
- [ ] No stale references to removed files/features