9.9 KiB
9.9 KiB
Audit - StellaOps.VexLens
Project
- Path:
src/VexLens/StellaOps.VexLens/StellaOps.VexLens.csproj - Module:
VexLens - 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: 92
- Service locator usage (BuildServiceProvider/GetService): 2
- Analyzer enforcement: missing repo-wide (see summary).
Details
- 100-line files:
src/VexLens/StellaOps.VexLens/Consensus/VexConsensusEngine.cs(1295 lines)src/VexLens/StellaOps.VexLens/Api/IVexLensApiService.cs(775 lines)src/VexLens/StellaOps.VexLens/Api/TrustScorecardApiModels.cs(696 lines)src/VexLens/StellaOps.VexLens/Normalization/CsafVexNormalizer.cs(693 lines)src/VexLens/StellaOps.VexLens/Normalization/CycloneDxVexNormalizer.cs(640 lines)src/VexLens/StellaOps.VexLens/Export/IConsensusExportService.cs(589 lines)src/VexLens/StellaOps.VexLens/Trust/SourceTrust/TrustDecayCalculator.cs(582 lines)src/VexLens/StellaOps.VexLens/Api/IConsensusRationaleService.cs(565 lines)src/VexLens/StellaOps.VexLens/Storage/PostgresConsensusProjectionStoreProxy.cs(558 lines)src/VexLens/StellaOps.VexLens/Conditions/ConditionEvaluator.cs(546 lines)src/VexLens/StellaOps.VexLens/Proof/VexProofBuilder.cs(545 lines)src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/Proof/VexProofBuilderTests.cs(544 lines)src/VexLens/StellaOps.VexLens/Testing/VexLensTestHarness.cs(538 lines)src/VexLens/StellaOps.VexLens/Integration/PolicyEngineIntegration.cs(522 lines)src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Normalization/VexLensNormalizer.cs(517 lines)src/VexLens/StellaOps.VexLens/Trust/SourceTrust/SourceTrustScoreCalculator.cs(514 lines)src/VexLens/StellaOps.VexLens/Normalization/OpenVexNormalizer.cs(498 lines)src/VexLens/StellaOps.VexLens/Orchestration/IConsensusJobService.cs(483 lines)src/VexLens/StellaOps.VexLens/NoiseGate/NoiseGateService.cs(482 lines)src/VexLens/StellaOps.VexLens/Caching/IConsensusRationaleCache.cs(480 lines)src/VexLens/StellaOps.VexLens/Api/ConsensusRationaleModels.cs(477 lines)src/VexLens/StellaOps.VexLens/Proof/VexProof.cs(475 lines)src/VexLens/StellaOps.VexLens/Observability/VexLensMetrics.cs(452 lines)src/VexLens/StellaOps.VexLens/Trust/TrustWeightEngine.cs(445 lines)src/VexLens/StellaOps.VexLens/Storage/InMemoryConsensusProjectionStore.cs(438 lines)src/VexLens/StellaOps.VexLens/Trust/SourceTrust/ITrustDecayService.cs(435 lines)src/VexLens/StellaOps.VexLens/Orchestration/OrchestratorLedgerEventEmitter.cs(434 lines)src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Core.Tests/Normalization/VexLensNormalizerTests.cs(427 lines)src/VexLens/StellaOps.VexLens/Verification/SignatureVerifier.cs(424 lines)src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Signature/SignatureVerifier.cs(423 lines)src/VexLens/StellaOps.VexLens/Trust/SourceTrust/ISourceTrustScoreCalculator.cs(421 lines)src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Consensus/VexConsensusEngine.cs(400 lines)src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Models/NormalizedVexDocument.cs(399 lines)src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/Propagation/PropagationRuleEngineTests.cs(373 lines)src/VexLens/StellaOps.VexLens/Extensions/VexLensServiceCollectionExtensions.cs(372 lines)src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/Conditions/ConditionEvaluatorTests.cs(361 lines)src/VexLens/StellaOps.VexLens/Delta/DeltaReportBuilder.cs(347 lines)src/VexLens/StellaOps.VexLens/Trust/SourceTrust/IProvenanceChainValidator.cs(347 lines)src/VexLens/StellaOps.VexLens/Trust/SourceTrust/ProvenanceChainValidator.cs(341 lines)src/VexLens/StellaOps.VexLens/Mapping/CpeParser.cs(331 lines)src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/ProductMapping/ProductMapper.cs(327 lines)src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/Regression/VexLensRegressionTests.cs(327 lines)src/VexLens/StellaOps.VexLens/Api/ConsensusApiModels.cs(321 lines)src/VexLens/StellaOps.VexLens/Services/VexDeltaComputeService.cs(319 lines)src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/GoldenCorpus/GoldenCorpusTestRunner.cs(317 lines)src/VexLens/StellaOps.VexLens/Verification/InMemoryIssuerDirectory.cs(316 lines)src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Core.Tests/ProductMapping/ProductMapperTests.cs(315 lines)src/VexLens/StellaOps.VexLens/Consensus/IVexConsensusEngine.cs(314 lines)src/VexLens/StellaOps.VexLens/NoiseGate/INoiseGate.cs(310 lines)src/VexLens/StellaOps.VexLens/Trust/SourceTrust/VexSourceTrustScore.cs(310 lines)src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Trust/PatchVerificationTrustProvider.cs(308 lines)src/VexLens/StellaOps.VexLens/Storage/DualWriteConsensusProjectionStore.cs(307 lines)src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Trust/TrustWeightEngine.cs(306 lines)src/VexLens/StellaOps.VexLens/Mapping/ProductMapper.cs(301 lines)src/VexLens/StellaOps.VexLens/Trust/SourceTrust/TrustDecayService.cs(298 lines)src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/Proof/VexProofShuffleDeterminismTests.cs(296 lines)src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/E2E/VexLensPipelineDeterminismTests.cs(294 lines)src/VexLens/StellaOps.VexLens/Integration/VexSignalEmitter.cs(292 lines)src/VexLens/StellaOps.VexLens/Integration/IPolicyEngineIntegration.cs(291 lines)src/VexLens/StellaOps.VexLens/Options/VexLensOptions.cs(280 lines)src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/GoldenCorpus/GoldenCorpusTests.cs(279 lines)src/VexLens/StellaOps.VexLens/Propagation/PropagationRuleEngine.cs(265 lines)src/VexLens/StellaOps.VexLens/Mapping/ProductIdentityMatcher.cs(259 lines)src/VexLens/StellaOps.VexLens/Mapping/PurlParser.cs(253 lines)src/VexLens/StellaOps.VexLens/Proof/VexProofSerializer.cs(248 lines)src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Signature/ISignatureVerifier.cs(238 lines)src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Trust/ITrustWeightEngine.cs(237 lines)src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/GoldenCorpus/GoldenCorpusLoader.cs(224 lines)src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/GoldenCorpus/GoldenCorpusModels.cs(214 lines)src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/ProductMapping/PurlParser.cs(212 lines)src/VexLens/StellaOps.VexLens/Storage/IConsensusProjectionStore.cs(210 lines)src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Signature/InMemoryIssuerDirectory.cs(210 lines)src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/ProductMapping/CpeParser.cs(207 lines)src/VexLens/StellaOps.VexLens/Verification/IIssuerDirectory.cs(206 lines)src/VexLens/StellaOps.VexLens/Api/NoiseGatingApiModels.cs(205 lines)src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Consensus/IVexConsensusEngine.cs(188 lines)src/VexLens/StellaOps.VexLens/Models/NormalizedVexModels.cs(186 lines)src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Core.Tests/ProductMapping/CpeParserTests.cs(184 lines)src/VexLens/StellaOps.VexLens/Delta/DeltaReport.cs(183 lines)src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Signature/IIssuerDirectory.cs(182 lines)src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/ProductMapping/IProductMapper.cs(182 lines)src/VexLens/StellaOps.VexLens/Verification/ISignatureVerifier.cs(182 lines)src/VexLens/StellaOps.VexLens/Propagation/IPropagationRuleEngine.cs(172 lines)src/VexLens/StellaOps.VexLens/Mapping/IProductMapper.cs(169 lines)src/VexLens/StellaOps.VexLens/Normalization/IVexNormalizer.cs(164 lines)src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/Storage/DualWriteConsensusProjectionStoreTests.cs(160 lines)src/VexLens/StellaOps.VexLens/Trust/ITrustWeightEngine.cs(152 lines)src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Core.Tests/ProductMapping/PurlParserTests.cs(143 lines)src/VexLens/StellaOps.VexLens/Mapping/VexDeltaMapper.cs(143 lines)src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/Caching/ConsensusRationaleCacheTests.cs(138 lines)src/VexLens/StellaOps.VexLens/NoiseGate/NoiseGateOptions.cs(122 lines)src/VexLens/StellaOps.VexLens/Orchestration/ConsensusJobTypes.cs(119 lines)
- Service locator matches:
src/VexLens/StellaOps.VexLens/Extensions/VexLensServiceCollectionExtensions.cs:87 var guidProvider = sp.GetService() ?? SystemGuidProvider.Instance;src/VexLens/StellaOps.VexLens/Extensions/VexLensServiceCollectionExtensions.cs:252 var emitter = sp.GetService();
Fix Guidance
- Split files over 100 lines into smaller types or partials.
- Replace service locator usage with constructor injection.
Testing Fullness Findings
- Status: PASS
- Expected layers: Unit
- Detected test projects: src/VexLens/__Tests/StellaOps.VexLens.Tests/StellaOps.VexLens.Tests.csproj [Unit], src/VexLens/__Libraries/__Tests/StellaOps.VexLens.Spdx3.Tests/StellaOps.VexLens.Spdx3.Tests.csproj [Unit], src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/StellaOps.VexLens.Tests.csproj [Unit], src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Core.Tests/StellaOps.VexLens.Core.Tests.csproj [Unit]
- Missing layers: none
Manual checks required
- Observability contract tests for WebService/Worker.
- Offline execution (tests must run without network access).
Fix Guidance
- None.