Surfaced while re-syncing ptr727/Utilities (a NuGet-only derived repo) against the template, per the verbatim-carry contract. Three related gaps in how CODESTYLE.md is meant to be carried by derived repos:
1. Carry/placement status is ambiguous
CODESTYLE.md is not listed under "Files and Sections Derived Repos Must Carry Verbatim", yet "Staying in Sync and Reporting Drift Upstream" says to "keep it as the full multi-language aggregate the template ships and re-sync the whole file." So is it a mandatory carry or not? And is repo-root placement load-bearing? AGENTS.md links it as ./CODESTYLE.md and .github/copilot-instructions.md links it as ../CODESTYLE.md, so a derived repo that places it elsewhere breaks those links silently.
2. Content is not derivation-neutral
The "re-sync the whole file" guidance conflicts with content that hard-codes the template's own layout:
- Intro names
NuGetLibrary/, Console/, Tests/, Benchmarks/, CodeGen/ (and the Python project). A single-project NuGet-only repo (e.g. Utilities ships only Utilities/, Sandbox/, UtilitiesTests/) cannot carry that verbatim.
- The
InternalsVisibleTo sample lists Benchmarks and Tests, project names a derived repo likely doesn't have.
3. Build-Tasks list assumes template-specific VS Code task labels/casing
The "Build Tasks" list names .Net Build, .Net Format, and .Net Outdated Upgrade. Real derived repos use different labels and casing (Utilities uses .NET Build, .NET Format, .NET Publish, Husky.Net Run, and has no .Net Outdated Upgrade), so the list cannot be carried verbatim.
Suggested fix
Either templatize the project-folder names / InternalsVisibleTo / task labels (placeholders), or explicitly reclassify CODESTYLE.md as adapt-to-repo, not verbatim and mark which sections are repo-specific. Also add it (with its placement requirement) to the verbatim-carry/derived-repo file list so its status is unambiguous.
Surfaced while re-syncing
ptr727/Utilities(a NuGet-only derived repo) against the template, per the verbatim-carry contract. Three related gaps in howCODESTYLE.mdis meant to be carried by derived repos:1. Carry/placement status is ambiguous
CODESTYLE.mdis not listed under "Files and Sections Derived Repos Must Carry Verbatim", yet "Staying in Sync and Reporting Drift Upstream" says to "keep it as the full multi-language aggregate the template ships and re-sync the whole file." So is it a mandatory carry or not? And is repo-root placement load-bearing?AGENTS.mdlinks it as./CODESTYLE.mdand.github/copilot-instructions.mdlinks it as../CODESTYLE.md, so a derived repo that places it elsewhere breaks those links silently.2. Content is not derivation-neutral
The "re-sync the whole file" guidance conflicts with content that hard-codes the template's own layout:
NuGetLibrary/,Console/,Tests/,Benchmarks/,CodeGen/(and the Python project). A single-project NuGet-only repo (e.g. Utilities ships onlyUtilities/,Sandbox/,UtilitiesTests/) cannot carry that verbatim.InternalsVisibleTosample listsBenchmarksandTests, project names a derived repo likely doesn't have.3. Build-Tasks list assumes template-specific VS Code task labels/casing
The "Build Tasks" list names
.Net Build,.Net Format, and.Net Outdated Upgrade. Real derived repos use different labels and casing (Utilities uses.NET Build,.NET Format,.NET Publish,Husky.Net Run, and has no.Net Outdated Upgrade), so the list cannot be carried verbatim.Suggested fix
Either templatize the project-folder names /
InternalsVisibleTo/ task labels (placeholders), or explicitly reclassifyCODESTYLE.mdas adapt-to-repo, not verbatim and mark which sections are repo-specific. Also add it (with its placement requirement) to the verbatim-carry/derived-repo file list so its status is unambiguous.