novolis-governance / repository-policy.md
Repository policy
Policies that keep the org coherent
dotnetgovernancenovolis
- NuGet-only cross-repo dependencies — no sibling
ProjectReference; see nuget-only-policy.md. Enforced byscripts/verify-nuget-only.ps1andscripts/verify-library-reference-usage.ps1. - All .NET library and tool repositories target .NET 10 (
net10.0) with SDK 10.0.100 minimum (global.json+Directory.Build.props). - Public by default unless there is a clear reason otherwise.
- Use novolis-template-dotnet for package, tool, utility, and lab repos.
- Game authoring libraries live in novolis-gaming; see gaming-layer-policy.md.
PackAsToolcommands live in novolis-tools; small technical executables live in novolis-utilities; production desktop apps and games live in novolis-apps; integration labs live in novolis-lab. Library repos must not host productapps/, shipped CLIs, or packable tool hosts — packablesrc/, tests, privatebenchmarks/profile executables, and privatetools/only. See apps-repos.md and executable-grains.md.- Every repo must have README, docs/getting-started.md, docs/design.md, docs/release.md.
- Packable libraries must follow documentation-policy.md (XML API docs + per-package README).
- Reserved repos state that implementation is not migrated yet.
- Branch protection on
main: PR required, 1+ approval, status checks, linear history. - Sensitive paths (
.github/workflows/**,Directory.Build.props,.novolis/**) require 2 approvals.