You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
dotnet-template's first strategy review (it had no roadmap, roadmap label, or milestones before this). The goal of this repo is to be the clean baseline every new devantler-tech .NET project starts from — minimal, idiomatic, current. It is already in good shape on the things that matter most:
It is a GitHub template repository (isTemplate: true), so the "Use this template" button works.
It ships a real example + test (src/Example/ExampleClass.cs + tests/Example.Tests/ExampleClassTests.cs) — the thing its sibling go-template still lacks (go-template#69).
House defaults are wired up in both projects: Nullable, ImplicitUsings, AnalysisMode=All, EnforceCodeStyleInBuild, TreatWarningsAsErrors, GenerateDocumentationFile.
AI-maintenance conventions are in place (AGENTS.md + CLAUDE.md + .claude/), PRs are validated by the org-required reusable workflow (not a repo-local caller), and publishing runs through the reusable publish-dotnet-library workflow on v* tags.
This roadmap captures the small, high-value gaps between "a working repo" and "a polished starter someone reaches for." The bias stays minimal, idiomatic, current — no product features (per the template's AGENTS.md).
Theme & directions
Current toolchain — the projects target net9.0. .NET 9 is STS and its support window ends ~May 2026; .NET 10 is the current LTS (released Nov 2025). A starter for new projects should target the current LTS. → Bump target framework net9.0 → net10.0 (current LTS) #168
Accurate, helpful docs — the README frames the repo as a NuGet package to dotnet add package rather than a template to use; its Test badge points to a non-existent test.yaml workflow; and it doesn't mention the bundled house defaults, the validation model, the release/publish flow, or the AI-maintenance setup. → Fix and enrich the README (template framing + accurate badges) #169
Exemplary by example — ExampleClass is empty and ExampleClassTests.Test1 only asserts the constructed instance is non-null, so the scaffold models no real behaviour or test-naming convention for a new project to copy. → Make the example exemplary (model the house testing pattern) #170
Cross-cutting lens — parity with go-template
The two templates should align where it makes sense (per the templates product card). Today dotnet-template is ahead of go-template on the two biggest items — it is already a template repo and already ships an example+test (go-template#67 tracks closing those gaps on the Go side). The remaining shared theme is "current + polished docs" (directions 1 and 2 here mirror go-template#70). Other per-ecosystem differences (dotnet has CODEOWNERS, renovate.json; go uses dependabot.yaml + .golangci.yml/.mega-linter.yml + cspell.json) are mostly deliberate, not gaps.
Tracked elsewhere / watch (not children of this epic)
Codecov → GitHub-native coverage. The README still carries a Codecov badge + token. The Codecov → GitHub-native Code Quality coverage migration is a portfolio-wide effort driven centrally (public Go + .NET in scope); the consumer-side README/badge update here should follow that work rather than be done independently.
xUnit v2 → v3. The test project uses xunit 2.9.3; xunit.v3 is available. xUnit v2 is still mainstream and stable — revisit only when there's a clear reason, not as currency churn.
Empty .pre-commit-config.yaml (repos: []). Prepared but unused; either populate with a useful hook (e.g. dotnet format) or drop it. Minor hygiene, not roadmap-worthy on its own.
Explicitly out of scope (deliberate, not gaps)
No repo-local test/validate workflow caller — PR validation runs via the org-required Require workflows ruleset (the reusable .NET validation workflow from devantler-tech/reusable-workflows); ci.yaml is only a required-checks aggregator. The scaffold is validated; a local caller is unnecessary.
No product features — this is a scaffold; keep it empty and idiomatic.
Size
Whole roadmap is S — three small, independently shippable children (#168 is the headline; #169 and #170 are good first issue-grade).
Roadmap: an exemplary, current .NET starter
dotnet-template's first strategy review (it had no roadmap,
roadmaplabel, or milestones before this). The goal of this repo is to be the clean baseline every new devantler-tech .NET project starts from — minimal, idiomatic, current. It is already in good shape on the things that matter most:isTemplate: true), so the "Use this template" button works.src/Example/ExampleClass.cs+tests/Example.Tests/ExampleClassTests.cs) — the thing its sibling go-template still lacks (go-template#69).Nullable,ImplicitUsings,AnalysisMode=All,EnforceCodeStyleInBuild,TreatWarningsAsErrors,GenerateDocumentationFile.AGENTS.md+CLAUDE.md+.claude/), PRs are validated by the org-required reusable workflow (not a repo-local caller), and publishing runs through the reusablepublish-dotnet-libraryworkflow onv*tags.This roadmap captures the small, high-value gaps between "a working repo" and "a polished starter someone reaches for." The bias stays minimal, idiomatic, current — no product features (per the template's
AGENTS.md).Theme & directions
net9.0. .NET 9 is STS and its support window ends ~May 2026; .NET 10 is the current LTS (released Nov 2025). A starter for new projects should target the current LTS. → Bump target framework net9.0 → net10.0 (current LTS) #168dotnet add packagerather than a template to use; its Test badge points to a non-existenttest.yamlworkflow; and it doesn't mention the bundled house defaults, the validation model, the release/publish flow, or the AI-maintenance setup. → Fix and enrich the README (template framing + accurate badges) #169ExampleClassis empty andExampleClassTests.Test1only asserts the constructed instance is non-null, so the scaffold models no real behaviour or test-naming convention for a new project to copy. → Make the example exemplary (model the house testing pattern) #170Cross-cutting lens — parity with go-template
The two templates should align where it makes sense (per the templates product card). Today dotnet-template is ahead of go-template on the two biggest items — it is already a template repo and already ships an example+test (go-template#67 tracks closing those gaps on the Go side). The remaining shared theme is "current + polished docs" (directions 1 and 2 here mirror go-template#70). Other per-ecosystem differences (dotnet has
CODEOWNERS,renovate.json; go usesdependabot.yaml+.golangci.yml/.mega-linter.yml+cspell.json) are mostly deliberate, not gaps.Tracked elsewhere / watch (not children of this epic)
xunit2.9.3;xunit.v3is available. xUnit v2 is still mainstream and stable — revisit only when there's a clear reason, not as currency churn..pre-commit-config.yaml(repos: []). Prepared but unused; either populate with a useful hook (e.g.dotnet format) or drop it. Minor hygiene, not roadmap-worthy on its own.Explicitly out of scope (deliberate, not gaps)
devantler-tech/reusable-workflows);ci.yamlis only a required-checks aggregator. The scaffold is validated; a local caller is unnecessary.Size
Whole roadmap is S — three small, independently shippable children (#168 is the headline; #169 and #170 are
good first issue-grade).