2.0 KiB
2.0 KiB
CSProj Audit Summary
Scope
- Projects audited: 1096
- Files scanned: 15058
- Files with issues: 11095
- Audit date (UTC): 2026-01-31
- File-level report: docs/implplan/audits/csproj-standards/file-audit.csv
Coding Standards Gaps
- Nullable missing/disabled: 3
- TreatWarningsAsErrors overridden false: 412
- Deterministic overridden false: 0
- Projects with 100-line violations: 1035
- Total 100-line violations: 9489
- Projects with service locator usage: 365
- Projects with Assembly.LoadFrom usage: 8
File-Level Findings
- Files over 100 lines: 9489
- Files missing namespace: 38
- Files with block-scoped namespace: 281
- Files with non-StellaOps namespace: 315
- Files with using directives inside namespace: 2279
- Files with unsorted using directives: 2686
- Files with interface naming issues: 1
- Files with private field naming issues: 2339
- Files with const naming issues: 20
- Files with async naming issues: 3923
- Files with blocking async usage: 272
- Files missing ConfigureAwait(false): 3419
- Files with service locator usage: 792
- Files with Assembly.LoadFrom usage: 8
Testing Fullness Gaps (heuristic)
- Projects missing unit tests: 137
- Projects missing integration tests: 103
- Projects missing E2E tests: 49
- Projects missing security tests: 51
- Projects missing offline coverage: 51
- Projects missing performance tests: 109
- Projects missing CLI tests: 6
Notes
- Manual verification required for observability contract tests and intent tagging.
- Coverage matrix alignment required for model-specific expectations.
Prioritized Remediation
- Enforce analyzers repo-wide (StyleCop.Analyzers, Roslyn.Security.Guard) via central props or shared analyzer references.
- Remove service locator usage and Assembly.LoadFrom; replace with DI and plugin loader patterns.
- Reduce 100-line violations and normalize namespaces/usings.
- Fix async naming/blocking issues and add ConfigureAwait(false) in library-like code.
- Add missing test layers per project and align with TEST_COVERAGE_MATRIX.md.