# Audit - StellaOps.AirGap.Controller ## Project - Path: ../src/AirGap/StellaOps.AirGap.Controller/StellaOps.AirGap.Controller.csproj - Module: .. - Kind: Library - Audit date (UTC): 2026-01-30 - Files scanned: 26 - Files with issues: 24 - 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: 24 - 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/AirGap/StellaOps.AirGap.Controller/Auth/HeaderScopeAuthenticationHandler.cs (106 lines) - ../src/AirGap/StellaOps.AirGap.Controller/Endpoints/AirGapEndpoints.cs (268 lines) - ../src/AirGap/StellaOps.AirGap.Controller/Endpoints/RequestValidation.cs (108 lines) - ../src/AirGap/StellaOps.AirGap.Controller/Services/AirGapStartupDiagnosticsHostedService.cs (175 lines) - ../src/AirGap/StellaOps.AirGap.Controller/Services/AirGapStateService.cs (119 lines) - ../src/AirGap/StellaOps.AirGap.Controller/Services/AirGapTelemetry.cs (178 lines) - Namespace issues: - ../src/AirGap/StellaOps.AirGap.Controller/Auth/HeaderScopeAuthenticationHandler.cs: missing namespace - ../src/AirGap/StellaOps.AirGap.Controller/DependencyInjection/AirGapControllerServiceCollectionExtensions.cs: missing namespace - ../src/AirGap/StellaOps.AirGap.Controller/Domain/AirGapState.cs: missing namespace - ../src/AirGap/StellaOps.AirGap.Controller/Endpoints/AirGapEndpoints.cs: missing namespace - ../src/AirGap/StellaOps.AirGap.Controller/Endpoints/RequestValidation.cs: missing namespace - ../src/AirGap/StellaOps.AirGap.Controller/Endpoints/Contracts/AirGapStatusResponse.cs: missing namespace - ../src/AirGap/StellaOps.AirGap.Controller/Endpoints/Contracts/SealRequest.cs: missing namespace - ../src/AirGap/StellaOps.AirGap.Controller/Endpoints/Contracts/VerifyRequest.cs: missing namespace - ../src/AirGap/StellaOps.AirGap.Controller/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace - ../src/AirGap/StellaOps.AirGap.Controller/obj/Debug/net10.0/StellaOps.AirGap.Controller.AssemblyInfo.cs: missing namespace - ../src/AirGap/StellaOps.AirGap.Controller/obj/Debug/net10.0/StellaOps.AirGap.Controller.GlobalUsings.g.cs: missing namespace - ../src/AirGap/StellaOps.AirGap.Controller/obj/Debug/net10.0/StellaOps.AirGap.Controller.MvcApplicationPartsAssemblyInfo.cs: missing namespace - ../src/AirGap/StellaOps.AirGap.Controller/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace - ../src/AirGap/StellaOps.AirGap.Controller/obj/Release/net10.0/StellaOps.AirGap.Controller.AssemblyInfo.cs: missing namespace - ../src/AirGap/StellaOps.AirGap.Controller/obj/Release/net10.0/StellaOps.AirGap.Controller.GlobalUsings.g.cs: missing namespace - ../src/AirGap/StellaOps.AirGap.Controller/obj/Release/net10.0/StellaOps.AirGap.Controller.MvcApplicationPartsAssemblyInfo.cs: missing namespace - ../src/AirGap/StellaOps.AirGap.Controller/Options/AirGapStartupOptions.cs: missing namespace - ../src/AirGap/StellaOps.AirGap.Controller/Options/AirGapTelemetryOptions.cs: missing namespace - ../src/AirGap/StellaOps.AirGap.Controller/Services/AirGapStartupDiagnosticsHostedService.cs: missing namespace - ../src/AirGap/StellaOps.AirGap.Controller/Services/AirGapStateService.cs: missing namespace - ../src/AirGap/StellaOps.AirGap.Controller/Services/AirGapTelemetry.cs: missing namespace - ../src/AirGap/StellaOps.AirGap.Controller/Services/ReplayVerificationService.cs: missing namespace - ../src/AirGap/StellaOps.AirGap.Controller/Stores/IAirGapStateStore.cs: missing namespace - ../src/AirGap/StellaOps.AirGap.Controller/Stores/InMemoryAirGapStateStore.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.. - Split files over 100 lines into smaller types or partials. ## File-Level Findings - Status: FAIL - Files scanned: 26 - Files with issues: 24 - See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status. | File | Issues | Fix guidance | | --- | --- | --- | | ../src/AirGap/StellaOps.AirGap.Controller/Auth/HeaderScopeAuthenticationHandler.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.;; Split file to stay <= 100 lines. | | ../src/AirGap/StellaOps.AirGap.Controller/DependencyInjection/AirGapControllerServiceCollectionExtensions.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.; | | ../src/AirGap/StellaOps.AirGap.Controller/Domain/AirGapState.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.; | | ../src/AirGap/StellaOps.AirGap.Controller/Endpoints/AirGapEndpoints.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.;; Split file to stay <= 100 lines. | | ../src/AirGap/StellaOps.AirGap.Controller/Endpoints/RequestValidation.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.;; Split file to stay <= 100 lines. | | ../src/AirGap/StellaOps.AirGap.Controller/Endpoints/Contracts/AirGapStatusResponse.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.; | | ../src/AirGap/StellaOps.AirGap.Controller/Endpoints/Contracts/SealRequest.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.; | | ../src/AirGap/StellaOps.AirGap.Controller/Endpoints/Contracts/VerifyRequest.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.; | | ../src/AirGap/StellaOps.AirGap.Controller/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.; | | ../src/AirGap/StellaOps.AirGap.Controller/obj/Debug/net10.0/StellaOps.AirGap.Controller.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.; | | ../src/AirGap/StellaOps.AirGap.Controller/obj/Debug/net10.0/StellaOps.AirGap.Controller.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.; | | ../src/AirGap/StellaOps.AirGap.Controller/obj/Debug/net10.0/StellaOps.AirGap.Controller.MvcApplicationPartsAssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.; | | ../src/AirGap/StellaOps.AirGap.Controller/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.; | | ../src/AirGap/StellaOps.AirGap.Controller/obj/Release/net10.0/StellaOps.AirGap.Controller.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.; | | ../src/AirGap/StellaOps.AirGap.Controller/obj/Release/net10.0/StellaOps.AirGap.Controller.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.; | | ../src/AirGap/StellaOps.AirGap.Controller/obj/Release/net10.0/StellaOps.AirGap.Controller.MvcApplicationPartsAssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.; | | ../src/AirGap/StellaOps.AirGap.Controller/Options/AirGapStartupOptions.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.; | | ../src/AirGap/StellaOps.AirGap.Controller/Options/AirGapTelemetryOptions.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.; | | ../src/AirGap/StellaOps.AirGap.Controller/Services/AirGapStartupDiagnosticsHostedService.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.;; Split file to stay <= 100 lines. | | ../src/AirGap/StellaOps.AirGap.Controller/Services/AirGapStateService.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.;; Split file to stay <= 100 lines. | | ../src/AirGap/StellaOps.AirGap.Controller/Services/AirGapTelemetry.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.;; Split file to stay <= 100 lines. | | ../src/AirGap/StellaOps.AirGap.Controller/Services/ReplayVerificationService.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.; | | ../src/AirGap/StellaOps.AirGap.Controller/Stores/IAirGapStateStore.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.; | | ../src/AirGap/StellaOps.AirGap.Controller/Stores/InMemoryAirGapStateStore.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.; | ## Testing Fullness Findings - Status: FAIL - Expected layers (heuristic): Unit - Detected test projects: ../src/AirGap/__Tests/StellaOps.AirGap.Controller.Tests/StellaOps.AirGap.Controller.Tests.csproj [Offline]; ../src/AirGap/__Tests/StellaOps.AirGap.Persistence.Tests/StellaOps.AirGap.Persistence.Tests.csproj [Offline] - 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.