Files
git.stella-ops.org/docs/implplan-blocked/audits/csproj-standards/Policy/StellaOps.Policy.Registry/StellaOps.Policy.Registry.md

4.2 KiB

Audit - StellaOps.Policy.Registry

Project

  • Path: src/Policy/StellaOps.Policy.Registry/StellaOps.Policy.Registry.csproj
  • Module: Policy
  • Kind: Service
  • SDK: Microsoft.NET.Sdk
  • TargetFramework: net10.0
  • Audit date (UTC): 2026-01-30

Coding Standards Findings

  • Status: FAIL
  • Nullable: enable
  • TreatWarningsAsErrors: explicit true
  • Deterministic: inherited true
  • 100-line rule violations: 34
  • Service locator usage (BuildServiceProvider/GetService): 1
  • Analyzer enforcement: missing repo-wide (see summary).

Details

  • 100-line files:
    • src/Policy/StellaOps.Policy.Registry/PolicyRegistryClient.cs (634 lines)
    • src/Policy/StellaOps.Policy.Registry/Distribution/PolicyPackOciPublisher.cs (622 lines)
    • src/Policy/StellaOps.Policy.Registry/Distribution/PolicyPackOfflineBundleService.cs (514 lines)
    • src/Policy/StellaOps.Policy.Registry/Services/PromotionService.cs (477 lines)
    • src/Policy/StellaOps.Policy.Registry/Services/PublishPipelineService.cs (443 lines)
    • src/Policy/StellaOps.Policy.Registry/Services/BatchSimulationOrchestrator.cs (410 lines)
    • src/Policy/StellaOps.Policy.Registry/Services/PolicySimulationService.cs (401 lines)
    • src/Policy/StellaOps.Policy.Registry/Services/ReviewWorkflowService.cs (360 lines)
    • src/Policy/StellaOps.Policy.Registry/Services/PolicyPackCompiler.cs (299 lines)
    • src/Policy/StellaOps.Policy.Registry/Contracts/PolicyPackContracts.cs (287 lines)
    • src/Policy/StellaOps.Policy.Registry/Services/IPublishPipelineService.cs (286 lines)
    • src/Policy/StellaOps.Policy.Registry/Testing/PolicyRegistryTestFixtures.cs (277 lines)
    • src/Policy/StellaOps.Policy.Registry/Services/IPromotionService.cs (276 lines)
    • src/Policy/StellaOps.Policy.Registry/Storage/InMemoryPolicyPackStore.cs (266 lines)
    • src/Policy/StellaOps.Policy.Registry/Telemetry/PolicyRegistryMetrics.cs (261 lines)
    • src/Policy/StellaOps.Policy.Registry/Services/IReviewWorkflowService.cs (242 lines)
    • src/Policy/StellaOps.Policy.Registry/Storage/Entities.cs (232 lines)
    • src/Policy/StellaOps.Policy.Registry/IPolicyRegistryClient.cs (214 lines)
    • src/Policy/StellaOps.Policy.Registry/Storage/IPolicyPackStore.cs (212 lines)
    • src/Policy/StellaOps.Policy.Registry/PolicyRegistryServiceCollectionExtensions.cs (184 lines)
    • src/Policy/StellaOps.Policy.Registry/Telemetry/PolicyRegistryActivitySource.cs (180 lines)
    • src/Policy/StellaOps.Policy.Registry/Services/IBatchSimulationOrchestrator.cs (180 lines)
    • src/Policy/StellaOps.Policy.Registry/Testing/PolicyRegistryTestHarness.cs (148 lines)
    • src/Policy/StellaOps.Policy.Registry/Contracts/VerificationPolicyContracts.cs (145 lines)
    • src/Policy/StellaOps.Policy.Registry/Storage/InMemoryViolationStore.cs (145 lines)
    • src/Policy/StellaOps.Policy.Registry/Telemetry/PolicyRegistryLogEvents.cs (143 lines)
    • src/Policy/StellaOps.Policy.Registry/Storage/InMemoryVerificationPolicyStore.cs (127 lines)
    • src/Policy/StellaOps.Policy.Registry/Distribution/IPolicyPackOciPublisher.cs (126 lines)
    • src/Policy/StellaOps.Policy.Registry/Contracts/SealedModeContracts.cs (121 lines)
    • src/Policy/StellaOps.Policy.Registry/Storage/InMemorySnapshotStore.cs (121 lines)
    • src/Policy/StellaOps.Policy.Registry/Services/IPolicyPackCompiler.cs (115 lines)
    • src/Policy/StellaOps.Policy.Registry/Storage/InMemoryOverrideStore.cs (114 lines)
    • src/Policy/StellaOps.Policy.Registry/Contracts/ViolationContracts.cs (114 lines)
    • src/Policy/StellaOps.Policy.Registry/Contracts/OverrideContracts.cs (109 lines)
  • Service locator matches:
    • src/Policy/StellaOps.Policy.Registry/Testing/PolicyRegistryTestHarness.cs:37 _serviceProvider = services.BuildServiceProvider();

Fix Guidance

  • Split files over 100 lines into smaller types or partials.
  • Replace service locator usage with constructor injection.

Testing Fullness Findings

  • Status: FAIL
  • Expected layers: Unit
  • Detected test projects: none
  • Missing layers: Unit

Manual checks required

  • Observability contract tests for WebService/Worker.
  • Intent tagging required for regulatory modules.
  • Offline execution (tests must run without network access).

Fix Guidance

  • Add a unit test project named <Project>.Tests (or document exception).