archive audit attempts

This commit is contained in:
master
2026-02-19 22:00:31 +02:00
parent c2f13fe588
commit b5829dce5c
19638 changed files with 6366 additions and 7 deletions

View File

@@ -0,0 +1,97 @@
# Audit - StellaOps.Doctor.Scheduler
## Project
- Path: src/Doctor/StellaOps.Doctor.Scheduler/StellaOps.Doctor.Scheduler.csproj
- Module: Doctor
- Kind: Library
- Audit date (UTC): 2026-01-30
- Files scanned: 14
- Files with issues: 14
- File-level report: docs/implplan/audits/csproj-standards/file-audit.csv
## Coding Standards Findings
- Status: FAIL
- Nullable: enable
- TreatWarningsAsErrors: explicit true
- Deterministic: inherited true
- 100-line rule violations: 5
- Namespace violations: 13
- Using directive violations: 0
- Naming violations (interfaces/fields/const/async): 0
- Service locator usage (BuildServiceProvider/GetService): 0
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Doctor/StellaOps.Doctor.Scheduler/DoctorScheduleWorker.cs (137 lines)
- src/Doctor/StellaOps.Doctor.Scheduler/Program.cs (170 lines)
- src/Doctor/StellaOps.Doctor.Scheduler/Models/DoctorSchedule.cs (171 lines)
- src/Doctor/StellaOps.Doctor.Scheduler/Models/TrendDataPoint.cs (147 lines)
- src/Doctor/StellaOps.Doctor.Scheduler/Services/ScheduleExecutor.cs (310 lines)
- Namespace issues:
- src/Doctor/StellaOps.Doctor.Scheduler/DoctorScheduleWorker.cs: missing namespace
- src/Doctor/StellaOps.Doctor.Scheduler/Models/DoctorSchedule.cs: missing namespace
- src/Doctor/StellaOps.Doctor.Scheduler/Models/ScheduleExecution.cs: missing namespace
- src/Doctor/StellaOps.Doctor.Scheduler/Models/TrendDataPoint.cs: missing namespace
- src/Doctor/StellaOps.Doctor.Scheduler/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/Doctor/StellaOps.Doctor.Scheduler/obj/Debug/net10.0/StellaOps.Doctor.Scheduler.AssemblyInfo.cs: missing namespace
- src/Doctor/StellaOps.Doctor.Scheduler/obj/Debug/net10.0/StellaOps.Doctor.Scheduler.GlobalUsings.g.cs: missing namespace
- src/Doctor/StellaOps.Doctor.Scheduler/obj/Release/net10.0/StellaOps.Doctor.Scheduler.GlobalUsings.g.cs: missing namespace
- src/Doctor/StellaOps.Doctor.Scheduler/Options/DoctorSchedulerOptions.cs: missing namespace
- src/Doctor/StellaOps.Doctor.Scheduler/Services/IAlertService.cs: missing namespace
- src/Doctor/StellaOps.Doctor.Scheduler/Services/IScheduleRepository.cs: missing namespace
- src/Doctor/StellaOps.Doctor.Scheduler/Services/ITrendRepository.cs: missing namespace
- src/Doctor/StellaOps.Doctor.Scheduler/Services/ScheduleExecutor.cs: missing namespace
- Using directive issues:
- none
- Naming issues:
- none
- Async issues:
- none
- Service locator matches:
- none
- Assembly.LoadFrom matches:
- none
### Fix Guidance
- Normalize namespaces to file-scoped StellaOps.<Area>.
- Split files over 100 lines into smaller types or partials.
## File-Level Findings
- Status: FAIL
- Files scanned: 14
- Files with issues: 14
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Doctor/StellaOps.Doctor.Scheduler/DoctorScheduleWorker.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/StellaOps.Doctor.Scheduler/Program.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Doctor/StellaOps.Doctor.Scheduler/Models/DoctorSchedule.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/StellaOps.Doctor.Scheduler/Models/ScheduleExecution.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/StellaOps.Doctor.Scheduler/Models/TrendDataPoint.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/StellaOps.Doctor.Scheduler/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/StellaOps.Doctor.Scheduler/obj/Debug/net10.0/StellaOps.Doctor.Scheduler.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/StellaOps.Doctor.Scheduler/obj/Debug/net10.0/StellaOps.Doctor.Scheduler.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/StellaOps.Doctor.Scheduler/obj/Release/net10.0/StellaOps.Doctor.Scheduler.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/StellaOps.Doctor.Scheduler/Options/DoctorSchedulerOptions.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/StellaOps.Doctor.Scheduler/Services/IAlertService.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/StellaOps.Doctor.Scheduler/Services/IScheduleRepository.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/StellaOps.Doctor.Scheduler/Services/ITrendRepository.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/StellaOps.Doctor.Scheduler/Services/ScheduleExecutor.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
## Testing Fullness Findings
- Status: FAIL
- Expected layers (heuristic): Unit
- Detected test projects: none
- Missing layers: Unit
### Manual checks required
- Observability contract tests for WebService/Worker.
- Intent tags for regulatory modules (Policy, Authority, Signer, Attestor, EvidenceLocker).
- Offline execution (tests must run without network access).
- Coverage matrix alignment (docs/technical/testing/TEST_COVERAGE_MATRIX.md).
### Fix Guidance
- Add or expand test projects to cover missing layers.
- Ensure tests use deterministic fixtures and offline harnesses.

View File

@@ -0,0 +1,80 @@
# Audit - StellaOps.Doctor.Scheduler
## Project
- Path: src/Doctor/StellaOps.Doctor.Scheduler/StellaOps.Doctor.Scheduler.csproj
- Module: Doctor
- Kind: Library
- Audit date (UTC): 2026-01-31
- Files scanned: 10
- Files with issues: 5
- File-level report: docs/implplan/audits/csproj-standards/file-audit.csv
## Coding Standards Findings
- Status: FAIL
- Nullable: enable
- TreatWarningsAsErrors: explicit true
- Deterministic: inherited true
- 100-line rule violations: 5
- Namespace violations: 0
- Using directive violations: 0
- Naming violations (interfaces/fields/const/async): 5
- Service locator usage (BuildServiceProvider/GetService): 0
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Doctor/StellaOps.Doctor.Scheduler/DoctorScheduleWorker.cs (137 lines)
- src/Doctor/StellaOps.Doctor.Scheduler/Program.cs (170 lines)
- src/Doctor/StellaOps.Doctor.Scheduler/Models/DoctorSchedule.cs (171 lines)
- src/Doctor/StellaOps.Doctor.Scheduler/Models/TrendDataPoint.cs (147 lines)
- src/Doctor/StellaOps.Doctor.Scheduler/Services/ScheduleExecutor.cs (311 lines)
- Namespace issues:
- none
- Using directive issues:
- none
- Naming issues:
- none
- Async issues:
- src/Doctor/StellaOps.Doctor.Scheduler/DoctorScheduleWorker.cs: async method naming
- src/Doctor/StellaOps.Doctor.Scheduler/DoctorScheduleWorker.cs: missing ConfigureAwait(false)
- src/Doctor/StellaOps.Doctor.Scheduler/Program.cs: missing ConfigureAwait(false)
- src/Doctor/StellaOps.Doctor.Scheduler/Services/ScheduleExecutor.cs: async method naming
- src/Doctor/StellaOps.Doctor.Scheduler/Services/ScheduleExecutor.cs: missing ConfigureAwait(false)
- Service locator matches:
- none
- Assembly.LoadFrom matches:
- none
### Fix Guidance
- Rename async methods and avoid blocking async calls.
- Split files over 100 lines into smaller types or partials.
## File-Level Findings
- Status: FAIL
- Files scanned: 10
- Files with issues: 5
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Doctor/StellaOps.Doctor.Scheduler/DoctorScheduleWorker.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100 | Add ConfigureAwait(false) to awaited calls in library-like code.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/Doctor/StellaOps.Doctor.Scheduler/Program.cs | ConfigureAwaitMissing; FileLength>100 | Add ConfigureAwait(false) to awaited calls in library-like code.; Split file to stay <= 100 lines. |
| src/Doctor/StellaOps.Doctor.Scheduler/Models/DoctorSchedule.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Doctor/StellaOps.Doctor.Scheduler/Models/TrendDataPoint.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Doctor/StellaOps.Doctor.Scheduler/Services/ScheduleExecutor.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100 | Add ConfigureAwait(false) to awaited calls in library-like code.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
## Testing Fullness Findings
- Status: FAIL
- Expected layers (heuristic): Unit
- Detected test projects: none
- Missing layers: Unit
### Manual checks required
- Observability contract tests for WebService/Worker.
- Intent tags for regulatory modules (Policy, Authority, Signer, Attestor, EvidenceLocker).
- Offline execution (tests must run without network access).
- Coverage matrix alignment (docs/technical/testing/TEST_COVERAGE_MATRIX.md).
### Fix Guidance
- Add or expand test projects to cover missing layers.
- Ensure tests use deterministic fixtures and offline harnesses.

View File

@@ -0,0 +1,106 @@
# Audit - StellaOps.Doctor.WebService
## Project
- Path: src/Doctor/StellaOps.Doctor.WebService/StellaOps.Doctor.WebService.csproj
- Module: Doctor
- Kind: Library
- Audit date (UTC): 2026-01-30
- Files scanned: 17
- Files with issues: 17
- File-level report: docs/implplan/audits/csproj-standards/file-audit.csv
## Coding Standards Findings
- Status: FAIL
- Nullable: enable
- TreatWarningsAsErrors: explicit true
- Deterministic: inherited true
- 100-line rule violations: 9
- Namespace violations: 16
- Using directive violations: 0
- Naming violations (interfaces/fields/const/async): 0
- Service locator usage (BuildServiceProvider/GetService): 0
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Doctor/StellaOps.Doctor.WebService/Program.cs (176 lines)
- src/Doctor/StellaOps.Doctor.WebService/Contracts/DoctorModels.cs (494 lines)
- src/Doctor/StellaOps.Doctor.WebService/Endpoints/DoctorEndpoints.cs (227 lines)
- src/Doctor/StellaOps.Doctor.WebService/Endpoints/TimestampingEndpoints.cs (360 lines)
- src/Doctor/StellaOps.Doctor.WebService/Options/DoctorServiceOptions.cs (117 lines)
- src/Doctor/StellaOps.Doctor.WebService/Services/DoctorRunService.cs (268 lines)
- src/Doctor/StellaOps.Doctor.WebService/Services/InMemoryReportStorageService.cs (104 lines)
- src/Doctor/StellaOps.Doctor.WebService/Services/PostgresReportStorageService.cs (267 lines)
- src/Doctor/StellaOps.Doctor.WebService/Services/TimestampingDashboardProvider.cs (376 lines)
- Namespace issues:
- src/Doctor/StellaOps.Doctor.WebService/Constants/DoctorPolicies.cs: missing namespace
- src/Doctor/StellaOps.Doctor.WebService/Constants/DoctorScopes.cs: missing namespace
- src/Doctor/StellaOps.Doctor.WebService/Contracts/DoctorModels.cs: missing namespace
- src/Doctor/StellaOps.Doctor.WebService/Endpoints/DoctorEndpoints.cs: missing namespace
- src/Doctor/StellaOps.Doctor.WebService/Endpoints/TimestampingEndpoints.cs: missing namespace
- src/Doctor/StellaOps.Doctor.WebService/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/Doctor/StellaOps.Doctor.WebService/obj/Debug/net10.0/StellaOps.Doctor.WebService.AssemblyInfo.cs: missing namespace
- src/Doctor/StellaOps.Doctor.WebService/obj/Debug/net10.0/StellaOps.Doctor.WebService.GlobalUsings.g.cs: missing namespace
- src/Doctor/StellaOps.Doctor.WebService/obj/Debug/net10.0/StellaOps.Doctor.WebService.MvcApplicationPartsAssemblyInfo.cs: missing namespace
- src/Doctor/StellaOps.Doctor.WebService/obj/Release/net10.0/StellaOps.Doctor.WebService.GlobalUsings.g.cs: missing namespace
- src/Doctor/StellaOps.Doctor.WebService/Options/DoctorServiceOptions.cs: missing namespace
- src/Doctor/StellaOps.Doctor.WebService/Services/DoctorRunService.cs: missing namespace
- src/Doctor/StellaOps.Doctor.WebService/Services/InMemoryReportStorageService.cs: missing namespace
- src/Doctor/StellaOps.Doctor.WebService/Services/IReportStorageService.cs: missing namespace
- src/Doctor/StellaOps.Doctor.WebService/Services/PostgresReportStorageService.cs: missing namespace
- src/Doctor/StellaOps.Doctor.WebService/Services/TimestampingDashboardProvider.cs: missing namespace
- Using directive issues:
- none
- Naming issues:
- none
- Async issues:
- none
- Service locator matches:
- none
- Assembly.LoadFrom matches:
- none
### Fix Guidance
- Normalize namespaces to file-scoped StellaOps.<Area>.
- Split files over 100 lines into smaller types or partials.
## File-Level Findings
- Status: FAIL
- Files scanned: 17
- Files with issues: 17
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Doctor/StellaOps.Doctor.WebService/Program.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Doctor/StellaOps.Doctor.WebService/Constants/DoctorPolicies.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/StellaOps.Doctor.WebService/Constants/DoctorScopes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/StellaOps.Doctor.WebService/Contracts/DoctorModels.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/StellaOps.Doctor.WebService/Endpoints/DoctorEndpoints.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/StellaOps.Doctor.WebService/Endpoints/TimestampingEndpoints.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/StellaOps.Doctor.WebService/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/StellaOps.Doctor.WebService/obj/Debug/net10.0/StellaOps.Doctor.WebService.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/StellaOps.Doctor.WebService/obj/Debug/net10.0/StellaOps.Doctor.WebService.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/StellaOps.Doctor.WebService/obj/Debug/net10.0/StellaOps.Doctor.WebService.MvcApplicationPartsAssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/StellaOps.Doctor.WebService/obj/Release/net10.0/StellaOps.Doctor.WebService.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/StellaOps.Doctor.WebService/Options/DoctorServiceOptions.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/StellaOps.Doctor.WebService/Services/DoctorRunService.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/StellaOps.Doctor.WebService/Services/InMemoryReportStorageService.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/StellaOps.Doctor.WebService/Services/IReportStorageService.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/StellaOps.Doctor.WebService/Services/PostgresReportStorageService.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/StellaOps.Doctor.WebService/Services/TimestampingDashboardProvider.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
## Testing Fullness Findings
- Status: PASS
- Expected layers (heuristic): Unit
- Detected test projects: src/Doctor/__Tests/StellaOps.Doctor.WebService.Tests/StellaOps.Doctor.WebService.Tests.csproj [Unit]
- Missing layers: none
### Manual checks required
- Observability contract tests for WebService/Worker.
- Intent tags for regulatory modules (Policy, Authority, Signer, Attestor, EvidenceLocker).
- Offline execution (tests must run without network access).
- Coverage matrix alignment (docs/technical/testing/TEST_COVERAGE_MATRIX.md).
### Fix Guidance
- None.

View File

@@ -0,0 +1,91 @@
# Audit - StellaOps.Doctor.WebService
## Project
- Path: src/Doctor/StellaOps.Doctor.WebService/StellaOps.Doctor.WebService.csproj
- Module: Doctor
- Kind: Service
- Audit date (UTC): 2026-01-31
- Files scanned: 12
- Files with issues: 9
- File-level report: docs/implplan/audits/csproj-standards/file-audit.csv
## Coding Standards Findings
- Status: FAIL
- Nullable: enable
- TreatWarningsAsErrors: explicit true
- Deterministic: inherited true
- 100-line rule violations: 9
- Namespace violations: 0
- Using directive violations: 1
- Naming violations (interfaces/fields/const/async): 7
- Service locator usage (BuildServiceProvider/GetService): 0
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Doctor/StellaOps.Doctor.WebService/Program.cs (177 lines)
- src/Doctor/StellaOps.Doctor.WebService/Contracts/DoctorModels.cs (494 lines)
- src/Doctor/StellaOps.Doctor.WebService/Endpoints/DoctorEndpoints.cs (228 lines)
- src/Doctor/StellaOps.Doctor.WebService/Endpoints/TimestampingEndpoints.cs (360 lines)
- src/Doctor/StellaOps.Doctor.WebService/Options/DoctorServiceOptions.cs (117 lines)
- src/Doctor/StellaOps.Doctor.WebService/Services/DoctorRunService.cs (269 lines)
- src/Doctor/StellaOps.Doctor.WebService/Services/InMemoryReportStorageService.cs (105 lines)
- src/Doctor/StellaOps.Doctor.WebService/Services/PostgresReportStorageService.cs (268 lines)
- src/Doctor/StellaOps.Doctor.WebService/Services/TimestampingDashboardProvider.cs (376 lines)
- Namespace issues:
- none
- Using directive issues:
- src/Doctor/StellaOps.Doctor.WebService/Services/PostgresReportStorageService.cs: using directives inside namespace
- Naming issues:
- src/Doctor/StellaOps.Doctor.WebService/Services/TimestampingDashboardProvider.cs: private field naming
- Async issues:
- src/Doctor/StellaOps.Doctor.WebService/Endpoints/DoctorEndpoints.cs: async method naming
- src/Doctor/StellaOps.Doctor.WebService/Endpoints/TimestampingEndpoints.cs: async method naming
- src/Doctor/StellaOps.Doctor.WebService/Services/DoctorRunService.cs: async method naming
- src/Doctor/StellaOps.Doctor.WebService/Services/PostgresReportStorageService.cs: async method naming
- src/Doctor/StellaOps.Doctor.WebService/Services/PostgresReportStorageService.cs: blocking async usage
- src/Doctor/StellaOps.Doctor.WebService/Services/TimestampingDashboardProvider.cs: async method naming
- Service locator matches:
- none
- Assembly.LoadFrom matches:
- none
### Fix Guidance
- Align interface/field/const naming to standards.
- Move and sort using directives (outside namespace).
- Rename async methods and avoid blocking async calls.
- Split files over 100 lines into smaller types or partials.
## File-Level Findings
- Status: FAIL
- Files scanned: 12
- Files with issues: 9
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Doctor/StellaOps.Doctor.WebService/Program.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Doctor/StellaOps.Doctor.WebService/Contracts/DoctorModels.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Doctor/StellaOps.Doctor.WebService/Endpoints/DoctorEndpoints.cs | AsyncNaming; FileLength>100 | Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/Doctor/StellaOps.Doctor.WebService/Endpoints/TimestampingEndpoints.cs | AsyncNaming; FileLength>100 | Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/Doctor/StellaOps.Doctor.WebService/Options/DoctorServiceOptions.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Doctor/StellaOps.Doctor.WebService/Services/DoctorRunService.cs | AsyncNaming; FileLength>100 | Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/Doctor/StellaOps.Doctor.WebService/Services/InMemoryReportStorageService.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Doctor/StellaOps.Doctor.WebService/Services/PostgresReportStorageService.cs | AsyncNaming; BlockingAsync; FileLength>100; UsingInsideNamespace | Move using directives outside namespace.; Rename async methods to end with Async.; Replace .Result/.Wait/GetAwaiter().GetResult() with await.; Split file to stay <= 100 lines. |
| src/Doctor/StellaOps.Doctor.WebService/Services/TimestampingDashboardProvider.cs | AsyncNaming; FileLength>100; PrivateFieldNaming | Rename async methods to end with Async.; Rename private fields to _camelCase.; Split file to stay <= 100 lines. |
## Testing Fullness Findings
- Status: FAIL
- Expected layers (heuristic): E2E, Integration, Offline, Security, Unit
- Detected test projects: src/Doctor/__Tests/StellaOps.Doctor.WebService.Tests/StellaOps.Doctor.WebService.Tests.csproj [Unit]
- Missing layers: E2E, Integration, Offline, Security
### Manual checks required
- Observability contract tests for WebService/Worker.
- Intent tags for regulatory modules (Policy, Authority, Signer, Attestor, EvidenceLocker).
- Offline execution (tests must run without network access).
- Coverage matrix alignment (docs/technical/testing/TEST_COVERAGE_MATRIX.md).
### Fix Guidance
- Add or expand test projects to cover missing layers.
- Ensure tests use deterministic fixtures and offline harnesses.

View File

@@ -0,0 +1,106 @@
# Audit - StellaOps.Doctor.Plugin.Agent
## Project
- Path: src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/StellaOps.Doctor.Plugin.Agent.csproj
- Module: Doctor
- Kind: Library
- Audit date (UTC): 2026-01-30
- Files scanned: 18
- Files with issues: 18
- File-level report: docs/implplan/audits/csproj-standards/file-audit.csv
## Coding Standards Findings
- Status: FAIL
- Nullable: enable
- TreatWarningsAsErrors: explicit true
- Deterministic: inherited true
- 100-line rule violations: 5
- Namespace violations: 18
- Using directive violations: 0
- Naming violations (interfaces/fields/const/async): 0
- Service locator usage (BuildServiceProvider/GetService): 0
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/Checks/AgentCapacityCheck.cs (101 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/Checks/AgentCertificateExpiryCheck.cs (199 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/Checks/AgentHeartbeatFreshnessCheck.cs (189 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/Checks/AgentVersionConsistencyCheck.cs (132 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/Checks/StaleAgentCheck.cs (151 lines)
- Namespace issues:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/AgentDoctorPlugin.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/Checks/AgentCapacityCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/Checks/AgentCertificateExpiryCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/Checks/AgentCertificateValidityCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/Checks/AgentClusterHealthCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/Checks/AgentClusterQuorumCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/Checks/AgentHeartbeatFreshnessCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/Checks/AgentResourceUtilizationCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/Checks/AgentVersionConsistencyCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/Checks/FailedTaskRateCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/Checks/StaleAgentCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/Checks/TaskQueueBacklogCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/obj/Debug/net10.0/StellaOps.Doctor.Plugin.Agent.AssemblyInfo.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/obj/Debug/net10.0/StellaOps.Doctor.Plugin.Agent.GlobalUsings.g.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/obj/Release/net10.0/StellaOps.Doctor.Plugin.Agent.AssemblyInfo.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/obj/Release/net10.0/StellaOps.Doctor.Plugin.Agent.GlobalUsings.g.cs: missing namespace
- Using directive issues:
- none
- Naming issues:
- none
- Async issues:
- none
- Service locator matches:
- none
- Assembly.LoadFrom matches:
- none
### Fix Guidance
- Normalize namespaces to file-scoped StellaOps.<Area>.
- Split files over 100 lines into smaller types or partials.
## File-Level Findings
- Status: FAIL
- Files scanned: 18
- Files with issues: 18
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/AgentDoctorPlugin.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/Checks/AgentCapacityCheck.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/Checks/AgentCertificateExpiryCheck.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/Checks/AgentCertificateValidityCheck.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/Checks/AgentClusterHealthCheck.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/Checks/AgentClusterQuorumCheck.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/Checks/AgentHeartbeatFreshnessCheck.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/Checks/AgentResourceUtilizationCheck.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/Checks/AgentVersionConsistencyCheck.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/Checks/FailedTaskRateCheck.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/Checks/StaleAgentCheck.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/Checks/TaskQueueBacklogCheck.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/obj/Debug/net10.0/StellaOps.Doctor.Plugin.Agent.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/obj/Debug/net10.0/StellaOps.Doctor.Plugin.Agent.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/obj/Release/net10.0/StellaOps.Doctor.Plugin.Agent.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/obj/Release/net10.0/StellaOps.Doctor.Plugin.Agent.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
## Testing Fullness Findings
- Status: FAIL
- Expected layers (heuristic): Unit
- Detected test projects: none
- Missing layers: Unit
### Manual checks required
- Observability contract tests for WebService/Worker.
- Intent tags for regulatory modules (Policy, Authority, Signer, Attestor, EvidenceLocker).
- Offline execution (tests must run without network access).
- Coverage matrix alignment (docs/technical/testing/TEST_COVERAGE_MATRIX.md).
### Fix Guidance
- Add or expand test projects to cover missing layers.
- Ensure tests use deterministic fixtures and offline harnesses.

View File

@@ -0,0 +1,116 @@
# Audit - StellaOps.Doctor.Plugin.Agent
## Project
- Path: src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/StellaOps.Doctor.Plugin.Agent.csproj
- Module: Doctor
- Kind: Plugin
- Audit date (UTC): 2026-01-31
- Files scanned: 12
- Files with issues: 12
- File-level report: docs/implplan/audits/csproj-standards/file-audit.csv
## Coding Standards Findings
- Status: FAIL
- Nullable: enable
- TreatWarningsAsErrors: explicit true
- Deterministic: inherited true
- 100-line rule violations: 5
- Namespace violations: 0
- Using directive violations: 0
- Naming violations (interfaces/fields/const/async): 20
- Service locator usage (BuildServiceProvider/GetService): 14
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/Checks/AgentCapacityCheck.cs (102 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/Checks/AgentCertificateExpiryCheck.cs (200 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/Checks/AgentHeartbeatFreshnessCheck.cs (190 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/Checks/AgentVersionConsistencyCheck.cs (133 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/Checks/StaleAgentCheck.cs (152 lines)
- Namespace issues:
- none
- Using directive issues:
- none
- Naming issues:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/AgentDoctorPlugin.cs: private field naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/Checks/AgentCertificateExpiryCheck.cs: private field naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/Checks/AgentHeartbeatFreshnessCheck.cs: private field naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/Checks/StaleAgentCheck.cs: private field naming
- Async issues:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/Checks/AgentCapacityCheck.cs: async method naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/Checks/AgentCapacityCheck.cs: missing ConfigureAwait(false)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/Checks/AgentCertificateExpiryCheck.cs: async method naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/Checks/AgentCertificateExpiryCheck.cs: missing ConfigureAwait(false)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/Checks/AgentCertificateValidityCheck.cs: async method naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/Checks/AgentClusterHealthCheck.cs: async method naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/Checks/AgentClusterQuorumCheck.cs: async method naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/Checks/AgentHeartbeatFreshnessCheck.cs: async method naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/Checks/AgentHeartbeatFreshnessCheck.cs: missing ConfigureAwait(false)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/Checks/AgentResourceUtilizationCheck.cs: async method naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/Checks/AgentVersionConsistencyCheck.cs: async method naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/Checks/AgentVersionConsistencyCheck.cs: missing ConfigureAwait(false)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/Checks/FailedTaskRateCheck.cs: async method naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/Checks/StaleAgentCheck.cs: async method naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/Checks/StaleAgentCheck.cs: missing ConfigureAwait(false)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/Checks/TaskQueueBacklogCheck.cs: async method naming
- Service locator matches:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/Checks/AgentCapacityCheck.cs:47 return context.Services.GetService<IAgentStore>() != null;
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/Checks/AgentCapacityCheck.cs:53 var agentStore = context.Services.GetRequiredService<IAgentStore>();
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/Checks/AgentCertificateExpiryCheck.cs:47 return context.Services.GetService<IAgentStore>() != null;
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/Checks/AgentCertificateExpiryCheck.cs:53 var agentStore = context.Services.GetRequiredService<IAgentStore>();
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/Checks/AgentCertificateExpiryCheck.cs:54 var timeProvider = context.Services.GetRequiredService<TimeProvider>();
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/Checks/AgentCertificateValidityCheck.cs:41 return context.Services.GetService<IAgentStore>() != null;
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/Checks/AgentHeartbeatFreshnessCheck.cs:47 return context.Services.GetService<IAgentStore>() != null;
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/Checks/AgentHeartbeatFreshnessCheck.cs:53 var agentStore = context.Services.GetRequiredService<IAgentStore>();
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/Checks/AgentHeartbeatFreshnessCheck.cs:54 var timeProvider = context.Services.GetRequiredService<TimeProvider>();
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/Checks/AgentVersionConsistencyCheck.cs:45 return context.Services.GetService<IAgentStore>() != null;
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/Checks/AgentVersionConsistencyCheck.cs:51 var agentStore = context.Services.GetRequiredService<IAgentStore>();
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/Checks/StaleAgentCheck.cs:48 return context.Services.GetService<IAgentStore>() != null;
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/Checks/StaleAgentCheck.cs:54 var agentStore = context.Services.GetRequiredService<IAgentStore>();
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/Checks/StaleAgentCheck.cs:55 var timeProvider = context.Services.GetRequiredService<TimeProvider>();
- Assembly.LoadFrom matches:
- none
### Fix Guidance
- Align interface/field/const naming to standards.
- Rename async methods and avoid blocking async calls.
- Replace service locator usage with constructor injection.
- Split files over 100 lines into smaller types or partials.
## File-Level Findings
- Status: FAIL
- Files scanned: 12
- Files with issues: 12
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/AgentDoctorPlugin.cs | PrivateFieldNaming | Rename private fields to _camelCase. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/Checks/AgentCapacityCheck.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; ServiceLocator | Add ConfigureAwait(false) to awaited calls in library-like code.; Remove service locator usage; use constructor injection.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/Checks/AgentCertificateExpiryCheck.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; PrivateFieldNaming; ServiceLocator | Add ConfigureAwait(false) to awaited calls in library-like code.; Remove service locator usage; use constructor injection.; Rename async methods to end with Async.; Rename private fields to _camelCase.; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/Checks/AgentCertificateValidityCheck.cs | AsyncNaming; ServiceLocator | Remove service locator usage; use constructor injection.; Rename async methods to end with Async. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/Checks/AgentClusterHealthCheck.cs | AsyncNaming | Rename async methods to end with Async. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/Checks/AgentClusterQuorumCheck.cs | AsyncNaming | Rename async methods to end with Async. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/Checks/AgentHeartbeatFreshnessCheck.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; PrivateFieldNaming; ServiceLocator | Add ConfigureAwait(false) to awaited calls in library-like code.; Remove service locator usage; use constructor injection.; Rename async methods to end with Async.; Rename private fields to _camelCase.; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/Checks/AgentResourceUtilizationCheck.cs | AsyncNaming | Rename async methods to end with Async. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/Checks/AgentVersionConsistencyCheck.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; ServiceLocator | Add ConfigureAwait(false) to awaited calls in library-like code.; Remove service locator usage; use constructor injection.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/Checks/FailedTaskRateCheck.cs | AsyncNaming | Rename async methods to end with Async. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/Checks/StaleAgentCheck.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; PrivateFieldNaming; ServiceLocator | Add ConfigureAwait(false) to awaited calls in library-like code.; Remove service locator usage; use constructor injection.; Rename async methods to end with Async.; Rename private fields to _camelCase.; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Agent/Checks/TaskQueueBacklogCheck.cs | AsyncNaming | Rename async methods to end with Async. |
## Testing Fullness Findings
- Status: FAIL
- Expected layers (heuristic): Unit
- Detected test projects: none
- Missing layers: Unit
### Manual checks required
- Observability contract tests for WebService/Worker.
- Intent tags for regulatory modules (Policy, Authority, Signer, Attestor, EvidenceLocker).
- Offline execution (tests must run without network access).
- Coverage matrix alignment (docs/technical/testing/TEST_COVERAGE_MATRIX.md).
### Fix Guidance
- Add or expand test projects to cover missing layers.
- Ensure tests use deterministic fixtures and offline harnesses.

View File

@@ -0,0 +1,97 @@
# Audit - StellaOps.Doctor.Plugin.Attestor
## Project
- Path: src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Attestor/StellaOps.Doctor.Plugin.Attestor.csproj
- Module: Doctor
- Kind: Library
- Audit date (UTC): 2026-01-30
- Files scanned: 13
- Files with issues: 13
- File-level report: docs/implplan/audits/csproj-standards/file-audit.csv
## Coding Standards Findings
- Status: FAIL
- Nullable: enable
- TreatWarningsAsErrors: explicit true
- Deterministic: inherited true
- 100-line rule violations: 6
- Namespace violations: 13
- Using directive violations: 0
- Naming violations (interfaces/fields/const/async): 0
- Service locator usage (BuildServiceProvider/GetService): 0
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Attestor/Checks/CosignKeyMaterialCheck.cs (243 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Attestor/Checks/RekorClockSkewCheck.cs (620 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Attestor/Checks/RekorConnectivityCheck.cs (166 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Attestor/Checks/RekorVerificationJobCheck.cs (232 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Attestor/Checks/SigningKeyExpirationCheck.cs (227 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Attestor/Checks/TransparencyLogConsistencyCheck.cs (249 lines)
- Namespace issues:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Attestor/AttestorDoctorPlugin.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Attestor/Checks/CosignKeyMaterialCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Attestor/Checks/RekorClockSkewCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Attestor/Checks/RekorConnectivityCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Attestor/Checks/RekorVerificationJobCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Attestor/Checks/SigningKeyExpirationCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Attestor/Checks/TransparencyLogConsistencyCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Attestor/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Attestor/obj/Debug/net10.0/StellaOps.Doctor.Plugin.Attestor.AssemblyInfo.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Attestor/obj/Debug/net10.0/StellaOps.Doctor.Plugin.Attestor.GlobalUsings.g.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Attestor/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Attestor/obj/Release/net10.0/StellaOps.Doctor.Plugin.Attestor.AssemblyInfo.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Attestor/obj/Release/net10.0/StellaOps.Doctor.Plugin.Attestor.GlobalUsings.g.cs: missing namespace
- Using directive issues:
- none
- Naming issues:
- none
- Async issues:
- none
- Service locator matches:
- none
- Assembly.LoadFrom matches:
- none
### Fix Guidance
- Normalize namespaces to file-scoped StellaOps.<Area>.
- Split files over 100 lines into smaller types or partials.
## File-Level Findings
- Status: FAIL
- Files scanned: 13
- Files with issues: 13
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Attestor/AttestorDoctorPlugin.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Attestor/Checks/CosignKeyMaterialCheck.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Attestor/Checks/RekorClockSkewCheck.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Attestor/Checks/RekorConnectivityCheck.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Attestor/Checks/RekorVerificationJobCheck.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Attestor/Checks/SigningKeyExpirationCheck.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Attestor/Checks/TransparencyLogConsistencyCheck.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Attestor/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Attestor/obj/Debug/net10.0/StellaOps.Doctor.Plugin.Attestor.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Attestor/obj/Debug/net10.0/StellaOps.Doctor.Plugin.Attestor.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Attestor/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Attestor/obj/Release/net10.0/StellaOps.Doctor.Plugin.Attestor.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Attestor/obj/Release/net10.0/StellaOps.Doctor.Plugin.Attestor.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
## Testing Fullness Findings
- Status: FAIL
- Expected layers (heuristic): Unit
- Detected test projects: none
- Missing layers: Unit
### Manual checks required
- Observability contract tests for WebService/Worker.
- Intent tags for regulatory modules (Policy, Authority, Signer, Attestor, EvidenceLocker).
- Offline execution (tests must run without network access).
- Coverage matrix alignment (docs/technical/testing/TEST_COVERAGE_MATRIX.md).
### Fix Guidance
- Add or expand test projects to cover missing layers.
- Ensure tests use deterministic fixtures and offline harnesses.

View File

@@ -0,0 +1,98 @@
# Audit - StellaOps.Doctor.Plugin.Attestor
## Project
- Path: src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Attestor/StellaOps.Doctor.Plugin.Attestor.csproj
- Module: Doctor
- Kind: Plugin
- Audit date (UTC): 2026-01-31
- Files scanned: 7
- Files with issues: 7
- File-level report: docs/implplan/audits/csproj-standards/file-audit.csv
## Coding Standards Findings
- Status: FAIL
- Nullable: enable
- TreatWarningsAsErrors: explicit true
- Deterministic: inherited true
- 100-line rule violations: 6
- Namespace violations: 0
- Using directive violations: 3
- Naming violations (interfaces/fields/const/async): 13
- Service locator usage (BuildServiceProvider/GetService): 4
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Attestor/Checks/CosignKeyMaterialCheck.cs (244 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Attestor/Checks/RekorClockSkewCheck.cs (621 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Attestor/Checks/RekorConnectivityCheck.cs (167 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Attestor/Checks/RekorVerificationJobCheck.cs (233 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Attestor/Checks/SigningKeyExpirationCheck.cs (228 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Attestor/Checks/TransparencyLogConsistencyCheck.cs (250 lines)
- Namespace issues:
- none
- Using directive issues:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Attestor/Checks/RekorClockSkewCheck.cs: using directives inside namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Attestor/Checks/RekorConnectivityCheck.cs: using directives inside namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Attestor/Checks/TransparencyLogConsistencyCheck.cs: using directives inside namespace
- Naming issues:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Attestor/AttestorDoctorPlugin.cs: private field naming
- Async issues:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Attestor/Checks/CosignKeyMaterialCheck.cs: async method naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Attestor/Checks/CosignKeyMaterialCheck.cs: missing ConfigureAwait(false)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Attestor/Checks/RekorClockSkewCheck.cs: async method naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Attestor/Checks/RekorClockSkewCheck.cs: missing ConfigureAwait(false)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Attestor/Checks/RekorConnectivityCheck.cs: async method naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Attestor/Checks/RekorConnectivityCheck.cs: missing ConfigureAwait(false)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Attestor/Checks/RekorVerificationJobCheck.cs: async method naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Attestor/Checks/RekorVerificationJobCheck.cs: missing ConfigureAwait(false)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Attestor/Checks/SigningKeyExpirationCheck.cs: async method naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Attestor/Checks/SigningKeyExpirationCheck.cs: missing ConfigureAwait(false)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Attestor/Checks/TransparencyLogConsistencyCheck.cs: async method naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Attestor/Checks/TransparencyLogConsistencyCheck.cs: missing ConfigureAwait(false)
- Service locator matches:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Attestor/Checks/RekorClockSkewCheck.cs:63 var httpClientFactory = context.Services.GetRequiredService<IHttpClientFactory>();
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Attestor/Checks/RekorConnectivityCheck.cs:58 var httpClientFactory = context.Services.GetRequiredService<IHttpClientFactory>();
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Attestor/Checks/RekorVerificationJobCheck.cs:55 var statusProvider = context.Services.GetService<IRekorVerificationStatusProvider>();
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Attestor/Checks/TransparencyLogConsistencyCheck.cs:128 var httpClientFactory = context.Services.GetRequiredService<IHttpClientFactory>();
- Assembly.LoadFrom matches:
- none
### Fix Guidance
- Align interface/field/const naming to standards.
- Move and sort using directives (outside namespace).
- Rename async methods and avoid blocking async calls.
- Replace service locator usage with constructor injection.
- Split files over 100 lines into smaller types or partials.
## File-Level Findings
- Status: FAIL
- Files scanned: 7
- Files with issues: 7
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Attestor/AttestorDoctorPlugin.cs | PrivateFieldNaming | Rename private fields to _camelCase. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Attestor/Checks/CosignKeyMaterialCheck.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100 | Add ConfigureAwait(false) to awaited calls in library-like code.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Attestor/Checks/RekorClockSkewCheck.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; ServiceLocator; UsingInsideNamespace | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Remove service locator usage; use constructor injection.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Attestor/Checks/RekorConnectivityCheck.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; ServiceLocator; UsingInsideNamespace | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Remove service locator usage; use constructor injection.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Attestor/Checks/RekorVerificationJobCheck.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; ServiceLocator | Add ConfigureAwait(false) to awaited calls in library-like code.; Remove service locator usage; use constructor injection.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Attestor/Checks/SigningKeyExpirationCheck.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100 | Add ConfigureAwait(false) to awaited calls in library-like code.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Attestor/Checks/TransparencyLogConsistencyCheck.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; ServiceLocator; UsingInsideNamespace | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Remove service locator usage; use constructor injection.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
## Testing Fullness Findings
- Status: FAIL
- Expected layers (heuristic): Unit
- Detected test projects: none
- Missing layers: Unit
### Manual checks required
- Observability contract tests for WebService/Worker.
- Intent tags for regulatory modules (Policy, Authority, Signer, Attestor, EvidenceLocker).
- Offline execution (tests must run without network access).
- Coverage matrix alignment (docs/technical/testing/TEST_COVERAGE_MATRIX.md).
### Fix Guidance
- Add or expand test projects to cover missing layers.
- Ensure tests use deterministic fixtures and offline harnesses.

View File

@@ -0,0 +1,91 @@
# Audit - StellaOps.Doctor.Plugin.Auth
## Project
- Path: src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Auth/StellaOps.Doctor.Plugin.Auth.csproj
- Module: Doctor
- Kind: Library
- Audit date (UTC): 2026-01-30
- Files scanned: 11
- Files with issues: 11
- File-level report: docs/implplan/audits/csproj-standards/file-audit.csv
## Coding Standards Findings
- Status: FAIL
- Nullable: enable
- TreatWarningsAsErrors: explicit true
- Deterministic: inherited true
- 100-line rule violations: 4
- Namespace violations: 11
- Using directive violations: 0
- Naming violations (interfaces/fields/const/async): 0
- Service locator usage (BuildServiceProvider/GetService): 0
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Auth/Checks/AuthConfigurationCheck.cs (167 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Auth/Checks/OidcProviderConnectivityCheck.cs (324 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Auth/Checks/SigningKeyHealthCheck.cs (139 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Auth/Checks/TokenServiceHealthCheck.cs (162 lines)
- Namespace issues:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Auth/AuthDoctorPlugin.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Auth/Checks/AuthConfigurationCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Auth/Checks/OidcProviderConnectivityCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Auth/Checks/SigningKeyHealthCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Auth/Checks/TokenServiceHealthCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Auth/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Auth/obj/Debug/net10.0/StellaOps.Doctor.Plugin.Auth.AssemblyInfo.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Auth/obj/Debug/net10.0/StellaOps.Doctor.Plugin.Auth.GlobalUsings.g.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Auth/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Auth/obj/Release/net10.0/StellaOps.Doctor.Plugin.Auth.AssemblyInfo.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Auth/obj/Release/net10.0/StellaOps.Doctor.Plugin.Auth.GlobalUsings.g.cs: missing namespace
- Using directive issues:
- none
- Naming issues:
- none
- Async issues:
- none
- Service locator matches:
- none
- Assembly.LoadFrom matches:
- none
### Fix Guidance
- Normalize namespaces to file-scoped StellaOps.<Area>.
- Split files over 100 lines into smaller types or partials.
## File-Level Findings
- Status: FAIL
- Files scanned: 11
- Files with issues: 11
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Auth/AuthDoctorPlugin.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Auth/Checks/AuthConfigurationCheck.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Auth/Checks/OidcProviderConnectivityCheck.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Auth/Checks/SigningKeyHealthCheck.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Auth/Checks/TokenServiceHealthCheck.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Auth/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Auth/obj/Debug/net10.0/StellaOps.Doctor.Plugin.Auth.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Auth/obj/Debug/net10.0/StellaOps.Doctor.Plugin.Auth.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Auth/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Auth/obj/Release/net10.0/StellaOps.Doctor.Plugin.Auth.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Auth/obj/Release/net10.0/StellaOps.Doctor.Plugin.Auth.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
## Testing Fullness Findings
- Status: FAIL
- Expected layers (heuristic): Unit
- Detected test projects: none
- Missing layers: Unit
### Manual checks required
- Observability contract tests for WebService/Worker.
- Intent tags for regulatory modules (Policy, Authority, Signer, Attestor, EvidenceLocker).
- Offline execution (tests must run without network access).
- Coverage matrix alignment (docs/technical/testing/TEST_COVERAGE_MATRIX.md).
### Fix Guidance
- Add or expand test projects to cover missing layers.
- Ensure tests use deterministic fixtures and offline harnesses.

View File

@@ -0,0 +1,86 @@
# Audit - StellaOps.Doctor.Plugin.Auth
## Project
- Path: src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Auth/StellaOps.Doctor.Plugin.Auth.csproj
- Module: Doctor
- Kind: Plugin
- Audit date (UTC): 2026-01-31
- Files scanned: 5
- Files with issues: 5
- File-level report: docs/implplan/audits/csproj-standards/file-audit.csv
## Coding Standards Findings
- Status: FAIL
- Nullable: enable
- TreatWarningsAsErrors: explicit true
- Deterministic: inherited true
- 100-line rule violations: 4
- Namespace violations: 0
- Using directive violations: 1
- Naming violations (interfaces/fields/const/async): 10
- Service locator usage (BuildServiceProvider/GetService): 1
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Auth/Checks/AuthConfigurationCheck.cs (168 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Auth/Checks/OidcProviderConnectivityCheck.cs (325 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Auth/Checks/SigningKeyHealthCheck.cs (140 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Auth/Checks/TokenServiceHealthCheck.cs (163 lines)
- Namespace issues:
- none
- Using directive issues:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Auth/Checks/OidcProviderConnectivityCheck.cs: using directives inside namespace
- Naming issues:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Auth/AuthDoctorPlugin.cs: private field naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Auth/Checks/OidcProviderConnectivityCheck.cs: private field naming
- Async issues:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Auth/Checks/AuthConfigurationCheck.cs: async method naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Auth/Checks/AuthConfigurationCheck.cs: missing ConfigureAwait(false)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Auth/Checks/OidcProviderConnectivityCheck.cs: async method naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Auth/Checks/OidcProviderConnectivityCheck.cs: missing ConfigureAwait(false)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Auth/Checks/SigningKeyHealthCheck.cs: async method naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Auth/Checks/SigningKeyHealthCheck.cs: missing ConfigureAwait(false)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Auth/Checks/TokenServiceHealthCheck.cs: async method naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Auth/Checks/TokenServiceHealthCheck.cs: missing ConfigureAwait(false)
- Service locator matches:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Auth/Checks/OidcProviderConnectivityCheck.cs:189 var httpClientFactory = context.Services.GetRequiredService<IHttpClientFactory>();
- Assembly.LoadFrom matches:
- none
### Fix Guidance
- Align interface/field/const naming to standards.
- Move and sort using directives (outside namespace).
- Rename async methods and avoid blocking async calls.
- Replace service locator usage with constructor injection.
- Split files over 100 lines into smaller types or partials.
## File-Level Findings
- Status: FAIL
- Files scanned: 5
- Files with issues: 5
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Auth/AuthDoctorPlugin.cs | PrivateFieldNaming | Rename private fields to _camelCase. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Auth/Checks/AuthConfigurationCheck.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100 | Add ConfigureAwait(false) to awaited calls in library-like code.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Auth/Checks/OidcProviderConnectivityCheck.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; PrivateFieldNaming; ServiceLocator; UsingInsideNamespace | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Remove service locator usage; use constructor injection.; Rename async methods to end with Async.; Rename private fields to _camelCase.; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Auth/Checks/SigningKeyHealthCheck.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100 | Add ConfigureAwait(false) to awaited calls in library-like code.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Auth/Checks/TokenServiceHealthCheck.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100 | Add ConfigureAwait(false) to awaited calls in library-like code.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
## Testing Fullness Findings
- Status: FAIL
- Expected layers (heuristic): Unit
- Detected test projects: none
- Missing layers: Unit
### Manual checks required
- Observability contract tests for WebService/Worker.
- Intent tags for regulatory modules (Policy, Authority, Signer, Attestor, EvidenceLocker).
- Offline execution (tests must run without network access).
- Coverage matrix alignment (docs/technical/testing/TEST_COVERAGE_MATRIX.md).
### Fix Guidance
- Add or expand test projects to cover missing layers.
- Ensure tests use deterministic fixtures and offline harnesses.

View File

@@ -0,0 +1,98 @@
# Audit - StellaOps.Doctor.Plugin.BinaryAnalysis
## Project
- Path: src/Doctor/__Plugins/StellaOps.Doctor.Plugin.BinaryAnalysis/StellaOps.Doctor.Plugin.BinaryAnalysis.csproj
- Module: Doctor
- Kind: Library
- Audit date (UTC): 2026-01-30
- Files scanned: 14
- Files with issues: 14
- File-level report: docs/implplan/audits/csproj-standards/file-audit.csv
## Coding Standards Findings
- Status: FAIL
- Nullable: enable
- TreatWarningsAsErrors: explicit true
- Deterministic: inherited true
- 100-line rule violations: 6
- Namespace violations: 14
- Using directive violations: 0
- Naming violations (interfaces/fields/const/async): 0
- Service locator usage (BuildServiceProvider/GetService): 0
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.BinaryAnalysis/Checks/BuildinfoCacheCheck.cs (322 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.BinaryAnalysis/Checks/CorpusMirrorFreshnessCheck.cs (325 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.BinaryAnalysis/Checks/DdebRepoEnabledCheck.cs (385 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.BinaryAnalysis/Checks/DebuginfodAvailabilityCheck.cs (351 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.BinaryAnalysis/Checks/KpiBaselineExistsCheck.cs (378 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.BinaryAnalysis/Checks/SymbolRecoveryFallbackCheck.cs (193 lines)
- Namespace issues:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.BinaryAnalysis/BinaryAnalysisDoctorPlugin.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.BinaryAnalysis/Checks/BuildinfoCacheCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.BinaryAnalysis/Checks/CorpusMirrorFreshnessCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.BinaryAnalysis/Checks/DdebRepoEnabledCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.BinaryAnalysis/Checks/DebuginfodAvailabilityCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.BinaryAnalysis/Checks/KpiBaselineExistsCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.BinaryAnalysis/Checks/SymbolRecoveryFallbackCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.BinaryAnalysis/DependencyInjection/BinaryAnalysisPluginServiceCollectionExtensions.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.BinaryAnalysis/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.BinaryAnalysis/obj/Debug/net10.0/StellaOps.Doctor.Plugin.BinaryAnalysis.AssemblyInfo.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.BinaryAnalysis/obj/Debug/net10.0/StellaOps.Doctor.Plugin.BinaryAnalysis.GlobalUsings.g.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.BinaryAnalysis/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.BinaryAnalysis/obj/Release/net10.0/StellaOps.Doctor.Plugin.BinaryAnalysis.AssemblyInfo.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.BinaryAnalysis/obj/Release/net10.0/StellaOps.Doctor.Plugin.BinaryAnalysis.GlobalUsings.g.cs: missing namespace
- Using directive issues:
- none
- Naming issues:
- none
- Async issues:
- none
- Service locator matches:
- none
- Assembly.LoadFrom matches:
- none
### Fix Guidance
- Normalize namespaces to file-scoped StellaOps.<Area>.
- Split files over 100 lines into smaller types or partials.
## File-Level Findings
- Status: FAIL
- Files scanned: 14
- Files with issues: 14
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.BinaryAnalysis/BinaryAnalysisDoctorPlugin.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.BinaryAnalysis/Checks/BuildinfoCacheCheck.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.BinaryAnalysis/Checks/CorpusMirrorFreshnessCheck.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.BinaryAnalysis/Checks/DdebRepoEnabledCheck.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.BinaryAnalysis/Checks/DebuginfodAvailabilityCheck.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.BinaryAnalysis/Checks/KpiBaselineExistsCheck.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.BinaryAnalysis/Checks/SymbolRecoveryFallbackCheck.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.BinaryAnalysis/DependencyInjection/BinaryAnalysisPluginServiceCollectionExtensions.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.BinaryAnalysis/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.BinaryAnalysis/obj/Debug/net10.0/StellaOps.Doctor.Plugin.BinaryAnalysis.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.BinaryAnalysis/obj/Debug/net10.0/StellaOps.Doctor.Plugin.BinaryAnalysis.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.BinaryAnalysis/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.BinaryAnalysis/obj/Release/net10.0/StellaOps.Doctor.Plugin.BinaryAnalysis.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.BinaryAnalysis/obj/Release/net10.0/StellaOps.Doctor.Plugin.BinaryAnalysis.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
## Testing Fullness Findings
- Status: PASS
- Expected layers (heuristic): Unit
- Detected test projects: src/Doctor/__Tests/StellaOps.Doctor.Plugin.BinaryAnalysis.Tests/StellaOps.Doctor.Plugin.BinaryAnalysis.Tests.csproj [Unit]
- Missing layers: none
### Manual checks required
- Observability contract tests for WebService/Worker.
- Intent tags for regulatory modules (Policy, Authority, Signer, Attestor, EvidenceLocker).
- Offline execution (tests must run without network access).
- Coverage matrix alignment (docs/technical/testing/TEST_COVERAGE_MATRIX.md).
### Fix Guidance
- None.

View File

@@ -0,0 +1,98 @@
# Audit - StellaOps.Doctor.Plugin.BinaryAnalysis
## Project
- Path: src/Doctor/__Plugins/StellaOps.Doctor.Plugin.BinaryAnalysis/StellaOps.Doctor.Plugin.BinaryAnalysis.csproj
- Module: Doctor
- Kind: Plugin
- Audit date (UTC): 2026-01-31
- Files scanned: 8
- Files with issues: 7
- File-level report: docs/implplan/audits/csproj-standards/file-audit.csv
## Coding Standards Findings
- Status: FAIL
- Nullable: enable
- TreatWarningsAsErrors: explicit true
- Deterministic: inherited true
- 100-line rule violations: 6
- Namespace violations: 0
- Using directive violations: 4
- Naming violations (interfaces/fields/const/async): 14
- Service locator usage (BuildServiceProvider/GetService): 3
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.BinaryAnalysis/Checks/BuildinfoCacheCheck.cs (323 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.BinaryAnalysis/Checks/CorpusMirrorFreshnessCheck.cs (325 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.BinaryAnalysis/Checks/DdebRepoEnabledCheck.cs (386 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.BinaryAnalysis/Checks/DebuginfodAvailabilityCheck.cs (352 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.BinaryAnalysis/Checks/KpiBaselineExistsCheck.cs (379 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.BinaryAnalysis/Checks/SymbolRecoveryFallbackCheck.cs (193 lines)
- Namespace issues:
- none
- Using directive issues:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.BinaryAnalysis/Checks/BuildinfoCacheCheck.cs: using directives inside namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.BinaryAnalysis/Checks/DdebRepoEnabledCheck.cs: using directives inside namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.BinaryAnalysis/Checks/DebuginfodAvailabilityCheck.cs: using directives inside namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.BinaryAnalysis/Checks/KpiBaselineExistsCheck.cs: using directives inside namespace
- Naming issues:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.BinaryAnalysis/BinaryAnalysisDoctorPlugin.cs: private field naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.BinaryAnalysis/Checks/CorpusMirrorFreshnessCheck.cs: private field naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.BinaryAnalysis/Checks/DdebRepoEnabledCheck.cs: private field naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.BinaryAnalysis/Checks/KpiBaselineExistsCheck.cs: private field naming
- Async issues:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.BinaryAnalysis/Checks/BuildinfoCacheCheck.cs: async method naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.BinaryAnalysis/Checks/BuildinfoCacheCheck.cs: missing ConfigureAwait(false)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.BinaryAnalysis/Checks/DdebRepoEnabledCheck.cs: async method naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.BinaryAnalysis/Checks/DdebRepoEnabledCheck.cs: missing ConfigureAwait(false)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.BinaryAnalysis/Checks/DebuginfodAvailabilityCheck.cs: async method naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.BinaryAnalysis/Checks/DebuginfodAvailabilityCheck.cs: missing ConfigureAwait(false)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.BinaryAnalysis/Checks/KpiBaselineExistsCheck.cs: async method naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.BinaryAnalysis/Checks/KpiBaselineExistsCheck.cs: missing ConfigureAwait(false)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.BinaryAnalysis/Checks/SymbolRecoveryFallbackCheck.cs: async method naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.BinaryAnalysis/Checks/SymbolRecoveryFallbackCheck.cs: missing ConfigureAwait(false)
- Service locator matches:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.BinaryAnalysis/Checks/BuildinfoCacheCheck.cs:64 var httpClientFactory = context.Services.GetService<IHttpClientFactory>();
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.BinaryAnalysis/Checks/DdebRepoEnabledCheck.cs:80 var httpClientFactory = context.Services.GetService<IHttpClientFactory>();
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.BinaryAnalysis/Checks/DebuginfodAvailabilityCheck.cs:75 var httpClientFactory = context.Services.GetService<IHttpClientFactory>();
- Assembly.LoadFrom matches:
- none
### Fix Guidance
- Align interface/field/const naming to standards.
- Move and sort using directives (outside namespace).
- Rename async methods and avoid blocking async calls.
- Replace service locator usage with constructor injection.
- Split files over 100 lines into smaller types or partials.
## File-Level Findings
- Status: FAIL
- Files scanned: 8
- Files with issues: 7
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.BinaryAnalysis/BinaryAnalysisDoctorPlugin.cs | PrivateFieldNaming | Rename private fields to _camelCase. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.BinaryAnalysis/Checks/BuildinfoCacheCheck.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; ServiceLocator; UsingInsideNamespace | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Remove service locator usage; use constructor injection.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.BinaryAnalysis/Checks/CorpusMirrorFreshnessCheck.cs | FileLength>100; PrivateFieldNaming | Rename private fields to _camelCase.; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.BinaryAnalysis/Checks/DdebRepoEnabledCheck.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; PrivateFieldNaming; ServiceLocator; UsingInsideNamespace | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Remove service locator usage; use constructor injection.; Rename async methods to end with Async.; Rename private fields to _camelCase.; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.BinaryAnalysis/Checks/DebuginfodAvailabilityCheck.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; ServiceLocator; UsingInsideNamespace | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Remove service locator usage; use constructor injection.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.BinaryAnalysis/Checks/KpiBaselineExistsCheck.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; PrivateFieldNaming; UsingInsideNamespace | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Rename async methods to end with Async.; Rename private fields to _camelCase.; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.BinaryAnalysis/Checks/SymbolRecoveryFallbackCheck.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100 | Add ConfigureAwait(false) to awaited calls in library-like code.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
## Testing Fullness Findings
- Status: PASS
- Expected layers (heuristic): Unit
- Detected test projects: src/Doctor/__Tests/StellaOps.Doctor.Plugin.BinaryAnalysis.Tests/StellaOps.Doctor.Plugin.BinaryAnalysis.Tests.csproj [Unit]
- Missing layers: none
### Manual checks required
- Observability contract tests for WebService/Worker.
- Intent tags for regulatory modules (Policy, Authority, Signer, Attestor, EvidenceLocker).
- Offline execution (tests must run without network access).
- Coverage matrix alignment (docs/technical/testing/TEST_COVERAGE_MATRIX.md).
### Fix Guidance
- None.

View File

@@ -0,0 +1,102 @@
# Audit - StellaOps.Doctor.Plugin.Compliance
## Project
- Path: src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Compliance/StellaOps.Doctor.Plugin.Compliance.csproj
- Module: Doctor
- Kind: Library
- Audit date (UTC): 2026-01-30
- Files scanned: 15
- Files with issues: 15
- File-level report: docs/implplan/audits/csproj-standards/file-audit.csv
## Coding Standards Findings
- Status: FAIL
- Nullable: enable
- TreatWarningsAsErrors: explicit true
- Deterministic: inherited true
- 100-line rule violations: 7
- Namespace violations: 15
- Using directive violations: 0
- Naming violations (interfaces/fields/const/async): 0
- Service locator usage (BuildServiceProvider/GetService): 0
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Compliance/Checks/AttestationSigningHealthCheck.cs (217 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Compliance/Checks/AuditReadinessCheck.cs (197 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Compliance/Checks/ComplianceFrameworkCheck.cs (192 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Compliance/Checks/EvidenceExportReadinessCheck.cs (199 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Compliance/Checks/EvidenceGenerationRateCheck.cs (190 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Compliance/Checks/EvidenceTamperCheck.cs (191 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Compliance/Checks/ProvenanceCompletenessCheck.cs (186 lines)
- Namespace issues:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Compliance/CompliancePlugin.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Compliance/Checks/AttestationSigningHealthCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Compliance/Checks/AuditReadinessCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Compliance/Checks/ComplianceFrameworkCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Compliance/Checks/EvidenceExportReadinessCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Compliance/Checks/EvidenceGenerationRateCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Compliance/Checks/EvidenceTamperCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Compliance/Checks/ProvenanceCompletenessCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Compliance/DependencyInjection/ServiceCollectionExtensions.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Compliance/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Compliance/obj/Debug/net10.0/StellaOps.Doctor.Plugin.Compliance.AssemblyInfo.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Compliance/obj/Debug/net10.0/StellaOps.Doctor.Plugin.Compliance.GlobalUsings.g.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Compliance/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Compliance/obj/Release/net10.0/StellaOps.Doctor.Plugin.Compliance.AssemblyInfo.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Compliance/obj/Release/net10.0/StellaOps.Doctor.Plugin.Compliance.GlobalUsings.g.cs: missing namespace
- Using directive issues:
- none
- Naming issues:
- none
- Async issues:
- none
- Service locator matches:
- none
- Assembly.LoadFrom matches:
- none
### Fix Guidance
- Normalize namespaces to file-scoped StellaOps.<Area>.
- Split files over 100 lines into smaller types or partials.
## File-Level Findings
- Status: FAIL
- Files scanned: 15
- Files with issues: 15
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Compliance/CompliancePlugin.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Compliance/Checks/AttestationSigningHealthCheck.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Compliance/Checks/AuditReadinessCheck.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Compliance/Checks/ComplianceFrameworkCheck.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Compliance/Checks/EvidenceExportReadinessCheck.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Compliance/Checks/EvidenceGenerationRateCheck.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Compliance/Checks/EvidenceTamperCheck.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Compliance/Checks/ProvenanceCompletenessCheck.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Compliance/DependencyInjection/ServiceCollectionExtensions.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Compliance/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Compliance/obj/Debug/net10.0/StellaOps.Doctor.Plugin.Compliance.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Compliance/obj/Debug/net10.0/StellaOps.Doctor.Plugin.Compliance.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Compliance/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Compliance/obj/Release/net10.0/StellaOps.Doctor.Plugin.Compliance.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Compliance/obj/Release/net10.0/StellaOps.Doctor.Plugin.Compliance.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
## Testing Fullness Findings
- Status: FAIL
- Expected layers (heuristic): Unit
- Detected test projects: none
- Missing layers: Unit
### Manual checks required
- Observability contract tests for WebService/Worker.
- Intent tags for regulatory modules (Policy, Authority, Signer, Attestor, EvidenceLocker).
- Offline execution (tests must run without network access).
- Coverage matrix alignment (docs/technical/testing/TEST_COVERAGE_MATRIX.md).
### Fix Guidance
- Add or expand test projects to cover missing layers.
- Ensure tests use deterministic fixtures and offline harnesses.

View File

@@ -0,0 +1,109 @@
# Audit - StellaOps.Doctor.Plugin.Compliance
## Project
- Path: src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Compliance/StellaOps.Doctor.Plugin.Compliance.csproj
- Module: Doctor
- Kind: Plugin
- Audit date (UTC): 2026-01-31
- Files scanned: 9
- Files with issues: 8
- File-level report: docs/implplan/audits/csproj-standards/file-audit.csv
## Coding Standards Findings
- Status: FAIL
- Nullable: enable
- TreatWarningsAsErrors: explicit true
- Deterministic: inherited true
- 100-line rule violations: 7
- Namespace violations: 0
- Using directive violations: 7
- Naming violations (interfaces/fields/const/async): 15
- Service locator usage (BuildServiceProvider/GetService): 7
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Compliance/Checks/AttestationSigningHealthCheck.cs (218 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Compliance/Checks/AuditReadinessCheck.cs (198 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Compliance/Checks/ComplianceFrameworkCheck.cs (193 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Compliance/Checks/EvidenceExportReadinessCheck.cs (200 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Compliance/Checks/EvidenceGenerationRateCheck.cs (191 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Compliance/Checks/EvidenceTamperCheck.cs (192 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Compliance/Checks/ProvenanceCompletenessCheck.cs (187 lines)
- Namespace issues:
- none
- Using directive issues:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Compliance/Checks/AttestationSigningHealthCheck.cs: using directives inside namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Compliance/Checks/AuditReadinessCheck.cs: using directives inside namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Compliance/Checks/ComplianceFrameworkCheck.cs: using directives inside namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Compliance/Checks/EvidenceExportReadinessCheck.cs: using directives inside namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Compliance/Checks/EvidenceGenerationRateCheck.cs: using directives inside namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Compliance/Checks/EvidenceTamperCheck.cs: using directives inside namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Compliance/Checks/ProvenanceCompletenessCheck.cs: using directives inside namespace
- Naming issues:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Compliance/CompliancePlugin.cs: private field naming
- Async issues:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Compliance/Checks/AttestationSigningHealthCheck.cs: async method naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Compliance/Checks/AttestationSigningHealthCheck.cs: missing ConfigureAwait(false)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Compliance/Checks/AuditReadinessCheck.cs: async method naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Compliance/Checks/AuditReadinessCheck.cs: missing ConfigureAwait(false)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Compliance/Checks/ComplianceFrameworkCheck.cs: async method naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Compliance/Checks/ComplianceFrameworkCheck.cs: missing ConfigureAwait(false)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Compliance/Checks/EvidenceExportReadinessCheck.cs: async method naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Compliance/Checks/EvidenceExportReadinessCheck.cs: missing ConfigureAwait(false)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Compliance/Checks/EvidenceGenerationRateCheck.cs: async method naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Compliance/Checks/EvidenceGenerationRateCheck.cs: missing ConfigureAwait(false)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Compliance/Checks/EvidenceTamperCheck.cs: async method naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Compliance/Checks/EvidenceTamperCheck.cs: missing ConfigureAwait(false)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Compliance/Checks/ProvenanceCompletenessCheck.cs: async method naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Compliance/Checks/ProvenanceCompletenessCheck.cs: missing ConfigureAwait(false)
- Service locator matches:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Compliance/Checks/AttestationSigningHealthCheck.cs:63 var httpClientFactory = context.Services.GetRequiredService<IHttpClientFactory>();
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Compliance/Checks/AuditReadinessCheck.cs:64 var httpClientFactory = context.Services.GetRequiredService<IHttpClientFactory>();
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Compliance/Checks/ComplianceFrameworkCheck.cs:63 var httpClientFactory = context.Services.GetRequiredService<IHttpClientFactory>();
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Compliance/Checks/EvidenceExportReadinessCheck.cs:63 var httpClientFactory = context.Services.GetRequiredService<IHttpClientFactory>();
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Compliance/Checks/EvidenceGenerationRateCheck.cs:66 var httpClientFactory = context.Services.GetRequiredService<IHttpClientFactory>();
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Compliance/Checks/EvidenceTamperCheck.cs:64 var httpClientFactory = context.Services.GetRequiredService<IHttpClientFactory>();
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Compliance/Checks/ProvenanceCompletenessCheck.cs:64 var httpClientFactory = context.Services.GetRequiredService<IHttpClientFactory>();
- Assembly.LoadFrom matches:
- none
### Fix Guidance
- Align interface/field/const naming to standards.
- Move and sort using directives (outside namespace).
- Rename async methods and avoid blocking async calls.
- Replace service locator usage with constructor injection.
- Split files over 100 lines into smaller types or partials.
## File-Level Findings
- Status: FAIL
- Files scanned: 9
- Files with issues: 8
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Compliance/CompliancePlugin.cs | PrivateFieldNaming | Rename private fields to _camelCase. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Compliance/Checks/AttestationSigningHealthCheck.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; ServiceLocator; UsingInsideNamespace | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Remove service locator usage; use constructor injection.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Compliance/Checks/AuditReadinessCheck.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; ServiceLocator; UsingInsideNamespace | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Remove service locator usage; use constructor injection.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Compliance/Checks/ComplianceFrameworkCheck.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; ServiceLocator; UsingInsideNamespace | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Remove service locator usage; use constructor injection.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Compliance/Checks/EvidenceExportReadinessCheck.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; ServiceLocator; UsingInsideNamespace | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Remove service locator usage; use constructor injection.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Compliance/Checks/EvidenceGenerationRateCheck.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; ServiceLocator; UsingInsideNamespace | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Remove service locator usage; use constructor injection.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Compliance/Checks/EvidenceTamperCheck.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; ServiceLocator; UsingInsideNamespace | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Remove service locator usage; use constructor injection.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Compliance/Checks/ProvenanceCompletenessCheck.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; ServiceLocator; UsingInsideNamespace | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Remove service locator usage; use constructor injection.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
## Testing Fullness Findings
- Status: FAIL
- Expected layers (heuristic): Unit
- Detected test projects: none
- Missing layers: Unit
### Manual checks required
- Observability contract tests for WebService/Worker.
- Intent tags for regulatory modules (Policy, Authority, Signer, Attestor, EvidenceLocker).
- Offline execution (tests must run without network access).
- Coverage matrix alignment (docs/technical/testing/TEST_COVERAGE_MATRIX.md).
### Fix Guidance
- Add or expand test projects to cover missing layers.
- Ensure tests use deterministic fixtures and offline harnesses.

View File

@@ -0,0 +1,102 @@
# Audit - StellaOps.Doctor.Plugin.Environment
## Project
- Path: src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Environment/StellaOps.Doctor.Plugin.Environment.csproj
- Module: Doctor
- Kind: Library
- Audit date (UTC): 2026-01-30
- Files scanned: 15
- Files with issues: 15
- File-level report: docs/implplan/audits/csproj-standards/file-audit.csv
## Coding Standards Findings
- Status: FAIL
- Nullable: enable
- TreatWarningsAsErrors: explicit true
- Deterministic: inherited true
- 100-line rule violations: 7
- Namespace violations: 15
- Using directive violations: 0
- Naming violations (interfaces/fields/const/async): 0
- Service locator usage (BuildServiceProvider/GetService): 0
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Environment/Checks/EnvironmentCapacityCheck.cs (293 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Environment/Checks/EnvironmentConnectivityCheck.cs (403 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Environment/Checks/EnvironmentDeploymentHealthCheck.cs (336 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Environment/Checks/EnvironmentDriftCheck.cs (278 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Environment/Checks/EnvironmentNetworkPolicyCheck.cs (329 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Environment/Checks/EnvironmentSecretHealthCheck.cs (336 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Environment/Services/IEnvironmentHealthClient.cs (111 lines)
- Namespace issues:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Environment/EnvironmentDoctorPlugin.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Environment/Checks/EnvironmentCapacityCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Environment/Checks/EnvironmentConnectivityCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Environment/Checks/EnvironmentDeploymentHealthCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Environment/Checks/EnvironmentDriftCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Environment/Checks/EnvironmentNetworkPolicyCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Environment/Checks/EnvironmentSecretHealthCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Environment/DependencyInjection/EnvironmentPluginServiceCollectionExtensions.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Environment/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Environment/obj/Debug/net10.0/StellaOps.Doctor.Plugin.Environment.AssemblyInfo.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Environment/obj/Debug/net10.0/StellaOps.Doctor.Plugin.Environment.GlobalUsings.g.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Environment/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Environment/obj/Release/net10.0/StellaOps.Doctor.Plugin.Environment.AssemblyInfo.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Environment/obj/Release/net10.0/StellaOps.Doctor.Plugin.Environment.GlobalUsings.g.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Environment/Services/IEnvironmentHealthClient.cs: missing namespace
- Using directive issues:
- none
- Naming issues:
- none
- Async issues:
- none
- Service locator matches:
- none
- Assembly.LoadFrom matches:
- none
### Fix Guidance
- Normalize namespaces to file-scoped StellaOps.<Area>.
- Split files over 100 lines into smaller types or partials.
## File-Level Findings
- Status: FAIL
- Files scanned: 15
- Files with issues: 15
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Environment/EnvironmentDoctorPlugin.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Environment/Checks/EnvironmentCapacityCheck.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Environment/Checks/EnvironmentConnectivityCheck.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Environment/Checks/EnvironmentDeploymentHealthCheck.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Environment/Checks/EnvironmentDriftCheck.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Environment/Checks/EnvironmentNetworkPolicyCheck.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Environment/Checks/EnvironmentSecretHealthCheck.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Environment/DependencyInjection/EnvironmentPluginServiceCollectionExtensions.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Environment/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Environment/obj/Debug/net10.0/StellaOps.Doctor.Plugin.Environment.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Environment/obj/Debug/net10.0/StellaOps.Doctor.Plugin.Environment.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Environment/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Environment/obj/Release/net10.0/StellaOps.Doctor.Plugin.Environment.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Environment/obj/Release/net10.0/StellaOps.Doctor.Plugin.Environment.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Environment/Services/IEnvironmentHealthClient.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
## Testing Fullness Findings
- Status: FAIL
- Expected layers (heuristic): Unit
- Detected test projects: none
- Missing layers: Unit
### Manual checks required
- Observability contract tests for WebService/Worker.
- Intent tags for regulatory modules (Policy, Authority, Signer, Attestor, EvidenceLocker).
- Offline execution (tests must run without network access).
- Coverage matrix alignment (docs/technical/testing/TEST_COVERAGE_MATRIX.md).
### Fix Guidance
- Add or expand test projects to cover missing layers.
- Ensure tests use deterministic fixtures and offline harnesses.

View File

@@ -0,0 +1,105 @@
# Audit - StellaOps.Doctor.Plugin.Environment
## Project
- Path: src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Environment/StellaOps.Doctor.Plugin.Environment.csproj
- Module: Doctor
- Kind: Plugin
- Audit date (UTC): 2026-01-31
- Files scanned: 9
- Files with issues: 8
- File-level report: docs/implplan/audits/csproj-standards/file-audit.csv
## Coding Standards Findings
- Status: FAIL
- Nullable: enable
- TreatWarningsAsErrors: explicit true
- Deterministic: inherited true
- 100-line rule violations: 7
- Namespace violations: 0
- Using directive violations: 6
- Naming violations (interfaces/fields/const/async): 13
- Service locator usage (BuildServiceProvider/GetService): 6
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Environment/Checks/EnvironmentCapacityCheck.cs (294 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Environment/Checks/EnvironmentConnectivityCheck.cs (404 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Environment/Checks/EnvironmentDeploymentHealthCheck.cs (337 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Environment/Checks/EnvironmentDriftCheck.cs (279 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Environment/Checks/EnvironmentNetworkPolicyCheck.cs (330 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Environment/Checks/EnvironmentSecretHealthCheck.cs (337 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Environment/Services/IEnvironmentHealthClient.cs (111 lines)
- Namespace issues:
- none
- Using directive issues:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Environment/Checks/EnvironmentCapacityCheck.cs: using directives inside namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Environment/Checks/EnvironmentConnectivityCheck.cs: using directives inside namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Environment/Checks/EnvironmentDeploymentHealthCheck.cs: using directives inside namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Environment/Checks/EnvironmentDriftCheck.cs: using directives inside namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Environment/Checks/EnvironmentNetworkPolicyCheck.cs: using directives inside namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Environment/Checks/EnvironmentSecretHealthCheck.cs: using directives inside namespace
- Naming issues:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Environment/EnvironmentDoctorPlugin.cs: private field naming
- Async issues:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Environment/Checks/EnvironmentCapacityCheck.cs: async method naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Environment/Checks/EnvironmentCapacityCheck.cs: missing ConfigureAwait(false)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Environment/Checks/EnvironmentConnectivityCheck.cs: async method naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Environment/Checks/EnvironmentConnectivityCheck.cs: missing ConfigureAwait(false)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Environment/Checks/EnvironmentDeploymentHealthCheck.cs: async method naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Environment/Checks/EnvironmentDeploymentHealthCheck.cs: missing ConfigureAwait(false)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Environment/Checks/EnvironmentDriftCheck.cs: async method naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Environment/Checks/EnvironmentDriftCheck.cs: missing ConfigureAwait(false)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Environment/Checks/EnvironmentNetworkPolicyCheck.cs: async method naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Environment/Checks/EnvironmentNetworkPolicyCheck.cs: missing ConfigureAwait(false)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Environment/Checks/EnvironmentSecretHealthCheck.cs: async method naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Environment/Checks/EnvironmentSecretHealthCheck.cs: missing ConfigureAwait(false)
- Service locator matches:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Environment/Checks/EnvironmentCapacityCheck.cs:68 var httpClientFactory = context.Services.GetRequiredService<IHttpClientFactory>();
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Environment/Checks/EnvironmentConnectivityCheck.cs:69 var httpClientFactory = context.Services.GetRequiredService<IHttpClientFactory>();
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Environment/Checks/EnvironmentDeploymentHealthCheck.cs:64 var httpClientFactory = context.Services.GetRequiredService<IHttpClientFactory>();
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Environment/Checks/EnvironmentDriftCheck.cs:64 var httpClientFactory = context.Services.GetRequiredService<IHttpClientFactory>();
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Environment/Checks/EnvironmentNetworkPolicyCheck.cs:64 var httpClientFactory = context.Services.GetRequiredService<IHttpClientFactory>();
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Environment/Checks/EnvironmentSecretHealthCheck.cs:66 var httpClientFactory = context.Services.GetRequiredService<IHttpClientFactory>();
- Assembly.LoadFrom matches:
- none
### Fix Guidance
- Align interface/field/const naming to standards.
- Move and sort using directives (outside namespace).
- Rename async methods and avoid blocking async calls.
- Replace service locator usage with constructor injection.
- Split files over 100 lines into smaller types or partials.
## File-Level Findings
- Status: FAIL
- Files scanned: 9
- Files with issues: 8
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Environment/EnvironmentDoctorPlugin.cs | PrivateFieldNaming | Rename private fields to _camelCase. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Environment/Checks/EnvironmentCapacityCheck.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; ServiceLocator; UsingInsideNamespace | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Remove service locator usage; use constructor injection.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Environment/Checks/EnvironmentConnectivityCheck.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; ServiceLocator; UsingInsideNamespace | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Remove service locator usage; use constructor injection.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Environment/Checks/EnvironmentDeploymentHealthCheck.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; ServiceLocator; UsingInsideNamespace | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Remove service locator usage; use constructor injection.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Environment/Checks/EnvironmentDriftCheck.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; ServiceLocator; UsingInsideNamespace | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Remove service locator usage; use constructor injection.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Environment/Checks/EnvironmentNetworkPolicyCheck.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; ServiceLocator; UsingInsideNamespace | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Remove service locator usage; use constructor injection.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Environment/Checks/EnvironmentSecretHealthCheck.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; ServiceLocator; UsingInsideNamespace | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Remove service locator usage; use constructor injection.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Environment/Services/IEnvironmentHealthClient.cs | FileLength>100 | Split file to stay <= 100 lines. |
## Testing Fullness Findings
- Status: FAIL
- Expected layers (heuristic): Unit
- Detected test projects: none
- Missing layers: Unit
### Manual checks required
- Observability contract tests for WebService/Worker.
- Intent tags for regulatory modules (Policy, Authority, Signer, Attestor, EvidenceLocker).
- Offline execution (tests must run without network access).
- Coverage matrix alignment (docs/technical/testing/TEST_COVERAGE_MATRIX.md).
### Fix Guidance
- Add or expand test projects to cover missing layers.
- Ensure tests use deterministic fixtures and offline harnesses.

View File

@@ -0,0 +1,91 @@
# Audit - StellaOps.Doctor.Plugin.EvidenceLocker
## Project
- Path: src/Doctor/__Plugins/StellaOps.Doctor.Plugin.EvidenceLocker/StellaOps.Doctor.Plugin.EvidenceLocker.csproj
- Module: Doctor
- Kind: Library
- Audit date (UTC): 2026-01-30
- Files scanned: 11
- Files with issues: 11
- File-level report: docs/implplan/audits/csproj-standards/file-audit.csv
## Coding Standards Findings
- Status: FAIL
- Nullable: enable
- TreatWarningsAsErrors: explicit true
- Deterministic: inherited true
- 100-line rule violations: 4
- Namespace violations: 11
- Using directive violations: 0
- Naming violations (interfaces/fields/const/async): 0
- Service locator usage (BuildServiceProvider/GetService): 0
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.EvidenceLocker/Checks/AttestationRetrievalCheck.cs (284 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.EvidenceLocker/Checks/EvidenceIndexCheck.cs (221 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.EvidenceLocker/Checks/MerkleAnchorCheck.cs (269 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.EvidenceLocker/Checks/ProvenanceChainCheck.cs (213 lines)
- Namespace issues:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.EvidenceLocker/EvidenceLockerDoctorPlugin.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.EvidenceLocker/Checks/AttestationRetrievalCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.EvidenceLocker/Checks/EvidenceIndexCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.EvidenceLocker/Checks/MerkleAnchorCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.EvidenceLocker/Checks/ProvenanceChainCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.EvidenceLocker/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.EvidenceLocker/obj/Debug/net10.0/StellaOps.Doctor.Plugin.EvidenceLocker.AssemblyInfo.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.EvidenceLocker/obj/Debug/net10.0/StellaOps.Doctor.Plugin.EvidenceLocker.GlobalUsings.g.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.EvidenceLocker/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.EvidenceLocker/obj/Release/net10.0/StellaOps.Doctor.Plugin.EvidenceLocker.AssemblyInfo.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.EvidenceLocker/obj/Release/net10.0/StellaOps.Doctor.Plugin.EvidenceLocker.GlobalUsings.g.cs: missing namespace
- Using directive issues:
- none
- Naming issues:
- none
- Async issues:
- none
- Service locator matches:
- none
- Assembly.LoadFrom matches:
- none
### Fix Guidance
- Normalize namespaces to file-scoped StellaOps.<Area>.
- Split files over 100 lines into smaller types or partials.
## File-Level Findings
- Status: FAIL
- Files scanned: 11
- Files with issues: 11
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.EvidenceLocker/EvidenceLockerDoctorPlugin.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.EvidenceLocker/Checks/AttestationRetrievalCheck.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.EvidenceLocker/Checks/EvidenceIndexCheck.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.EvidenceLocker/Checks/MerkleAnchorCheck.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.EvidenceLocker/Checks/ProvenanceChainCheck.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.EvidenceLocker/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.EvidenceLocker/obj/Debug/net10.0/StellaOps.Doctor.Plugin.EvidenceLocker.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.EvidenceLocker/obj/Debug/net10.0/StellaOps.Doctor.Plugin.EvidenceLocker.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.EvidenceLocker/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.EvidenceLocker/obj/Release/net10.0/StellaOps.Doctor.Plugin.EvidenceLocker.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.EvidenceLocker/obj/Release/net10.0/StellaOps.Doctor.Plugin.EvidenceLocker.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
## Testing Fullness Findings
- Status: FAIL
- Expected layers (heuristic): Unit
- Detected test projects: none
- Missing layers: Unit
### Manual checks required
- Observability contract tests for WebService/Worker.
- Intent tags for regulatory modules (Policy, Authority, Signer, Attestor, EvidenceLocker).
- Offline execution (tests must run without network access).
- Coverage matrix alignment (docs/technical/testing/TEST_COVERAGE_MATRIX.md).
### Fix Guidance
- Add or expand test projects to cover missing layers.
- Ensure tests use deterministic fixtures and offline harnesses.

View File

@@ -0,0 +1,88 @@
# Audit - StellaOps.Doctor.Plugin.EvidenceLocker
## Project
- Path: src/Doctor/__Plugins/StellaOps.Doctor.Plugin.EvidenceLocker/StellaOps.Doctor.Plugin.EvidenceLocker.csproj
- Module: Doctor
- Kind: Plugin
- Audit date (UTC): 2026-01-31
- Files scanned: 5
- Files with issues: 5
- File-level report: docs/implplan/audits/csproj-standards/file-audit.csv
## Coding Standards Findings
- Status: FAIL
- Nullable: enable
- TreatWarningsAsErrors: explicit true
- Deterministic: inherited true
- 100-line rule violations: 4
- Namespace violations: 0
- Using directive violations: 4
- Naming violations (interfaces/fields/const/async): 9
- Service locator usage (BuildServiceProvider/GetService): 1
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.EvidenceLocker/Checks/AttestationRetrievalCheck.cs (285 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.EvidenceLocker/Checks/EvidenceIndexCheck.cs (222 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.EvidenceLocker/Checks/MerkleAnchorCheck.cs (270 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.EvidenceLocker/Checks/ProvenanceChainCheck.cs (214 lines)
- Namespace issues:
- none
- Using directive issues:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.EvidenceLocker/Checks/AttestationRetrievalCheck.cs: using directives inside namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.EvidenceLocker/Checks/EvidenceIndexCheck.cs: using directives inside namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.EvidenceLocker/Checks/MerkleAnchorCheck.cs: using directives inside namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.EvidenceLocker/Checks/ProvenanceChainCheck.cs: using directives inside namespace
- Naming issues:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.EvidenceLocker/EvidenceLockerDoctorPlugin.cs: private field naming
- Async issues:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.EvidenceLocker/Checks/AttestationRetrievalCheck.cs: async method naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.EvidenceLocker/Checks/AttestationRetrievalCheck.cs: missing ConfigureAwait(false)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.EvidenceLocker/Checks/EvidenceIndexCheck.cs: async method naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.EvidenceLocker/Checks/EvidenceIndexCheck.cs: missing ConfigureAwait(false)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.EvidenceLocker/Checks/MerkleAnchorCheck.cs: async method naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.EvidenceLocker/Checks/MerkleAnchorCheck.cs: missing ConfigureAwait(false)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.EvidenceLocker/Checks/ProvenanceChainCheck.cs: async method naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.EvidenceLocker/Checks/ProvenanceChainCheck.cs: missing ConfigureAwait(false)
- Service locator matches:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.EvidenceLocker/Checks/AttestationRetrievalCheck.cs:69 var httpClient = context.Services.GetService<IHttpClientFactory>()?.CreateClient("EvidenceLocker");
- Assembly.LoadFrom matches:
- none
### Fix Guidance
- Align interface/field/const naming to standards.
- Move and sort using directives (outside namespace).
- Rename async methods and avoid blocking async calls.
- Replace service locator usage with constructor injection.
- Split files over 100 lines into smaller types or partials.
## File-Level Findings
- Status: FAIL
- Files scanned: 5
- Files with issues: 5
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.EvidenceLocker/EvidenceLockerDoctorPlugin.cs | PrivateFieldNaming | Rename private fields to _camelCase. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.EvidenceLocker/Checks/AttestationRetrievalCheck.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; ServiceLocator; UsingInsideNamespace | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Remove service locator usage; use constructor injection.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.EvidenceLocker/Checks/EvidenceIndexCheck.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; UsingInsideNamespace | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.EvidenceLocker/Checks/MerkleAnchorCheck.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; UsingInsideNamespace | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.EvidenceLocker/Checks/ProvenanceChainCheck.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; UsingInsideNamespace | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
## Testing Fullness Findings
- Status: FAIL
- Expected layers (heuristic): Unit
- Detected test projects: none
- Missing layers: Unit
### Manual checks required
- Observability contract tests for WebService/Worker.
- Intent tags for regulatory modules (Policy, Authority, Signer, Attestor, EvidenceLocker).
- Offline execution (tests must run without network access).
- Coverage matrix alignment (docs/technical/testing/TEST_COVERAGE_MATRIX.md).
### Fix Guidance
- Add or expand test projects to cover missing layers.
- Ensure tests use deterministic fixtures and offline harnesses.

View File

@@ -0,0 +1,105 @@
# Audit - StellaOps.Doctor.Plugin.Notify
## Project
- Path: src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Notify/StellaOps.Doctor.Plugin.Notify.csproj
- Module: Doctor
- Kind: Library
- Audit date (UTC): 2026-01-30
- Files scanned: 16
- Files with issues: 16
- File-level report: docs/implplan/audits/csproj-standards/file-audit.csv
## Coding Standards Findings
- Status: FAIL
- Nullable: enable
- TreatWarningsAsErrors: explicit true
- Deterministic: inherited true
- 100-line rule violations: 9
- Namespace violations: 16
- Using directive violations: 0
- Naming violations (interfaces/fields/const/async): 0
- Service locator usage (BuildServiceProvider/GetService): 0
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Notify/Checks/EmailConfiguredCheck.cs (162 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Notify/Checks/EmailConnectivityCheck.cs (187 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Notify/Checks/NotifyQueueHealthCheck.cs (233 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Notify/Checks/SlackConfiguredCheck.cs (110 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Notify/Checks/SlackConnectivityCheck.cs (154 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Notify/Checks/TeamsConfiguredCheck.cs (126 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Notify/Checks/TeamsConnectivityCheck.cs (170 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Notify/Checks/WebhookConfiguredCheck.cs (129 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Notify/Checks/WebhookConnectivityCheck.cs (167 lines)
- Namespace issues:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Notify/NotifyDoctorPlugin.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Notify/Checks/EmailConfiguredCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Notify/Checks/EmailConnectivityCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Notify/Checks/NotifyQueueHealthCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Notify/Checks/SlackConfiguredCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Notify/Checks/SlackConnectivityCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Notify/Checks/TeamsConfiguredCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Notify/Checks/TeamsConnectivityCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Notify/Checks/WebhookConfiguredCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Notify/Checks/WebhookConnectivityCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Notify/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Notify/obj/Debug/net10.0/StellaOps.Doctor.Plugin.Notify.AssemblyInfo.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Notify/obj/Debug/net10.0/StellaOps.Doctor.Plugin.Notify.GlobalUsings.g.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Notify/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Notify/obj/Release/net10.0/StellaOps.Doctor.Plugin.Notify.AssemblyInfo.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Notify/obj/Release/net10.0/StellaOps.Doctor.Plugin.Notify.GlobalUsings.g.cs: missing namespace
- Using directive issues:
- none
- Naming issues:
- none
- Async issues:
- none
- Service locator matches:
- none
- Assembly.LoadFrom matches:
- none
### Fix Guidance
- Normalize namespaces to file-scoped StellaOps.<Area>.
- Split files over 100 lines into smaller types or partials.
## File-Level Findings
- Status: FAIL
- Files scanned: 16
- Files with issues: 16
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Notify/NotifyDoctorPlugin.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Notify/Checks/EmailConfiguredCheck.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Notify/Checks/EmailConnectivityCheck.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Notify/Checks/NotifyQueueHealthCheck.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Notify/Checks/SlackConfiguredCheck.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Notify/Checks/SlackConnectivityCheck.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Notify/Checks/TeamsConfiguredCheck.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Notify/Checks/TeamsConnectivityCheck.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Notify/Checks/WebhookConfiguredCheck.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Notify/Checks/WebhookConnectivityCheck.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Notify/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Notify/obj/Debug/net10.0/StellaOps.Doctor.Plugin.Notify.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Notify/obj/Debug/net10.0/StellaOps.Doctor.Plugin.Notify.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Notify/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Notify/obj/Release/net10.0/StellaOps.Doctor.Plugin.Notify.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Notify/obj/Release/net10.0/StellaOps.Doctor.Plugin.Notify.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
## Testing Fullness Findings
- Status: PASS
- Expected layers (heuristic): Unit
- Detected test projects: src/Doctor/__Tests/StellaOps.Doctor.Plugin.Notify.Tests/StellaOps.Doctor.Plugin.Notify.Tests.csproj [Unit]
- Missing layers: none
### Manual checks required
- Observability contract tests for WebService/Worker.
- Intent tags for regulatory modules (Policy, Authority, Signer, Attestor, EvidenceLocker).
- Offline execution (tests must run without network access).
- Coverage matrix alignment (docs/technical/testing/TEST_COVERAGE_MATRIX.md).
### Fix Guidance
- None.

View File

@@ -0,0 +1,102 @@
# Audit - StellaOps.Doctor.Plugin.Notify
## Project
- Path: src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Notify/StellaOps.Doctor.Plugin.Notify.csproj
- Module: Doctor
- Kind: Plugin
- Audit date (UTC): 2026-01-31
- Files scanned: 10
- Files with issues: 10
- File-level report: docs/implplan/audits/csproj-standards/file-audit.csv
## Coding Standards Findings
- Status: FAIL
- Nullable: enable
- TreatWarningsAsErrors: explicit true
- Deterministic: inherited true
- 100-line rule violations: 9
- Namespace violations: 0
- Using directive violations: 1
- Naming violations (interfaces/fields/const/async): 12
- Service locator usage (BuildServiceProvider/GetService): 6
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Notify/Checks/EmailConfiguredCheck.cs (162 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Notify/Checks/EmailConnectivityCheck.cs (188 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Notify/Checks/NotifyQueueHealthCheck.cs (233 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Notify/Checks/SlackConfiguredCheck.cs (111 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Notify/Checks/SlackConnectivityCheck.cs (155 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Notify/Checks/TeamsConfiguredCheck.cs (126 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Notify/Checks/TeamsConnectivityCheck.cs (171 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Notify/Checks/WebhookConfiguredCheck.cs (129 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Notify/Checks/WebhookConnectivityCheck.cs (168 lines)
- Namespace issues:
- none
- Using directive issues:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Notify/Checks/EmailConnectivityCheck.cs: using directives inside namespace
- Naming issues:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Notify/NotifyDoctorPlugin.cs: private field naming
- Async issues:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Notify/Checks/EmailConnectivityCheck.cs: async method naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Notify/Checks/EmailConnectivityCheck.cs: missing ConfigureAwait(false)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Notify/Checks/NotifyQueueHealthCheck.cs: async method naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Notify/Checks/NotifyQueueHealthCheck.cs: blocking async usage
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Notify/Checks/NotifyQueueHealthCheck.cs: missing ConfigureAwait(false)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Notify/Checks/SlackConnectivityCheck.cs: async method naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Notify/Checks/SlackConnectivityCheck.cs: missing ConfigureAwait(false)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Notify/Checks/TeamsConnectivityCheck.cs: async method naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Notify/Checks/TeamsConnectivityCheck.cs: missing ConfigureAwait(false)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Notify/Checks/WebhookConnectivityCheck.cs: async method naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Notify/Checks/WebhookConnectivityCheck.cs: missing ConfigureAwait(false)
- Service locator matches:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Notify/NotifyDoctorPlugin.cs:35 var providers = services.GetService<IEnumerable<INotifyChannelHealthProvider>>();
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Notify/Checks/NotifyQueueHealthCheck.cs:51 var eventQueueHealthCheck = context.Services.GetService<StellaOps.Notify.Queue.NotifyQueueHealthCheck>();
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Notify/Checks/NotifyQueueHealthCheck.cs:52 var deliveryQueueHealthCheck = context.Services.GetService<StellaOps.Notify.Queue.NotifyDeliveryQueueHealthCheck>();
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Notify/Checks/SlackConnectivityCheck.cs:54 var httpClientFactory = context.Services.GetRequiredService<IHttpClientFactory>();
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Notify/Checks/TeamsConnectivityCheck.cs:54 var httpClientFactory = context.Services.GetRequiredService<IHttpClientFactory>();
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Notify/Checks/WebhookConnectivityCheck.cs:54 var httpClientFactory = context.Services.GetRequiredService<IHttpClientFactory>();
- Assembly.LoadFrom matches:
- none
### Fix Guidance
- Align interface/field/const naming to standards.
- Move and sort using directives (outside namespace).
- Rename async methods and avoid blocking async calls.
- Replace service locator usage with constructor injection.
- Split files over 100 lines into smaller types or partials.
## File-Level Findings
- Status: FAIL
- Files scanned: 10
- Files with issues: 10
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Notify/NotifyDoctorPlugin.cs | PrivateFieldNaming; ServiceLocator | Remove service locator usage; use constructor injection.; Rename private fields to _camelCase. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Notify/Checks/EmailConfiguredCheck.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Notify/Checks/EmailConnectivityCheck.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; UsingInsideNamespace | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Notify/Checks/NotifyQueueHealthCheck.cs | AsyncNaming; BlockingAsync; ConfigureAwaitMissing; FileLength>100; ServiceLocator | Add ConfigureAwait(false) to awaited calls in library-like code.; Remove service locator usage; use constructor injection.; Rename async methods to end with Async.; Replace .Result/.Wait/GetAwaiter().GetResult() with await.; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Notify/Checks/SlackConfiguredCheck.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Notify/Checks/SlackConnectivityCheck.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; ServiceLocator | Add ConfigureAwait(false) to awaited calls in library-like code.; Remove service locator usage; use constructor injection.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Notify/Checks/TeamsConfiguredCheck.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Notify/Checks/TeamsConnectivityCheck.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; ServiceLocator | Add ConfigureAwait(false) to awaited calls in library-like code.; Remove service locator usage; use constructor injection.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Notify/Checks/WebhookConfiguredCheck.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Notify/Checks/WebhookConnectivityCheck.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; ServiceLocator | Add ConfigureAwait(false) to awaited calls in library-like code.; Remove service locator usage; use constructor injection.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
## Testing Fullness Findings
- Status: PASS
- Expected layers (heuristic): Unit
- Detected test projects: src/Doctor/__Tests/StellaOps.Doctor.Plugin.Notify.Tests/StellaOps.Doctor.Plugin.Notify.Tests.csproj [Unit]
- Missing layers: none
### Manual checks required
- Observability contract tests for WebService/Worker.
- Intent tags for regulatory modules (Policy, Authority, Signer, Attestor, EvidenceLocker).
- Offline execution (tests must run without network access).
- Coverage matrix alignment (docs/technical/testing/TEST_COVERAGE_MATRIX.md).
### Fix Guidance
- None.

View File

@@ -0,0 +1,90 @@
# Audit - StellaOps.Doctor.Plugin.Observability
## Project
- Path: src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Observability/StellaOps.Doctor.Plugin.Observability.csproj
- Module: Doctor
- Kind: Library
- Audit date (UTC): 2026-01-30
- Files scanned: 11
- Files with issues: 11
- File-level report: docs/implplan/audits/csproj-standards/file-audit.csv
## Coding Standards Findings
- Status: FAIL
- Nullable: enable
- TreatWarningsAsErrors: explicit true
- Deterministic: inherited true
- 100-line rule violations: 4
- Namespace violations: 11
- Using directive violations: 0
- Naming violations (interfaces/fields/const/async): 0
- Service locator usage (BuildServiceProvider/GetService): 0
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Observability/Checks/LogDirectoryCheck.cs (144 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Observability/Checks/LogRotationCheck.cs (183 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Observability/Checks/OtlpEndpointCheck.cs (123 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Observability/Checks/PrometheusScrapeCheck.cs (137 lines)
- Namespace issues:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Observability/ObservabilityDoctorPlugin.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Observability/Checks/LogDirectoryCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Observability/Checks/LogRotationCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Observability/Checks/OtlpEndpointCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Observability/Checks/PrometheusScrapeCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Observability/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Observability/obj/Debug/net10.0/StellaOps.Doctor.Plugin.Observability.AssemblyInfo.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Observability/obj/Debug/net10.0/StellaOps.Doctor.Plugin.Observability.GlobalUsings.g.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Observability/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Observability/obj/Release/net10.0/StellaOps.Doctor.Plugin.Observability.AssemblyInfo.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Observability/obj/Release/net10.0/StellaOps.Doctor.Plugin.Observability.GlobalUsings.g.cs: missing namespace
- Using directive issues:
- none
- Naming issues:
- none
- Async issues:
- none
- Service locator matches:
- none
- Assembly.LoadFrom matches:
- none
### Fix Guidance
- Normalize namespaces to file-scoped StellaOps.<Area>.
- Split files over 100 lines into smaller types or partials.
## File-Level Findings
- Status: FAIL
- Files scanned: 11
- Files with issues: 11
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Observability/ObservabilityDoctorPlugin.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Observability/Checks/LogDirectoryCheck.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Observability/Checks/LogRotationCheck.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Observability/Checks/OtlpEndpointCheck.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Observability/Checks/PrometheusScrapeCheck.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Observability/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Observability/obj/Debug/net10.0/StellaOps.Doctor.Plugin.Observability.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Observability/obj/Debug/net10.0/StellaOps.Doctor.Plugin.Observability.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Observability/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Observability/obj/Release/net10.0/StellaOps.Doctor.Plugin.Observability.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Observability/obj/Release/net10.0/StellaOps.Doctor.Plugin.Observability.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
## Testing Fullness Findings
- Status: PASS
- Expected layers (heuristic): Unit
- Detected test projects: src/Doctor/__Tests/StellaOps.Doctor.Plugin.Observability.Tests/StellaOps.Doctor.Plugin.Observability.Tests.csproj [Unit]
- Missing layers: none
### Manual checks required
- Observability contract tests for WebService/Worker.
- Intent tags for regulatory modules (Policy, Authority, Signer, Attestor, EvidenceLocker).
- Offline execution (tests must run without network access).
- Coverage matrix alignment (docs/technical/testing/TEST_COVERAGE_MATRIX.md).
### Fix Guidance
- None.

View File

@@ -0,0 +1,82 @@
# Audit - StellaOps.Doctor.Plugin.Observability
## Project
- Path: src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Observability/StellaOps.Doctor.Plugin.Observability.csproj
- Module: Doctor
- Kind: Plugin
- Audit date (UTC): 2026-01-31
- Files scanned: 5
- Files with issues: 5
- File-level report: docs/implplan/audits/csproj-standards/file-audit.csv
## Coding Standards Findings
- Status: FAIL
- Nullable: enable
- TreatWarningsAsErrors: explicit true
- Deterministic: inherited true
- 100-line rule violations: 4
- Namespace violations: 0
- Using directive violations: 0
- Naming violations (interfaces/fields/const/async): 7
- Service locator usage (BuildServiceProvider/GetService): 2
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Observability/Checks/LogDirectoryCheck.cs (145 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Observability/Checks/LogRotationCheck.cs (184 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Observability/Checks/OtlpEndpointCheck.cs (124 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Observability/Checks/PrometheusScrapeCheck.cs (138 lines)
- Namespace issues:
- none
- Using directive issues:
- none
- Naming issues:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Observability/ObservabilityDoctorPlugin.cs: private field naming
- Async issues:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Observability/Checks/LogDirectoryCheck.cs: async method naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Observability/Checks/LogDirectoryCheck.cs: missing ConfigureAwait(false)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Observability/Checks/OtlpEndpointCheck.cs: async method naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Observability/Checks/OtlpEndpointCheck.cs: missing ConfigureAwait(false)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Observability/Checks/PrometheusScrapeCheck.cs: async method naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Observability/Checks/PrometheusScrapeCheck.cs: missing ConfigureAwait(false)
- Service locator matches:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Observability/Checks/OtlpEndpointCheck.cs:48 var httpClientFactory = context.Services.GetRequiredService<IHttpClientFactory>();
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Observability/Checks/PrometheusScrapeCheck.cs:54 var httpClientFactory = context.Services.GetRequiredService<IHttpClientFactory>();
- Assembly.LoadFrom matches:
- none
### Fix Guidance
- Align interface/field/const naming to standards.
- Rename async methods and avoid blocking async calls.
- Replace service locator usage with constructor injection.
- Split files over 100 lines into smaller types or partials.
## File-Level Findings
- Status: FAIL
- Files scanned: 5
- Files with issues: 5
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Observability/ObservabilityDoctorPlugin.cs | PrivateFieldNaming | Rename private fields to _camelCase. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Observability/Checks/LogDirectoryCheck.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100 | Add ConfigureAwait(false) to awaited calls in library-like code.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Observability/Checks/LogRotationCheck.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Observability/Checks/OtlpEndpointCheck.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; ServiceLocator | Add ConfigureAwait(false) to awaited calls in library-like code.; Remove service locator usage; use constructor injection.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Observability/Checks/PrometheusScrapeCheck.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; ServiceLocator | Add ConfigureAwait(false) to awaited calls in library-like code.; Remove service locator usage; use constructor injection.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
## Testing Fullness Findings
- Status: PASS
- Expected layers (heuristic): Unit
- Detected test projects: src/Doctor/__Tests/StellaOps.Doctor.Plugin.Observability.Tests/StellaOps.Doctor.Plugin.Observability.Tests.csproj [Unit]
- Missing layers: none
### Manual checks required
- Observability contract tests for WebService/Worker.
- Intent tags for regulatory modules (Policy, Authority, Signer, Attestor, EvidenceLocker).
- Offline execution (tests must run without network access).
- Coverage matrix alignment (docs/technical/testing/TEST_COVERAGE_MATRIX.md).
### Fix Guidance
- None.

View File

@@ -0,0 +1,88 @@
# Audit - StellaOps.Doctor.Plugin.Operations
## Project
- Path: src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Operations/StellaOps.Doctor.Plugin.Operations.csproj
- Module: Doctor
- Kind: Library
- Audit date (UTC): 2026-01-30
- Files scanned: 10
- Files with issues: 10
- File-level report: docs/implplan/audits/csproj-standards/file-audit.csv
## Coding Standards Findings
- Status: FAIL
- Nullable: enable
- TreatWarningsAsErrors: explicit true
- Deterministic: inherited true
- 100-line rule violations: 3
- Namespace violations: 10
- Using directive violations: 0
- Naming violations (interfaces/fields/const/async): 0
- Service locator usage (BuildServiceProvider/GetService): 0
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Operations/Checks/DeadLetterQueueCheck.cs (146 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Operations/Checks/JobQueueHealthCheck.cs (197 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Operations/Checks/SchedulerHealthCheck.cs (135 lines)
- Namespace issues:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Operations/OperationsDoctorPlugin.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Operations/Checks/DeadLetterQueueCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Operations/Checks/JobQueueHealthCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Operations/Checks/SchedulerHealthCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Operations/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Operations/obj/Debug/net10.0/StellaOps.Doctor.Plugin.Operations.AssemblyInfo.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Operations/obj/Debug/net10.0/StellaOps.Doctor.Plugin.Operations.GlobalUsings.g.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Operations/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Operations/obj/Release/net10.0/StellaOps.Doctor.Plugin.Operations.AssemblyInfo.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Operations/obj/Release/net10.0/StellaOps.Doctor.Plugin.Operations.GlobalUsings.g.cs: missing namespace
- Using directive issues:
- none
- Naming issues:
- none
- Async issues:
- none
- Service locator matches:
- none
- Assembly.LoadFrom matches:
- none
### Fix Guidance
- Normalize namespaces to file-scoped StellaOps.<Area>.
- Split files over 100 lines into smaller types or partials.
## File-Level Findings
- Status: FAIL
- Files scanned: 10
- Files with issues: 10
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Operations/OperationsDoctorPlugin.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Operations/Checks/DeadLetterQueueCheck.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Operations/Checks/JobQueueHealthCheck.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Operations/Checks/SchedulerHealthCheck.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Operations/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Operations/obj/Debug/net10.0/StellaOps.Doctor.Plugin.Operations.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Operations/obj/Debug/net10.0/StellaOps.Doctor.Plugin.Operations.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Operations/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Operations/obj/Release/net10.0/StellaOps.Doctor.Plugin.Operations.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Operations/obj/Release/net10.0/StellaOps.Doctor.Plugin.Operations.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
## Testing Fullness Findings
- Status: FAIL
- Expected layers (heuristic): Unit
- Detected test projects: none
- Missing layers: Unit
### Manual checks required
- Observability contract tests for WebService/Worker.
- Intent tags for regulatory modules (Policy, Authority, Signer, Attestor, EvidenceLocker).
- Offline execution (tests must run without network access).
- Coverage matrix alignment (docs/technical/testing/TEST_COVERAGE_MATRIX.md).
### Fix Guidance
- Add or expand test projects to cover missing layers.
- Ensure tests use deterministic fixtures and offline harnesses.

View File

@@ -0,0 +1,79 @@
# Audit - StellaOps.Doctor.Plugin.Operations
## Project
- Path: src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Operations/StellaOps.Doctor.Plugin.Operations.csproj
- Module: Doctor
- Kind: Plugin
- Audit date (UTC): 2026-01-31
- Files scanned: 4
- Files with issues: 4
- File-level report: docs/implplan/audits/csproj-standards/file-audit.csv
## Coding Standards Findings
- Status: FAIL
- Nullable: enable
- TreatWarningsAsErrors: explicit true
- Deterministic: inherited true
- 100-line rule violations: 3
- Namespace violations: 0
- Using directive violations: 0
- Naming violations (interfaces/fields/const/async): 7
- Service locator usage (BuildServiceProvider/GetService): 0
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Operations/Checks/DeadLetterQueueCheck.cs (147 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Operations/Checks/JobQueueHealthCheck.cs (198 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Operations/Checks/SchedulerHealthCheck.cs (136 lines)
- Namespace issues:
- none
- Using directive issues:
- none
- Naming issues:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Operations/OperationsDoctorPlugin.cs: private field naming
- Async issues:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Operations/Checks/DeadLetterQueueCheck.cs: async method naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Operations/Checks/DeadLetterQueueCheck.cs: missing ConfigureAwait(false)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Operations/Checks/JobQueueHealthCheck.cs: async method naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Operations/Checks/JobQueueHealthCheck.cs: missing ConfigureAwait(false)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Operations/Checks/SchedulerHealthCheck.cs: async method naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Operations/Checks/SchedulerHealthCheck.cs: missing ConfigureAwait(false)
- Service locator matches:
- none
- Assembly.LoadFrom matches:
- none
### Fix Guidance
- Align interface/field/const naming to standards.
- Rename async methods and avoid blocking async calls.
- Split files over 100 lines into smaller types or partials.
## File-Level Findings
- Status: FAIL
- Files scanned: 4
- Files with issues: 4
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Operations/OperationsDoctorPlugin.cs | PrivateFieldNaming | Rename private fields to _camelCase. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Operations/Checks/DeadLetterQueueCheck.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100 | Add ConfigureAwait(false) to awaited calls in library-like code.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Operations/Checks/JobQueueHealthCheck.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100 | Add ConfigureAwait(false) to awaited calls in library-like code.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Operations/Checks/SchedulerHealthCheck.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100 | Add ConfigureAwait(false) to awaited calls in library-like code.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
## Testing Fullness Findings
- Status: FAIL
- Expected layers (heuristic): Unit
- Detected test projects: none
- Missing layers: Unit
### Manual checks required
- Observability contract tests for WebService/Worker.
- Intent tags for regulatory modules (Policy, Authority, Signer, Attestor, EvidenceLocker).
- Offline execution (tests must run without network access).
- Coverage matrix alignment (docs/technical/testing/TEST_COVERAGE_MATRIX.md).
### Fix Guidance
- Add or expand test projects to cover missing layers.
- Ensure tests use deterministic fixtures and offline harnesses.

View File

@@ -0,0 +1,88 @@
# Audit - StellaOps.Doctor.Plugin.Postgres
## Project
- Path: src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Postgres/StellaOps.Doctor.Plugin.Postgres.csproj
- Module: Doctor
- Kind: Library
- Audit date (UTC): 2026-01-30
- Files scanned: 10
- Files with issues: 10
- File-level report: docs/implplan/audits/csproj-standards/file-audit.csv
## Coding Standards Findings
- Status: FAIL
- Nullable: enable
- TreatWarningsAsErrors: explicit true
- Deterministic: inherited true
- 100-line rule violations: 3
- Namespace violations: 10
- Using directive violations: 0
- Naming violations (interfaces/fields/const/async): 0
- Service locator usage (BuildServiceProvider/GetService): 0
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Postgres/Checks/PostgresConnectionPoolCheck.cs (242 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Postgres/Checks/PostgresConnectivityCheck.cs (240 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Postgres/Checks/PostgresMigrationStatusCheck.cs (218 lines)
- Namespace issues:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Postgres/PostgresDoctorPlugin.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Postgres/Checks/PostgresConnectionPoolCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Postgres/Checks/PostgresConnectivityCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Postgres/Checks/PostgresMigrationStatusCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Postgres/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Postgres/obj/Debug/net10.0/StellaOps.Doctor.Plugin.Postgres.AssemblyInfo.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Postgres/obj/Debug/net10.0/StellaOps.Doctor.Plugin.Postgres.GlobalUsings.g.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Postgres/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Postgres/obj/Release/net10.0/StellaOps.Doctor.Plugin.Postgres.AssemblyInfo.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Postgres/obj/Release/net10.0/StellaOps.Doctor.Plugin.Postgres.GlobalUsings.g.cs: missing namespace
- Using directive issues:
- none
- Naming issues:
- none
- Async issues:
- none
- Service locator matches:
- none
- Assembly.LoadFrom matches:
- none
### Fix Guidance
- Normalize namespaces to file-scoped StellaOps.<Area>.
- Split files over 100 lines into smaller types or partials.
## File-Level Findings
- Status: FAIL
- Files scanned: 10
- Files with issues: 10
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Postgres/PostgresDoctorPlugin.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Postgres/Checks/PostgresConnectionPoolCheck.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Postgres/Checks/PostgresConnectivityCheck.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Postgres/Checks/PostgresMigrationStatusCheck.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Postgres/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Postgres/obj/Debug/net10.0/StellaOps.Doctor.Plugin.Postgres.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Postgres/obj/Debug/net10.0/StellaOps.Doctor.Plugin.Postgres.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Postgres/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Postgres/obj/Release/net10.0/StellaOps.Doctor.Plugin.Postgres.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Postgres/obj/Release/net10.0/StellaOps.Doctor.Plugin.Postgres.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
## Testing Fullness Findings
- Status: FAIL
- Expected layers (heuristic): Integration, Unit
- Detected test projects: none
- Missing layers: Integration, Unit
### Manual checks required
- Observability contract tests for WebService/Worker.
- Intent tags for regulatory modules (Policy, Authority, Signer, Attestor, EvidenceLocker).
- Offline execution (tests must run without network access).
- Coverage matrix alignment (docs/technical/testing/TEST_COVERAGE_MATRIX.md).
### Fix Guidance
- Add or expand test projects to cover missing layers.
- Ensure tests use deterministic fixtures and offline harnesses.

View File

@@ -0,0 +1,80 @@
# Audit - StellaOps.Doctor.Plugin.Postgres
## Project
- Path: src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Postgres/StellaOps.Doctor.Plugin.Postgres.csproj
- Module: Doctor
- Kind: Plugin
- Audit date (UTC): 2026-01-31
- Files scanned: 4
- Files with issues: 4
- File-level report: docs/implplan/audits/csproj-standards/file-audit.csv
## Coding Standards Findings
- Status: FAIL
- Nullable: enable
- TreatWarningsAsErrors: explicit true
- Deterministic: inherited true
- 100-line rule violations: 3
- Namespace violations: 0
- Using directive violations: 1
- Naming violations (interfaces/fields/const/async): 7
- Service locator usage (BuildServiceProvider/GetService): 0
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Postgres/Checks/PostgresConnectionPoolCheck.cs (243 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Postgres/Checks/PostgresConnectivityCheck.cs (241 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Postgres/Checks/PostgresMigrationStatusCheck.cs (219 lines)
- Namespace issues:
- none
- Using directive issues:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Postgres/Checks/PostgresConnectivityCheck.cs: using directives inside namespace
- Naming issues:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Postgres/PostgresDoctorPlugin.cs: private field naming
- Async issues:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Postgres/Checks/PostgresConnectionPoolCheck.cs: async method naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Postgres/Checks/PostgresConnectionPoolCheck.cs: missing ConfigureAwait(false)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Postgres/Checks/PostgresConnectivityCheck.cs: async method naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Postgres/Checks/PostgresConnectivityCheck.cs: missing ConfigureAwait(false)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Postgres/Checks/PostgresMigrationStatusCheck.cs: async method naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Postgres/Checks/PostgresMigrationStatusCheck.cs: missing ConfigureAwait(false)
- Service locator matches:
- none
- Assembly.LoadFrom matches:
- none
### Fix Guidance
- Align interface/field/const naming to standards.
- Move and sort using directives (outside namespace).
- Rename async methods and avoid blocking async calls.
- Split files over 100 lines into smaller types or partials.
## File-Level Findings
- Status: FAIL
- Files scanned: 4
- Files with issues: 4
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Postgres/PostgresDoctorPlugin.cs | PrivateFieldNaming | Rename private fields to _camelCase. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Postgres/Checks/PostgresConnectionPoolCheck.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100 | Add ConfigureAwait(false) to awaited calls in library-like code.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Postgres/Checks/PostgresConnectivityCheck.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; UsingInsideNamespace | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Postgres/Checks/PostgresMigrationStatusCheck.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100 | Add ConfigureAwait(false) to awaited calls in library-like code.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
## Testing Fullness Findings
- Status: FAIL
- Expected layers (heuristic): Integration, Unit
- Detected test projects: none
- Missing layers: Integration, Unit
### Manual checks required
- Observability contract tests for WebService/Worker.
- Intent tags for regulatory modules (Policy, Authority, Signer, Attestor, EvidenceLocker).
- Offline execution (tests must run without network access).
- Coverage matrix alignment (docs/technical/testing/TEST_COVERAGE_MATRIX.md).
### Fix Guidance
- Add or expand test projects to cover missing layers.
- Ensure tests use deterministic fixtures and offline harnesses.

View File

@@ -0,0 +1,102 @@
# Audit - StellaOps.Doctor.Plugin.Release
## Project
- Path: src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Release/StellaOps.Doctor.Plugin.Release.csproj
- Module: Doctor
- Kind: Library
- Audit date (UTC): 2026-01-30
- Files scanned: 15
- Files with issues: 15
- File-level report: docs/implplan/audits/csproj-standards/file-audit.csv
## Coding Standards Findings
- Status: FAIL
- Nullable: enable
- TreatWarningsAsErrors: explicit true
- Deterministic: inherited true
- 100-line rule violations: 7
- Namespace violations: 15
- Using directive violations: 0
- Naming violations (interfaces/fields/const/async): 0
- Service locator usage (BuildServiceProvider/GetService): 0
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Release/Checks/ActiveReleaseHealthCheck.cs (378 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Release/Checks/EnvironmentReadinessCheck.cs (361 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Release/Checks/PromotionGateHealthCheck.cs (448 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Release/Checks/ReleaseConfigurationCheck.cs (360 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Release/Checks/ReleaseScheduleHealthCheck.cs (288 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Release/Checks/RollbackReadinessCheck.cs (332 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Release/Services/IReleaseHealthClient.cs (146 lines)
- Namespace issues:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Release/ReleaseDoctorPlugin.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Release/Checks/ActiveReleaseHealthCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Release/Checks/EnvironmentReadinessCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Release/Checks/PromotionGateHealthCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Release/Checks/ReleaseConfigurationCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Release/Checks/ReleaseScheduleHealthCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Release/Checks/RollbackReadinessCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Release/DependencyInjection/ReleasePluginServiceCollectionExtensions.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Release/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Release/obj/Debug/net10.0/StellaOps.Doctor.Plugin.Release.AssemblyInfo.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Release/obj/Debug/net10.0/StellaOps.Doctor.Plugin.Release.GlobalUsings.g.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Release/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Release/obj/Release/net10.0/StellaOps.Doctor.Plugin.Release.AssemblyInfo.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Release/obj/Release/net10.0/StellaOps.Doctor.Plugin.Release.GlobalUsings.g.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Release/Services/IReleaseHealthClient.cs: missing namespace
- Using directive issues:
- none
- Naming issues:
- none
- Async issues:
- none
- Service locator matches:
- none
- Assembly.LoadFrom matches:
- none
### Fix Guidance
- Normalize namespaces to file-scoped StellaOps.<Area>.
- Split files over 100 lines into smaller types or partials.
## File-Level Findings
- Status: FAIL
- Files scanned: 15
- Files with issues: 15
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Release/ReleaseDoctorPlugin.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Release/Checks/ActiveReleaseHealthCheck.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Release/Checks/EnvironmentReadinessCheck.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Release/Checks/PromotionGateHealthCheck.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Release/Checks/ReleaseConfigurationCheck.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Release/Checks/ReleaseScheduleHealthCheck.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Release/Checks/RollbackReadinessCheck.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Release/DependencyInjection/ReleasePluginServiceCollectionExtensions.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Release/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Release/obj/Debug/net10.0/StellaOps.Doctor.Plugin.Release.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Release/obj/Debug/net10.0/StellaOps.Doctor.Plugin.Release.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Release/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Release/obj/Release/net10.0/StellaOps.Doctor.Plugin.Release.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Release/obj/Release/net10.0/StellaOps.Doctor.Plugin.Release.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Release/Services/IReleaseHealthClient.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
## Testing Fullness Findings
- Status: FAIL
- Expected layers (heuristic): Unit
- Detected test projects: none
- Missing layers: Unit
### Manual checks required
- Observability contract tests for WebService/Worker.
- Intent tags for regulatory modules (Policy, Authority, Signer, Attestor, EvidenceLocker).
- Offline execution (tests must run without network access).
- Coverage matrix alignment (docs/technical/testing/TEST_COVERAGE_MATRIX.md).
### Fix Guidance
- Add or expand test projects to cover missing layers.
- Ensure tests use deterministic fixtures and offline harnesses.

View File

@@ -0,0 +1,106 @@
# Audit - StellaOps.Doctor.Plugin.Release
## Project
- Path: src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Release/StellaOps.Doctor.Plugin.Release.csproj
- Module: Doctor
- Kind: Plugin
- Audit date (UTC): 2026-01-31
- Files scanned: 9
- Files with issues: 8
- File-level report: docs/implplan/audits/csproj-standards/file-audit.csv
## Coding Standards Findings
- Status: FAIL
- Nullable: enable
- TreatWarningsAsErrors: explicit true
- Deterministic: inherited true
- 100-line rule violations: 7
- Namespace violations: 0
- Using directive violations: 6
- Naming violations (interfaces/fields/const/async): 14
- Service locator usage (BuildServiceProvider/GetService): 6
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Release/Checks/ActiveReleaseHealthCheck.cs (379 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Release/Checks/EnvironmentReadinessCheck.cs (362 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Release/Checks/PromotionGateHealthCheck.cs (449 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Release/Checks/ReleaseConfigurationCheck.cs (361 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Release/Checks/ReleaseScheduleHealthCheck.cs (289 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Release/Checks/RollbackReadinessCheck.cs (333 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Release/Services/IReleaseHealthClient.cs (146 lines)
- Namespace issues:
- none
- Using directive issues:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Release/Checks/ActiveReleaseHealthCheck.cs: using directives inside namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Release/Checks/EnvironmentReadinessCheck.cs: using directives inside namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Release/Checks/PromotionGateHealthCheck.cs: using directives inside namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Release/Checks/ReleaseConfigurationCheck.cs: using directives inside namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Release/Checks/ReleaseScheduleHealthCheck.cs: using directives inside namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Release/Checks/RollbackReadinessCheck.cs: using directives inside namespace
- Naming issues:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Release/ReleaseDoctorPlugin.cs: private field naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Release/Checks/ActiveReleaseHealthCheck.cs: private field naming
- Async issues:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Release/Checks/ActiveReleaseHealthCheck.cs: async method naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Release/Checks/ActiveReleaseHealthCheck.cs: missing ConfigureAwait(false)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Release/Checks/EnvironmentReadinessCheck.cs: async method naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Release/Checks/EnvironmentReadinessCheck.cs: missing ConfigureAwait(false)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Release/Checks/PromotionGateHealthCheck.cs: async method naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Release/Checks/PromotionGateHealthCheck.cs: missing ConfigureAwait(false)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Release/Checks/ReleaseConfigurationCheck.cs: async method naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Release/Checks/ReleaseConfigurationCheck.cs: missing ConfigureAwait(false)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Release/Checks/ReleaseScheduleHealthCheck.cs: async method naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Release/Checks/ReleaseScheduleHealthCheck.cs: missing ConfigureAwait(false)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Release/Checks/RollbackReadinessCheck.cs: async method naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Release/Checks/RollbackReadinessCheck.cs: missing ConfigureAwait(false)
- Service locator matches:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Release/Checks/ActiveReleaseHealthCheck.cs:72 var httpClientFactory = context.Services.GetRequiredService<IHttpClientFactory>();
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Release/Checks/EnvironmentReadinessCheck.cs:64 var httpClientFactory = context.Services.GetRequiredService<IHttpClientFactory>();
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Release/Checks/PromotionGateHealthCheck.cs:64 var httpClientFactory = context.Services.GetRequiredService<IHttpClientFactory>();
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Release/Checks/ReleaseConfigurationCheck.cs:64 var httpClientFactory = context.Services.GetRequiredService<IHttpClientFactory>();
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Release/Checks/ReleaseScheduleHealthCheck.cs:64 var httpClientFactory = context.Services.GetRequiredService<IHttpClientFactory>();
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Release/Checks/RollbackReadinessCheck.cs:64 var httpClientFactory = context.Services.GetRequiredService<IHttpClientFactory>();
- Assembly.LoadFrom matches:
- none
### Fix Guidance
- Align interface/field/const naming to standards.
- Move and sort using directives (outside namespace).
- Rename async methods and avoid blocking async calls.
- Replace service locator usage with constructor injection.
- Split files over 100 lines into smaller types or partials.
## File-Level Findings
- Status: FAIL
- Files scanned: 9
- Files with issues: 8
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Release/ReleaseDoctorPlugin.cs | PrivateFieldNaming | Rename private fields to _camelCase. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Release/Checks/ActiveReleaseHealthCheck.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; PrivateFieldNaming; ServiceLocator; UsingInsideNamespace | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Remove service locator usage; use constructor injection.; Rename async methods to end with Async.; Rename private fields to _camelCase.; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Release/Checks/EnvironmentReadinessCheck.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; ServiceLocator; UsingInsideNamespace | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Remove service locator usage; use constructor injection.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Release/Checks/PromotionGateHealthCheck.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; ServiceLocator; UsingInsideNamespace | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Remove service locator usage; use constructor injection.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Release/Checks/ReleaseConfigurationCheck.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; ServiceLocator; UsingInsideNamespace | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Remove service locator usage; use constructor injection.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Release/Checks/ReleaseScheduleHealthCheck.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; ServiceLocator; UsingInsideNamespace | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Remove service locator usage; use constructor injection.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Release/Checks/RollbackReadinessCheck.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; ServiceLocator; UsingInsideNamespace | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Remove service locator usage; use constructor injection.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Release/Services/IReleaseHealthClient.cs | FileLength>100 | Split file to stay <= 100 lines. |
## Testing Fullness Findings
- Status: FAIL
- Expected layers (heuristic): Unit
- Detected test projects: none
- Missing layers: Unit
### Manual checks required
- Observability contract tests for WebService/Worker.
- Intent tags for regulatory modules (Policy, Authority, Signer, Attestor, EvidenceLocker).
- Offline execution (tests must run without network access).
- Coverage matrix alignment (docs/technical/testing/TEST_COVERAGE_MATRIX.md).
### Fix Guidance
- Add or expand test projects to cover missing layers.
- Ensure tests use deterministic fixtures and offline harnesses.

View File

@@ -0,0 +1,102 @@
# Audit - StellaOps.Doctor.Plugin.Scanner
## Project
- Path: src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Scanner/StellaOps.Doctor.Plugin.Scanner.csproj
- Module: Doctor
- Kind: Library
- Audit date (UTC): 2026-01-30
- Files scanned: 15
- Files with issues: 15
- File-level report: docs/implplan/audits/csproj-standards/file-audit.csv
## Coding Standards Findings
- Status: FAIL
- Nullable: enable
- TreatWarningsAsErrors: explicit true
- Deterministic: inherited true
- 100-line rule violations: 7
- Namespace violations: 15
- Using directive violations: 0
- Naming violations (interfaces/fields/const/async): 0
- Service locator usage (BuildServiceProvider/GetService): 0
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Scanner/Checks/ReachabilityComputationHealthCheck.cs (235 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Scanner/Checks/SbomGenerationHealthCheck.cs (203 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Scanner/Checks/ScannerQueueHealthCheck.cs (233 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Scanner/Checks/ScannerResourceUtilizationCheck.cs (225 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Scanner/Checks/SliceCacheHealthCheck.cs (235 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Scanner/Checks/VulnerabilityScanHealthCheck.cs (219 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Scanner/Checks/WitnessGraphHealthCheck.cs (216 lines)
- Namespace issues:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Scanner/ScannerDoctorPlugin.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Scanner/Checks/ReachabilityComputationHealthCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Scanner/Checks/SbomGenerationHealthCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Scanner/Checks/ScannerQueueHealthCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Scanner/Checks/ScannerResourceUtilizationCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Scanner/Checks/SliceCacheHealthCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Scanner/Checks/VulnerabilityScanHealthCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Scanner/Checks/WitnessGraphHealthCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Scanner/DependencyInjection/ScannerPluginServiceCollectionExtensions.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Scanner/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Scanner/obj/Debug/net10.0/StellaOps.Doctor.Plugin.Scanner.AssemblyInfo.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Scanner/obj/Debug/net10.0/StellaOps.Doctor.Plugin.Scanner.GlobalUsings.g.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Scanner/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Scanner/obj/Release/net10.0/StellaOps.Doctor.Plugin.Scanner.AssemblyInfo.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Scanner/obj/Release/net10.0/StellaOps.Doctor.Plugin.Scanner.GlobalUsings.g.cs: missing namespace
- Using directive issues:
- none
- Naming issues:
- none
- Async issues:
- none
- Service locator matches:
- none
- Assembly.LoadFrom matches:
- none
### Fix Guidance
- Normalize namespaces to file-scoped StellaOps.<Area>.
- Split files over 100 lines into smaller types or partials.
## File-Level Findings
- Status: FAIL
- Files scanned: 15
- Files with issues: 15
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Scanner/ScannerDoctorPlugin.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Scanner/Checks/ReachabilityComputationHealthCheck.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Scanner/Checks/SbomGenerationHealthCheck.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Scanner/Checks/ScannerQueueHealthCheck.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Scanner/Checks/ScannerResourceUtilizationCheck.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Scanner/Checks/SliceCacheHealthCheck.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Scanner/Checks/VulnerabilityScanHealthCheck.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Scanner/Checks/WitnessGraphHealthCheck.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Scanner/DependencyInjection/ScannerPluginServiceCollectionExtensions.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Scanner/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Scanner/obj/Debug/net10.0/StellaOps.Doctor.Plugin.Scanner.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Scanner/obj/Debug/net10.0/StellaOps.Doctor.Plugin.Scanner.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Scanner/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Scanner/obj/Release/net10.0/StellaOps.Doctor.Plugin.Scanner.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Scanner/obj/Release/net10.0/StellaOps.Doctor.Plugin.Scanner.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
## Testing Fullness Findings
- Status: FAIL
- Expected layers (heuristic): Unit
- Detected test projects: none
- Missing layers: Unit
### Manual checks required
- Observability contract tests for WebService/Worker.
- Intent tags for regulatory modules (Policy, Authority, Signer, Attestor, EvidenceLocker).
- Offline execution (tests must run without network access).
- Coverage matrix alignment (docs/technical/testing/TEST_COVERAGE_MATRIX.md).
### Fix Guidance
- Add or expand test projects to cover missing layers.
- Ensure tests use deterministic fixtures and offline harnesses.

View File

@@ -0,0 +1,109 @@
# Audit - StellaOps.Doctor.Plugin.Scanner
## Project
- Path: src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Scanner/StellaOps.Doctor.Plugin.Scanner.csproj
- Module: Doctor
- Kind: Plugin
- Audit date (UTC): 2026-01-31
- Files scanned: 9
- Files with issues: 8
- File-level report: docs/implplan/audits/csproj-standards/file-audit.csv
## Coding Standards Findings
- Status: FAIL
- Nullable: enable
- TreatWarningsAsErrors: explicit true
- Deterministic: inherited true
- 100-line rule violations: 7
- Namespace violations: 0
- Using directive violations: 7
- Naming violations (interfaces/fields/const/async): 15
- Service locator usage (BuildServiceProvider/GetService): 7
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Scanner/Checks/ReachabilityComputationHealthCheck.cs (236 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Scanner/Checks/SbomGenerationHealthCheck.cs (204 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Scanner/Checks/ScannerQueueHealthCheck.cs (234 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Scanner/Checks/ScannerResourceUtilizationCheck.cs (226 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Scanner/Checks/SliceCacheHealthCheck.cs (236 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Scanner/Checks/VulnerabilityScanHealthCheck.cs (220 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Scanner/Checks/WitnessGraphHealthCheck.cs (217 lines)
- Namespace issues:
- none
- Using directive issues:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Scanner/Checks/ReachabilityComputationHealthCheck.cs: using directives inside namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Scanner/Checks/SbomGenerationHealthCheck.cs: using directives inside namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Scanner/Checks/ScannerQueueHealthCheck.cs: using directives inside namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Scanner/Checks/ScannerResourceUtilizationCheck.cs: using directives inside namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Scanner/Checks/SliceCacheHealthCheck.cs: using directives inside namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Scanner/Checks/VulnerabilityScanHealthCheck.cs: using directives inside namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Scanner/Checks/WitnessGraphHealthCheck.cs: using directives inside namespace
- Naming issues:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Scanner/ScannerDoctorPlugin.cs: private field naming
- Async issues:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Scanner/Checks/ReachabilityComputationHealthCheck.cs: async method naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Scanner/Checks/ReachabilityComputationHealthCheck.cs: missing ConfigureAwait(false)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Scanner/Checks/SbomGenerationHealthCheck.cs: async method naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Scanner/Checks/SbomGenerationHealthCheck.cs: missing ConfigureAwait(false)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Scanner/Checks/ScannerQueueHealthCheck.cs: async method naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Scanner/Checks/ScannerQueueHealthCheck.cs: missing ConfigureAwait(false)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Scanner/Checks/ScannerResourceUtilizationCheck.cs: async method naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Scanner/Checks/ScannerResourceUtilizationCheck.cs: missing ConfigureAwait(false)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Scanner/Checks/SliceCacheHealthCheck.cs: async method naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Scanner/Checks/SliceCacheHealthCheck.cs: missing ConfigureAwait(false)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Scanner/Checks/VulnerabilityScanHealthCheck.cs: async method naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Scanner/Checks/VulnerabilityScanHealthCheck.cs: missing ConfigureAwait(false)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Scanner/Checks/WitnessGraphHealthCheck.cs: async method naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Scanner/Checks/WitnessGraphHealthCheck.cs: missing ConfigureAwait(false)
- Service locator matches:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Scanner/Checks/ReachabilityComputationHealthCheck.cs:67 var httpClientFactory = context.Services.GetRequiredService<IHttpClientFactory>();
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Scanner/Checks/SbomGenerationHealthCheck.cs:67 var httpClientFactory = context.Services.GetRequiredService<IHttpClientFactory>();
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Scanner/Checks/ScannerQueueHealthCheck.cs:68 var httpClientFactory = context.Services.GetRequiredService<IHttpClientFactory>();
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Scanner/Checks/ScannerResourceUtilizationCheck.cs:68 var httpClientFactory = context.Services.GetRequiredService<IHttpClientFactory>();
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Scanner/Checks/SliceCacheHealthCheck.cs:68 var httpClientFactory = context.Services.GetRequiredService<IHttpClientFactory>();
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Scanner/Checks/VulnerabilityScanHealthCheck.cs:66 var httpClientFactory = context.Services.GetRequiredService<IHttpClientFactory>();
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Scanner/Checks/WitnessGraphHealthCheck.cs:64 var httpClientFactory = context.Services.GetRequiredService<IHttpClientFactory>();
- Assembly.LoadFrom matches:
- none
### Fix Guidance
- Align interface/field/const naming to standards.
- Move and sort using directives (outside namespace).
- Rename async methods and avoid blocking async calls.
- Replace service locator usage with constructor injection.
- Split files over 100 lines into smaller types or partials.
## File-Level Findings
- Status: FAIL
- Files scanned: 9
- Files with issues: 8
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Scanner/ScannerDoctorPlugin.cs | PrivateFieldNaming | Rename private fields to _camelCase. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Scanner/Checks/ReachabilityComputationHealthCheck.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; ServiceLocator; UsingInsideNamespace | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Remove service locator usage; use constructor injection.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Scanner/Checks/SbomGenerationHealthCheck.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; ServiceLocator; UsingInsideNamespace | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Remove service locator usage; use constructor injection.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Scanner/Checks/ScannerQueueHealthCheck.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; ServiceLocator; UsingInsideNamespace | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Remove service locator usage; use constructor injection.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Scanner/Checks/ScannerResourceUtilizationCheck.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; ServiceLocator; UsingInsideNamespace | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Remove service locator usage; use constructor injection.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Scanner/Checks/SliceCacheHealthCheck.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; ServiceLocator; UsingInsideNamespace | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Remove service locator usage; use constructor injection.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Scanner/Checks/VulnerabilityScanHealthCheck.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; ServiceLocator; UsingInsideNamespace | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Remove service locator usage; use constructor injection.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Scanner/Checks/WitnessGraphHealthCheck.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; ServiceLocator; UsingInsideNamespace | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Remove service locator usage; use constructor injection.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
## Testing Fullness Findings
- Status: FAIL
- Expected layers (heuristic): Unit
- Detected test projects: none
- Missing layers: Unit
### Manual checks required
- Observability contract tests for WebService/Worker.
- Intent tags for regulatory modules (Policy, Authority, Signer, Attestor, EvidenceLocker).
- Offline execution (tests must run without network access).
- Coverage matrix alignment (docs/technical/testing/TEST_COVERAGE_MATRIX.md).
### Fix Guidance
- Add or expand test projects to cover missing layers.
- Ensure tests use deterministic fixtures and offline harnesses.

View File

@@ -0,0 +1,88 @@
# Audit - StellaOps.Doctor.Plugin.Storage
## Project
- Path: src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Storage/StellaOps.Doctor.Plugin.Storage.csproj
- Module: Doctor
- Kind: Library
- Audit date (UTC): 2026-01-30
- Files scanned: 10
- Files with issues: 10
- File-level report: docs/implplan/audits/csproj-standards/file-audit.csv
## Coding Standards Findings
- Status: FAIL
- Nullable: enable
- TreatWarningsAsErrors: explicit true
- Deterministic: inherited true
- 100-line rule violations: 3
- Namespace violations: 10
- Using directive violations: 0
- Naming violations (interfaces/fields/const/async): 0
- Service locator usage (BuildServiceProvider/GetService): 0
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Storage/Checks/BackupDirectoryCheck.cs (219 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Storage/Checks/DiskSpaceCheck.cs (241 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Storage/Checks/EvidenceLockerWriteCheck.cs (255 lines)
- Namespace issues:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Storage/StorageDoctorPlugin.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Storage/Checks/BackupDirectoryCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Storage/Checks/DiskSpaceCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Storage/Checks/EvidenceLockerWriteCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Storage/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Storage/obj/Debug/net10.0/StellaOps.Doctor.Plugin.Storage.AssemblyInfo.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Storage/obj/Debug/net10.0/StellaOps.Doctor.Plugin.Storage.GlobalUsings.g.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Storage/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Storage/obj/Release/net10.0/StellaOps.Doctor.Plugin.Storage.AssemblyInfo.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Storage/obj/Release/net10.0/StellaOps.Doctor.Plugin.Storage.GlobalUsings.g.cs: missing namespace
- Using directive issues:
- none
- Naming issues:
- none
- Async issues:
- none
- Service locator matches:
- none
- Assembly.LoadFrom matches:
- none
### Fix Guidance
- Normalize namespaces to file-scoped StellaOps.<Area>.
- Split files over 100 lines into smaller types or partials.
## File-Level Findings
- Status: FAIL
- Files scanned: 10
- Files with issues: 10
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Storage/StorageDoctorPlugin.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Storage/Checks/BackupDirectoryCheck.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Storage/Checks/DiskSpaceCheck.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Storage/Checks/EvidenceLockerWriteCheck.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Storage/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Storage/obj/Debug/net10.0/StellaOps.Doctor.Plugin.Storage.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Storage/obj/Debug/net10.0/StellaOps.Doctor.Plugin.Storage.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Storage/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Storage/obj/Release/net10.0/StellaOps.Doctor.Plugin.Storage.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Storage/obj/Release/net10.0/StellaOps.Doctor.Plugin.Storage.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
## Testing Fullness Findings
- Status: FAIL
- Expected layers (heuristic): Integration, Unit
- Detected test projects: tests/Doctor/StellaOps.Doctor.Plugin.Storage.Tests/StellaOps.Doctor.Plugin.Storage.Tests.csproj [Unit]
- Missing layers: Integration
### Manual checks required
- Observability contract tests for WebService/Worker.
- Intent tags for regulatory modules (Policy, Authority, Signer, Attestor, EvidenceLocker).
- Offline execution (tests must run without network access).
- Coverage matrix alignment (docs/technical/testing/TEST_COVERAGE_MATRIX.md).
### Fix Guidance
- Add or expand test projects to cover missing layers.
- Ensure tests use deterministic fixtures and offline harnesses.

View File

@@ -0,0 +1,75 @@
# Audit - StellaOps.Doctor.Plugin.Storage
## Project
- Path: src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Storage/StellaOps.Doctor.Plugin.Storage.csproj
- Module: Doctor
- Kind: Plugin
- Audit date (UTC): 2026-01-31
- Files scanned: 4
- Files with issues: 4
- File-level report: docs/implplan/audits/csproj-standards/file-audit.csv
## Coding Standards Findings
- Status: FAIL
- Nullable: enable
- TreatWarningsAsErrors: explicit true
- Deterministic: inherited true
- 100-line rule violations: 3
- Namespace violations: 0
- Using directive violations: 0
- Naming violations (interfaces/fields/const/async): 3
- Service locator usage (BuildServiceProvider/GetService): 0
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Storage/Checks/BackupDirectoryCheck.cs (220 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Storage/Checks/DiskSpaceCheck.cs (242 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Storage/Checks/EvidenceLockerWriteCheck.cs (256 lines)
- Namespace issues:
- none
- Using directive issues:
- none
- Naming issues:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Storage/StorageDoctorPlugin.cs: private field naming
- Async issues:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Storage/Checks/EvidenceLockerWriteCheck.cs: async method naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Storage/Checks/EvidenceLockerWriteCheck.cs: missing ConfigureAwait(false)
- Service locator matches:
- none
- Assembly.LoadFrom matches:
- none
### Fix Guidance
- Align interface/field/const naming to standards.
- Rename async methods and avoid blocking async calls.
- Split files over 100 lines into smaller types or partials.
## File-Level Findings
- Status: FAIL
- Files scanned: 4
- Files with issues: 4
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Storage/StorageDoctorPlugin.cs | PrivateFieldNaming | Rename private fields to _camelCase. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Storage/Checks/BackupDirectoryCheck.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Storage/Checks/DiskSpaceCheck.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Storage/Checks/EvidenceLockerWriteCheck.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100 | Add ConfigureAwait(false) to awaited calls in library-like code.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
## Testing Fullness Findings
- Status: FAIL
- Expected layers (heuristic): Integration, Unit
- Detected test projects: tests/Doctor/StellaOps.Doctor.Plugin.Storage.Tests/StellaOps.Doctor.Plugin.Storage.Tests.csproj [Unit]
- Missing layers: Integration
### Manual checks required
- Observability contract tests for WebService/Worker.
- Intent tags for regulatory modules (Policy, Authority, Signer, Attestor, EvidenceLocker).
- Offline execution (tests must run without network access).
- Coverage matrix alignment (docs/technical/testing/TEST_COVERAGE_MATRIX.md).
### Fix Guidance
- Add or expand test projects to cover missing layers.
- Ensure tests use deterministic fixtures and offline harnesses.

View File

@@ -0,0 +1,118 @@
# Audit - StellaOps.Doctor.Plugin.Timestamping
## Project
- Path: src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/StellaOps.Doctor.Plugin.Timestamping.csproj
- Module: Doctor
- Kind: Library
- Audit date (UTC): 2026-01-30
- Files scanned: 20
- Files with issues: 20
- File-level report: docs/implplan/audits/csproj-standards/file-audit.csv
## Coding Standards Findings
- Status: FAIL
- Nullable: enable
- TreatWarningsAsErrors: inherited false
- Deterministic: inherited true
- 100-line rule violations: 13
- Namespace violations: 20
- Using directive violations: 0
- Naming violations (interfaces/fields/const/async): 0
- Service locator usage (BuildServiceProvider/GetService): 0
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/AutoRemediation.cs (311 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/CrlDistributionCheck.cs (161 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/EuTrustListChecks.cs (309 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/EvidenceStalenessCheck.cs (709 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/IDoctorCheck.cs (201 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/OcspResponderCheck.cs (153 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/OcspStaplingEnabledCheck.cs (124 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/RevocationCacheFreshCheck.cs (173 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/TimeSkewChecks.cs (421 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/TimestampingHealthCheckPlugin.cs (191 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/TsaAvailabilityCheck.cs (226 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/TsaCertificateExpiryCheck.cs (420 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/TsaHealthChecks.cs (450 lines)
- Namespace issues:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/AutoRemediation.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/CrlDistributionCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/EuTrustListChecks.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/EvidenceStalenessCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/IDoctorCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/OcspResponderCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/OcspStaplingEnabledCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/RevocationCacheFreshCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/TimeSkewChecks.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/TimestampingHealthCheckPlugin.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/TsaAvailabilityCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/TsaCertificateExpiryCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/TsaEndpointProbe.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/TsaHealthChecks.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/obj/Debug/net10.0/StellaOps.Doctor.Plugin.Timestamping.AssemblyInfo.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/obj/Debug/net10.0/StellaOps.Doctor.Plugin.Timestamping.GlobalUsings.g.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/obj/Release/net10.0/StellaOps.Doctor.Plugin.Timestamping.AssemblyInfo.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/obj/Release/net10.0/StellaOps.Doctor.Plugin.Timestamping.GlobalUsings.g.cs: missing namespace
- Using directive issues:
- none
- Naming issues:
- none
- Async issues:
- none
- Service locator matches:
- none
- Assembly.LoadFrom matches:
- none
### Fix Guidance
- Normalize namespaces to file-scoped StellaOps.<Area>.
- Remove overrides that disable TreatWarningsAsErrors.
- Split files over 100 lines into smaller types or partials.
## File-Level Findings
- Status: FAIL
- Files scanned: 20
- Files with issues: 20
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/AutoRemediation.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/CrlDistributionCheck.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/EuTrustListChecks.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/EvidenceStalenessCheck.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/IDoctorCheck.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/OcspResponderCheck.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/OcspStaplingEnabledCheck.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/RevocationCacheFreshCheck.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/TimeSkewChecks.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/TimestampingHealthCheckPlugin.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/TsaAvailabilityCheck.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/TsaCertificateExpiryCheck.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/TsaEndpointProbe.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/TsaHealthChecks.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/obj/Debug/net10.0/StellaOps.Doctor.Plugin.Timestamping.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/obj/Debug/net10.0/StellaOps.Doctor.Plugin.Timestamping.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/obj/Release/net10.0/StellaOps.Doctor.Plugin.Timestamping.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/obj/Release/net10.0/StellaOps.Doctor.Plugin.Timestamping.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
## Testing Fullness Findings
- Status: PASS
- Expected layers (heuristic): Unit
- Detected test projects: src/Doctor/__Tests/StellaOps.Doctor.Plugin.Timestamping.Tests/StellaOps.Doctor.Plugin.Timestamping.Tests.csproj [Unit]
- Missing layers: none
### Manual checks required
- Observability contract tests for WebService/Worker.
- Intent tags for regulatory modules (Policy, Authority, Signer, Attestor, EvidenceLocker).
- Offline execution (tests must run without network access).
- Coverage matrix alignment (docs/technical/testing/TEST_COVERAGE_MATRIX.md).
### Fix Guidance
- None.

View File

@@ -0,0 +1,122 @@
# Audit - StellaOps.Doctor.Plugin.Timestamping
## Project
- Path: src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/StellaOps.Doctor.Plugin.Timestamping.csproj
- Module: Doctor
- Kind: Plugin
- Audit date (UTC): 2026-01-31
- Files scanned: 14
- Files with issues: 14
- File-level report: docs/implplan/audits/csproj-standards/file-audit.csv
## Coding Standards Findings
- Status: FAIL
- Nullable: enable
- TreatWarningsAsErrors: inherited false
- Deterministic: inherited true
- 100-line rule violations: 13
- Namespace violations: 0
- Using directive violations: 4
- Naming violations (interfaces/fields/const/async): 25
- Service locator usage (BuildServiceProvider/GetService): 1
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/AutoRemediation.cs (311 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/CrlDistributionCheck.cs (162 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/EuTrustListChecks.cs (309 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/EvidenceStalenessCheck.cs (710 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/IDoctorCheck.cs (201 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/OcspResponderCheck.cs (154 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/OcspStaplingEnabledCheck.cs (124 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/RevocationCacheFreshCheck.cs (173 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/TimeSkewChecks.cs (422 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/TimestampingHealthCheckPlugin.cs (191 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/TsaAvailabilityCheck.cs (226 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/TsaCertificateExpiryCheck.cs (421 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/TsaHealthChecks.cs (451 lines)
- Namespace issues:
- none
- Using directive issues:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/CrlDistributionCheck.cs: using directives inside namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/OcspResponderCheck.cs: using directives inside namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/TimeSkewChecks.cs: using directives inside namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/TsaEndpointProbe.cs: using directives inside namespace
- Naming issues:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/TsaHealthChecks.cs: private field naming
- Async issues:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/AutoRemediation.cs: async method naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/AutoRemediation.cs: missing ConfigureAwait(false)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/CrlDistributionCheck.cs: async method naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/CrlDistributionCheck.cs: missing ConfigureAwait(false)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/EuTrustListChecks.cs: async method naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/EuTrustListChecks.cs: missing ConfigureAwait(false)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/EvidenceStalenessCheck.cs: async method naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/EvidenceStalenessCheck.cs: missing ConfigureAwait(false)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/OcspResponderCheck.cs: async method naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/OcspResponderCheck.cs: missing ConfigureAwait(false)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/OcspStaplingEnabledCheck.cs: async method naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/OcspStaplingEnabledCheck.cs: missing ConfigureAwait(false)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/RevocationCacheFreshCheck.cs: async method naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/RevocationCacheFreshCheck.cs: missing ConfigureAwait(false)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/TimeSkewChecks.cs: async method naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/TimeSkewChecks.cs: missing ConfigureAwait(false)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/TsaAvailabilityCheck.cs: async method naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/TsaAvailabilityCheck.cs: missing ConfigureAwait(false)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/TsaCertificateExpiryCheck.cs: async method naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/TsaCertificateExpiryCheck.cs: missing ConfigureAwait(false)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/TsaEndpointProbe.cs: async method naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/TsaEndpointProbe.cs: missing ConfigureAwait(false)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/TsaHealthChecks.cs: async method naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/TsaHealthChecks.cs: missing ConfigureAwait(false)
- Service locator matches:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/TimestampingHealthCheckPlugin.cs:154 return services.GetServices<IDoctorCheck>();
- Assembly.LoadFrom matches:
- none
### Fix Guidance
- Align interface/field/const naming to standards.
- Move and sort using directives (outside namespace).
- Remove overrides that disable TreatWarningsAsErrors.
- Rename async methods and avoid blocking async calls.
- Replace service locator usage with constructor injection.
- Split files over 100 lines into smaller types or partials.
## File-Level Findings
- Status: FAIL
- Files scanned: 14
- Files with issues: 14
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/AutoRemediation.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100 | Add ConfigureAwait(false) to awaited calls in library-like code.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/CrlDistributionCheck.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; UsingInsideNamespace | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/EuTrustListChecks.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100 | Add ConfigureAwait(false) to awaited calls in library-like code.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/EvidenceStalenessCheck.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100 | Add ConfigureAwait(false) to awaited calls in library-like code.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/IDoctorCheck.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/OcspResponderCheck.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; UsingInsideNamespace | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/OcspStaplingEnabledCheck.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100 | Add ConfigureAwait(false) to awaited calls in library-like code.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/RevocationCacheFreshCheck.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100 | Add ConfigureAwait(false) to awaited calls in library-like code.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/TimeSkewChecks.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; UsingInsideNamespace | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/TimestampingHealthCheckPlugin.cs | FileLength>100; ServiceLocator | Remove service locator usage; use constructor injection.; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/TsaAvailabilityCheck.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100 | Add ConfigureAwait(false) to awaited calls in library-like code.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/TsaCertificateExpiryCheck.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100 | Add ConfigureAwait(false) to awaited calls in library-like code.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/TsaEndpointProbe.cs | AsyncNaming; ConfigureAwaitMissing; UsingInsideNamespace | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Rename async methods to end with Async. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Timestamping/TsaHealthChecks.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; PrivateFieldNaming | Add ConfigureAwait(false) to awaited calls in library-like code.; Rename async methods to end with Async.; Rename private fields to _camelCase.; Split file to stay <= 100 lines. |
## Testing Fullness Findings
- Status: PASS
- Expected layers (heuristic): Unit
- Detected test projects: src/Doctor/__Tests/StellaOps.Doctor.Plugin.Timestamping.Tests/StellaOps.Doctor.Plugin.Timestamping.Tests.csproj [Unit]
- Missing layers: none
### Manual checks required
- Observability contract tests for WebService/Worker.
- Intent tags for regulatory modules (Policy, Authority, Signer, Attestor, EvidenceLocker).
- Offline execution (tests must run without network access).
- Coverage matrix alignment (docs/technical/testing/TEST_COVERAGE_MATRIX.md).
### Fix Guidance
- None.

View File

@@ -0,0 +1,88 @@
# Audit - StellaOps.Doctor.Plugin.Vex
## Project
- Path: src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Vex/StellaOps.Doctor.Plugin.Vex.csproj
- Module: Doctor
- Kind: Library
- Audit date (UTC): 2026-01-30
- Files scanned: 10
- Files with issues: 10
- File-level report: docs/implplan/audits/csproj-standards/file-audit.csv
## Coding Standards Findings
- Status: FAIL
- Nullable: enable
- TreatWarningsAsErrors: explicit true
- Deterministic: inherited true
- 100-line rule violations: 3
- Namespace violations: 10
- Using directive violations: 0
- Naming violations (interfaces/fields/const/async): 0
- Service locator usage (BuildServiceProvider/GetService): 0
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Vex/Checks/VexDocumentValidationCheck.cs (193 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Vex/Checks/VexIssuerTrustCheck.cs (129 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Vex/Checks/VexSchemaComplianceCheck.cs (120 lines)
- Namespace issues:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Vex/VexDoctorPlugin.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Vex/Checks/VexDocumentValidationCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Vex/Checks/VexIssuerTrustCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Vex/Checks/VexSchemaComplianceCheck.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Vex/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Vex/obj/Debug/net10.0/StellaOps.Doctor.Plugin.Vex.AssemblyInfo.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Vex/obj/Debug/net10.0/StellaOps.Doctor.Plugin.Vex.GlobalUsings.g.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Vex/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Vex/obj/Release/net10.0/StellaOps.Doctor.Plugin.Vex.AssemblyInfo.cs: missing namespace
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Vex/obj/Release/net10.0/StellaOps.Doctor.Plugin.Vex.GlobalUsings.g.cs: missing namespace
- Using directive issues:
- none
- Naming issues:
- none
- Async issues:
- none
- Service locator matches:
- none
- Assembly.LoadFrom matches:
- none
### Fix Guidance
- Normalize namespaces to file-scoped StellaOps.<Area>.
- Split files over 100 lines into smaller types or partials.
## File-Level Findings
- Status: FAIL
- Files scanned: 10
- Files with issues: 10
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Vex/VexDoctorPlugin.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Vex/Checks/VexDocumentValidationCheck.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Vex/Checks/VexIssuerTrustCheck.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Vex/Checks/VexSchemaComplianceCheck.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Vex/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Vex/obj/Debug/net10.0/StellaOps.Doctor.Plugin.Vex.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Vex/obj/Debug/net10.0/StellaOps.Doctor.Plugin.Vex.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Vex/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Vex/obj/Release/net10.0/StellaOps.Doctor.Plugin.Vex.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Vex/obj/Release/net10.0/StellaOps.Doctor.Plugin.Vex.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
## Testing Fullness Findings
- Status: FAIL
- Expected layers (heuristic): Unit
- Detected test projects: none
- Missing layers: Unit
### Manual checks required
- Observability contract tests for WebService/Worker.
- Intent tags for regulatory modules (Policy, Authority, Signer, Attestor, EvidenceLocker).
- Offline execution (tests must run without network access).
- Coverage matrix alignment (docs/technical/testing/TEST_COVERAGE_MATRIX.md).
### Fix Guidance
- Add or expand test projects to cover missing layers.
- Ensure tests use deterministic fixtures and offline harnesses.

View File

@@ -0,0 +1,79 @@
# Audit - StellaOps.Doctor.Plugin.Vex
## Project
- Path: src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Vex/StellaOps.Doctor.Plugin.Vex.csproj
- Module: Doctor
- Kind: Plugin
- Audit date (UTC): 2026-01-31
- Files scanned: 4
- Files with issues: 4
- File-level report: docs/implplan/audits/csproj-standards/file-audit.csv
## Coding Standards Findings
- Status: FAIL
- Nullable: enable
- TreatWarningsAsErrors: explicit true
- Deterministic: inherited true
- 100-line rule violations: 3
- Namespace violations: 0
- Using directive violations: 0
- Naming violations (interfaces/fields/const/async): 7
- Service locator usage (BuildServiceProvider/GetService): 0
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Vex/Checks/VexDocumentValidationCheck.cs (194 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Vex/Checks/VexIssuerTrustCheck.cs (130 lines)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Vex/Checks/VexSchemaComplianceCheck.cs (121 lines)
- Namespace issues:
- none
- Using directive issues:
- none
- Naming issues:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Vex/VexDoctorPlugin.cs: private field naming
- Async issues:
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Vex/Checks/VexDocumentValidationCheck.cs: async method naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Vex/Checks/VexDocumentValidationCheck.cs: missing ConfigureAwait(false)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Vex/Checks/VexIssuerTrustCheck.cs: async method naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Vex/Checks/VexIssuerTrustCheck.cs: missing ConfigureAwait(false)
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Vex/Checks/VexSchemaComplianceCheck.cs: async method naming
- src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Vex/Checks/VexSchemaComplianceCheck.cs: missing ConfigureAwait(false)
- Service locator matches:
- none
- Assembly.LoadFrom matches:
- none
### Fix Guidance
- Align interface/field/const naming to standards.
- Rename async methods and avoid blocking async calls.
- Split files over 100 lines into smaller types or partials.
## File-Level Findings
- Status: FAIL
- Files scanned: 4
- Files with issues: 4
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Vex/VexDoctorPlugin.cs | PrivateFieldNaming | Rename private fields to _camelCase. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Vex/Checks/VexDocumentValidationCheck.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100 | Add ConfigureAwait(false) to awaited calls in library-like code.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Vex/Checks/VexIssuerTrustCheck.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100 | Add ConfigureAwait(false) to awaited calls in library-like code.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/Doctor/__Plugins/StellaOps.Doctor.Plugin.Vex/Checks/VexSchemaComplianceCheck.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100 | Add ConfigureAwait(false) to awaited calls in library-like code.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
## Testing Fullness Findings
- Status: FAIL
- Expected layers (heuristic): Unit
- Detected test projects: none
- Missing layers: Unit
### Manual checks required
- Observability contract tests for WebService/Worker.
- Intent tags for regulatory modules (Policy, Authority, Signer, Attestor, EvidenceLocker).
- Offline execution (tests must run without network access).
- Coverage matrix alignment (docs/technical/testing/TEST_COVERAGE_MATRIX.md).
### Fix Guidance
- Add or expand test projects to cover missing layers.
- Ensure tests use deterministic fixtures and offline harnesses.

View File

@@ -0,0 +1,134 @@
# Audit - StellaOps.Doctor.Plugin.BinaryAnalysis.Tests
## Project
- Path: src/Doctor/__Tests/StellaOps.Doctor.Plugin.BinaryAnalysis.Tests/StellaOps.Doctor.Plugin.BinaryAnalysis.Tests.csproj
- Module: Doctor
- Kind: Test
- Audit date (UTC): 2026-01-31
- Files scanned: 9
- Files with issues: 9
- File-level report: docs/implplan/audits/csproj-standards/file-audit.csv
## Coding Standards Findings
- Status: FAIL
- Nullable: enable
- TreatWarningsAsErrors: inherited false
- Deterministic: inherited true
- 100-line rule violations: 9
- Namespace violations: 0
- Using directive violations: 5
- Naming violations (interfaces/fields/const/async): 16
- Service locator usage (BuildServiceProvider/GetService): 30
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.BinaryAnalysis.Tests/BinaryAnalysisDoctorPluginTests.cs (176 lines)
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.BinaryAnalysis.Tests/Checks/BuildinfoCacheCheckTests.cs (215 lines)
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.BinaryAnalysis.Tests/Checks/CorpusMirrorFreshnessCheckTests.cs (254 lines)
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.BinaryAnalysis.Tests/Checks/DdebRepoEnabledCheckTests.cs (130 lines)
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.BinaryAnalysis.Tests/Checks/DebuginfodAvailabilityCheckTests.cs (295 lines)
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.BinaryAnalysis.Tests/Checks/KpiBaselineExistsCheckTests.cs (341 lines)
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.BinaryAnalysis.Tests/Checks/SymbolRecoveryFallbackCheckTests.cs (278 lines)
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.BinaryAnalysis.Tests/Integration/BinaryAnalysisPluginIntegrationTests.cs (241 lines)
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.BinaryAnalysis.Tests/Integration/CorpusHealthChecksIntegrationTests.cs (524 lines)
- Namespace issues:
- none
- Using directive issues:
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.BinaryAnalysis.Tests/Checks/BuildinfoCacheCheckTests.cs: using directives not sorted
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.BinaryAnalysis.Tests/Checks/DdebRepoEnabledCheckTests.cs: using directives not sorted
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.BinaryAnalysis.Tests/Checks/DebuginfodAvailabilityCheckTests.cs: using directives not sorted
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.BinaryAnalysis.Tests/Checks/KpiBaselineExistsCheckTests.cs: using directives not sorted
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.BinaryAnalysis.Tests/Checks/SymbolRecoveryFallbackCheckTests.cs: using directives not sorted
- Naming issues:
- none
- Async issues:
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.BinaryAnalysis.Tests/BinaryAnalysisDoctorPluginTests.cs: async method naming
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.BinaryAnalysis.Tests/BinaryAnalysisDoctorPluginTests.cs: missing ConfigureAwait(false)
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.BinaryAnalysis.Tests/Checks/BuildinfoCacheCheckTests.cs: async method naming
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.BinaryAnalysis.Tests/Checks/BuildinfoCacheCheckTests.cs: missing ConfigureAwait(false)
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.BinaryAnalysis.Tests/Checks/CorpusMirrorFreshnessCheckTests.cs: async method naming
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.BinaryAnalysis.Tests/Checks/CorpusMirrorFreshnessCheckTests.cs: missing ConfigureAwait(false)
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.BinaryAnalysis.Tests/Checks/DdebRepoEnabledCheckTests.cs: async method naming
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.BinaryAnalysis.Tests/Checks/DdebRepoEnabledCheckTests.cs: missing ConfigureAwait(false)
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.BinaryAnalysis.Tests/Checks/DebuginfodAvailabilityCheckTests.cs: async method naming
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.BinaryAnalysis.Tests/Checks/DebuginfodAvailabilityCheckTests.cs: missing ConfigureAwait(false)
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.BinaryAnalysis.Tests/Checks/KpiBaselineExistsCheckTests.cs: async method naming
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.BinaryAnalysis.Tests/Checks/KpiBaselineExistsCheckTests.cs: missing ConfigureAwait(false)
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.BinaryAnalysis.Tests/Checks/SymbolRecoveryFallbackCheckTests.cs: async method naming
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.BinaryAnalysis.Tests/Checks/SymbolRecoveryFallbackCheckTests.cs: missing ConfigureAwait(false)
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.BinaryAnalysis.Tests/Integration/CorpusHealthChecksIntegrationTests.cs: async method naming
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.BinaryAnalysis.Tests/Integration/CorpusHealthChecksIntegrationTests.cs: missing ConfigureAwait(false)
- Service locator matches:
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.BinaryAnalysis.Tests/BinaryAnalysisDoctorPluginTests.cs:47 var services = new ServiceCollection().BuildServiceProvider();
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.BinaryAnalysis.Tests/BinaryAnalysisDoctorPluginTests.cs:167 Services = new ServiceCollection().BuildServiceProvider(),
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.BinaryAnalysis.Tests/Checks/BuildinfoCacheCheckTests.cs:148 Services = new ServiceCollection().BuildServiceProvider(),
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.BinaryAnalysis.Tests/Checks/BuildinfoCacheCheckTests.cs:169 .BuildServiceProvider();
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.BinaryAnalysis.Tests/Checks/CorpusMirrorFreshnessCheckTests.cs:231 Services = new ServiceCollection().BuildServiceProvider(),
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.BinaryAnalysis.Tests/Checks/DdebRepoEnabledCheckTests.cs:121 Services = new ServiceCollection().BuildServiceProvider(),
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.BinaryAnalysis.Tests/Checks/DebuginfodAvailabilityCheckTests.cs:228 Services = new ServiceCollection().BuildServiceProvider(),
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.BinaryAnalysis.Tests/Checks/DebuginfodAvailabilityCheckTests.cs:249 .BuildServiceProvider();
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.BinaryAnalysis.Tests/Checks/KpiBaselineExistsCheckTests.cs:318 Services = new ServiceCollection().BuildServiceProvider(),
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.BinaryAnalysis.Tests/Checks/SymbolRecoveryFallbackCheckTests.cs:211 Services = new ServiceCollection().BuildServiceProvider(),
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.BinaryAnalysis.Tests/Checks/SymbolRecoveryFallbackCheckTests.cs:232 .BuildServiceProvider();
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.BinaryAnalysis.Tests/Integration/BinaryAnalysisPluginIntegrationTests.cs:34 var provider = services.BuildServiceProvider();
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.BinaryAnalysis.Tests/Integration/BinaryAnalysisPluginIntegrationTests.cs:37 var plugins = provider.GetServices<IDoctorPlugin>().ToList();
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.BinaryAnalysis.Tests/Integration/BinaryAnalysisPluginIntegrationTests.cs:47 var provider = services.BuildServiceProvider();
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.BinaryAnalysis.Tests/Integration/BinaryAnalysisPluginIntegrationTests.cs:50 var plugin = provider.GetServices<IDoctorPlugin>()
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.BinaryAnalysis.Tests/Integration/BinaryAnalysisPluginIntegrationTests.cs:63 var provider = services.BuildServiceProvider();
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.BinaryAnalysis.Tests/Integration/BinaryAnalysisPluginIntegrationTests.cs:65 var plugin = provider.GetServices<IDoctorPlugin>()
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.BinaryAnalysis.Tests/Integration/BinaryAnalysisPluginIntegrationTests.cs:101 var provider = services.BuildServiceProvider();
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.BinaryAnalysis.Tests/Integration/BinaryAnalysisPluginIntegrationTests.cs:103 var plugin = provider.GetServices<IDoctorPlugin>()
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.BinaryAnalysis.Tests/Integration/BinaryAnalysisPluginIntegrationTests.cs:137 var provider = services.BuildServiceProvider();
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.BinaryAnalysis.Tests/Integration/BinaryAnalysisPluginIntegrationTests.cs:139 var plugin = provider.GetServices<IDoctorPlugin>()
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.BinaryAnalysis.Tests/Integration/BinaryAnalysisPluginIntegrationTests.cs:173 var provider = services.BuildServiceProvider();
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.BinaryAnalysis.Tests/Integration/BinaryAnalysisPluginIntegrationTests.cs:175 var plugin = provider.GetServices<IDoctorPlugin>()
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.BinaryAnalysis.Tests/Integration/BinaryAnalysisPluginIntegrationTests.cs:212 var provider = services.BuildServiceProvider();
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.BinaryAnalysis.Tests/Integration/BinaryAnalysisPluginIntegrationTests.cs:215 var plugins = provider.GetServices<IDoctorPlugin>()
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.BinaryAnalysis.Tests/Integration/BinaryAnalysisPluginIntegrationTests.cs:229 var provider = services.BuildServiceProvider();
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.BinaryAnalysis.Tests/Integration/BinaryAnalysisPluginIntegrationTests.cs:232 var plugin = provider.GetServices<IDoctorPlugin>()
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.BinaryAnalysis.Tests/Integration/CorpusHealthChecksIntegrationTests.cs:33 _serviceProvider = BuildServiceProvider();
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.BinaryAnalysis.Tests/Integration/CorpusHealthChecksIntegrationTests.cs:319 private IServiceProvider BuildServiceProvider()
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.BinaryAnalysis.Tests/Integration/CorpusHealthChecksIntegrationTests.cs:348 return services.BuildServiceProvider();
- Assembly.LoadFrom matches:
- none
### Fix Guidance
- Move and sort using directives (outside namespace).
- Remove overrides that disable TreatWarningsAsErrors.
- Rename async methods and avoid blocking async calls.
- Replace service locator usage with constructor injection.
- Split files over 100 lines into smaller types or partials.
## File-Level Findings
- Status: FAIL
- Files scanned: 9
- Files with issues: 9
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Doctor/__Tests/StellaOps.Doctor.Plugin.BinaryAnalysis.Tests/BinaryAnalysisDoctorPluginTests.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; ServiceLocator | Add ConfigureAwait(false) to awaited calls in library-like code.; Remove service locator usage; use constructor injection.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/Doctor/__Tests/StellaOps.Doctor.Plugin.BinaryAnalysis.Tests/Checks/BuildinfoCacheCheckTests.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; ServiceLocator; UsingNotSorted | Add ConfigureAwait(false) to awaited calls in library-like code.; Remove service locator usage; use constructor injection.; Rename async methods to end with Async.; Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Doctor/__Tests/StellaOps.Doctor.Plugin.BinaryAnalysis.Tests/Checks/CorpusMirrorFreshnessCheckTests.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; ServiceLocator | Add ConfigureAwait(false) to awaited calls in library-like code.; Remove service locator usage; use constructor injection.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/Doctor/__Tests/StellaOps.Doctor.Plugin.BinaryAnalysis.Tests/Checks/DdebRepoEnabledCheckTests.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; ServiceLocator; UsingNotSorted | Add ConfigureAwait(false) to awaited calls in library-like code.; Remove service locator usage; use constructor injection.; Rename async methods to end with Async.; Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Doctor/__Tests/StellaOps.Doctor.Plugin.BinaryAnalysis.Tests/Checks/DebuginfodAvailabilityCheckTests.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; ServiceLocator; UsingNotSorted | Add ConfigureAwait(false) to awaited calls in library-like code.; Remove service locator usage; use constructor injection.; Rename async methods to end with Async.; Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Doctor/__Tests/StellaOps.Doctor.Plugin.BinaryAnalysis.Tests/Checks/KpiBaselineExistsCheckTests.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; ServiceLocator; UsingNotSorted | Add ConfigureAwait(false) to awaited calls in library-like code.; Remove service locator usage; use constructor injection.; Rename async methods to end with Async.; Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Doctor/__Tests/StellaOps.Doctor.Plugin.BinaryAnalysis.Tests/Checks/SymbolRecoveryFallbackCheckTests.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; ServiceLocator; UsingNotSorted | Add ConfigureAwait(false) to awaited calls in library-like code.; Remove service locator usage; use constructor injection.; Rename async methods to end with Async.; Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Doctor/__Tests/StellaOps.Doctor.Plugin.BinaryAnalysis.Tests/Integration/BinaryAnalysisPluginIntegrationTests.cs | FileLength>100; ServiceLocator | Remove service locator usage; use constructor injection.; Split file to stay <= 100 lines. |
| src/Doctor/__Tests/StellaOps.Doctor.Plugin.BinaryAnalysis.Tests/Integration/CorpusHealthChecksIntegrationTests.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; ServiceLocator | Add ConfigureAwait(false) to awaited calls in library-like code.; Remove service locator usage; use constructor injection.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
## Testing Fullness Findings
- Status: PASS
- Expected layers (heuristic):
- Detected test projects: none
- Missing layers: none
### Manual checks required
- Observability contract tests for WebService/Worker.
- Intent tags for regulatory modules (Policy, Authority, Signer, Attestor, EvidenceLocker).
- Offline execution (tests must run without network access).
- Coverage matrix alignment (docs/technical/testing/TEST_COVERAGE_MATRIX.md).
### Fix Guidance
- None.

View File

@@ -0,0 +1,97 @@
# Audit - StellaOps.Doctor.Plugin.Notify.Tests
## Project
- Path: src/Doctor/__Tests/StellaOps.Doctor.Plugin.Notify.Tests/StellaOps.Doctor.Plugin.Notify.Tests.csproj
- Module: Doctor
- Kind: Test
- Audit date (UTC): 2026-01-31
- Files scanned: 6
- Files with issues: 6
- File-level report: docs/implplan/audits/csproj-standards/file-audit.csv
## Coding Standards Findings
- Status: FAIL
- Nullable: enable
- TreatWarningsAsErrors: inherited false
- Deterministic: inherited true
- 100-line rule violations: 6
- Namespace violations: 0
- Using directive violations: 0
- Naming violations (interfaces/fields/const/async): 12
- Service locator usage (BuildServiceProvider/GetService): 8
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.Notify.Tests/NotifyDoctorPluginTests.cs (179 lines)
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.Notify.Tests/Checks/EmailConfiguredCheckTests.cs (193 lines)
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.Notify.Tests/Checks/NotifyQueueHealthCheckTests.cs (134 lines)
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.Notify.Tests/Checks/SlackConfiguredCheckTests.cs (156 lines)
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.Notify.Tests/Checks/TeamsConfiguredCheckTests.cs (148 lines)
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.Notify.Tests/Checks/WebhookConfiguredCheckTests.cs (166 lines)
- Namespace issues:
- none
- Using directive issues:
- none
- Naming issues:
- none
- Async issues:
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.Notify.Tests/NotifyDoctorPluginTests.cs: async method naming
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.Notify.Tests/NotifyDoctorPluginTests.cs: missing ConfigureAwait(false)
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.Notify.Tests/Checks/EmailConfiguredCheckTests.cs: async method naming
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.Notify.Tests/Checks/EmailConfiguredCheckTests.cs: missing ConfigureAwait(false)
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.Notify.Tests/Checks/NotifyQueueHealthCheckTests.cs: async method naming
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.Notify.Tests/Checks/NotifyQueueHealthCheckTests.cs: missing ConfigureAwait(false)
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.Notify.Tests/Checks/SlackConfiguredCheckTests.cs: async method naming
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.Notify.Tests/Checks/SlackConfiguredCheckTests.cs: missing ConfigureAwait(false)
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.Notify.Tests/Checks/TeamsConfiguredCheckTests.cs: async method naming
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.Notify.Tests/Checks/TeamsConfiguredCheckTests.cs: missing ConfigureAwait(false)
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.Notify.Tests/Checks/WebhookConfiguredCheckTests.cs: async method naming
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.Notify.Tests/Checks/WebhookConfiguredCheckTests.cs: missing ConfigureAwait(false)
- Service locator matches:
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.Notify.Tests/NotifyDoctorPluginTests.cs:42 var services = new ServiceCollection().BuildServiceProvider();
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.Notify.Tests/NotifyDoctorPluginTests.cs:55 .BuildServiceProvider();
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.Notify.Tests/NotifyDoctorPluginTests.cs:170 Services = new ServiceCollection().BuildServiceProvider(),
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.Notify.Tests/Checks/EmailConfiguredCheckTests.cs:184 Services = new ServiceCollection().BuildServiceProvider(),
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.Notify.Tests/Checks/NotifyQueueHealthCheckTests.cs:125 Services = new ServiceCollection().BuildServiceProvider(),
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.Notify.Tests/Checks/SlackConfiguredCheckTests.cs:147 Services = new ServiceCollection().BuildServiceProvider(),
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.Notify.Tests/Checks/TeamsConfiguredCheckTests.cs:139 Services = new ServiceCollection().BuildServiceProvider(),
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.Notify.Tests/Checks/WebhookConfiguredCheckTests.cs:157 Services = new ServiceCollection().BuildServiceProvider(),
- Assembly.LoadFrom matches:
- none
### Fix Guidance
- Remove overrides that disable TreatWarningsAsErrors.
- Rename async methods and avoid blocking async calls.
- Replace service locator usage with constructor injection.
- Split files over 100 lines into smaller types or partials.
## File-Level Findings
- Status: FAIL
- Files scanned: 6
- Files with issues: 6
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Doctor/__Tests/StellaOps.Doctor.Plugin.Notify.Tests/NotifyDoctorPluginTests.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; ServiceLocator | Add ConfigureAwait(false) to awaited calls in library-like code.; Remove service locator usage; use constructor injection.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/Doctor/__Tests/StellaOps.Doctor.Plugin.Notify.Tests/Checks/EmailConfiguredCheckTests.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; ServiceLocator | Add ConfigureAwait(false) to awaited calls in library-like code.; Remove service locator usage; use constructor injection.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/Doctor/__Tests/StellaOps.Doctor.Plugin.Notify.Tests/Checks/NotifyQueueHealthCheckTests.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; ServiceLocator | Add ConfigureAwait(false) to awaited calls in library-like code.; Remove service locator usage; use constructor injection.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/Doctor/__Tests/StellaOps.Doctor.Plugin.Notify.Tests/Checks/SlackConfiguredCheckTests.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; ServiceLocator | Add ConfigureAwait(false) to awaited calls in library-like code.; Remove service locator usage; use constructor injection.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/Doctor/__Tests/StellaOps.Doctor.Plugin.Notify.Tests/Checks/TeamsConfiguredCheckTests.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; ServiceLocator | Add ConfigureAwait(false) to awaited calls in library-like code.; Remove service locator usage; use constructor injection.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/Doctor/__Tests/StellaOps.Doctor.Plugin.Notify.Tests/Checks/WebhookConfiguredCheckTests.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; ServiceLocator | Add ConfigureAwait(false) to awaited calls in library-like code.; Remove service locator usage; use constructor injection.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
## Testing Fullness Findings
- Status: PASS
- Expected layers (heuristic):
- Detected test projects: none
- Missing layers: none
### Manual checks required
- Observability contract tests for WebService/Worker.
- Intent tags for regulatory modules (Policy, Authority, Signer, Attestor, EvidenceLocker).
- Offline execution (tests must run without network access).
- Coverage matrix alignment (docs/technical/testing/TEST_COVERAGE_MATRIX.md).
### Fix Guidance
- None.

View File

@@ -0,0 +1,79 @@
# Audit - StellaOps.Doctor.Plugin.Observability.Tests
## Project
- Path: src/Doctor/__Tests/StellaOps.Doctor.Plugin.Observability.Tests/StellaOps.Doctor.Plugin.Observability.Tests.csproj
- Module: Doctor
- Kind: Test
- Audit date (UTC): 2026-01-31
- Files scanned: 3
- Files with issues: 3
- File-level report: docs/implplan/audits/csproj-standards/file-audit.csv
## Coding Standards Findings
- Status: FAIL
- Nullable: enable
- TreatWarningsAsErrors: inherited false
- Deterministic: inherited true
- 100-line rule violations: 2
- Namespace violations: 0
- Using directive violations: 0
- Naming violations (interfaces/fields/const/async): 4
- Service locator usage (BuildServiceProvider/GetService): 5
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.Observability.Tests/Checks/LogDirectoryCheckTests.cs (140 lines)
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.Observability.Tests/Checks/OtlpEndpointCheckTests.cs (102 lines)
- Namespace issues:
- none
- Using directive issues:
- none
- Naming issues:
- none
- Async issues:
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.Observability.Tests/ObservabilityDoctorPluginTests.cs: async method naming
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.Observability.Tests/ObservabilityDoctorPluginTests.cs: missing ConfigureAwait(false)
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.Observability.Tests/Checks/LogDirectoryCheckTests.cs: async method naming
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.Observability.Tests/Checks/LogDirectoryCheckTests.cs: missing ConfigureAwait(false)
- Service locator matches:
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.Observability.Tests/ObservabilityDoctorPluginTests.cs:33 var services = new ServiceCollection().BuildServiceProvider();
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.Observability.Tests/ObservabilityDoctorPluginTests.cs:90 Services = new ServiceCollection().BuildServiceProvider(),
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.Observability.Tests/Checks/LogDirectoryCheckTests.cs:121 Services = new ServiceCollection().BuildServiceProvider(),
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.Observability.Tests/Checks/LogDirectoryCheckTests.cs:133 public IServiceProvider BuildServiceProvider() => new SimpleServiceProvider();
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.Observability.Tests/Checks/OtlpEndpointCheckTests.cs:93 Services = new ServiceCollection().BuildServiceProvider(),
- Assembly.LoadFrom matches:
- none
### Fix Guidance
- Remove overrides that disable TreatWarningsAsErrors.
- Rename async methods and avoid blocking async calls.
- Replace service locator usage with constructor injection.
- Split files over 100 lines into smaller types or partials.
## File-Level Findings
- Status: FAIL
- Files scanned: 3
- Files with issues: 3
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Doctor/__Tests/StellaOps.Doctor.Plugin.Observability.Tests/ObservabilityDoctorPluginTests.cs | AsyncNaming; ConfigureAwaitMissing; ServiceLocator | Add ConfigureAwait(false) to awaited calls in library-like code.; Remove service locator usage; use constructor injection.; Rename async methods to end with Async. |
| src/Doctor/__Tests/StellaOps.Doctor.Plugin.Observability.Tests/Checks/LogDirectoryCheckTests.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; ServiceLocator | Add ConfigureAwait(false) to awaited calls in library-like code.; Remove service locator usage; use constructor injection.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/Doctor/__Tests/StellaOps.Doctor.Plugin.Observability.Tests/Checks/OtlpEndpointCheckTests.cs | FileLength>100; ServiceLocator | Remove service locator usage; use constructor injection.; Split file to stay <= 100 lines. |
## Testing Fullness Findings
- Status: PASS
- Expected layers (heuristic):
- Detected test projects: none
- Missing layers: none
### Manual checks required
- Observability contract tests for WebService/Worker.
- Intent tags for regulatory modules (Policy, Authority, Signer, Attestor, EvidenceLocker).
- Offline execution (tests must run without network access).
- Coverage matrix alignment (docs/technical/testing/TEST_COVERAGE_MATRIX.md).
### Fix Guidance
- None.

View File

@@ -0,0 +1,77 @@
# Audit - StellaOps.Doctor.Plugin.Timestamping.Tests
## Project
- Path: src/Doctor/__Tests/StellaOps.Doctor.Plugin.Timestamping.Tests/StellaOps.Doctor.Plugin.Timestamping.Tests.csproj
- Module: Doctor
- Kind: Test
- Audit date (UTC): 2026-01-31
- Files scanned: 4
- Files with issues: 3
- File-level report: docs/implplan/audits/csproj-standards/file-audit.csv
## Coding Standards Findings
- Status: FAIL
- Nullable: enable
- TreatWarningsAsErrors: inherited false
- Deterministic: inherited true
- 100-line rule violations: 2
- Namespace violations: 0
- Using directive violations: 0
- Naming violations (interfaces/fields/const/async): 4
- Service locator usage (BuildServiceProvider/GetService): 3
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.Timestamping.Tests/TimestampingPluginIntegrationTests.cs (154 lines)
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.Timestamping.Tests/Checks/TsaHealthChecksTests.cs (143 lines)
- Namespace issues:
- none
- Using directive issues:
- none
- Naming issues:
- none
- Async issues:
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.Timestamping.Tests/Checks/EvidenceChecksTests.cs: async method naming
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.Timestamping.Tests/Checks/EvidenceChecksTests.cs: missing ConfigureAwait(false)
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.Timestamping.Tests/Checks/TsaHealthChecksTests.cs: async method naming
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.Timestamping.Tests/Checks/TsaHealthChecksTests.cs: missing ConfigureAwait(false)
- Service locator matches:
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.Timestamping.Tests/TimestampingPluginIntegrationTests.cs:85 var provider = services.BuildServiceProvider();
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.Timestamping.Tests/TimestampingPluginIntegrationTests.cs:88 var tsaOptions = provider.GetService<IOptions<TsaHealthCheckOptions>>();
- src/Doctor/__Tests/StellaOps.Doctor.Plugin.Timestamping.Tests/TimestampingPluginIntegrationTests.cs:91 var remediationOptions = provider.GetService<IOptions<AutoRemediationOptions>>();
- Assembly.LoadFrom matches:
- none
### Fix Guidance
- Remove overrides that disable TreatWarningsAsErrors.
- Rename async methods and avoid blocking async calls.
- Replace service locator usage with constructor injection.
- Split files over 100 lines into smaller types or partials.
## File-Level Findings
- Status: FAIL
- Files scanned: 4
- Files with issues: 3
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Doctor/__Tests/StellaOps.Doctor.Plugin.Timestamping.Tests/TimestampingPluginIntegrationTests.cs | FileLength>100; ServiceLocator | Remove service locator usage; use constructor injection.; Split file to stay <= 100 lines. |
| src/Doctor/__Tests/StellaOps.Doctor.Plugin.Timestamping.Tests/Checks/EvidenceChecksTests.cs | AsyncNaming; ConfigureAwaitMissing | Add ConfigureAwait(false) to awaited calls in library-like code.; Rename async methods to end with Async. |
| src/Doctor/__Tests/StellaOps.Doctor.Plugin.Timestamping.Tests/Checks/TsaHealthChecksTests.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100 | Add ConfigureAwait(false) to awaited calls in library-like code.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
## Testing Fullness Findings
- Status: PASS
- Expected layers (heuristic):
- Detected test projects: none
- Missing layers: none
### Manual checks required
- Observability contract tests for WebService/Worker.
- Intent tags for regulatory modules (Policy, Authority, Signer, Attestor, EvidenceLocker).
- Offline execution (tests must run without network access).
- Coverage matrix alignment (docs/technical/testing/TEST_COVERAGE_MATRIX.md).
### Fix Guidance
- None.

View File

@@ -0,0 +1,76 @@
# Audit - StellaOps.Doctor.WebService.Tests
## Project
- Path: src/Doctor/__Tests/StellaOps.Doctor.WebService.Tests/StellaOps.Doctor.WebService.Tests.csproj
- Module: Doctor
- Kind: Test
- Audit date (UTC): 2026-01-31
- Files scanned: 3
- Files with issues: 3
- File-level report: docs/implplan/audits/csproj-standards/file-audit.csv
## Coding Standards Findings
- Status: FAIL
- Nullable: enable
- TreatWarningsAsErrors: explicit true
- Deterministic: inherited true
- 100-line rule violations: 3
- Namespace violations: 0
- Using directive violations: 2
- Naming violations (interfaces/fields/const/async): 4
- Service locator usage (BuildServiceProvider/GetService): 0
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Doctor/__Tests/StellaOps.Doctor.WebService.Tests/Options/DoctorServiceOptionsTests.cs (122 lines)
- src/Doctor/__Tests/StellaOps.Doctor.WebService.Tests/Services/DoctorRunServiceTests.cs (157 lines)
- src/Doctor/__Tests/StellaOps.Doctor.WebService.Tests/Services/InMemoryReportStorageServiceTests.cs (173 lines)
- Namespace issues:
- none
- Using directive issues:
- src/Doctor/__Tests/StellaOps.Doctor.WebService.Tests/Services/DoctorRunServiceTests.cs: using directives not sorted
- src/Doctor/__Tests/StellaOps.Doctor.WebService.Tests/Services/InMemoryReportStorageServiceTests.cs: using directives not sorted
- Naming issues:
- none
- Async issues:
- src/Doctor/__Tests/StellaOps.Doctor.WebService.Tests/Services/DoctorRunServiceTests.cs: async method naming
- src/Doctor/__Tests/StellaOps.Doctor.WebService.Tests/Services/DoctorRunServiceTests.cs: missing ConfigureAwait(false)
- src/Doctor/__Tests/StellaOps.Doctor.WebService.Tests/Services/InMemoryReportStorageServiceTests.cs: async method naming
- src/Doctor/__Tests/StellaOps.Doctor.WebService.Tests/Services/InMemoryReportStorageServiceTests.cs: missing ConfigureAwait(false)
- Service locator matches:
- none
- Assembly.LoadFrom matches:
- none
### Fix Guidance
- Move and sort using directives (outside namespace).
- Rename async methods and avoid blocking async calls.
- Split files over 100 lines into smaller types or partials.
## File-Level Findings
- Status: FAIL
- Files scanned: 3
- Files with issues: 3
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Doctor/__Tests/StellaOps.Doctor.WebService.Tests/Options/DoctorServiceOptionsTests.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Doctor/__Tests/StellaOps.Doctor.WebService.Tests/Services/DoctorRunServiceTests.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; UsingNotSorted | Add ConfigureAwait(false) to awaited calls in library-like code.; Rename async methods to end with Async.; Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Doctor/__Tests/StellaOps.Doctor.WebService.Tests/Services/InMemoryReportStorageServiceTests.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; UsingNotSorted | Add ConfigureAwait(false) to awaited calls in library-like code.; Rename async methods to end with Async.; Sort using directives alphabetically.; Split file to stay <= 100 lines. |
## Testing Fullness Findings
- Status: PASS
- Expected layers (heuristic):
- Detected test projects: none
- Missing layers: none
### Manual checks required
- Observability contract tests for WebService/Worker.
- Intent tags for regulatory modules (Policy, Authority, Signer, Attestor, EvidenceLocker).
- Offline execution (tests must run without network access).
- Coverage matrix alignment (docs/technical/testing/TEST_COVERAGE_MATRIX.md).
### Fix Guidance
- None.