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

2.6 KiB

Audit - StellaOps.Plugin.Abstractions

Project

  • Path: src/Plugin/StellaOps.Plugin.Abstractions/StellaOps.Plugin.Abstractions.csproj
  • Module: Plugin
  • Kind: Plugin
  • 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: 13
  • Service locator usage (BuildServiceProvider/GetService): 1
  • Analyzer enforcement: missing repo-wide (see summary).

Details

  • 100-line files:
    • src/Plugin/StellaOps.Plugin.Abstractions/Capabilities/ITransportCapability.cs (287 lines)
    • src/Plugin/StellaOps.Plugin.Abstractions/Capabilities/IAnalysisCapability.cs (221 lines)
    • src/Plugin/StellaOps.Plugin.Abstractions/Capabilities/IAuthCapability.cs (220 lines)
    • src/Plugin/StellaOps.Plugin.Abstractions/Manifest/PluginManifest.cs (216 lines)
    • src/Plugin/StellaOps.Plugin.Abstractions/Capabilities/IFeedCapability.cs (197 lines)
    • src/Plugin/StellaOps.Plugin.Abstractions/Capabilities/IScmCapability.cs (194 lines)
    • src/Plugin/StellaOps.Plugin.Abstractions/Attributes/PluginAttribute.cs (185 lines)
    • src/Plugin/StellaOps.Plugin.Abstractions/PluginCapabilities.cs (159 lines)
    • src/Plugin/StellaOps.Plugin.Abstractions/Capabilities/ICryptoCapability.cs (141 lines)
    • src/Plugin/StellaOps.Plugin.Abstractions/Capabilities/ILlmCapability.cs (140 lines)
    • src/Plugin/StellaOps.Plugin.Abstractions/Lifecycle/PluginLifecycleException.cs (134 lines)
    • src/Plugin/StellaOps.Plugin.Abstractions/Execution/LoadedPlugin.cs (133 lines)
    • src/Plugin/StellaOps.Plugin.Abstractions/Context/IPluginContext.cs (120 lines)
  • Service locator matches:
    • src/Plugin/StellaOps.Plugin.Abstractions/Context/IPluginContext.cs:104 T? GetService() where T : class;

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, Integration, Security, Offline
  • Detected test projects: src/Plugin/__Tests/StellaOps.Plugin.Abstractions.Tests/StellaOps.Plugin.Abstractions.Tests.csproj [Unit]
  • Missing layers: Integration, Security, Offline

Manual checks required

  • Observability contract tests for WebService/Worker.
  • Offline execution (tests must run without network access).

Fix Guidance

  • Add integration tests for cross-component flows.
  • Add security tests for authn/authz or input validation.
  • Add offline/airgap coverage with fixtures only.