semi implemented and features implemented save checkpoint

This commit is contained in:
master
2026-02-08 18:00:49 +02:00
parent 04360dff63
commit 1bf6bbf395
20895 changed files with 716795 additions and 64 deletions

View File

@@ -0,0 +1,84 @@
# Audit - StellaOps.VexLens.Persistence
## Project
- Path: src/VexLens/StellaOps.VexLens.Persistence/StellaOps.VexLens.Persistence.csproj
- Module: VexLens
- Kind: Library
- Audit date (UTC): 2026-01-30
- Files scanned: 8
- 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: 3
- Namespace violations: 8
- 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/VexLens/StellaOps.VexLens.Persistence/Postgres/PostgresConsensusProjectionStore.cs (588 lines)
- src/VexLens/StellaOps.VexLens.Persistence/Repositories/ConsensusProjectionRepository.cs (285 lines)
- src/VexLens/StellaOps.VexLens.Persistence/Repositories/IConsensusProjectionRepository.cs (118 lines)
- Namespace issues:
- src/VexLens/StellaOps.VexLens.Persistence/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/VexLens/StellaOps.VexLens.Persistence/obj/Debug/net10.0/StellaOps.VexLens.Persistence.AssemblyInfo.cs: missing namespace
- src/VexLens/StellaOps.VexLens.Persistence/obj/Debug/net10.0/StellaOps.VexLens.Persistence.GlobalUsings.g.cs: missing namespace
- src/VexLens/StellaOps.VexLens.Persistence/obj/Release/net10.0/StellaOps.VexLens.Persistence.GlobalUsings.g.cs: missing namespace
- src/VexLens/StellaOps.VexLens.Persistence/Postgres/PostgresConsensusProjectionStore.cs: missing namespace
- src/VexLens/StellaOps.VexLens.Persistence/Postgres/VexLensDataSource.cs: missing namespace
- src/VexLens/StellaOps.VexLens.Persistence/Repositories/ConsensusProjectionRepository.cs: missing namespace
- src/VexLens/StellaOps.VexLens.Persistence/Repositories/IConsensusProjectionRepository.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: 8
- Files with issues: 8
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/VexLens/StellaOps.VexLens.Persistence/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/VexLens/StellaOps.VexLens.Persistence/obj/Debug/net10.0/StellaOps.VexLens.Persistence.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/VexLens/StellaOps.VexLens.Persistence/obj/Debug/net10.0/StellaOps.VexLens.Persistence.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/VexLens/StellaOps.VexLens.Persistence/obj/Release/net10.0/StellaOps.VexLens.Persistence.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/VexLens/StellaOps.VexLens.Persistence/Postgres/PostgresConsensusProjectionStore.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens.Persistence/Postgres/VexLensDataSource.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/VexLens/StellaOps.VexLens.Persistence/Repositories/ConsensusProjectionRepository.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens.Persistence/Repositories/IConsensusProjectionRepository.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): 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,76 @@
# Audit - StellaOps.VexLens.Persistence
## Project
- Path: src/VexLens/StellaOps.VexLens.Persistence/StellaOps.VexLens.Persistence.csproj
- Module: VexLens
- Kind: Library
- 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: explicit true
- Deterministic: inherited true
- 100-line rule violations: 3
- Namespace violations: 0
- Using directive violations: 1
- Naming violations (interfaces/fields/const/async): 4
- Service locator usage (BuildServiceProvider/GetService): 0
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/VexLens/StellaOps.VexLens.Persistence/Postgres/PostgresConsensusProjectionStore.cs (589 lines)
- src/VexLens/StellaOps.VexLens.Persistence/Repositories/ConsensusProjectionRepository.cs (286 lines)
- src/VexLens/StellaOps.VexLens.Persistence/Repositories/IConsensusProjectionRepository.cs (118 lines)
- Namespace issues:
- none
- Using directive issues:
- src/VexLens/StellaOps.VexLens.Persistence/Postgres/PostgresConsensusProjectionStore.cs: using directives inside namespace
- Naming issues:
- src/VexLens/StellaOps.VexLens.Persistence/Postgres/PostgresConsensusProjectionStore.cs: private field naming
- src/VexLens/StellaOps.VexLens.Persistence/Repositories/ConsensusProjectionRepository.cs: private field naming
- Async issues:
- src/VexLens/StellaOps.VexLens.Persistence/Postgres/PostgresConsensusProjectionStore.cs: missing ConfigureAwait(false)
- src/VexLens/StellaOps.VexLens.Persistence/Repositories/ConsensusProjectionRepository.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: 3
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/VexLens/StellaOps.VexLens.Persistence/Postgres/PostgresConsensusProjectionStore.cs | ConfigureAwaitMissing; FileLength>100; PrivateFieldNaming; UsingInsideNamespace | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Rename private fields to _camelCase.; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens.Persistence/Repositories/ConsensusProjectionRepository.cs | ConfigureAwaitMissing; FileLength>100; PrivateFieldNaming | Add ConfigureAwait(false) to awaited calls in library-like code.; Rename private fields to _camelCase.; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens.Persistence/Repositories/IConsensusProjectionRepository.cs | FileLength>100 | 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,83 @@
# Audit - StellaOps.VexLens.WebService
## Project
- Path: src/VexLens/StellaOps.VexLens.WebService/StellaOps.VexLens.WebService.csproj
- Module: VexLens
- Kind: Library
- Audit date (UTC): 2026-01-30
- Files scanned: 8
- 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: 3
- Namespace violations: 7
- 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/VexLens/StellaOps.VexLens.WebService/Program.cs (135 lines)
- src/VexLens/StellaOps.VexLens.WebService/Extensions/ExportEndpointExtensions.cs (618 lines)
- src/VexLens/StellaOps.VexLens.WebService/Extensions/VexLensEndpointExtensions.cs (460 lines)
- Namespace issues:
- src/VexLens/StellaOps.VexLens.WebService/Extensions/ExportEndpointExtensions.cs: missing namespace
- src/VexLens/StellaOps.VexLens.WebService/Extensions/VexLensEndpointExtensions.cs: missing namespace
- src/VexLens/StellaOps.VexLens.WebService/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/VexLens/StellaOps.VexLens.WebService/obj/Debug/net10.0/StellaOps.VexLens.WebService.AssemblyInfo.cs: missing namespace
- src/VexLens/StellaOps.VexLens.WebService/obj/Debug/net10.0/StellaOps.VexLens.WebService.GlobalUsings.g.cs: missing namespace
- src/VexLens/StellaOps.VexLens.WebService/obj/Debug/net10.0/StellaOps.VexLens.WebService.MvcApplicationPartsAssemblyInfo.cs: missing namespace
- src/VexLens/StellaOps.VexLens.WebService/obj/Release/net10.0/StellaOps.VexLens.WebService.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: 8
- Files with issues: 8
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/VexLens/StellaOps.VexLens.WebService/Program.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens.WebService/Extensions/ExportEndpointExtensions.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens.WebService/Extensions/VexLensEndpointExtensions.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens.WebService/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/VexLens/StellaOps.VexLens.WebService/obj/Debug/net10.0/StellaOps.VexLens.WebService.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/VexLens/StellaOps.VexLens.WebService/obj/Debug/net10.0/StellaOps.VexLens.WebService.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/VexLens/StellaOps.VexLens.WebService/obj/Debug/net10.0/StellaOps.VexLens.WebService.MvcApplicationPartsAssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/VexLens/StellaOps.VexLens.WebService/obj/Release/net10.0/StellaOps.VexLens.WebService.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,71 @@
# Audit - StellaOps.VexLens.WebService
## Project
- Path: src/VexLens/StellaOps.VexLens.WebService/StellaOps.VexLens.WebService.csproj
- Module: VexLens
- Kind: Service
- 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: 0
- Naming violations (interfaces/fields/const/async): 0
- Service locator usage (BuildServiceProvider/GetService): 0
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/VexLens/StellaOps.VexLens.WebService/Program.cs (136 lines)
- src/VexLens/StellaOps.VexLens.WebService/Extensions/ExportEndpointExtensions.cs (619 lines)
- src/VexLens/StellaOps.VexLens.WebService/Extensions/VexLensEndpointExtensions.cs (460 lines)
- Namespace issues:
- none
- Using directive issues:
- none
- Naming issues:
- none
- Async issues:
- none
- Service locator matches:
- none
- Assembly.LoadFrom matches:
- none
### Fix Guidance
- 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/VexLens/StellaOps.VexLens.WebService/Program.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens.WebService/Extensions/ExportEndpointExtensions.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens.WebService/Extensions/VexLensEndpointExtensions.cs | FileLength>100 | Split file to stay <= 100 lines. |
## Testing Fullness Findings
- Status: FAIL
- Expected layers (heuristic): E2E, Integration, Offline, Security, Unit
- Detected test projects: none
- Missing layers: E2E, Integration, Offline, Security, 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,121 @@
# Audit - StellaOps.VexLens.Core
## Project
- Path: src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/StellaOps.VexLens.Core.csproj
- Module: VexLens
- Kind: Library
- Audit date (UTC): 2026-01-30
- Files scanned: 21
- Files with issues: 21
- 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: 15
- Namespace violations: 21
- 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/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Consensus/IVexConsensusEngine.cs (189 lines)
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Consensus/VexConsensusEngine.cs (401 lines)
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Models/NormalizedVexDocument.cs (400 lines)
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Normalization/VexLensNormalizer.cs (518 lines)
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/ProductMapping/CpeParser.cs (208 lines)
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/ProductMapping/IProductMapper.cs (183 lines)
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/ProductMapping/ProductMapper.cs (328 lines)
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/ProductMapping/PurlParser.cs (213 lines)
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Signature/IIssuerDirectory.cs (183 lines)
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Signature/InMemoryIssuerDirectory.cs (211 lines)
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Signature/ISignatureVerifier.cs (239 lines)
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Signature/SignatureVerifier.cs (424 lines)
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Trust/ITrustWeightEngine.cs (238 lines)
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Trust/PatchVerificationTrustProvider.cs (309 lines)
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Trust/TrustWeightEngine.cs (307 lines)
- Namespace issues:
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Consensus/IVexConsensusEngine.cs: missing namespace
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Consensus/VexConsensusEngine.cs: missing namespace
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/DependencyInjection/VexLensServiceCollectionExtensions.cs: missing namespace
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Models/NormalizedVexDocument.cs: missing namespace
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Normalization/IVexLensNormalizer.cs: missing namespace
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Normalization/VexLensNormalizer.cs: missing namespace
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/obj/Debug/net10.0/StellaOps.VexLens.Core.AssemblyInfo.cs: missing namespace
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/obj/Debug/net10.0/StellaOps.VexLens.Core.GlobalUsings.g.cs: missing namespace
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/obj/Release/net10.0/StellaOps.VexLens.Core.GlobalUsings.g.cs: missing namespace
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/ProductMapping/CpeParser.cs: missing namespace
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/ProductMapping/IProductMapper.cs: missing namespace
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/ProductMapping/ProductMapper.cs: missing namespace
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/ProductMapping/PurlParser.cs: missing namespace
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Signature/IIssuerDirectory.cs: missing namespace
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Signature/InMemoryIssuerDirectory.cs: missing namespace
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Signature/ISignatureVerifier.cs: missing namespace
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Signature/SignatureVerifier.cs: missing namespace
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Trust/ITrustWeightEngine.cs: missing namespace
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Trust/PatchVerificationTrustProvider.cs: missing namespace
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Trust/TrustWeightEngine.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: 21
- Files with issues: 21
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Consensus/IVexConsensusEngine.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Consensus/VexConsensusEngine.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/DependencyInjection/VexLensServiceCollectionExtensions.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Models/NormalizedVexDocument.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Normalization/IVexLensNormalizer.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Normalization/VexLensNormalizer.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/obj/Debug/net10.0/StellaOps.VexLens.Core.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/obj/Debug/net10.0/StellaOps.VexLens.Core.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/obj/Release/net10.0/StellaOps.VexLens.Core.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/ProductMapping/CpeParser.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/ProductMapping/IProductMapper.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/ProductMapping/ProductMapper.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/ProductMapping/PurlParser.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Signature/IIssuerDirectory.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Signature/InMemoryIssuerDirectory.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Signature/ISignatureVerifier.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Signature/SignatureVerifier.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Trust/ITrustWeightEngine.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Trust/PatchVerificationTrustProvider.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Trust/TrustWeightEngine.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/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.
- 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.VexLens.Core
## Project
- Path: src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/StellaOps.VexLens.Core.csproj
- Module: VexLens
- Kind: Library
- Audit date (UTC): 2026-01-31
- Files scanned: 17
- 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: 15
- Namespace violations: 0
- Using directive violations: 2
- Naming violations (interfaces/fields/const/async): 6
- Service locator usage (BuildServiceProvider/GetService): 0
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Consensus/IVexConsensusEngine.cs (189 lines)
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Consensus/VexConsensusEngine.cs (401 lines)
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Models/NormalizedVexDocument.cs (400 lines)
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Normalization/VexLensNormalizer.cs (520 lines)
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/ProductMapping/CpeParser.cs (208 lines)
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/ProductMapping/IProductMapper.cs (183 lines)
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/ProductMapping/ProductMapper.cs (328 lines)
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/ProductMapping/PurlParser.cs (213 lines)
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Signature/IIssuerDirectory.cs (183 lines)
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Signature/InMemoryIssuerDirectory.cs (211 lines)
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Signature/ISignatureVerifier.cs (239 lines)
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Signature/SignatureVerifier.cs (426 lines)
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Trust/ITrustWeightEngine.cs (238 lines)
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Trust/PatchVerificationTrustProvider.cs (309 lines)
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Trust/TrustWeightEngine.cs (307 lines)
- Namespace issues:
- none
- Using directive issues:
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Normalization/VexLensNormalizer.cs: using directives inside namespace
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Signature/SignatureVerifier.cs: using directives inside namespace
- Naming issues:
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Consensus/VexConsensusEngine.cs: private field naming
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Normalization/VexLensNormalizer.cs: private field naming
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Signature/SignatureVerifier.cs: private field naming
- Async issues:
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Signature/InMemoryIssuerDirectory.cs: async method naming
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Signature/InMemoryIssuerDirectory.cs: missing ConfigureAwait(false)
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Signature/SignatureVerifier.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: 17
- Files with issues: 15
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Consensus/IVexConsensusEngine.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Consensus/VexConsensusEngine.cs | FileLength>100; PrivateFieldNaming | Rename private fields to _camelCase.; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Models/NormalizedVexDocument.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Normalization/VexLensNormalizer.cs | FileLength>100; PrivateFieldNaming; UsingInsideNamespace | Move using directives outside namespace.; Rename private fields to _camelCase.; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/ProductMapping/CpeParser.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/ProductMapping/IProductMapper.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/ProductMapping/ProductMapper.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/ProductMapping/PurlParser.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Signature/IIssuerDirectory.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Signature/InMemoryIssuerDirectory.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/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Signature/ISignatureVerifier.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Signature/SignatureVerifier.cs | ConfigureAwaitMissing; FileLength>100; PrivateFieldNaming; UsingInsideNamespace | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Rename private fields to _camelCase.; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Trust/ITrustWeightEngine.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Trust/PatchVerificationTrustProvider.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Trust/TrustWeightEngine.cs | FileLength>100 | Split file to stay <= 100 lines. |
## Testing Fullness Findings
- Status: PASS
- Expected layers (heuristic): Unit
- Detected test projects: 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.
- 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,404 @@
# Audit - StellaOps.VexLens
## Project
- Path: src/VexLens/StellaOps.VexLens/StellaOps.VexLens.csproj
- Module: VexLens
- Kind: Library
- Audit date (UTC): 2026-01-30
- Files scanned: 124
- Files with issues: 124
- 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: 92
- Namespace violations: 124
- 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/VexLens/StellaOps.VexLens/Api/ConsensusApiModels.cs (322 lines)
- src/VexLens/StellaOps.VexLens/Api/ConsensusRationaleModels.cs (478 lines)
- src/VexLens/StellaOps.VexLens/Api/IConsensusRationaleService.cs (566 lines)
- src/VexLens/StellaOps.VexLens/Api/IVexLensApiService.cs (776 lines)
- src/VexLens/StellaOps.VexLens/Api/NoiseGatingApiModels.cs (206 lines)
- src/VexLens/StellaOps.VexLens/Api/TrustScorecardApiModels.cs (697 lines)
- src/VexLens/StellaOps.VexLens/Caching/IConsensusRationaleCache.cs (481 lines)
- src/VexLens/StellaOps.VexLens/Conditions/ConditionEvaluator.cs (547 lines)
- src/VexLens/StellaOps.VexLens/Consensus/IVexConsensusEngine.cs (315 lines)
- src/VexLens/StellaOps.VexLens/Consensus/VexConsensusEngine.cs (1296 lines)
- src/VexLens/StellaOps.VexLens/Delta/DeltaReport.cs (184 lines)
- src/VexLens/StellaOps.VexLens/Delta/DeltaReportBuilder.cs (348 lines)
- src/VexLens/StellaOps.VexLens/Export/IConsensusExportService.cs (590 lines)
- src/VexLens/StellaOps.VexLens/Extensions/VexLensServiceCollectionExtensions.cs (373 lines)
- src/VexLens/StellaOps.VexLens/Integration/IPolicyEngineIntegration.cs (292 lines)
- src/VexLens/StellaOps.VexLens/Integration/PolicyEngineIntegration.cs (523 lines)
- src/VexLens/StellaOps.VexLens/Integration/VexSignalEmitter.cs (293 lines)
- src/VexLens/StellaOps.VexLens/Mapping/CpeParser.cs (332 lines)
- src/VexLens/StellaOps.VexLens/Mapping/IProductMapper.cs (170 lines)
- src/VexLens/StellaOps.VexLens/Mapping/ProductIdentityMatcher.cs (260 lines)
- src/VexLens/StellaOps.VexLens/Mapping/ProductMapper.cs (302 lines)
- src/VexLens/StellaOps.VexLens/Mapping/PurlParser.cs (254 lines)
- src/VexLens/StellaOps.VexLens/Mapping/VexDeltaMapper.cs (144 lines)
- src/VexLens/StellaOps.VexLens/Models/NormalizedVexModels.cs (187 lines)
- src/VexLens/StellaOps.VexLens/NoiseGate/INoiseGate.cs (311 lines)
- src/VexLens/StellaOps.VexLens/NoiseGate/NoiseGateOptions.cs (123 lines)
- src/VexLens/StellaOps.VexLens/NoiseGate/NoiseGateService.cs (483 lines)
- src/VexLens/StellaOps.VexLens/Normalization/CsafVexNormalizer.cs (694 lines)
- src/VexLens/StellaOps.VexLens/Normalization/CycloneDxVexNormalizer.cs (641 lines)
- src/VexLens/StellaOps.VexLens/Normalization/IVexNormalizer.cs (165 lines)
- src/VexLens/StellaOps.VexLens/Normalization/OpenVexNormalizer.cs (499 lines)
- src/VexLens/StellaOps.VexLens/Observability/VexLensMetrics.cs (453 lines)
- src/VexLens/StellaOps.VexLens/Options/VexLensOptions.cs (281 lines)
- src/VexLens/StellaOps.VexLens/Orchestration/ConsensusJobTypes.cs (120 lines)
- src/VexLens/StellaOps.VexLens/Orchestration/IConsensusJobService.cs (484 lines)
- src/VexLens/StellaOps.VexLens/Orchestration/OrchestratorLedgerEventEmitter.cs (435 lines)
- src/VexLens/StellaOps.VexLens/Proof/VexProof.cs (476 lines)
- src/VexLens/StellaOps.VexLens/Proof/VexProofBuilder.cs (546 lines)
- src/VexLens/StellaOps.VexLens/Proof/VexProofSerializer.cs (249 lines)
- src/VexLens/StellaOps.VexLens/Propagation/IPropagationRuleEngine.cs (173 lines)
- src/VexLens/StellaOps.VexLens/Propagation/PropagationRuleEngine.cs (266 lines)
- src/VexLens/StellaOps.VexLens/Services/VexDeltaComputeService.cs (320 lines)
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Consensus/IVexConsensusEngine.cs (189 lines)
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Consensus/VexConsensusEngine.cs (401 lines)
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Models/NormalizedVexDocument.cs (400 lines)
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Normalization/VexLensNormalizer.cs (518 lines)
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/ProductMapping/CpeParser.cs (208 lines)
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/ProductMapping/IProductMapper.cs (183 lines)
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/ProductMapping/ProductMapper.cs (328 lines)
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/ProductMapping/PurlParser.cs (213 lines)
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Signature/IIssuerDirectory.cs (183 lines)
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Signature/InMemoryIssuerDirectory.cs (211 lines)
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Signature/ISignatureVerifier.cs (239 lines)
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Signature/SignatureVerifier.cs (424 lines)
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Trust/ITrustWeightEngine.cs (238 lines)
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Trust/PatchVerificationTrustProvider.cs (309 lines)
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Trust/TrustWeightEngine.cs (307 lines)
- src/VexLens/StellaOps.VexLens/Storage/DualWriteConsensusProjectionStore.cs (308 lines)
- src/VexLens/StellaOps.VexLens/Storage/IConsensusProjectionStore.cs (211 lines)
- src/VexLens/StellaOps.VexLens/Storage/InMemoryConsensusProjectionStore.cs (439 lines)
- src/VexLens/StellaOps.VexLens/Storage/PostgresConsensusProjectionStoreProxy.cs (559 lines)
- src/VexLens/StellaOps.VexLens/Testing/VexLensTestHarness.cs (539 lines)
- src/VexLens/StellaOps.VexLens/Trust/ITrustWeightEngine.cs (153 lines)
- src/VexLens/StellaOps.VexLens/Trust/TrustWeightEngine.cs (446 lines)
- src/VexLens/StellaOps.VexLens/Trust/SourceTrust/IProvenanceChainValidator.cs (348 lines)
- src/VexLens/StellaOps.VexLens/Trust/SourceTrust/ISourceTrustScoreCalculator.cs (422 lines)
- src/VexLens/StellaOps.VexLens/Trust/SourceTrust/ITrustDecayService.cs (436 lines)
- src/VexLens/StellaOps.VexLens/Trust/SourceTrust/ProvenanceChainValidator.cs (342 lines)
- src/VexLens/StellaOps.VexLens/Trust/SourceTrust/SourceTrustScoreCalculator.cs (515 lines)
- src/VexLens/StellaOps.VexLens/Trust/SourceTrust/TrustDecayCalculator.cs (583 lines)
- src/VexLens/StellaOps.VexLens/Trust/SourceTrust/TrustDecayService.cs (299 lines)
- src/VexLens/StellaOps.VexLens/Trust/SourceTrust/VexSourceTrustScore.cs (311 lines)
- src/VexLens/StellaOps.VexLens/Verification/IIssuerDirectory.cs (207 lines)
- src/VexLens/StellaOps.VexLens/Verification/InMemoryIssuerDirectory.cs (317 lines)
- src/VexLens/StellaOps.VexLens/Verification/ISignatureVerifier.cs (183 lines)
- src/VexLens/StellaOps.VexLens/Verification/SignatureVerifier.cs (425 lines)
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Core.Tests/Normalization/VexLensNormalizerTests.cs (428 lines)
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Core.Tests/ProductMapping/CpeParserTests.cs (185 lines)
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Core.Tests/ProductMapping/ProductMapperTests.cs (316 lines)
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Core.Tests/ProductMapping/PurlParserTests.cs (144 lines)
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/Caching/ConsensusRationaleCacheTests.cs (139 lines)
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/Conditions/ConditionEvaluatorTests.cs (362 lines)
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/E2E/VexLensPipelineDeterminismTests.cs (295 lines)
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/GoldenCorpus/GoldenCorpusLoader.cs (225 lines)
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/GoldenCorpus/GoldenCorpusModels.cs (215 lines)
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/GoldenCorpus/GoldenCorpusTestRunner.cs (318 lines)
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/GoldenCorpus/GoldenCorpusTests.cs (280 lines)
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/Proof/VexProofBuilderTests.cs (545 lines)
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/Proof/VexProofShuffleDeterminismTests.cs (297 lines)
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/Propagation/PropagationRuleEngineTests.cs (374 lines)
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/Regression/VexLensRegressionTests.cs (328 lines)
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/Storage/DualWriteConsensusProjectionStoreTests.cs (161 lines)
- Namespace issues:
- src/VexLens/StellaOps.VexLens/Api/ConsensusApiModels.cs: missing namespace
- src/VexLens/StellaOps.VexLens/Api/ConsensusRationaleModels.cs: missing namespace
- src/VexLens/StellaOps.VexLens/Api/IConsensusRationaleService.cs: missing namespace
- src/VexLens/StellaOps.VexLens/Api/IVexLensApiService.cs: missing namespace
- src/VexLens/StellaOps.VexLens/Api/NoiseGatingApiModels.cs: missing namespace
- src/VexLens/StellaOps.VexLens/Api/TrustScorecardApiModels.cs: missing namespace
- src/VexLens/StellaOps.VexLens/Caching/IConsensusRationaleCache.cs: missing namespace
- src/VexLens/StellaOps.VexLens/Conditions/ConditionEvaluator.cs: missing namespace
- src/VexLens/StellaOps.VexLens/Conditions/IConditionEvaluator.cs: missing namespace
- src/VexLens/StellaOps.VexLens/Consensus/IVexConsensusEngine.cs: missing namespace
- src/VexLens/StellaOps.VexLens/Consensus/VexConsensusEngine.cs: missing namespace
- src/VexLens/StellaOps.VexLens/Delta/DeltaEntry.cs: missing namespace
- src/VexLens/StellaOps.VexLens/Delta/DeltaReport.cs: missing namespace
- src/VexLens/StellaOps.VexLens/Delta/DeltaReportBuilder.cs: missing namespace
- src/VexLens/StellaOps.VexLens/Delta/DeltaSection.cs: missing namespace
- src/VexLens/StellaOps.VexLens/Export/IConsensusExportService.cs: missing namespace
- src/VexLens/StellaOps.VexLens/Extensions/VexLensServiceCollectionExtensions.cs: missing namespace
- src/VexLens/StellaOps.VexLens/Integration/IPolicyEngineIntegration.cs: missing namespace
- src/VexLens/StellaOps.VexLens/Integration/PolicyEngineIntegration.cs: missing namespace
- src/VexLens/StellaOps.VexLens/Integration/VexSignalEmitter.cs: missing namespace
- src/VexLens/StellaOps.VexLens/Mapping/CpeParser.cs: missing namespace
- src/VexLens/StellaOps.VexLens/Mapping/IProductMapper.cs: missing namespace
- src/VexLens/StellaOps.VexLens/Mapping/ProductIdentityMatcher.cs: missing namespace
- src/VexLens/StellaOps.VexLens/Mapping/ProductMapper.cs: missing namespace
- src/VexLens/StellaOps.VexLens/Mapping/PurlParser.cs: missing namespace
- src/VexLens/StellaOps.VexLens/Mapping/VexDeltaMapper.cs: missing namespace
- src/VexLens/StellaOps.VexLens/Models/NormalizedVexModels.cs: missing namespace
- src/VexLens/StellaOps.VexLens/NoiseGate/INoiseGate.cs: missing namespace
- src/VexLens/StellaOps.VexLens/NoiseGate/NoiseGateOptions.cs: missing namespace
- src/VexLens/StellaOps.VexLens/NoiseGate/NoiseGateService.cs: missing namespace
- src/VexLens/StellaOps.VexLens/Normalization/CsafVexNormalizer.cs: missing namespace
- src/VexLens/StellaOps.VexLens/Normalization/CycloneDxVexNormalizer.cs: missing namespace
- src/VexLens/StellaOps.VexLens/Normalization/IVexNormalizer.cs: missing namespace
- src/VexLens/StellaOps.VexLens/Normalization/OpenVexNormalizer.cs: missing namespace
- src/VexLens/StellaOps.VexLens/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/VexLens/StellaOps.VexLens/obj/Debug/net10.0/StellaOps.VexLens.AssemblyInfo.cs: missing namespace
- src/VexLens/StellaOps.VexLens/obj/Debug/net10.0/StellaOps.VexLens.GlobalUsings.g.cs: missing namespace
- src/VexLens/StellaOps.VexLens/obj/Release/net10.0/StellaOps.VexLens.GlobalUsings.g.cs: missing namespace
- src/VexLens/StellaOps.VexLens/Observability/VexLensMetrics.cs: missing namespace
- src/VexLens/StellaOps.VexLens/Options/VexLensOptions.cs: missing namespace
- src/VexLens/StellaOps.VexLens/Orchestration/ConsensusJobTypes.cs: missing namespace
- src/VexLens/StellaOps.VexLens/Orchestration/IConsensusJobService.cs: missing namespace
- src/VexLens/StellaOps.VexLens/Orchestration/OrchestratorLedgerEventEmitter.cs: missing namespace
- src/VexLens/StellaOps.VexLens/Proof/VexProof.cs: missing namespace
- src/VexLens/StellaOps.VexLens/Proof/VexProofBuilder.cs: missing namespace
- src/VexLens/StellaOps.VexLens/Proof/VexProofSerializer.cs: missing namespace
- src/VexLens/StellaOps.VexLens/Propagation/IPropagationRuleEngine.cs: missing namespace
- src/VexLens/StellaOps.VexLens/Propagation/PropagationRuleEngine.cs: missing namespace
- src/VexLens/StellaOps.VexLens/Services/VexDeltaComputeService.cs: missing namespace
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Consensus/IVexConsensusEngine.cs: missing namespace
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Consensus/VexConsensusEngine.cs: missing namespace
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/DependencyInjection/VexLensServiceCollectionExtensions.cs: missing namespace
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Models/NormalizedVexDocument.cs: missing namespace
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Normalization/IVexLensNormalizer.cs: missing namespace
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Normalization/VexLensNormalizer.cs: missing namespace
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/obj/Debug/net10.0/StellaOps.VexLens.Core.AssemblyInfo.cs: missing namespace
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/obj/Debug/net10.0/StellaOps.VexLens.Core.GlobalUsings.g.cs: missing namespace
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/obj/Release/net10.0/StellaOps.VexLens.Core.GlobalUsings.g.cs: missing namespace
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/ProductMapping/CpeParser.cs: missing namespace
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/ProductMapping/IProductMapper.cs: missing namespace
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/ProductMapping/ProductMapper.cs: missing namespace
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/ProductMapping/PurlParser.cs: missing namespace
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Signature/IIssuerDirectory.cs: missing namespace
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Signature/InMemoryIssuerDirectory.cs: missing namespace
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Signature/ISignatureVerifier.cs: missing namespace
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Signature/SignatureVerifier.cs: missing namespace
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Trust/ITrustWeightEngine.cs: missing namespace
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Trust/PatchVerificationTrustProvider.cs: missing namespace
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Trust/TrustWeightEngine.cs: missing namespace
- src/VexLens/StellaOps.VexLens/Storage/DualWriteConsensusProjectionStore.cs: missing namespace
- src/VexLens/StellaOps.VexLens/Storage/IConsensusProjectionStore.cs: missing namespace
- src/VexLens/StellaOps.VexLens/Storage/IGatingStatisticsStore.cs: missing namespace
- src/VexLens/StellaOps.VexLens/Storage/InMemoryConsensusProjectionStore.cs: missing namespace
- src/VexLens/StellaOps.VexLens/Storage/InMemoryGatingStatisticsStore.cs: missing namespace
- src/VexLens/StellaOps.VexLens/Storage/InMemorySnapshotStore.cs: missing namespace
- src/VexLens/StellaOps.VexLens/Storage/ISnapshotStore.cs: missing namespace
- src/VexLens/StellaOps.VexLens/Storage/PostgresConsensusProjectionStoreProxy.cs: missing namespace
- src/VexLens/StellaOps.VexLens/Testing/VexLensTestHarness.cs: missing namespace
- src/VexLens/StellaOps.VexLens/Trust/ITrustWeightEngine.cs: missing namespace
- src/VexLens/StellaOps.VexLens/Trust/TrustWeightEngine.cs: missing namespace
- src/VexLens/StellaOps.VexLens/Trust/SourceTrust/InMemorySourceTrustScoreCache.cs: missing namespace
- src/VexLens/StellaOps.VexLens/Trust/SourceTrust/IProvenanceChainValidator.cs: missing namespace
- src/VexLens/StellaOps.VexLens/Trust/SourceTrust/ISourceTrustScoreCalculator.cs: missing namespace
- src/VexLens/StellaOps.VexLens/Trust/SourceTrust/ITrustDecayService.cs: missing namespace
- src/VexLens/StellaOps.VexLens/Trust/SourceTrust/ProvenanceChainValidator.cs: missing namespace
- src/VexLens/StellaOps.VexLens/Trust/SourceTrust/SourceTrustScoreCalculator.cs: missing namespace
- src/VexLens/StellaOps.VexLens/Trust/SourceTrust/TrustDecayCalculator.cs: missing namespace
- src/VexLens/StellaOps.VexLens/Trust/SourceTrust/TrustDecayService.cs: missing namespace
- src/VexLens/StellaOps.VexLens/Trust/SourceTrust/VexSourceTrustScore.cs: missing namespace
- src/VexLens/StellaOps.VexLens/Verification/IIssuerDirectory.cs: missing namespace
- src/VexLens/StellaOps.VexLens/Verification/InMemoryIssuerDirectory.cs: missing namespace
- src/VexLens/StellaOps.VexLens/Verification/ISignatureVerifier.cs: missing namespace
- src/VexLens/StellaOps.VexLens/Verification/SignatureVerifier.cs: missing namespace
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Core.Tests/Normalization/VexLensNormalizerTests.cs: missing namespace
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Core.Tests/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Core.Tests/obj/Debug/net10.0/SelfRegisteredExtensions.cs: missing namespace
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Core.Tests/obj/Debug/net10.0/StellaOps.VexLens.Core.Tests.AssemblyInfo.cs: missing namespace
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Core.Tests/obj/Debug/net10.0/StellaOps.VexLens.Core.Tests.GlobalUsings.g.cs: missing namespace
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Core.Tests/obj/Debug/net10.0/XunitAutoGeneratedEntryPoint.cs: missing namespace
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Core.Tests/obj/Release/net10.0/StellaOps.VexLens.Core.Tests.GlobalUsings.g.cs: missing namespace
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Core.Tests/ProductMapping/CpeParserTests.cs: missing namespace
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Core.Tests/ProductMapping/ProductMapperTests.cs: missing namespace
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Core.Tests/ProductMapping/PurlParserTests.cs: missing namespace
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/Caching/ConsensusRationaleCacheTests.cs: missing namespace
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/Conditions/ConditionEvaluatorTests.cs: missing namespace
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/E2E/VexLensPipelineDeterminismTests.cs: missing namespace
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/GoldenCorpus/GoldenCorpusLoader.cs: missing namespace
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/GoldenCorpus/GoldenCorpusModels.cs: missing namespace
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/GoldenCorpus/GoldenCorpusTestRunner.cs: missing namespace
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/GoldenCorpus/GoldenCorpusTests.cs: missing namespace
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/Normalization/OpenVexNormalizerTests.cs: missing namespace
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/obj/Debug/net10.0/SelfRegisteredExtensions.cs: missing namespace
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/obj/Debug/net10.0/StellaOps.VexLens.Tests.AssemblyInfo.cs: missing namespace
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/obj/Debug/net10.0/StellaOps.VexLens.Tests.GlobalUsings.g.cs: missing namespace
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/obj/Debug/net10.0/XunitAutoGeneratedEntryPoint.cs: missing namespace
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/obj/Release/net10.0/StellaOps.VexLens.Tests.GlobalUsings.g.cs: missing namespace
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/Proof/VexProofBuilderTests.cs: missing namespace
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/Proof/VexProofShuffleDeterminismTests.cs: missing namespace
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/Propagation/PropagationRuleEngineTests.cs: missing namespace
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/Regression/VexLensRegressionTests.cs: missing namespace
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/Storage/DualWriteConsensusProjectionStoreTests.cs: missing namespace
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/Storage/PostgresConsensusProjectionStoreProxyTests.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: 124
- Files with issues: 124
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/VexLens/StellaOps.VexLens/Api/ConsensusApiModels.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Api/ConsensusRationaleModels.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Api/IConsensusRationaleService.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Api/IVexLensApiService.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Api/NoiseGatingApiModels.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Api/TrustScorecardApiModels.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Caching/IConsensusRationaleCache.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Conditions/ConditionEvaluator.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Conditions/IConditionEvaluator.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/VexLens/StellaOps.VexLens/Consensus/IVexConsensusEngine.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Consensus/VexConsensusEngine.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Delta/DeltaEntry.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/VexLens/StellaOps.VexLens/Delta/DeltaReport.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Delta/DeltaReportBuilder.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Delta/DeltaSection.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/VexLens/StellaOps.VexLens/Export/IConsensusExportService.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Extensions/VexLensServiceCollectionExtensions.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Integration/IPolicyEngineIntegration.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Integration/PolicyEngineIntegration.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Integration/VexSignalEmitter.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Mapping/CpeParser.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Mapping/IProductMapper.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Mapping/ProductIdentityMatcher.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Mapping/ProductMapper.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Mapping/PurlParser.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Mapping/VexDeltaMapper.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Models/NormalizedVexModels.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/NoiseGate/INoiseGate.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/NoiseGate/NoiseGateOptions.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/NoiseGate/NoiseGateService.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Normalization/CsafVexNormalizer.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Normalization/CycloneDxVexNormalizer.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Normalization/IVexNormalizer.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Normalization/OpenVexNormalizer.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/VexLens/StellaOps.VexLens/obj/Debug/net10.0/StellaOps.VexLens.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/VexLens/StellaOps.VexLens/obj/Debug/net10.0/StellaOps.VexLens.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/VexLens/StellaOps.VexLens/obj/Release/net10.0/StellaOps.VexLens.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/VexLens/StellaOps.VexLens/Observability/VexLensMetrics.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Options/VexLensOptions.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Orchestration/ConsensusJobTypes.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Orchestration/IConsensusJobService.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Orchestration/OrchestratorLedgerEventEmitter.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Proof/VexProof.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Proof/VexProofBuilder.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Proof/VexProofSerializer.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Propagation/IPropagationRuleEngine.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Propagation/PropagationRuleEngine.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Services/VexDeltaComputeService.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Consensus/IVexConsensusEngine.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Consensus/VexConsensusEngine.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/DependencyInjection/VexLensServiceCollectionExtensions.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Models/NormalizedVexDocument.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Normalization/IVexLensNormalizer.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Normalization/VexLensNormalizer.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/obj/Debug/net10.0/StellaOps.VexLens.Core.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/obj/Debug/net10.0/StellaOps.VexLens.Core.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/obj/Release/net10.0/StellaOps.VexLens.Core.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/ProductMapping/CpeParser.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/ProductMapping/IProductMapper.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/ProductMapping/ProductMapper.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/ProductMapping/PurlParser.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Signature/IIssuerDirectory.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Signature/InMemoryIssuerDirectory.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Signature/ISignatureVerifier.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Signature/SignatureVerifier.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Trust/ITrustWeightEngine.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Trust/PatchVerificationTrustProvider.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Trust/TrustWeightEngine.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Storage/DualWriteConsensusProjectionStore.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Storage/IConsensusProjectionStore.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Storage/IGatingStatisticsStore.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/VexLens/StellaOps.VexLens/Storage/InMemoryConsensusProjectionStore.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Storage/InMemoryGatingStatisticsStore.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/VexLens/StellaOps.VexLens/Storage/InMemorySnapshotStore.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/VexLens/StellaOps.VexLens/Storage/ISnapshotStore.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/VexLens/StellaOps.VexLens/Storage/PostgresConsensusProjectionStoreProxy.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Testing/VexLensTestHarness.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Trust/ITrustWeightEngine.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Trust/TrustWeightEngine.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Trust/SourceTrust/InMemorySourceTrustScoreCache.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/VexLens/StellaOps.VexLens/Trust/SourceTrust/IProvenanceChainValidator.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Trust/SourceTrust/ISourceTrustScoreCalculator.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Trust/SourceTrust/ITrustDecayService.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Trust/SourceTrust/ProvenanceChainValidator.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Trust/SourceTrust/SourceTrustScoreCalculator.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Trust/SourceTrust/TrustDecayCalculator.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Trust/SourceTrust/TrustDecayService.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Trust/SourceTrust/VexSourceTrustScore.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Verification/IIssuerDirectory.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Verification/InMemoryIssuerDirectory.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Verification/ISignatureVerifier.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Verification/SignatureVerifier.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Core.Tests/Normalization/VexLensNormalizerTests.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Core.Tests/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Core.Tests/obj/Debug/net10.0/SelfRegisteredExtensions.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Core.Tests/obj/Debug/net10.0/StellaOps.VexLens.Core.Tests.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Core.Tests/obj/Debug/net10.0/StellaOps.VexLens.Core.Tests.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Core.Tests/obj/Debug/net10.0/XunitAutoGeneratedEntryPoint.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Core.Tests/obj/Release/net10.0/StellaOps.VexLens.Core.Tests.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Core.Tests/ProductMapping/CpeParserTests.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Core.Tests/ProductMapping/ProductMapperTests.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Core.Tests/ProductMapping/PurlParserTests.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/Caching/ConsensusRationaleCacheTests.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/Conditions/ConditionEvaluatorTests.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/E2E/VexLensPipelineDeterminismTests.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/GoldenCorpus/GoldenCorpusLoader.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/GoldenCorpus/GoldenCorpusModels.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/GoldenCorpus/GoldenCorpusTestRunner.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/GoldenCorpus/GoldenCorpusTests.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/Normalization/OpenVexNormalizerTests.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/obj/Debug/net10.0/SelfRegisteredExtensions.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/obj/Debug/net10.0/StellaOps.VexLens.Tests.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/obj/Debug/net10.0/StellaOps.VexLens.Tests.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/obj/Debug/net10.0/XunitAutoGeneratedEntryPoint.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/obj/Release/net10.0/StellaOps.VexLens.Tests.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/Proof/VexProofBuilderTests.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/Proof/VexProofShuffleDeterminismTests.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/Propagation/PropagationRuleEngineTests.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/Regression/VexLensRegressionTests.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/Storage/DualWriteConsensusProjectionStoreTests.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/Storage/PostgresConsensusProjectionStoreProxyTests.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
## Testing Fullness Findings
- Status: PASS
- Expected layers (heuristic): Unit
- Detected test projects: src/__Tests/e2e/ReplayableVerdict/StellaOps.E2E.ReplayableVerdict.csproj [E2E]; src/VexLens/__Tests/StellaOps.VexLens.Tests/StellaOps.VexLens.Tests.csproj [Unit]; src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/StellaOps.VexLens.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,326 @@
# Audit - StellaOps.VexLens
## Project
- Path: src/VexLens/StellaOps.VexLens/StellaOps.VexLens.csproj
- Module: VexLens
- Kind: Library
- Audit date (UTC): 2026-01-31
- Files scanned: 104
- Files with issues: 94
- 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: 92
- Namespace violations: 0
- Using directive violations: 9
- Naming violations (interfaces/fields/const/async): 55
- Service locator usage (BuildServiceProvider/GetService): 12
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/VexLens/StellaOps.VexLens/Api/ConsensusApiModels.cs (322 lines)
- src/VexLens/StellaOps.VexLens/Api/ConsensusRationaleModels.cs (478 lines)
- src/VexLens/StellaOps.VexLens/Api/IConsensusRationaleService.cs (567 lines)
- src/VexLens/StellaOps.VexLens/Api/IVexLensApiService.cs (776 lines)
- src/VexLens/StellaOps.VexLens/Api/NoiseGatingApiModels.cs (206 lines)
- src/VexLens/StellaOps.VexLens/Api/TrustScorecardApiModels.cs (698 lines)
- src/VexLens/StellaOps.VexLens/Caching/IConsensusRationaleCache.cs (482 lines)
- src/VexLens/StellaOps.VexLens/Conditions/ConditionEvaluator.cs (548 lines)
- src/VexLens/StellaOps.VexLens/Consensus/IVexConsensusEngine.cs (316 lines)
- src/VexLens/StellaOps.VexLens/Consensus/VexConsensusEngine.cs (1297 lines)
- src/VexLens/StellaOps.VexLens/Delta/DeltaReport.cs (184 lines)
- src/VexLens/StellaOps.VexLens/Delta/DeltaReportBuilder.cs (349 lines)
- src/VexLens/StellaOps.VexLens/Export/IConsensusExportService.cs (591 lines)
- src/VexLens/StellaOps.VexLens/Extensions/VexLensServiceCollectionExtensions.cs (373 lines)
- src/VexLens/StellaOps.VexLens/Integration/IPolicyEngineIntegration.cs (292 lines)
- src/VexLens/StellaOps.VexLens/Integration/PolicyEngineIntegration.cs (524 lines)
- src/VexLens/StellaOps.VexLens/Integration/VexSignalEmitter.cs (293 lines)
- src/VexLens/StellaOps.VexLens/Mapping/CpeParser.cs (332 lines)
- src/VexLens/StellaOps.VexLens/Mapping/IProductMapper.cs (170 lines)
- src/VexLens/StellaOps.VexLens/Mapping/ProductIdentityMatcher.cs (260 lines)
- src/VexLens/StellaOps.VexLens/Mapping/ProductMapper.cs (303 lines)
- src/VexLens/StellaOps.VexLens/Mapping/PurlParser.cs (254 lines)
- src/VexLens/StellaOps.VexLens/Mapping/VexDeltaMapper.cs (144 lines)
- src/VexLens/StellaOps.VexLens/Models/NormalizedVexModels.cs (187 lines)
- src/VexLens/StellaOps.VexLens/NoiseGate/INoiseGate.cs (312 lines)
- src/VexLens/StellaOps.VexLens/NoiseGate/NoiseGateOptions.cs (123 lines)
- src/VexLens/StellaOps.VexLens/NoiseGate/NoiseGateService.cs (484 lines)
- src/VexLens/StellaOps.VexLens/Normalization/CsafVexNormalizer.cs (695 lines)
- src/VexLens/StellaOps.VexLens/Normalization/CycloneDxVexNormalizer.cs (642 lines)
- src/VexLens/StellaOps.VexLens/Normalization/IVexNormalizer.cs (165 lines)
- src/VexLens/StellaOps.VexLens/Normalization/OpenVexNormalizer.cs (500 lines)
- src/VexLens/StellaOps.VexLens/Observability/VexLensMetrics.cs (454 lines)
- src/VexLens/StellaOps.VexLens/Options/VexLensOptions.cs (281 lines)
- src/VexLens/StellaOps.VexLens/Orchestration/ConsensusJobTypes.cs (120 lines)
- src/VexLens/StellaOps.VexLens/Orchestration/IConsensusJobService.cs (485 lines)
- src/VexLens/StellaOps.VexLens/Orchestration/OrchestratorLedgerEventEmitter.cs (436 lines)
- src/VexLens/StellaOps.VexLens/Proof/VexProof.cs (477 lines)
- src/VexLens/StellaOps.VexLens/Proof/VexProofBuilder.cs (547 lines)
- src/VexLens/StellaOps.VexLens/Proof/VexProofSerializer.cs (249 lines)
- src/VexLens/StellaOps.VexLens/Propagation/IPropagationRuleEngine.cs (174 lines)
- src/VexLens/StellaOps.VexLens/Propagation/PropagationRuleEngine.cs (267 lines)
- src/VexLens/StellaOps.VexLens/Services/VexDeltaComputeService.cs (321 lines)
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Consensus/IVexConsensusEngine.cs (189 lines)
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Consensus/VexConsensusEngine.cs (401 lines)
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Models/NormalizedVexDocument.cs (400 lines)
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Normalization/VexLensNormalizer.cs (520 lines)
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/ProductMapping/CpeParser.cs (208 lines)
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/ProductMapping/IProductMapper.cs (183 lines)
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/ProductMapping/ProductMapper.cs (328 lines)
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/ProductMapping/PurlParser.cs (213 lines)
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Signature/IIssuerDirectory.cs (183 lines)
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Signature/InMemoryIssuerDirectory.cs (211 lines)
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Signature/ISignatureVerifier.cs (239 lines)
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Signature/SignatureVerifier.cs (426 lines)
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Trust/ITrustWeightEngine.cs (238 lines)
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Trust/PatchVerificationTrustProvider.cs (309 lines)
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Trust/TrustWeightEngine.cs (307 lines)
- src/VexLens/StellaOps.VexLens/Storage/DualWriteConsensusProjectionStore.cs (309 lines)
- src/VexLens/StellaOps.VexLens/Storage/IConsensusProjectionStore.cs (211 lines)
- src/VexLens/StellaOps.VexLens/Storage/InMemoryConsensusProjectionStore.cs (440 lines)
- src/VexLens/StellaOps.VexLens/Storage/PostgresConsensusProjectionStoreProxy.cs (560 lines)
- src/VexLens/StellaOps.VexLens/Testing/VexLensTestHarness.cs (540 lines)
- src/VexLens/StellaOps.VexLens/Trust/ITrustWeightEngine.cs (153 lines)
- src/VexLens/StellaOps.VexLens/Trust/TrustWeightEngine.cs (446 lines)
- src/VexLens/StellaOps.VexLens/Trust/SourceTrust/IProvenanceChainValidator.cs (348 lines)
- src/VexLens/StellaOps.VexLens/Trust/SourceTrust/ISourceTrustScoreCalculator.cs (422 lines)
- src/VexLens/StellaOps.VexLens/Trust/SourceTrust/ITrustDecayService.cs (436 lines)
- src/VexLens/StellaOps.VexLens/Trust/SourceTrust/ProvenanceChainValidator.cs (342 lines)
- src/VexLens/StellaOps.VexLens/Trust/SourceTrust/SourceTrustScoreCalculator.cs (515 lines)
- src/VexLens/StellaOps.VexLens/Trust/SourceTrust/TrustDecayCalculator.cs (583 lines)
- src/VexLens/StellaOps.VexLens/Trust/SourceTrust/TrustDecayService.cs (299 lines)
- src/VexLens/StellaOps.VexLens/Trust/SourceTrust/VexSourceTrustScore.cs (311 lines)
- src/VexLens/StellaOps.VexLens/Verification/IIssuerDirectory.cs (207 lines)
- src/VexLens/StellaOps.VexLens/Verification/InMemoryIssuerDirectory.cs (318 lines)
- src/VexLens/StellaOps.VexLens/Verification/ISignatureVerifier.cs (183 lines)
- src/VexLens/StellaOps.VexLens/Verification/SignatureVerifier.cs (425 lines)
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Core.Tests/Normalization/VexLensNormalizerTests.cs (429 lines)
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Core.Tests/ProductMapping/CpeParserTests.cs (185 lines)
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Core.Tests/ProductMapping/ProductMapperTests.cs (316 lines)
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Core.Tests/ProductMapping/PurlParserTests.cs (144 lines)
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/Caching/ConsensusRationaleCacheTests.cs (139 lines)
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/Conditions/ConditionEvaluatorTests.cs (363 lines)
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/E2E/VexLensPipelineDeterminismTests.cs (296 lines)
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/GoldenCorpus/GoldenCorpusLoader.cs (226 lines)
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/GoldenCorpus/GoldenCorpusModels.cs (216 lines)
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/GoldenCorpus/GoldenCorpusTestRunner.cs (319 lines)
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/GoldenCorpus/GoldenCorpusTests.cs (281 lines)
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/Proof/VexProofBuilderTests.cs (546 lines)
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/Proof/VexProofShuffleDeterminismTests.cs (298 lines)
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/Propagation/PropagationRuleEngineTests.cs (375 lines)
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/Regression/VexLensRegressionTests.cs (329 lines)
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/Storage/DualWriteConsensusProjectionStoreTests.cs (162 lines)
- Namespace issues:
- none
- Using directive issues:
- src/VexLens/StellaOps.VexLens/Normalization/CsafVexNormalizer.cs: using directives inside namespace
- src/VexLens/StellaOps.VexLens/Normalization/CycloneDxVexNormalizer.cs: using directives inside namespace
- src/VexLens/StellaOps.VexLens/Normalization/OpenVexNormalizer.cs: using directives inside namespace
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Normalization/VexLensNormalizer.cs: using directives inside namespace
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Signature/SignatureVerifier.cs: using directives inside namespace
- src/VexLens/StellaOps.VexLens/Storage/DualWriteConsensusProjectionStore.cs: using directives inside namespace
- src/VexLens/StellaOps.VexLens/Storage/PostgresConsensusProjectionStoreProxy.cs: using directives inside namespace
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/Storage/DualWriteConsensusProjectionStoreTests.cs: using directives inside namespace
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/Storage/PostgresConsensusProjectionStoreProxyTests.cs: using directives inside namespace
- Naming issues:
- src/VexLens/StellaOps.VexLens/Orchestration/IConsensusJobService.cs: private field naming
- src/VexLens/StellaOps.VexLens/Orchestration/OrchestratorLedgerEventEmitter.cs: private field naming
- src/VexLens/StellaOps.VexLens/Proof/VexProofSerializer.cs: private field naming
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Consensus/VexConsensusEngine.cs: private field naming
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Normalization/VexLensNormalizer.cs: private field naming
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Signature/SignatureVerifier.cs: private field naming
- src/VexLens/StellaOps.VexLens/Storage/DualWriteConsensusProjectionStore.cs: private field naming
- src/VexLens/StellaOps.VexLens/Storage/PostgresConsensusProjectionStoreProxy.cs: private field naming
- src/VexLens/StellaOps.VexLens/Testing/VexLensTestHarness.cs: private field naming
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/Caching/ConsensusRationaleCacheTests.cs: private field naming
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/E2E/VexLensPipelineDeterminismTests.cs: private field naming
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/GoldenCorpus/GoldenCorpusLoader.cs: private field naming
- Async issues:
- src/VexLens/StellaOps.VexLens/Api/IConsensusRationaleService.cs: missing ConfigureAwait(false)
- src/VexLens/StellaOps.VexLens/Api/IVexLensApiService.cs: missing ConfigureAwait(false)
- src/VexLens/StellaOps.VexLens/Api/TrustScorecardApiModels.cs: missing ConfigureAwait(false)
- src/VexLens/StellaOps.VexLens/Caching/IConsensusRationaleCache.cs: missing ConfigureAwait(false)
- src/VexLens/StellaOps.VexLens/Conditions/ConditionEvaluator.cs: blocking async usage
- src/VexLens/StellaOps.VexLens/Consensus/VexConsensusEngine.cs: blocking async usage
- src/VexLens/StellaOps.VexLens/Consensus/VexConsensusEngine.cs: missing ConfigureAwait(false)
- src/VexLens/StellaOps.VexLens/Export/IConsensusExportService.cs: missing ConfigureAwait(false)
- src/VexLens/StellaOps.VexLens/Integration/PolicyEngineIntegration.cs: missing ConfigureAwait(false)
- src/VexLens/StellaOps.VexLens/Integration/VexSignalEmitter.cs: async method naming
- src/VexLens/StellaOps.VexLens/Integration/VexSignalEmitter.cs: missing ConfigureAwait(false)
- src/VexLens/StellaOps.VexLens/Mapping/ProductMapper.cs: missing ConfigureAwait(false)
- src/VexLens/StellaOps.VexLens/Orchestration/IConsensusJobService.cs: missing ConfigureAwait(false)
- src/VexLens/StellaOps.VexLens/Orchestration/OrchestratorLedgerEventEmitter.cs: missing ConfigureAwait(false)
- src/VexLens/StellaOps.VexLens/Proof/VexProofBuilder.cs: blocking async usage
- src/VexLens/StellaOps.VexLens/Proof/VexProofSerializer.cs: async method naming
- src/VexLens/StellaOps.VexLens/Services/VexDeltaComputeService.cs: async method naming
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Signature/InMemoryIssuerDirectory.cs: async method naming
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Signature/InMemoryIssuerDirectory.cs: missing ConfigureAwait(false)
- src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Signature/SignatureVerifier.cs: missing ConfigureAwait(false)
- src/VexLens/StellaOps.VexLens/Storage/DualWriteConsensusProjectionStore.cs: missing ConfigureAwait(false)
- src/VexLens/StellaOps.VexLens/Storage/InMemoryConsensusProjectionStore.cs: missing ConfigureAwait(false)
- src/VexLens/StellaOps.VexLens/Storage/PostgresConsensusProjectionStoreProxy.cs: missing ConfigureAwait(false)
- src/VexLens/StellaOps.VexLens/Testing/VexLensTestHarness.cs: missing ConfigureAwait(false)
- src/VexLens/StellaOps.VexLens/Trust/TrustWeightEngine.cs: missing ConfigureAwait(false)
- src/VexLens/StellaOps.VexLens/Trust/SourceTrust/ProvenanceChainValidator.cs: missing ConfigureAwait(false)
- src/VexLens/StellaOps.VexLens/Trust/SourceTrust/SourceTrustScoreCalculator.cs: missing ConfigureAwait(false)
- src/VexLens/StellaOps.VexLens/Verification/SignatureVerifier.cs: missing ConfigureAwait(false)
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Core.Tests/Normalization/VexLensNormalizerTests.cs: async method naming
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Core.Tests/Normalization/VexLensNormalizerTests.cs: missing ConfigureAwait(false)
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/Caching/ConsensusRationaleCacheTests.cs: async method naming
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/Caching/ConsensusRationaleCacheTests.cs: missing ConfigureAwait(false)
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/Conditions/ConditionEvaluatorTests.cs: blocking async usage
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/GoldenCorpus/GoldenCorpusLoader.cs: async method naming
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/GoldenCorpus/GoldenCorpusLoader.cs: missing ConfigureAwait(false)
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/GoldenCorpus/GoldenCorpusTestRunner.cs: async method naming
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/GoldenCorpus/GoldenCorpusTestRunner.cs: missing ConfigureAwait(false)
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/GoldenCorpus/GoldenCorpusTests.cs: async method naming
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/GoldenCorpus/GoldenCorpusTests.cs: missing ConfigureAwait(false)
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/Normalization/OpenVexNormalizerTests.cs: async method naming
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/Normalization/OpenVexNormalizerTests.cs: missing ConfigureAwait(false)
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/Storage/DualWriteConsensusProjectionStoreTests.cs: async method naming
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/Storage/DualWriteConsensusProjectionStoreTests.cs: missing ConfigureAwait(false)
- Service locator matches:
- src/VexLens/StellaOps.VexLens/Extensions/VexLensServiceCollectionExtensions.cs:87 var guidProvider = sp.GetService<IGuidProvider>() ?? SystemGuidProvider.Instance;
- src/VexLens/StellaOps.VexLens/Extensions/VexLensServiceCollectionExtensions.cs:200 var emitter = sp.GetRequiredService<IConsensusEventEmitter>();
- src/VexLens/StellaOps.VexLens/Extensions/VexLensServiceCollectionExtensions.cs:250 var dataSource = sp.GetRequiredService<NpgsqlDataSource>();
- src/VexLens/StellaOps.VexLens/Extensions/VexLensServiceCollectionExtensions.cs:251 var logger = sp.GetRequiredService<ILogger<PostgresConsensusProjectionStoreProxy>>();
- src/VexLens/StellaOps.VexLens/Extensions/VexLensServiceCollectionExtensions.cs:252 var emitter = sp.GetService<IConsensusEventEmitter>();
- src/VexLens/StellaOps.VexLens/Extensions/VexLensServiceCollectionExtensions.cs:289 var emitter = sp.GetRequiredService<IConsensusEventEmitter>();
- src/VexLens/StellaOps.VexLens/Extensions/VexLensServiceCollectionExtensions.cs:292 var dataSource = sp.GetRequiredService<NpgsqlDataSource>();
- src/VexLens/StellaOps.VexLens/Extensions/VexLensServiceCollectionExtensions.cs:293 var postgresLogger = sp.GetRequiredService<ILogger<PostgresConsensusProjectionStoreProxy>>();
- src/VexLens/StellaOps.VexLens/Extensions/VexLensServiceCollectionExtensions.cs:296 var dualWriteOptions = sp.GetRequiredService<IOptions<VexLensStorageOptions>>();
- src/VexLens/StellaOps.VexLens/Extensions/VexLensServiceCollectionExtensions.cs:297 var dualWriteLogger = sp.GetRequiredService<ILogger<DualWriteConsensusProjectionStore>>();
- src/VexLens/StellaOps.VexLens/Extensions/VexLensServiceCollectionExtensions.cs:339 var opts = sp.GetRequiredService<IOptions<NoiseGateOptions>>();
- src/VexLens/StellaOps.VexLens/Extensions/VexLensServiceCollectionExtensions.cs:348 var timeProvider = sp.GetRequiredService<TimeProvider>();
- 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: 104
- Files with issues: 94
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/VexLens/StellaOps.VexLens/Api/ConsensusApiModels.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Api/ConsensusRationaleModels.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Api/IConsensusRationaleService.cs | ConfigureAwaitMissing; FileLength>100 | Add ConfigureAwait(false) to awaited calls in library-like code.; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Api/IVexLensApiService.cs | ConfigureAwaitMissing; FileLength>100 | Add ConfigureAwait(false) to awaited calls in library-like code.; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Api/NoiseGatingApiModels.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Api/TrustScorecardApiModels.cs | ConfigureAwaitMissing; FileLength>100 | Add ConfigureAwait(false) to awaited calls in library-like code.; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Caching/IConsensusRationaleCache.cs | ConfigureAwaitMissing; FileLength>100 | Add ConfigureAwait(false) to awaited calls in library-like code.; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Conditions/ConditionEvaluator.cs | BlockingAsync; FileLength>100 | Replace .Result/.Wait/GetAwaiter().GetResult() with await.; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Consensus/IVexConsensusEngine.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Consensus/VexConsensusEngine.cs | BlockingAsync; ConfigureAwaitMissing; FileLength>100 | Add ConfigureAwait(false) to awaited calls in library-like code.; Replace .Result/.Wait/GetAwaiter().GetResult() with await.; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Delta/DeltaReport.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Delta/DeltaReportBuilder.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Export/IConsensusExportService.cs | ConfigureAwaitMissing; FileLength>100 | Add ConfigureAwait(false) to awaited calls in library-like code.; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Extensions/VexLensServiceCollectionExtensions.cs | FileLength>100; ServiceLocator | Remove service locator usage; use constructor injection.; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Integration/IPolicyEngineIntegration.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Integration/PolicyEngineIntegration.cs | ConfigureAwaitMissing; FileLength>100 | Add ConfigureAwait(false) to awaited calls in library-like code.; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Integration/VexSignalEmitter.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/VexLens/StellaOps.VexLens/Mapping/CpeParser.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Mapping/IProductMapper.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Mapping/ProductIdentityMatcher.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Mapping/ProductMapper.cs | ConfigureAwaitMissing; FileLength>100 | Add ConfigureAwait(false) to awaited calls in library-like code.; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Mapping/PurlParser.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Mapping/VexDeltaMapper.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Models/NormalizedVexModels.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/NoiseGate/INoiseGate.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/NoiseGate/NoiseGateOptions.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/NoiseGate/NoiseGateService.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Normalization/CsafVexNormalizer.cs | FileLength>100; UsingInsideNamespace | Move using directives outside namespace.; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Normalization/CycloneDxVexNormalizer.cs | FileLength>100; UsingInsideNamespace | Move using directives outside namespace.; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Normalization/IVexNormalizer.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Normalization/OpenVexNormalizer.cs | FileLength>100; UsingInsideNamespace | Move using directives outside namespace.; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Observability/VexLensMetrics.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Options/VexLensOptions.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Orchestration/ConsensusJobTypes.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Orchestration/IConsensusJobService.cs | ConfigureAwaitMissing; FileLength>100; PrivateFieldNaming | Add ConfigureAwait(false) to awaited calls in library-like code.; Rename private fields to _camelCase.; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Orchestration/OrchestratorLedgerEventEmitter.cs | ConfigureAwaitMissing; FileLength>100; PrivateFieldNaming | Add ConfigureAwait(false) to awaited calls in library-like code.; Rename private fields to _camelCase.; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Proof/VexProof.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Proof/VexProofBuilder.cs | BlockingAsync; FileLength>100 | Replace .Result/.Wait/GetAwaiter().GetResult() with await.; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Proof/VexProofSerializer.cs | AsyncNaming; FileLength>100; PrivateFieldNaming | Rename async methods to end with Async.; Rename private fields to _camelCase.; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Propagation/IPropagationRuleEngine.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Propagation/PropagationRuleEngine.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Services/VexDeltaComputeService.cs | AsyncNaming; FileLength>100 | Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Consensus/IVexConsensusEngine.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Consensus/VexConsensusEngine.cs | FileLength>100; PrivateFieldNaming | Rename private fields to _camelCase.; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Models/NormalizedVexDocument.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Normalization/VexLensNormalizer.cs | FileLength>100; PrivateFieldNaming; UsingInsideNamespace | Move using directives outside namespace.; Rename private fields to _camelCase.; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/ProductMapping/CpeParser.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/ProductMapping/IProductMapper.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/ProductMapping/ProductMapper.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/ProductMapping/PurlParser.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Signature/IIssuerDirectory.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Signature/InMemoryIssuerDirectory.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/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Signature/ISignatureVerifier.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Signature/SignatureVerifier.cs | ConfigureAwaitMissing; FileLength>100; PrivateFieldNaming; UsingInsideNamespace | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Rename private fields to _camelCase.; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Trust/ITrustWeightEngine.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Trust/PatchVerificationTrustProvider.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/StellaOps.VexLens.Core/Trust/TrustWeightEngine.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Storage/DualWriteConsensusProjectionStore.cs | ConfigureAwaitMissing; FileLength>100; PrivateFieldNaming; UsingInsideNamespace | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Rename private fields to _camelCase.; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Storage/IConsensusProjectionStore.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Storage/InMemoryConsensusProjectionStore.cs | ConfigureAwaitMissing; FileLength>100 | Add ConfigureAwait(false) to awaited calls in library-like code.; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Storage/PostgresConsensusProjectionStoreProxy.cs | ConfigureAwaitMissing; FileLength>100; PrivateFieldNaming; UsingInsideNamespace | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Rename private fields to _camelCase.; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Testing/VexLensTestHarness.cs | ConfigureAwaitMissing; FileLength>100; PrivateFieldNaming | Add ConfigureAwait(false) to awaited calls in library-like code.; Rename private fields to _camelCase.; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Trust/ITrustWeightEngine.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Trust/TrustWeightEngine.cs | ConfigureAwaitMissing; FileLength>100 | Add ConfigureAwait(false) to awaited calls in library-like code.; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Trust/SourceTrust/IProvenanceChainValidator.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Trust/SourceTrust/ISourceTrustScoreCalculator.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Trust/SourceTrust/ITrustDecayService.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Trust/SourceTrust/ProvenanceChainValidator.cs | ConfigureAwaitMissing; FileLength>100 | Add ConfigureAwait(false) to awaited calls in library-like code.; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Trust/SourceTrust/SourceTrustScoreCalculator.cs | ConfigureAwaitMissing; FileLength>100 | Add ConfigureAwait(false) to awaited calls in library-like code.; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Trust/SourceTrust/TrustDecayCalculator.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Trust/SourceTrust/TrustDecayService.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Trust/SourceTrust/VexSourceTrustScore.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Verification/IIssuerDirectory.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Verification/InMemoryIssuerDirectory.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Verification/ISignatureVerifier.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/Verification/SignatureVerifier.cs | ConfigureAwaitMissing; FileLength>100 | Add ConfigureAwait(false) to awaited calls in library-like code.; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Core.Tests/Normalization/VexLensNormalizerTests.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/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Core.Tests/ProductMapping/CpeParserTests.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Core.Tests/ProductMapping/ProductMapperTests.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Core.Tests/ProductMapping/PurlParserTests.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/Caching/ConsensusRationaleCacheTests.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. |
| src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/Conditions/ConditionEvaluatorTests.cs | BlockingAsync; FileLength>100 | Replace .Result/.Wait/GetAwaiter().GetResult() with await.; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/E2E/VexLensPipelineDeterminismTests.cs | FileLength>100; PrivateFieldNaming | Rename private fields to _camelCase.; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/GoldenCorpus/GoldenCorpusLoader.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. |
| src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/GoldenCorpus/GoldenCorpusModels.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/GoldenCorpus/GoldenCorpusTestRunner.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/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/GoldenCorpus/GoldenCorpusTests.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/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/Normalization/OpenVexNormalizerTests.cs | AsyncNaming; ConfigureAwaitMissing | Add ConfigureAwait(false) to awaited calls in library-like code.; Rename async methods to end with Async. |
| src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/Proof/VexProofBuilderTests.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/Proof/VexProofShuffleDeterminismTests.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/Propagation/PropagationRuleEngineTests.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/Regression/VexLensRegressionTests.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/Storage/DualWriteConsensusProjectionStoreTests.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/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/Storage/PostgresConsensusProjectionStoreProxyTests.cs | UsingInsideNamespace | Move using directives outside namespace. |
## Testing Fullness Findings
- Status: PASS
- Expected layers (heuristic): Unit
- Detected test projects: src/__Tests/e2e/ReplayableVerdict/StellaOps.E2E.ReplayableVerdict.csproj [E2E]; src/VexLens/__Tests/StellaOps.VexLens.Tests/StellaOps.VexLens.Tests.csproj [Unit]; src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/StellaOps.VexLens.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,75 @@
# Audit - StellaOps.VexLens.Core.Tests
## Project
- Path: src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Core.Tests/StellaOps.VexLens.Core.Tests.csproj
- Module: VexLens
- Kind: Test
- 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: inherited false
- Deterministic: inherited true
- 100-line rule violations: 4
- Namespace violations: 0
- Using directive violations: 0
- Naming violations (interfaces/fields/const/async): 2
- Service locator usage (BuildServiceProvider/GetService): 0
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Core.Tests/Normalization/VexLensNormalizerTests.cs (429 lines)
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Core.Tests/ProductMapping/CpeParserTests.cs (185 lines)
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Core.Tests/ProductMapping/ProductMapperTests.cs (316 lines)
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Core.Tests/ProductMapping/PurlParserTests.cs (144 lines)
- Namespace issues:
- none
- Using directive issues:
- none
- Naming issues:
- none
- Async issues:
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Core.Tests/Normalization/VexLensNormalizerTests.cs: async method naming
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Core.Tests/Normalization/VexLensNormalizerTests.cs: missing ConfigureAwait(false)
- Service locator matches:
- none
- Assembly.LoadFrom matches:
- none
### Fix Guidance
- Remove overrides that disable TreatWarningsAsErrors.
- 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/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Core.Tests/Normalization/VexLensNormalizerTests.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/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Core.Tests/ProductMapping/CpeParserTests.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Core.Tests/ProductMapping/ProductMapperTests.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Core.Tests/ProductMapping/PurlParserTests.cs | FileLength>100 | 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,109 @@
# Audit - StellaOps.VexLens.Tests
## Project
- Path: src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/StellaOps.VexLens.Tests.csproj
- Module: VexLens
- Kind: Test
- 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: 12
- Namespace violations: 0
- Using directive violations: 2
- Naming violations (interfaces/fields/const/async): 16
- Service locator usage (BuildServiceProvider/GetService): 0
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/Caching/ConsensusRationaleCacheTests.cs (139 lines)
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/Conditions/ConditionEvaluatorTests.cs (363 lines)
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/E2E/VexLensPipelineDeterminismTests.cs (296 lines)
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/GoldenCorpus/GoldenCorpusLoader.cs (226 lines)
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/GoldenCorpus/GoldenCorpusModels.cs (216 lines)
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/GoldenCorpus/GoldenCorpusTestRunner.cs (319 lines)
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/GoldenCorpus/GoldenCorpusTests.cs (281 lines)
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/Proof/VexProofBuilderTests.cs (546 lines)
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/Proof/VexProofShuffleDeterminismTests.cs (298 lines)
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/Propagation/PropagationRuleEngineTests.cs (375 lines)
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/Regression/VexLensRegressionTests.cs (329 lines)
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/Storage/DualWriteConsensusProjectionStoreTests.cs (162 lines)
- Namespace issues:
- none
- Using directive issues:
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/Storage/DualWriteConsensusProjectionStoreTests.cs: using directives inside namespace
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/Storage/PostgresConsensusProjectionStoreProxyTests.cs: using directives inside namespace
- Naming issues:
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/Caching/ConsensusRationaleCacheTests.cs: private field naming
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/E2E/VexLensPipelineDeterminismTests.cs: private field naming
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/GoldenCorpus/GoldenCorpusLoader.cs: private field naming
- Async issues:
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/Caching/ConsensusRationaleCacheTests.cs: async method naming
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/Caching/ConsensusRationaleCacheTests.cs: missing ConfigureAwait(false)
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/Conditions/ConditionEvaluatorTests.cs: blocking async usage
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/GoldenCorpus/GoldenCorpusLoader.cs: async method naming
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/GoldenCorpus/GoldenCorpusLoader.cs: missing ConfigureAwait(false)
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/GoldenCorpus/GoldenCorpusTestRunner.cs: async method naming
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/GoldenCorpus/GoldenCorpusTestRunner.cs: missing ConfigureAwait(false)
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/GoldenCorpus/GoldenCorpusTests.cs: async method naming
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/GoldenCorpus/GoldenCorpusTests.cs: missing ConfigureAwait(false)
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/Normalization/OpenVexNormalizerTests.cs: async method naming
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/Normalization/OpenVexNormalizerTests.cs: missing ConfigureAwait(false)
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/Storage/DualWriteConsensusProjectionStoreTests.cs: async method naming
- src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/Storage/DualWriteConsensusProjectionStoreTests.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).
- Remove overrides that disable TreatWarningsAsErrors.
- 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: 14
- Files with issues: 14
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/Caching/ConsensusRationaleCacheTests.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. |
| src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/Conditions/ConditionEvaluatorTests.cs | BlockingAsync; FileLength>100 | Replace .Result/.Wait/GetAwaiter().GetResult() with await.; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/E2E/VexLensPipelineDeterminismTests.cs | FileLength>100; PrivateFieldNaming | Rename private fields to _camelCase.; Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/GoldenCorpus/GoldenCorpusLoader.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. |
| src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/GoldenCorpus/GoldenCorpusModels.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/GoldenCorpus/GoldenCorpusTestRunner.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/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/GoldenCorpus/GoldenCorpusTests.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/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/Normalization/OpenVexNormalizerTests.cs | AsyncNaming; ConfigureAwaitMissing | Add ConfigureAwait(false) to awaited calls in library-like code.; Rename async methods to end with Async. |
| src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/Proof/VexProofBuilderTests.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/Proof/VexProofShuffleDeterminismTests.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/Propagation/PropagationRuleEngineTests.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/Regression/VexLensRegressionTests.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/Storage/DualWriteConsensusProjectionStoreTests.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/VexLens/StellaOps.VexLens/__Tests/StellaOps.VexLens.Tests/Storage/PostgresConsensusProjectionStoreProxyTests.cs | UsingInsideNamespace | Move using directives outside namespace. |
## 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,94 @@
# Audit - StellaOps.VexLens.Spdx3
## Project
- Path: src/VexLens/__Libraries/StellaOps.VexLens.Spdx3/StellaOps.VexLens.Spdx3.csproj
- Module: VexLens
- Kind: Library
- Audit date (UTC): 2026-01-30
- 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: 6
- Namespace violations: 12
- 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/VexLens/__Libraries/StellaOps.VexLens.Spdx3/CombinedSbomVexBuilder.cs (288 lines)
- src/VexLens/__Libraries/StellaOps.VexLens.Spdx3/CvssMapper.cs (203 lines)
- src/VexLens/__Libraries/StellaOps.VexLens.Spdx3/IVexToSpdx3Mapper.cs (294 lines)
- src/VexLens/__Libraries/StellaOps.VexLens.Spdx3/VexStatusMapper.cs (186 lines)
- src/VexLens/__Libraries/StellaOps.VexLens.Spdx3/VexToSpdx3Mapper.cs (184 lines)
- src/VexLens/__Libraries/StellaOps.VexLens.Spdx3/VulnerabilityElementBuilder.cs (215 lines)
- Namespace issues:
- src/VexLens/__Libraries/StellaOps.VexLens.Spdx3/CombinedSbomVexBuilder.cs: missing namespace
- src/VexLens/__Libraries/StellaOps.VexLens.Spdx3/CvssMapper.cs: missing namespace
- src/VexLens/__Libraries/StellaOps.VexLens.Spdx3/IVexToSpdx3Mapper.cs: missing namespace
- src/VexLens/__Libraries/StellaOps.VexLens.Spdx3/VexStatusMapper.cs: missing namespace
- src/VexLens/__Libraries/StellaOps.VexLens.Spdx3/VexToSpdx3Mapper.cs: missing namespace
- src/VexLens/__Libraries/StellaOps.VexLens.Spdx3/VulnerabilityElementBuilder.cs: missing namespace
- src/VexLens/__Libraries/StellaOps.VexLens.Spdx3/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/VexLens/__Libraries/StellaOps.VexLens.Spdx3/obj/Debug/net10.0/StellaOps.VexLens.Spdx3.AssemblyInfo.cs: missing namespace
- src/VexLens/__Libraries/StellaOps.VexLens.Spdx3/obj/Debug/net10.0/StellaOps.VexLens.Spdx3.GlobalUsings.g.cs: missing namespace
- src/VexLens/__Libraries/StellaOps.VexLens.Spdx3/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/VexLens/__Libraries/StellaOps.VexLens.Spdx3/obj/Release/net10.0/StellaOps.VexLens.Spdx3.AssemblyInfo.cs: missing namespace
- src/VexLens/__Libraries/StellaOps.VexLens.Spdx3/obj/Release/net10.0/StellaOps.VexLens.Spdx3.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: 12
- Files with issues: 12
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/VexLens/__Libraries/StellaOps.VexLens.Spdx3/CombinedSbomVexBuilder.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/__Libraries/StellaOps.VexLens.Spdx3/CvssMapper.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/__Libraries/StellaOps.VexLens.Spdx3/IVexToSpdx3Mapper.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/__Libraries/StellaOps.VexLens.Spdx3/VexStatusMapper.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/__Libraries/StellaOps.VexLens.Spdx3/VexToSpdx3Mapper.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/__Libraries/StellaOps.VexLens.Spdx3/VulnerabilityElementBuilder.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/VexLens/__Libraries/StellaOps.VexLens.Spdx3/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/VexLens/__Libraries/StellaOps.VexLens.Spdx3/obj/Debug/net10.0/StellaOps.VexLens.Spdx3.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/VexLens/__Libraries/StellaOps.VexLens.Spdx3/obj/Debug/net10.0/StellaOps.VexLens.Spdx3.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/VexLens/__Libraries/StellaOps.VexLens.Spdx3/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/VexLens/__Libraries/StellaOps.VexLens.Spdx3/obj/Release/net10.0/StellaOps.VexLens.Spdx3.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/VexLens/__Libraries/StellaOps.VexLens.Spdx3/obj/Release/net10.0/StellaOps.VexLens.Spdx3.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
## Testing Fullness Findings
- Status: PASS
- Expected layers (heuristic): Unit
- Detected test projects: src/VexLens/__Libraries/__Tests/StellaOps.VexLens.Spdx3.Tests/StellaOps.VexLens.Spdx3.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,79 @@
# Audit - StellaOps.VexLens.Spdx3
## Project
- Path: src/VexLens/__Libraries/StellaOps.VexLens.Spdx3/StellaOps.VexLens.Spdx3.csproj
- Module: VexLens
- Kind: Library
- 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: explicit true
- Deterministic: inherited true
- 100-line rule violations: 6
- Namespace violations: 0
- Using directive violations: 3
- Naming violations (interfaces/fields/const/async): 0
- Service locator usage (BuildServiceProvider/GetService): 0
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/VexLens/__Libraries/StellaOps.VexLens.Spdx3/CombinedSbomVexBuilder.cs (289 lines)
- src/VexLens/__Libraries/StellaOps.VexLens.Spdx3/CvssMapper.cs (204 lines)
- src/VexLens/__Libraries/StellaOps.VexLens.Spdx3/IVexToSpdx3Mapper.cs (294 lines)
- src/VexLens/__Libraries/StellaOps.VexLens.Spdx3/VexStatusMapper.cs (187 lines)
- src/VexLens/__Libraries/StellaOps.VexLens.Spdx3/VexToSpdx3Mapper.cs (185 lines)
- src/VexLens/__Libraries/StellaOps.VexLens.Spdx3/VulnerabilityElementBuilder.cs (216 lines)
- Namespace issues:
- none
- Using directive issues:
- src/VexLens/__Libraries/StellaOps.VexLens.Spdx3/CvssMapper.cs: using directives inside namespace
- src/VexLens/__Libraries/StellaOps.VexLens.Spdx3/VexStatusMapper.cs: using directives inside namespace
- src/VexLens/__Libraries/StellaOps.VexLens.Spdx3/VulnerabilityElementBuilder.cs: using directives inside namespace
- Naming issues:
- none
- Async issues:
- none
- Service locator matches:
- none
- Assembly.LoadFrom matches:
- none
### Fix Guidance
- Move and sort using directives (outside namespace).
- 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/VexLens/__Libraries/StellaOps.VexLens.Spdx3/CombinedSbomVexBuilder.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/VexLens/__Libraries/StellaOps.VexLens.Spdx3/CvssMapper.cs | FileLength>100; UsingInsideNamespace | Move using directives outside namespace.; Split file to stay <= 100 lines. |
| src/VexLens/__Libraries/StellaOps.VexLens.Spdx3/IVexToSpdx3Mapper.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/VexLens/__Libraries/StellaOps.VexLens.Spdx3/VexStatusMapper.cs | FileLength>100; UsingInsideNamespace | Move using directives outside namespace.; Split file to stay <= 100 lines. |
| src/VexLens/__Libraries/StellaOps.VexLens.Spdx3/VexToSpdx3Mapper.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/VexLens/__Libraries/StellaOps.VexLens.Spdx3/VulnerabilityElementBuilder.cs | FileLength>100; UsingInsideNamespace | Move using directives outside namespace.; Split file to stay <= 100 lines. |
## Testing Fullness Findings
- Status: PASS
- Expected layers (heuristic): Unit
- Detected test projects: src/VexLens/__Libraries/__Tests/StellaOps.VexLens.Spdx3.Tests/StellaOps.VexLens.Spdx3.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,80 @@
# Audit - StellaOps.VexLens.Spdx3.Tests
## Project
- Path: src/VexLens/__Libraries/__Tests/StellaOps.VexLens.Spdx3.Tests/StellaOps.VexLens.Spdx3.Tests.csproj
- Module: VexLens
- Kind: Test
- 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: 5
- 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/VexLens/__Libraries/__Tests/StellaOps.VexLens.Spdx3.Tests/CombinedSbomVexBuilderTests.cs (369 lines)
- src/VexLens/__Libraries/__Tests/StellaOps.VexLens.Spdx3.Tests/CvssMapperTests.cs (144 lines)
- src/VexLens/__Libraries/__Tests/StellaOps.VexLens.Spdx3.Tests/VexStatusMapperTests.cs (208 lines)
- src/VexLens/__Libraries/__Tests/StellaOps.VexLens.Spdx3.Tests/VexToSpdx3MapperTests.cs (421 lines)
- src/VexLens/__Libraries/__Tests/StellaOps.VexLens.Spdx3.Tests/VulnerabilityElementBuilderTests.cs (117 lines)
- Namespace issues:
- none
- Using directive issues:
- src/VexLens/__Libraries/__Tests/StellaOps.VexLens.Spdx3.Tests/CombinedSbomVexBuilderTests.cs: using directives not sorted
- src/VexLens/__Libraries/__Tests/StellaOps.VexLens.Spdx3.Tests/VexToSpdx3MapperTests.cs: using directives not sorted
- Naming issues:
- src/VexLens/__Libraries/__Tests/StellaOps.VexLens.Spdx3.Tests/CombinedSbomVexBuilderTests.cs: private field naming
- src/VexLens/__Libraries/__Tests/StellaOps.VexLens.Spdx3.Tests/VexToSpdx3MapperTests.cs: private field naming
- Async issues:
- src/VexLens/__Libraries/__Tests/StellaOps.VexLens.Spdx3.Tests/VexToSpdx3MapperTests.cs: async method naming
- src/VexLens/__Libraries/__Tests/StellaOps.VexLens.Spdx3.Tests/VexToSpdx3MapperTests.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: 5
- Files with issues: 5
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/VexLens/__Libraries/__Tests/StellaOps.VexLens.Spdx3.Tests/CombinedSbomVexBuilderTests.cs | FileLength>100; PrivateFieldNaming; UsingNotSorted | Rename private fields to _camelCase.; Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/VexLens/__Libraries/__Tests/StellaOps.VexLens.Spdx3.Tests/CvssMapperTests.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/VexLens/__Libraries/__Tests/StellaOps.VexLens.Spdx3.Tests/VexStatusMapperTests.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/VexLens/__Libraries/__Tests/StellaOps.VexLens.Spdx3.Tests/VexToSpdx3MapperTests.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; PrivateFieldNaming; UsingNotSorted | Add ConfigureAwait(false) to awaited calls in library-like code.; Rename async methods to end with Async.; Rename private fields to _camelCase.; Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/VexLens/__Libraries/__Tests/StellaOps.VexLens.Spdx3.Tests/VulnerabilityElementBuilderTests.cs | FileLength>100 | 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,72 @@
# Audit - StellaOps.VexLens.Tests
## Project
- Path: src/VexLens/__Tests/StellaOps.VexLens.Tests/StellaOps.VexLens.Tests.csproj
- Module: VexLens
- Kind: Test
- Audit date (UTC): 2026-01-31
- Files scanned: 2
- Files with issues: 2
- File-level report: docs/implplan/audits/csproj-standards/file-audit.csv
## Coding Standards Findings
- Status: FAIL
- Nullable: enable
- TreatWarningsAsErrors: explicit false
- Deterministic: inherited true
- 100-line rule violations: 2
- Namespace violations: 0
- Using directive violations: 1
- Naming violations (interfaces/fields/const/async): 2
- Service locator usage (BuildServiceProvider/GetService): 0
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/VexLens/__Tests/StellaOps.VexLens.Tests/Delta/DeltaReportBuilderTests.cs (365 lines)
- src/VexLens/__Tests/StellaOps.VexLens.Tests/NoiseGate/NoiseGateServiceTests.cs (462 lines)
- Namespace issues:
- none
- Using directive issues:
- src/VexLens/__Tests/StellaOps.VexLens.Tests/NoiseGate/NoiseGateServiceTests.cs: using directives not sorted
- Naming issues:
- none
- Async issues:
- src/VexLens/__Tests/StellaOps.VexLens.Tests/NoiseGate/NoiseGateServiceTests.cs: async method naming
- src/VexLens/__Tests/StellaOps.VexLens.Tests/NoiseGate/NoiseGateServiceTests.cs: missing ConfigureAwait(false)
- Service locator matches:
- none
- 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.
- Split files over 100 lines into smaller types or partials.
## File-Level Findings
- Status: FAIL
- Files scanned: 2
- Files with issues: 2
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/VexLens/__Tests/StellaOps.VexLens.Tests/Delta/DeltaReportBuilderTests.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/VexLens/__Tests/StellaOps.VexLens.Tests/NoiseGate/NoiseGateServiceTests.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.