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,85 @@
# Audit - StellaOps.Attestation.Tests
## Project
- Path: src/Attestor/StellaOps.Attestation.Tests/StellaOps.Attestation.Tests.csproj
- Module: Attestor
- Kind: Library
- Audit date (UTC): 2026-01-30
- Files scanned: 9
- Files with issues: 9
- 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: 1
- Namespace violations: 9
- 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/Attestor/StellaOps.Attestation.Tests/DsseVerifierTests.cs (296 lines)
- Namespace issues:
- src/Attestor/StellaOps.Attestation.Tests/DsseEnvelopeExtensionsTests.cs: missing namespace
- src/Attestor/StellaOps.Attestation.Tests/DsseHelperTests.cs: missing namespace
- src/Attestor/StellaOps.Attestation.Tests/DsseVerifierTests.cs: missing namespace
- src/Attestor/StellaOps.Attestation.Tests/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/Attestor/StellaOps.Attestation.Tests/obj/Debug/net10.0/SelfRegisteredExtensions.cs: missing namespace
- src/Attestor/StellaOps.Attestation.Tests/obj/Debug/net10.0/StellaOps.Attestation.Tests.AssemblyInfo.cs: missing namespace
- src/Attestor/StellaOps.Attestation.Tests/obj/Debug/net10.0/StellaOps.Attestation.Tests.GlobalUsings.g.cs: missing namespace
- src/Attestor/StellaOps.Attestation.Tests/obj/Debug/net10.0/XunitAutoGeneratedEntryPoint.cs: missing namespace
- src/Attestor/StellaOps.Attestation.Tests/obj/Release/net10.0/StellaOps.Attestation.Tests.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>.
- Remove overrides that disable TreatWarningsAsErrors.
- Split files over 100 lines into smaller types or partials.
## File-Level Findings
- Status: FAIL
- Files scanned: 9
- Files with issues: 9
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Attestor/StellaOps.Attestation.Tests/DsseEnvelopeExtensionsTests.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestation.Tests/DsseHelperTests.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestation.Tests/DsseVerifierTests.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestation.Tests/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestation.Tests/obj/Debug/net10.0/SelfRegisteredExtensions.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestation.Tests/obj/Debug/net10.0/StellaOps.Attestation.Tests.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestation.Tests/obj/Debug/net10.0/StellaOps.Attestation.Tests.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestation.Tests/obj/Debug/net10.0/XunitAutoGeneratedEntryPoint.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestation.Tests/obj/Release/net10.0/StellaOps.Attestation.Tests.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,77 @@
# Audit - StellaOps.Attestation.Tests
## Project
- Path: src/Attestor/StellaOps.Attestation.Tests/StellaOps.Attestation.Tests.csproj
- Module: Attestor
- Kind: Test
- 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 false
- Deterministic: inherited true
- 100-line rule violations: 1
- Namespace violations: 0
- Using directive violations: 4
- Naming violations (interfaces/fields/const/async): 4
- Service locator usage (BuildServiceProvider/GetService): 0
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Attestor/StellaOps.Attestation.Tests/DsseVerifierTests.cs (296 lines)
- Namespace issues:
- none
- Using directive issues:
- src/Attestor/StellaOps.Attestation.Tests/DsseEnvelopeExtensionsTests.cs: using directives not sorted
- src/Attestor/StellaOps.Attestation.Tests/DsseHelperTests.cs: using directives not sorted
- src/Attestor/StellaOps.Attestation.Tests/DsseVerifierTests.cs: using directives inside namespace
- src/Attestor/StellaOps.Attestation.Tests/DsseVerifierTests.cs: using directives not sorted
- Naming issues:
- none
- Async issues:
- src/Attestor/StellaOps.Attestation.Tests/DsseHelperTests.cs: async method naming
- src/Attestor/StellaOps.Attestation.Tests/DsseHelperTests.cs: missing ConfigureAwait(false)
- src/Attestor/StellaOps.Attestation.Tests/DsseVerifierTests.cs: async method naming
- src/Attestor/StellaOps.Attestation.Tests/DsseVerifierTests.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: 3
- Files with issues: 3
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Attestor/StellaOps.Attestation.Tests/DsseEnvelopeExtensionsTests.cs | UsingNotSorted | Sort using directives alphabetically. |
| src/Attestor/StellaOps.Attestation.Tests/DsseHelperTests.cs | AsyncNaming; ConfigureAwaitMissing; UsingNotSorted | Add ConfigureAwait(false) to awaited calls in library-like code.; Rename async methods to end with Async.; Sort using directives alphabetically. |
| src/Attestor/StellaOps.Attestation.Tests/DsseVerifierTests.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; UsingInsideNamespace; UsingNotSorted | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; 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.

View File

@@ -0,0 +1,90 @@
# Audit - StellaOps.Attestation
## Project
- Path: src/Attestor/StellaOps.Attestation/StellaOps.Attestation.csproj
- Module: Attestor
- 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: 2
- 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/Attestor/StellaOps.Attestation/DsseVerifier.cs (302 lines)
- src/Attestor/StellaOps.Attestation/IDsseVerifier.cs (152 lines)
- Namespace issues:
- src/Attestor/StellaOps.Attestation/DsseEnvelopeExtensions.cs: missing namespace
- src/Attestor/StellaOps.Attestation/DsseHelper.cs: missing namespace
- src/Attestor/StellaOps.Attestation/DsseVerifier.cs: missing namespace
- src/Attestor/StellaOps.Attestation/IAuthoritySigner.cs: missing namespace
- src/Attestor/StellaOps.Attestation/IDsseVerifier.cs: missing namespace
- src/Attestor/StellaOps.Attestation/Models.cs: missing namespace
- src/Attestor/StellaOps.Attestation/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/Attestor/StellaOps.Attestation/obj/Debug/net10.0/StellaOps.Attestation.AssemblyInfo.cs: missing namespace
- src/Attestor/StellaOps.Attestation/obj/Debug/net10.0/StellaOps.Attestation.GlobalUsings.g.cs: missing namespace
- src/Attestor/StellaOps.Attestation/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/Attestor/StellaOps.Attestation/obj/Release/net10.0/StellaOps.Attestation.AssemblyInfo.cs: missing namespace
- src/Attestor/StellaOps.Attestation/obj/Release/net10.0/StellaOps.Attestation.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/Attestor/StellaOps.Attestation/DsseEnvelopeExtensions.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestation/DsseHelper.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestation/DsseVerifier.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestation/IAuthoritySigner.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestation/IDsseVerifier.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestation/Models.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestation/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestation/obj/Debug/net10.0/StellaOps.Attestation.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestation/obj/Debug/net10.0/StellaOps.Attestation.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestation/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestation/obj/Release/net10.0/StellaOps.Attestation.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestation/obj/Release/net10.0/StellaOps.Attestation.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
## Testing Fullness Findings
- Status: PASS
- Expected layers (heuristic): Unit
- Detected test projects: src/Attestor/StellaOps.Attestation.Tests/StellaOps.Attestation.Tests.csproj [Unit]; src/Scanner/__Tests/StellaOps.Scanner.Worker.Tests/StellaOps.Scanner.Worker.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,73 @@
# Audit - StellaOps.Attestation
## Project
- Path: src/Attestor/StellaOps.Attestation/StellaOps.Attestation.csproj
- Module: Attestor
- Kind: Library
- Audit date (UTC): 2026-01-31
- Files scanned: 6
- 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: 2
- Namespace violations: 0
- Using directive violations: 1
- Naming violations (interfaces/fields/const/async): 3
- Service locator usage (BuildServiceProvider/GetService): 0
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Attestor/StellaOps.Attestation/DsseVerifier.cs (303 lines)
- src/Attestor/StellaOps.Attestation/IDsseVerifier.cs (152 lines)
- Namespace issues:
- none
- Using directive issues:
- src/Attestor/StellaOps.Attestation/DsseVerifier.cs: using directives inside namespace
- Naming issues:
- src/Attestor/StellaOps.Attestation/DsseHelper.cs: private field naming
- src/Attestor/StellaOps.Attestation/DsseVerifier.cs: private field naming
- Async issues:
- src/Attestor/StellaOps.Attestation/DsseHelper.cs: async method naming
- 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: 6
- Files with issues: 3
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Attestor/StellaOps.Attestation/DsseHelper.cs | AsyncNaming; PrivateFieldNaming | Rename async methods to end with Async.; Rename private fields to _camelCase. |
| src/Attestor/StellaOps.Attestation/DsseVerifier.cs | FileLength>100; PrivateFieldNaming; UsingInsideNamespace | Move using directives outside namespace.; Rename private fields to _camelCase.; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestation/IDsseVerifier.cs | FileLength>100 | Split file to stay <= 100 lines. |
## Testing Fullness Findings
- Status: PASS
- Expected layers (heuristic): Unit
- Detected test projects: src/Attestor/StellaOps.Attestation.Tests/StellaOps.Attestation.Tests.csproj [Unit]; src/Scanner/__Tests/StellaOps.Scanner.Worker.Tests/StellaOps.Scanner.Worker.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,122 @@
# Audit - StellaOps.Attestor.Envelope
## Project
- Path: src/Attestor/StellaOps.Attestor.Envelope/StellaOps.Attestor.Envelope.csproj
- Module: Attestor
- Kind: Library
- Audit date (UTC): 2026-01-30
- Files scanned: 27
- Files with issues: 27
- 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: 4
- Namespace violations: 27
- 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/Attestor/StellaOps.Attestor.Envelope/DsseEnvelopeSerializer.cs (318 lines)
- src/Attestor/StellaOps.Attestor.Envelope/EnvelopeKey.cs (302 lines)
- src/Attestor/StellaOps.Attestor.Envelope/EnvelopeSignatureService.cs (191 lines)
- src/Attestor/StellaOps.Attestor.Envelope/__Tests/StellaOps.Attestor.Envelope.Tests/DsseEnvelopeSerializerTests.cs (160 lines)
- Namespace issues:
- src/Attestor/StellaOps.Attestor.Envelope/DsseCompressionAlgorithm.cs: missing namespace
- src/Attestor/StellaOps.Attestor.Envelope/DsseDetachedPayloadReference.cs: missing namespace
- src/Attestor/StellaOps.Attestor.Envelope/DsseEnvelope.cs: missing namespace
- src/Attestor/StellaOps.Attestor.Envelope/DsseEnvelopeSerializationOptions.cs: missing namespace
- src/Attestor/StellaOps.Attestor.Envelope/DsseEnvelopeSerializationResult.cs: missing namespace
- src/Attestor/StellaOps.Attestor.Envelope/DsseEnvelopeSerializer.cs: missing namespace
- src/Attestor/StellaOps.Attestor.Envelope/DssePreAuthenticationEncoding.cs: missing namespace
- src/Attestor/StellaOps.Attestor.Envelope/DsseSignature.cs: missing namespace
- src/Attestor/StellaOps.Attestor.Envelope/EnvelopeKey.cs: missing namespace
- src/Attestor/StellaOps.Attestor.Envelope/EnvelopeKeyIdCalculator.cs: missing namespace
- src/Attestor/StellaOps.Attestor.Envelope/EnvelopeSignature.cs: missing namespace
- src/Attestor/StellaOps.Attestor.Envelope/EnvelopeSignatureResult.cs: missing namespace
- src/Attestor/StellaOps.Attestor.Envelope/EnvelopeSignatureService.cs: missing namespace
- src/Attestor/StellaOps.Attestor.Envelope/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/Attestor/StellaOps.Attestor.Envelope/obj/Debug/net10.0/StellaOps.Attestor.Envelope.AssemblyInfo.cs: missing namespace
- src/Attestor/StellaOps.Attestor.Envelope/obj/Debug/net10.0/StellaOps.Attestor.Envelope.GlobalUsings.g.cs: missing namespace
- src/Attestor/StellaOps.Attestor.Envelope/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/Attestor/StellaOps.Attestor.Envelope/obj/Release/net10.0/StellaOps.Attestor.Envelope.AssemblyInfo.cs: missing namespace
- src/Attestor/StellaOps.Attestor.Envelope/obj/Release/net10.0/StellaOps.Attestor.Envelope.GlobalUsings.g.cs: missing namespace
- src/Attestor/StellaOps.Attestor.Envelope/__Tests/StellaOps.Attestor.Envelope.Tests/DsseEnvelopeSerializerTests.cs: missing namespace
- src/Attestor/StellaOps.Attestor.Envelope/__Tests/StellaOps.Attestor.Envelope.Tests/EnvelopeSignatureServiceTests.cs: missing namespace
- src/Attestor/StellaOps.Attestor.Envelope/__Tests/StellaOps.Attestor.Envelope.Tests/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/Attestor/StellaOps.Attestor.Envelope/__Tests/StellaOps.Attestor.Envelope.Tests/obj/Debug/net10.0/SelfRegisteredExtensions.cs: missing namespace
- src/Attestor/StellaOps.Attestor.Envelope/__Tests/StellaOps.Attestor.Envelope.Tests/obj/Debug/net10.0/StellaOps.Attestor.Envelope.Tests.AssemblyInfo.cs: missing namespace
- src/Attestor/StellaOps.Attestor.Envelope/__Tests/StellaOps.Attestor.Envelope.Tests/obj/Debug/net10.0/StellaOps.Attestor.Envelope.Tests.GlobalUsings.g.cs: missing namespace
- src/Attestor/StellaOps.Attestor.Envelope/__Tests/StellaOps.Attestor.Envelope.Tests/obj/Debug/net10.0/XunitAutoGeneratedEntryPoint.cs: missing namespace
- src/Attestor/StellaOps.Attestor.Envelope/__Tests/StellaOps.Attestor.Envelope.Tests/obj/Release/net10.0/StellaOps.Attestor.Envelope.Tests.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: 27
- Files with issues: 27
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Attestor/StellaOps.Attestor.Envelope/DsseCompressionAlgorithm.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor.Envelope/DsseDetachedPayloadReference.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor.Envelope/DsseEnvelope.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor.Envelope/DsseEnvelopeSerializationOptions.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor.Envelope/DsseEnvelopeSerializationResult.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor.Envelope/DsseEnvelopeSerializer.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor.Envelope/DssePreAuthenticationEncoding.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor.Envelope/DsseSignature.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor.Envelope/EnvelopeKey.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor.Envelope/EnvelopeKeyIdCalculator.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor.Envelope/EnvelopeSignature.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor.Envelope/EnvelopeSignatureResult.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor.Envelope/EnvelopeSignatureService.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor.Envelope/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor.Envelope/obj/Debug/net10.0/StellaOps.Attestor.Envelope.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor.Envelope/obj/Debug/net10.0/StellaOps.Attestor.Envelope.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor.Envelope/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor.Envelope/obj/Release/net10.0/StellaOps.Attestor.Envelope.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor.Envelope/obj/Release/net10.0/StellaOps.Attestor.Envelope.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor.Envelope/__Tests/StellaOps.Attestor.Envelope.Tests/DsseEnvelopeSerializerTests.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor.Envelope/__Tests/StellaOps.Attestor.Envelope.Tests/EnvelopeSignatureServiceTests.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor.Envelope/__Tests/StellaOps.Attestor.Envelope.Tests/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor.Envelope/__Tests/StellaOps.Attestor.Envelope.Tests/obj/Debug/net10.0/SelfRegisteredExtensions.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor.Envelope/__Tests/StellaOps.Attestor.Envelope.Tests/obj/Debug/net10.0/StellaOps.Attestor.Envelope.Tests.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor.Envelope/__Tests/StellaOps.Attestor.Envelope.Tests/obj/Debug/net10.0/StellaOps.Attestor.Envelope.Tests.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor.Envelope/__Tests/StellaOps.Attestor.Envelope.Tests/obj/Debug/net10.0/XunitAutoGeneratedEntryPoint.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor.Envelope/__Tests/StellaOps.Attestor.Envelope.Tests/obj/Release/net10.0/StellaOps.Attestor.Envelope.Tests.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
## Testing Fullness Findings
- Status: PASS
- Expected layers (heuristic): Unit
- Detected test projects: src/__Tests/Integration/StellaOps.Integration.E2E/StellaOps.Integration.E2E.csproj [E2E, Integration]; src/Attestor/__Libraries/__Tests/StellaOps.Attestor.GraphRoot.Tests/StellaOps.Attestor.GraphRoot.Tests.csproj [Unit]; src/Attestor/__Tests/StellaOps.Attestor.Oci.Tests/StellaOps.Attestor.Oci.Tests.csproj [Unit]; src/Attestor/__Tests/StellaOps.Attestor.ProofChain.Tests/StellaOps.Attestor.ProofChain.Tests.csproj [Unit]; src/Attestor/StellaOps.Attestor.Envelope/__Tests/StellaOps.Attestor.Envelope.Tests/StellaOps.Attestor.Envelope.Tests.csproj [Unit]; src/Cli/__Tests/StellaOps.Cli.Tests/StellaOps.Cli.Tests.csproj [CLI]
- 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,86 @@
# Audit - StellaOps.Attestor.Envelope
## Project
- Path: src/Attestor/StellaOps.Attestor.Envelope/StellaOps.Attestor.Envelope.csproj
- Module: Attestor
- Kind: Library
- Audit date (UTC): 2026-01-31
- Files scanned: 15
- Files with issues: 9
- 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: 4
- Namespace violations: 0
- Using directive violations: 5
- Naming violations (interfaces/fields/const/async): 4
- Service locator usage (BuildServiceProvider/GetService): 0
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Attestor/StellaOps.Attestor.Envelope/DsseEnvelopeSerializer.cs (319 lines)
- src/Attestor/StellaOps.Attestor.Envelope/EnvelopeKey.cs (303 lines)
- src/Attestor/StellaOps.Attestor.Envelope/EnvelopeSignatureService.cs (192 lines)
- src/Attestor/StellaOps.Attestor.Envelope/__Tests/StellaOps.Attestor.Envelope.Tests/DsseEnvelopeSerializerTests.cs (161 lines)
- Namespace issues:
- none
- Using directive issues:
- src/Attestor/StellaOps.Attestor.Envelope/DsseEnvelopeSerializer.cs: using directives inside namespace
- src/Attestor/StellaOps.Attestor.Envelope/EnvelopeKeyIdCalculator.cs: using directives inside namespace
- src/Attestor/StellaOps.Attestor.Envelope/EnvelopeSignatureService.cs: using directives inside namespace
- src/Attestor/StellaOps.Attestor.Envelope/__Tests/StellaOps.Attestor.Envelope.Tests/DsseEnvelopeSerializerTests.cs: using directives inside namespace
- src/Attestor/StellaOps.Attestor.Envelope/__Tests/StellaOps.Attestor.Envelope.Tests/EnvelopeSignatureServiceTests.cs: using directives inside namespace
- Naming issues:
- src/Attestor/StellaOps.Attestor.Envelope/DssePreAuthenticationEncoding.cs: private field naming
- src/Attestor/StellaOps.Attestor.Envelope/EnvelopeKey.cs: private field naming
- src/Attestor/StellaOps.Attestor.Envelope/EnvelopeSignature.cs: private field naming
- src/Attestor/StellaOps.Attestor.Envelope/EnvelopeSignatureResult.cs: private field naming
- Async issues:
- none
- Service locator matches:
- none
- Assembly.LoadFrom matches:
- none
### Fix Guidance
- Align interface/field/const naming to standards.
- Move and sort using directives (outside namespace).
- Split files over 100 lines into smaller types or partials.
## File-Level Findings
- Status: FAIL
- Files scanned: 15
- Files with issues: 9
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Attestor/StellaOps.Attestor.Envelope/DsseEnvelopeSerializer.cs | FileLength>100; UsingInsideNamespace | Move using directives outside namespace.; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor.Envelope/DssePreAuthenticationEncoding.cs | PrivateFieldNaming | Rename private fields to _camelCase. |
| src/Attestor/StellaOps.Attestor.Envelope/EnvelopeKey.cs | FileLength>100; PrivateFieldNaming | Rename private fields to _camelCase.; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor.Envelope/EnvelopeKeyIdCalculator.cs | UsingInsideNamespace | Move using directives outside namespace. |
| src/Attestor/StellaOps.Attestor.Envelope/EnvelopeSignature.cs | PrivateFieldNaming | Rename private fields to _camelCase. |
| src/Attestor/StellaOps.Attestor.Envelope/EnvelopeSignatureResult.cs | PrivateFieldNaming | Rename private fields to _camelCase. |
| src/Attestor/StellaOps.Attestor.Envelope/EnvelopeSignatureService.cs | FileLength>100; UsingInsideNamespace | Move using directives outside namespace.; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor.Envelope/__Tests/StellaOps.Attestor.Envelope.Tests/DsseEnvelopeSerializerTests.cs | FileLength>100; UsingInsideNamespace | Move using directives outside namespace.; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor.Envelope/__Tests/StellaOps.Attestor.Envelope.Tests/EnvelopeSignatureServiceTests.cs | UsingInsideNamespace | Move using directives outside namespace. |
## Testing Fullness Findings
- Status: PASS
- Expected layers (heuristic): Unit
- Detected test projects: src/__Tests/Integration/StellaOps.Integration.E2E/StellaOps.Integration.E2E.csproj [E2E, Integration]; src/Attestor/__Libraries/__Tests/StellaOps.Attestor.GraphRoot.Tests/StellaOps.Attestor.GraphRoot.Tests.csproj [Unit]; src/Attestor/__Tests/StellaOps.Attestor.Oci.Tests/StellaOps.Attestor.Oci.Tests.csproj [Unit]; src/Attestor/__Tests/StellaOps.Attestor.ProofChain.Tests/StellaOps.Attestor.ProofChain.Tests.csproj [Unit]; src/Attestor/StellaOps.Attestor.Envelope/__Tests/StellaOps.Attestor.Envelope.Tests/StellaOps.Attestor.Envelope.Tests.csproj [Unit]; src/Cli/__Tests/StellaOps.Cli.Tests/StellaOps.Cli.Tests.csproj [CLI]
- 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,70 @@
# Audit - StellaOps.Attestor.Envelope.Tests
## Project
- Path: src/Attestor/StellaOps.Attestor.Envelope/__Tests/StellaOps.Attestor.Envelope.Tests/StellaOps.Attestor.Envelope.Tests.csproj
- Module: Attestor
- 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: 1
- Namespace violations: 0
- Using directive violations: 2
- Naming violations (interfaces/fields/const/async): 0
- Service locator usage (BuildServiceProvider/GetService): 0
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Attestor/StellaOps.Attestor.Envelope/__Tests/StellaOps.Attestor.Envelope.Tests/DsseEnvelopeSerializerTests.cs (161 lines)
- Namespace issues:
- none
- Using directive issues:
- src/Attestor/StellaOps.Attestor.Envelope/__Tests/StellaOps.Attestor.Envelope.Tests/DsseEnvelopeSerializerTests.cs: using directives inside namespace
- src/Attestor/StellaOps.Attestor.Envelope/__Tests/StellaOps.Attestor.Envelope.Tests/EnvelopeSignatureServiceTests.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).
- Remove overrides that disable TreatWarningsAsErrors.
- 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/Attestor/StellaOps.Attestor.Envelope/__Tests/StellaOps.Attestor.Envelope.Tests/DsseEnvelopeSerializerTests.cs | FileLength>100; UsingInsideNamespace | Move using directives outside namespace.; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor.Envelope/__Tests/StellaOps.Attestor.Envelope.Tests/EnvelopeSignatureServiceTests.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,82 @@
# Audit - StellaOps.Attestor.TileProxy
## Project
- Path: src/Attestor/StellaOps.Attestor.TileProxy/StellaOps.Attestor.TileProxy.csproj
- Module: Attestor
- Kind: Library
- Audit date (UTC): 2026-01-30
- 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: 5
- 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/Attestor/StellaOps.Attestor.TileProxy/Program.cs (138 lines)
- src/Attestor/StellaOps.Attestor.TileProxy/TileProxyOptions.cs (199 lines)
- src/Attestor/StellaOps.Attestor.TileProxy/Endpoints/TileEndpoints.cs (287 lines)
- src/Attestor/StellaOps.Attestor.TileProxy/Jobs/TileSyncJob.cs (279 lines)
- src/Attestor/StellaOps.Attestor.TileProxy/Services/ContentAddressedTileStore.cs (434 lines)
- src/Attestor/StellaOps.Attestor.TileProxy/Services/TileProxyService.cs (410 lines)
- Namespace issues:
- src/Attestor/StellaOps.Attestor.TileProxy/TileProxyOptions.cs: missing namespace
- src/Attestor/StellaOps.Attestor.TileProxy/Endpoints/TileEndpoints.cs: missing namespace
- src/Attestor/StellaOps.Attestor.TileProxy/Jobs/TileSyncJob.cs: missing namespace
- src/Attestor/StellaOps.Attestor.TileProxy/Services/ContentAddressedTileStore.cs: missing namespace
- src/Attestor/StellaOps.Attestor.TileProxy/Services/TileProxyService.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: 6
- Files with issues: 6
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Attestor/StellaOps.Attestor.TileProxy/Program.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor.TileProxy/TileProxyOptions.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor.TileProxy/Endpoints/TileEndpoints.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor.TileProxy/Jobs/TileSyncJob.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor.TileProxy/Services/ContentAddressedTileStore.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor.TileProxy/Services/TileProxyService.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): 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,90 @@
# Audit - StellaOps.Attestor.TileProxy
## Project
- Path: src/Attestor/StellaOps.Attestor.TileProxy/StellaOps.Attestor.TileProxy.csproj
- Module: Attestor
- 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: 1
- Naming violations (interfaces/fields/const/async): 8
- Service locator usage (BuildServiceProvider/GetService): 4
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Attestor/StellaOps.Attestor.TileProxy/Program.cs (138 lines)
- src/Attestor/StellaOps.Attestor.TileProxy/TileProxyOptions.cs (199 lines)
- src/Attestor/StellaOps.Attestor.TileProxy/Endpoints/TileEndpoints.cs (288 lines)
- src/Attestor/StellaOps.Attestor.TileProxy/Jobs/TileSyncJob.cs (279 lines)
- src/Attestor/StellaOps.Attestor.TileProxy/Services/ContentAddressedTileStore.cs (435 lines)
- src/Attestor/StellaOps.Attestor.TileProxy/Services/TileProxyService.cs (411 lines)
- Namespace issues:
- none
- Using directive issues:
- src/Attestor/StellaOps.Attestor.TileProxy/Services/TileProxyService.cs: using directives inside namespace
- Naming issues:
- none
- Async issues:
- src/Attestor/StellaOps.Attestor.TileProxy/Endpoints/TileEndpoints.cs: async method naming
- src/Attestor/StellaOps.Attestor.TileProxy/Endpoints/TileEndpoints.cs: missing ConfigureAwait(false)
- src/Attestor/StellaOps.Attestor.TileProxy/Jobs/TileSyncJob.cs: async method naming
- src/Attestor/StellaOps.Attestor.TileProxy/Jobs/TileSyncJob.cs: missing ConfigureAwait(false)
- src/Attestor/StellaOps.Attestor.TileProxy/Services/ContentAddressedTileStore.cs: async method naming
- src/Attestor/StellaOps.Attestor.TileProxy/Services/ContentAddressedTileStore.cs: missing ConfigureAwait(false)
- src/Attestor/StellaOps.Attestor.TileProxy/Services/TileProxyService.cs: async method naming
- src/Attestor/StellaOps.Attestor.TileProxy/Services/TileProxyService.cs: missing ConfigureAwait(false)
- Service locator matches:
- src/Attestor/StellaOps.Attestor.TileProxy/Program.cs:51 var options = sp.GetRequiredService<IOptions<TileProxyOptions>>().Value;
- src/Attestor/StellaOps.Attestor.TileProxy/Program.cs:63 var optionsValidator = app.Services.GetRequiredService<IValidateOptions<TileProxyOptions>>();
- src/Attestor/StellaOps.Attestor.TileProxy/Program.cs:64 var options = app.Services.GetRequiredService<IOptions<TileProxyOptions>>().Value;
- src/Attestor/StellaOps.Attestor.TileProxy/Program.cs:78 var logger = app.Services.GetRequiredService<ILogger<Program>>();
- Assembly.LoadFrom matches:
- none
### Fix Guidance
- 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: 6
- Files with issues: 6
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Attestor/StellaOps.Attestor.TileProxy/Program.cs | FileLength>100; ServiceLocator | Remove service locator usage; use constructor injection.; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor.TileProxy/TileProxyOptions.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor.TileProxy/Endpoints/TileEndpoints.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/Attestor/StellaOps.Attestor.TileProxy/Jobs/TileSyncJob.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/Attestor/StellaOps.Attestor.TileProxy/Services/ContentAddressedTileStore.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/Attestor/StellaOps.Attestor.TileProxy/Services/TileProxyService.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. |
## 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,79 @@
# Audit - StellaOps.Attestor.Types.Generator
## Project
- Path: src/Attestor/StellaOps.Attestor.Types/Tools/StellaOps.Attestor.Types.Generator/StellaOps.Attestor.Types.Generator.csproj
- Module: Attestor
- Kind: Tool
- Audit date (UTC): 2026-01-30
- Files scanned: 7
- Files with issues: 7
- 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: 1
- Namespace violations: 6
- 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/Attestor/StellaOps.Attestor.Types/Tools/StellaOps.Attestor.Types.Generator/Program.cs (1731 lines)
- Namespace issues:
- src/Attestor/StellaOps.Attestor.Types/Tools/StellaOps.Attestor.Types.Generator/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/Attestor/StellaOps.Attestor.Types/Tools/StellaOps.Attestor.Types.Generator/obj/Debug/net10.0/StellaOps.Attestor.Types.Generator.AssemblyInfo.cs: missing namespace
- src/Attestor/StellaOps.Attestor.Types/Tools/StellaOps.Attestor.Types.Generator/obj/Debug/net10.0/StellaOps.Attestor.Types.Generator.GlobalUsings.g.cs: missing namespace
- src/Attestor/StellaOps.Attestor.Types/Tools/StellaOps.Attestor.Types.Generator/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/Attestor/StellaOps.Attestor.Types/Tools/StellaOps.Attestor.Types.Generator/obj/Release/net10.0/StellaOps.Attestor.Types.Generator.AssemblyInfo.cs: missing namespace
- src/Attestor/StellaOps.Attestor.Types/Tools/StellaOps.Attestor.Types.Generator/obj/Release/net10.0/StellaOps.Attestor.Types.Generator.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: 7
- Files with issues: 7
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Attestor/StellaOps.Attestor.Types/Tools/StellaOps.Attestor.Types.Generator/Program.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor.Types/Tools/StellaOps.Attestor.Types.Generator/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor.Types/Tools/StellaOps.Attestor.Types.Generator/obj/Debug/net10.0/StellaOps.Attestor.Types.Generator.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor.Types/Tools/StellaOps.Attestor.Types.Generator/obj/Debug/net10.0/StellaOps.Attestor.Types.Generator.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor.Types/Tools/StellaOps.Attestor.Types.Generator/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor.Types/Tools/StellaOps.Attestor.Types.Generator/obj/Release/net10.0/StellaOps.Attestor.Types.Generator.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor.Types/Tools/StellaOps.Attestor.Types.Generator/obj/Release/net10.0/StellaOps.Attestor.Types.Generator.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,68 @@
# Audit - StellaOps.Attestor.Types.Generator
## Project
- Path: src/Attestor/StellaOps.Attestor.Types/Tools/StellaOps.Attestor.Types.Generator/StellaOps.Attestor.Types.Generator.csproj
- Module: Attestor
- Kind: Tool
- Audit date (UTC): 2026-01-31
- Files scanned: 1
- Files with issues: 1
- 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: 1
- Namespace violations: 0
- Using directive violations: 1
- Naming violations (interfaces/fields/const/async): 0
- Service locator usage (BuildServiceProvider/GetService): 0
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Attestor/StellaOps.Attestor.Types/Tools/StellaOps.Attestor.Types.Generator/Program.cs (1732 lines)
- Namespace issues:
- none
- Using directive issues:
- src/Attestor/StellaOps.Attestor.Types/Tools/StellaOps.Attestor.Types.Generator/Program.cs: using directives not sorted
- 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: 1
- Files with issues: 1
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Attestor/StellaOps.Attestor.Types/Tools/StellaOps.Attestor.Types.Generator/Program.cs | FileLength>100; UsingNotSorted | Sort using directives alphabetically.; Split file to stay <= 100 lines. |
## 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,84 @@
# Audit - StellaOps.Attestor.Verify
## Project
- Path: src/Attestor/StellaOps.Attestor.Verify/StellaOps.Attestor.Verify.csproj
- Module: Attestor
- Kind: Library
- Audit date (UTC): 2026-01-30
- Files scanned: 9
- Files with issues: 9
- 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: 2
- Namespace violations: 9
- 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/Attestor/StellaOps.Attestor.Verify/AttestorVerificationEngine.cs (1015 lines)
- src/Attestor/StellaOps.Attestor.Verify/Providers/DistributedVerificationProvider.cs (440 lines)
- Namespace issues:
- src/Attestor/StellaOps.Attestor.Verify/AttestorVerificationEngine.cs: missing namespace
- src/Attestor/StellaOps.Attestor.Verify/IAttestorVerificationEngine.cs: missing namespace
- src/Attestor/StellaOps.Attestor.Verify/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/Attestor/StellaOps.Attestor.Verify/obj/Debug/net10.0/StellaOps.Attestor.Verify.AssemblyInfo.cs: missing namespace
- src/Attestor/StellaOps.Attestor.Verify/obj/Debug/net10.0/StellaOps.Attestor.Verify.GlobalUsings.g.cs: missing namespace
- src/Attestor/StellaOps.Attestor.Verify/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/Attestor/StellaOps.Attestor.Verify/obj/Release/net10.0/StellaOps.Attestor.Verify.AssemblyInfo.cs: missing namespace
- src/Attestor/StellaOps.Attestor.Verify/obj/Release/net10.0/StellaOps.Attestor.Verify.GlobalUsings.g.cs: missing namespace
- src/Attestor/StellaOps.Attestor.Verify/Providers/DistributedVerificationProvider.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: 9
- Files with issues: 9
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Attestor/StellaOps.Attestor.Verify/AttestorVerificationEngine.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor.Verify/IAttestorVerificationEngine.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor.Verify/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor.Verify/obj/Debug/net10.0/StellaOps.Attestor.Verify.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor.Verify/obj/Debug/net10.0/StellaOps.Attestor.Verify.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor.Verify/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor.Verify/obj/Release/net10.0/StellaOps.Attestor.Verify.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor.Verify/obj/Release/net10.0/StellaOps.Attestor.Verify.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor.Verify/Providers/DistributedVerificationProvider.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/Attestor/__Tests/StellaOps.Attestor.Verify.Tests/StellaOps.Attestor.Verify.Tests.csproj [Unit]; src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/StellaOps.Attestor.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,73 @@
# Audit - StellaOps.Attestor.Verify
## Project
- Path: src/Attestor/StellaOps.Attestor.Verify/StellaOps.Attestor.Verify.csproj
- Module: Attestor
- Kind: Library
- Audit date (UTC): 2026-01-31
- Files scanned: 3
- Files with issues: 2
- 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: 2
- Namespace violations: 0
- Using directive violations: 3
- Naming violations (interfaces/fields/const/async): 2
- Service locator usage (BuildServiceProvider/GetService): 0
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Attestor/StellaOps.Attestor.Verify/AttestorVerificationEngine.cs (1016 lines)
- src/Attestor/StellaOps.Attestor.Verify/Providers/DistributedVerificationProvider.cs (440 lines)
- Namespace issues:
- none
- Using directive issues:
- src/Attestor/StellaOps.Attestor.Verify/AttestorVerificationEngine.cs: using directives inside namespace
- src/Attestor/StellaOps.Attestor.Verify/Providers/DistributedVerificationProvider.cs: using directives inside namespace
- src/Attestor/StellaOps.Attestor.Verify/Providers/DistributedVerificationProvider.cs: using directives not sorted
- Naming issues:
- none
- Async issues:
- src/Attestor/StellaOps.Attestor.Verify/Providers/DistributedVerificationProvider.cs: async method naming
- src/Attestor/StellaOps.Attestor.Verify/Providers/DistributedVerificationProvider.cs: missing ConfigureAwait(false)
- Service locator matches:
- none
- Assembly.LoadFrom matches:
- none
### Fix Guidance
- 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: 3
- Files with issues: 2
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Attestor/StellaOps.Attestor.Verify/AttestorVerificationEngine.cs | FileLength>100; UsingInsideNamespace | Move using directives outside namespace.; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor.Verify/Providers/DistributedVerificationProvider.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; UsingInsideNamespace; UsingNotSorted | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; 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): Unit
- Detected test projects: src/Attestor/__Tests/StellaOps.Attestor.Verify.Tests/StellaOps.Attestor.Verify.Tests.csproj [Unit]; src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/StellaOps.Attestor.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,160 @@
# Audit - StellaOps.Attestor.Core.Tests
## Project
- Path: src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/StellaOps.Attestor.Core.Tests.csproj
- Module: Attestor
- Kind: Library
- Audit date (UTC): 2026-01-30
- Files scanned: 36
- Files with issues: 36
- 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: 22
- Namespace violations: 36
- 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/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/RekorOfflineReceiptVerifierTests.cs (206 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Chain/AttestationChainBuilderTests.cs (271 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Chain/AttestationChainValidatorTests.cs (324 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Chain/AttestationLinkResolverTests.cs (364 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Chain/ChainResolverDirectionalTests.cs (324 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Chain/InMemoryAttestationLinkStoreTests.cs (217 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/InToto/ArtifactDigestsTests.cs (161 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/InToto/InTotoGoldenTests.cs (258 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/InToto/InTotoLinkTests.cs (153 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/InToto/LayoutVerifierTests.cs (277 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/InToto/LinkBuilderTests.cs (177 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/InToto/LinkRecorderTests.cs (161 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Layers/LayerAttestationServiceTests.cs (343 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/PoE/PoEArtifactGeneratorTests.cs (139 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Rekor/CheckpointDivergenceByzantineTests.cs (498 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Rekor/CheckpointDivergenceDetectorTests.cs (129 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Rekor/RekorReceiptTests.cs (263 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Rekor/RekorSyncIntegrationTests.cs (462 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Rekor/RekorSyncServiceTests.cs (660 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Signing/VerificationReportSignerTests.cs (114 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Transparency/TransparencyStatusProviderTests.cs (250 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Validation/PredicateSchemaValidatorTests.cs (201 lines)
- Namespace issues:
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/RekorOfflineReceiptVerifierTests.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/bin/Debug/net10.0/Fixtures/Rekor/RekorOfflineReceiptFixtures.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Chain/AttestationChainBuilderTests.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Chain/AttestationChainValidatorTests.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Chain/AttestationLinkResolverTests.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Chain/ChainResolverDirectionalTests.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Chain/InMemoryAttestationLinkStoreTests.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Delta/DeltaAttestationServiceTests.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Fixtures/Rekor/RekorOfflineReceiptFixtures.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/InToto/ArtifactDigestsTests.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/InToto/InTotoGoldenTests.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/InToto/InTotoLinkTests.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/InToto/LayoutVerifierTests.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/InToto/LinkBuilderTests.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/InToto/LinkRecorderTests.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Layers/LayerAttestationServiceTests.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/obj/Debug/net10.0/SelfRegisteredExtensions.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/obj/Debug/net10.0/StellaOps.Attestor.Core.Tests.AssemblyInfo.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/obj/Debug/net10.0/StellaOps.Attestor.Core.Tests.GlobalUsings.g.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/obj/Debug/net10.0/XunitAutoGeneratedEntryPoint.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/obj/Release/net10.0/StellaOps.Attestor.Core.Tests.GlobalUsings.g.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/PoE/PoEArtifactGeneratorTests.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Rekor/CheckpointDivergenceByzantineTests.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Rekor/CheckpointDivergenceDetectorTests.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Rekor/RekorReceiptTests.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Rekor/RekorSyncIntegrationTests.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Rekor/RekorSyncServiceTests.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Serialization/CanonicalJsonSerializerTests.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Signing/DssePreAuthenticationEncodingTests.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Signing/VerificationReportSignerTests.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Submission/AttestorSubmissionValidatorTests.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Transparency/TransparencyStatusProviderTests.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Validation/PredicateSchemaValidatorTests.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Verification/CheckpointSignatureVerifierTests.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Verification/TimeSkewOptionsTests.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>.
- Remove overrides that disable TreatWarningsAsErrors.
- Split files over 100 lines into smaller types or partials.
## File-Level Findings
- Status: FAIL
- Files scanned: 36
- Files with issues: 36
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/RekorOfflineReceiptVerifierTests.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/bin/Debug/net10.0/Fixtures/Rekor/RekorOfflineReceiptFixtures.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Chain/AttestationChainBuilderTests.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Chain/AttestationChainValidatorTests.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Chain/AttestationLinkResolverTests.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Chain/ChainResolverDirectionalTests.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Chain/InMemoryAttestationLinkStoreTests.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Delta/DeltaAttestationServiceTests.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Fixtures/Rekor/RekorOfflineReceiptFixtures.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/InToto/ArtifactDigestsTests.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/InToto/InTotoGoldenTests.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/InToto/InTotoLinkTests.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/InToto/LayoutVerifierTests.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/InToto/LinkBuilderTests.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/InToto/LinkRecorderTests.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Layers/LayerAttestationServiceTests.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/obj/Debug/net10.0/SelfRegisteredExtensions.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/obj/Debug/net10.0/StellaOps.Attestor.Core.Tests.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/obj/Debug/net10.0/StellaOps.Attestor.Core.Tests.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/obj/Debug/net10.0/XunitAutoGeneratedEntryPoint.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/obj/Release/net10.0/StellaOps.Attestor.Core.Tests.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/PoE/PoEArtifactGeneratorTests.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Rekor/CheckpointDivergenceByzantineTests.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Rekor/CheckpointDivergenceDetectorTests.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Rekor/RekorReceiptTests.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Rekor/RekorSyncIntegrationTests.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Rekor/RekorSyncServiceTests.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Serialization/CanonicalJsonSerializerTests.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Signing/DssePreAuthenticationEncodingTests.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Signing/VerificationReportSignerTests.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Submission/AttestorSubmissionValidatorTests.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Transparency/TransparencyStatusProviderTests.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Validation/PredicateSchemaValidatorTests.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Verification/CheckpointSignatureVerifierTests.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Verification/TimeSkewOptionsTests.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,186 @@
# Audit - StellaOps.Attestor.Core.Tests
## Project
- Path: src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/StellaOps.Attestor.Core.Tests.csproj
- Module: Attestor
- Kind: Test
- Audit date (UTC): 2026-01-31
- Files scanned: 29
- Files with issues: 27
- 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: 22
- Namespace violations: 0
- Using directive violations: 32
- Naming violations (interfaces/fields/const/async): 40
- Service locator usage (BuildServiceProvider/GetService): 0
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/RekorOfflineReceiptVerifierTests.cs (206 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Chain/AttestationChainBuilderTests.cs (271 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Chain/AttestationChainValidatorTests.cs (324 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Chain/AttestationLinkResolverTests.cs (364 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Chain/ChainResolverDirectionalTests.cs (324 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Chain/InMemoryAttestationLinkStoreTests.cs (217 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/InToto/ArtifactDigestsTests.cs (161 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/InToto/InTotoGoldenTests.cs (258 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/InToto/InTotoLinkTests.cs (153 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/InToto/LayoutVerifierTests.cs (277 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/InToto/LinkBuilderTests.cs (177 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/InToto/LinkRecorderTests.cs (161 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Layers/LayerAttestationServiceTests.cs (343 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/PoE/PoEArtifactGeneratorTests.cs (139 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Rekor/CheckpointDivergenceByzantineTests.cs (498 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Rekor/CheckpointDivergenceDetectorTests.cs (129 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Rekor/RekorReceiptTests.cs (263 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Rekor/RekorSyncIntegrationTests.cs (462 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Rekor/RekorSyncServiceTests.cs (660 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Signing/VerificationReportSignerTests.cs (114 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Transparency/TransparencyStatusProviderTests.cs (250 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Validation/PredicateSchemaValidatorTests.cs (201 lines)
- Namespace issues:
- none
- Using directive issues:
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/RekorOfflineReceiptVerifierTests.cs: using directives not sorted
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Chain/AttestationChainBuilderTests.cs: using directives not sorted
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Chain/AttestationChainValidatorTests.cs: using directives not sorted
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Chain/ChainResolverDirectionalTests.cs: using directives not sorted
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Delta/DeltaAttestationServiceTests.cs: using directives inside namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Delta/DeltaAttestationServiceTests.cs: using directives not sorted
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Fixtures/Rekor/RekorOfflineReceiptFixtures.cs: using directives not sorted
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/InToto/InTotoGoldenTests.cs: using directives not sorted
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/InToto/InTotoLinkTests.cs: using directives inside namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/InToto/InTotoLinkTests.cs: using directives not sorted
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/InToto/LayoutVerifierTests.cs: using directives not sorted
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/InToto/LinkRecorderTests.cs: using directives not sorted
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Layers/LayerAttestationServiceTests.cs: using directives not sorted
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/PoE/PoEArtifactGeneratorTests.cs: using directives inside namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/PoE/PoEArtifactGeneratorTests.cs: using directives not sorted
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Rekor/CheckpointDivergenceByzantineTests.cs: using directives inside namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Rekor/CheckpointDivergenceByzantineTests.cs: using directives not sorted
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Rekor/CheckpointDivergenceDetectorTests.cs: using directives not sorted
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Rekor/RekorReceiptTests.cs: using directives not sorted
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Rekor/RekorSyncIntegrationTests.cs: using directives inside namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Rekor/RekorSyncIntegrationTests.cs: using directives not sorted
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Rekor/RekorSyncServiceTests.cs: using directives inside namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Rekor/RekorSyncServiceTests.cs: using directives not sorted
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Signing/DssePreAuthenticationEncodingTests.cs: using directives not sorted
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Signing/VerificationReportSignerTests.cs: using directives inside namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Signing/VerificationReportSignerTests.cs: using directives not sorted
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Submission/AttestorSubmissionValidatorTests.cs: using directives not sorted
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Transparency/TransparencyStatusProviderTests.cs: using directives inside namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Transparency/TransparencyStatusProviderTests.cs: using directives not sorted
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Validation/PredicateSchemaValidatorTests.cs: using directives inside namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Validation/PredicateSchemaValidatorTests.cs: using directives not sorted
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Verification/CheckpointSignatureVerifierTests.cs: using directives not sorted
- Naming issues:
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Fixtures/Rekor/RekorOfflineReceiptFixtures.cs: private field naming
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/InToto/InTotoGoldenTests.cs: private field naming
- Async issues:
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/RekorOfflineReceiptVerifierTests.cs: async method naming
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/RekorOfflineReceiptVerifierTests.cs: missing ConfigureAwait(false)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Chain/AttestationChainBuilderTests.cs: async method naming
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Chain/AttestationChainBuilderTests.cs: missing ConfigureAwait(false)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Chain/AttestationLinkResolverTests.cs: async method naming
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Chain/AttestationLinkResolverTests.cs: missing ConfigureAwait(false)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Chain/ChainResolverDirectionalTests.cs: async method naming
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Chain/ChainResolverDirectionalTests.cs: missing ConfigureAwait(false)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Chain/InMemoryAttestationLinkStoreTests.cs: async method naming
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Chain/InMemoryAttestationLinkStoreTests.cs: blocking async usage
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Chain/InMemoryAttestationLinkStoreTests.cs: missing ConfigureAwait(false)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Delta/DeltaAttestationServiceTests.cs: async method naming
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Delta/DeltaAttestationServiceTests.cs: missing ConfigureAwait(false)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/InToto/ArtifactDigestsTests.cs: async method naming
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/InToto/ArtifactDigestsTests.cs: missing ConfigureAwait(false)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/InToto/LayoutVerifierTests.cs: async method naming
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/InToto/LayoutVerifierTests.cs: missing ConfigureAwait(false)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/InToto/LinkRecorderTests.cs: async method naming
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/InToto/LinkRecorderTests.cs: missing ConfigureAwait(false)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Layers/LayerAttestationServiceTests.cs: async method naming
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Layers/LayerAttestationServiceTests.cs: missing ConfigureAwait(false)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/PoE/PoEArtifactGeneratorTests.cs: async method naming
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/PoE/PoEArtifactGeneratorTests.cs: missing ConfigureAwait(false)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Rekor/CheckpointDivergenceByzantineTests.cs: async method naming
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Rekor/CheckpointDivergenceByzantineTests.cs: missing ConfigureAwait(false)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Rekor/CheckpointDivergenceDetectorTests.cs: async method naming
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Rekor/CheckpointDivergenceDetectorTests.cs: missing ConfigureAwait(false)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Rekor/RekorSyncIntegrationTests.cs: async method naming
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Rekor/RekorSyncIntegrationTests.cs: missing ConfigureAwait(false)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Rekor/RekorSyncServiceTests.cs: async method naming
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Rekor/RekorSyncServiceTests.cs: missing ConfigureAwait(false)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Signing/VerificationReportSignerTests.cs: async method naming
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Signing/VerificationReportSignerTests.cs: missing ConfigureAwait(false)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Submission/AttestorSubmissionValidatorTests.cs: async method naming
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Submission/AttestorSubmissionValidatorTests.cs: missing ConfigureAwait(false)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Transparency/TransparencyStatusProviderTests.cs: async method naming
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Transparency/TransparencyStatusProviderTests.cs: blocking async usage
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Transparency/TransparencyStatusProviderTests.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: 29
- Files with issues: 27
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/RekorOfflineReceiptVerifierTests.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. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Chain/AttestationChainBuilderTests.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. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Chain/AttestationChainValidatorTests.cs | FileLength>100; UsingNotSorted | Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Chain/AttestationLinkResolverTests.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/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Chain/ChainResolverDirectionalTests.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. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Chain/InMemoryAttestationLinkStoreTests.cs | AsyncNaming; BlockingAsync; ConfigureAwaitMissing; FileLength>100 | Add ConfigureAwait(false) to awaited calls in library-like code.; Rename async methods to end with Async.; Replace .Result/.Wait/GetAwaiter().GetResult() with await.; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Delta/DeltaAttestationServiceTests.cs | AsyncNaming; ConfigureAwaitMissing; UsingInsideNamespace; UsingNotSorted | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Rename async methods to end with Async.; Sort using directives alphabetically. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Fixtures/Rekor/RekorOfflineReceiptFixtures.cs | PrivateFieldNaming; UsingNotSorted | Rename private fields to _camelCase.; Sort using directives alphabetically. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/InToto/ArtifactDigestsTests.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/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/InToto/InTotoGoldenTests.cs | FileLength>100; PrivateFieldNaming; UsingNotSorted | Rename private fields to _camelCase.; Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/InToto/InTotoLinkTests.cs | FileLength>100; UsingInsideNamespace; UsingNotSorted | Move using directives outside namespace.; Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/InToto/LayoutVerifierTests.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. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/InToto/LinkBuilderTests.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/InToto/LinkRecorderTests.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. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Layers/LayerAttestationServiceTests.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. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/PoE/PoEArtifactGeneratorTests.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; UsingInsideNamespace; UsingNotSorted | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Rename async methods to end with Async.; Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Rekor/CheckpointDivergenceByzantineTests.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; UsingInsideNamespace; UsingNotSorted | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Rename async methods to end with Async.; Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Rekor/CheckpointDivergenceDetectorTests.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. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Rekor/RekorReceiptTests.cs | FileLength>100; UsingNotSorted | Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Rekor/RekorSyncIntegrationTests.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; UsingInsideNamespace; UsingNotSorted | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Rename async methods to end with Async.; Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Rekor/RekorSyncServiceTests.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; UsingInsideNamespace; UsingNotSorted | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Rename async methods to end with Async.; Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Signing/DssePreAuthenticationEncodingTests.cs | UsingNotSorted | Sort using directives alphabetically. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Signing/VerificationReportSignerTests.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; UsingInsideNamespace; UsingNotSorted | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Rename async methods to end with Async.; Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Submission/AttestorSubmissionValidatorTests.cs | AsyncNaming; ConfigureAwaitMissing; UsingNotSorted | Add ConfigureAwait(false) to awaited calls in library-like code.; Rename async methods to end with Async.; Sort using directives alphabetically. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Transparency/TransparencyStatusProviderTests.cs | AsyncNaming; BlockingAsync; ConfigureAwaitMissing; FileLength>100; UsingInsideNamespace; UsingNotSorted | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Rename async methods to end with Async.; Replace .Result/.Wait/GetAwaiter().GetResult() with await.; Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Validation/PredicateSchemaValidatorTests.cs | FileLength>100; UsingInsideNamespace; UsingNotSorted | Move using directives outside namespace.; Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/Verification/CheckpointSignatureVerifierTests.cs | UsingNotSorted | Sort using directives alphabetically. |
## 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,371 @@
# Audit - StellaOps.Attestor.Core
## Project
- Path: src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/StellaOps.Attestor.Core.csproj
- Module: Attestor
- Kind: Library
- Audit date (UTC): 2026-01-30
- Files scanned: 122
- Files with issues: 122
- 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: 63
- Namespace violations: 122
- 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/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/IProofEmitter.cs (188 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/PoEArtifactGenerator.cs (245 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/PoEModels.cs (240 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Chain/AttestationChain.cs (244 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Chain/AttestationChainBuilder.cs (346 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Chain/AttestationChainValidator.cs (335 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Chain/AttestationLink.cs (144 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Chain/AttestationLinkResolver.cs (565 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Chain/IAttestationLinkResolver.cs (195 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Chain/InMemoryAttestationLinkStore.cs (170 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Chain/InMemoryAttestationNodeProvider.cs (106 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Chain/InTotoStatementMaterials.cs (194 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Configuration/RekorVerificationOptions.cs (172 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Delta/DeltaAttestationService.cs (323 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Delta/IDeltaAttestationService.cs (185 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/InToto/ArtifactDigests.cs (164 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/InToto/IInTotoLinkSigningService.cs (159 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/InToto/InTotoLink.cs (170 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/InToto/InTotoLinkPredicate.cs (243 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/InToto/LinkBuilder.cs (294 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/InToto/LinkRecorder.cs (301 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/InToto/MaterialSpec.cs (129 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/InToto/Layout/ILayoutVerifier.cs (270 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/InToto/Layout/InTotoLayout.cs (267 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/InToto/Layout/LayoutVerifier.cs (409 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Layers/ILayerAttestationService.cs (129 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Layers/LayerAttestation.cs (284 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Layers/LayerAttestationService.cs (446 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Observability/AttestorMetrics.cs (181 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Options/AttestorOptions.cs (431 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Options/RekorVerificationOptions.cs (200 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Queue/IRekorSubmissionQueue.cs (115 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Rekor/CheckpointDivergenceAlertPublisher.cs (294 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Rekor/CheckpointDivergenceDetector.cs (471 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Rekor/FileSystemRekorTileCache.cs (353 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Rekor/ICheckpointDivergenceDetector.cs (375 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Rekor/IRekorCheckpointStore.cs (134 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Rekor/IRekorTileCache.cs (174 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Rekor/IRekorTileClient.cs (209 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Rekor/RekorEntryEvent.cs (334 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Rekor/RekorReceipt.cs (430 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Rekor/RekorSyncBackgroundService.cs (363 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Resilience/CircuitBreaker.cs (368 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Serialization/CanonicalJsonSerializer.cs (218 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Signing/DsseSigningService.cs (291 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Signing/FileKeyProvider.cs (183 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Storage/AttestorEntry.cs (143 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Submission/AttestorSubmissionResult.cs (117 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Submission/AttestorSubmissionValidator.cs (234 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Transparency/TransparencyStatus.cs (426 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Transparency/TransparencyStatusProvider.cs (348 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Validation/PredicateSchemaValidator.cs (192 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Verification/CheckpointSignatureVerifier.cs (567 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Verification/InstrumentedTimeSkewValidator.cs (103 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Verification/IRekorVerificationService.cs (417 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Verification/MerkleProofVerifier.cs (160 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Verification/RekorOfflineReceiptVerifier.cs (218 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Verification/RekorVerificationHealthCheck.cs (369 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Verification/RekorVerificationJob.cs (382 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Verification/RekorVerificationMetrics.cs (211 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Verification/RekorVerificationService.cs (487 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Verification/TimeSkewValidator.cs (225 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Verification/VerificationReport.cs (186 lines)
- Namespace issues:
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/IProofEmitter.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/PathWitnessPredicateTypes.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/PoEArtifactGenerator.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/PoEModels.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Audit/AttestorAuditRecord.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Bulk/BulkVerificationModels.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Bulk/IBulkVerificationJobStore.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Chain/AttestationChain.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Chain/AttestationChainBuilder.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Chain/AttestationChainValidator.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Chain/AttestationLink.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Chain/AttestationLinkResolver.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Chain/DependencyInjectionRoutine.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Chain/IAttestationLinkResolver.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Chain/InMemoryAttestationLinkStore.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Chain/InMemoryAttestationNodeProvider.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Chain/InTotoStatementMaterials.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Configuration/RekorVerificationOptions.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Delta/DeltaAttestationService.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Delta/IDeltaAttestationService.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/InToto/ArtifactDigests.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/InToto/IInTotoLinkEmitter.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/InToto/IInTotoLinkSigningService.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/InToto/ILinkRecorder.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/InToto/InTotoLink.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/InToto/InTotoLinkPredicate.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/InToto/LinkBuilder.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/InToto/LinkRecorder.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/InToto/MaterialSpec.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/InToto/Layout/ILayoutVerifier.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/InToto/Layout/InTotoLayout.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/InToto/Layout/LayoutVerifier.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Layers/ILayerAttestationService.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Layers/LayerAttestation.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Layers/LayerAttestationService.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/obj/Debug/net10.0/StellaOps.Attestor.Core.AssemblyInfo.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/obj/Debug/net10.0/StellaOps.Attestor.Core.GlobalUsings.g.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/obj/Release/net10.0/StellaOps.Attestor.Core.AssemblyInfo.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/obj/Release/net10.0/StellaOps.Attestor.Core.GlobalUsings.g.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Observability/AttestorActivitySource.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Observability/AttestorMetrics.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Observability/AttestorTelemetryTags.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Offline/AttestorOfflineBundle.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Offline/IAttestorBundleService.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Options/AttestorOptions.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Options/RekorQueueOptions.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Options/RekorVerificationOptions.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Queue/IRekorSubmissionQueue.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Queue/QueueDepthSnapshot.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Queue/RekorQueueItem.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Queue/RekorSubmissionStatus.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Rekor/CheckpointDivergenceAlertPublisher.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Rekor/CheckpointDivergenceDetector.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Rekor/FileSystemRekorTileCache.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Rekor/ICheckpointDivergenceDetector.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Rekor/IRekorBackendResolver.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Rekor/IRekorCheckpointStore.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Rekor/IRekorClient.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Rekor/IRekorTileCache.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Rekor/IRekorTileClient.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Rekor/RekorBackend.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Rekor/RekorEntryEvent.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Rekor/RekorInclusionVerificationResult.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Rekor/RekorProofResponse.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Rekor/RekorReceipt.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Rekor/RekorSubmissionResponse.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Rekor/RekorSyncBackgroundService.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Resilience/CircuitBreaker.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Resilience/CircuitBreakerOptions.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Serialization/CanonicalJsonSerializer.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Signing/AttestationSignRequest.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Signing/AttestationSignResult.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Signing/AttestorSigningException.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Signing/DssePreAuthenticationEncoding.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Signing/DsseSigningService.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Signing/DsseVerificationReportSigner.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Signing/FileKeyProvider.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Signing/IAttestationSigningService.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Signing/IVerificationReportSigner.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Storage/AttestorArchiveBundle.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Storage/AttestorEntry.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Storage/AttestorEntryContinuationToken.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Storage/AttestorEntryQuery.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Storage/IAttestorArchiveStore.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Storage/IAttestorAuditSink.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Storage/IAttestorDedupeStore.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Storage/IAttestorEntryRepository.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Submission/AttestorSubmissionRequest.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Submission/AttestorSubmissionResult.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Submission/AttestorSubmissionValidationResult.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Submission/AttestorSubmissionValidator.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Submission/AttestorValidationException.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Submission/IAttestorSubmissionService.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Submission/IDsseCanonicalizer.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Submission/SubmissionContext.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Transparency/ITransparencyWitnessClient.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Transparency/TransparencyServiceExtensions.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Transparency/TransparencyStatus.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Transparency/TransparencyStatusProvider.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Transparency/TransparencyWitnessObservation.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Transparency/TransparencyWitnessRequest.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Validation/PredicateSchemaValidator.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Verification/AttestorVerificationException.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Verification/AttestorVerificationRequest.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Verification/AttestorVerificationResult.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Verification/CheckpointSignatureVerifier.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Verification/IAttestorVerificationCache.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Verification/IAttestorVerificationService.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Verification/InstrumentedTimeSkewValidator.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Verification/IRekorVerificationService.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Verification/MerkleProofVerifier.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Verification/RekorOfflineReceiptVerifier.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Verification/RekorVerificationHealthCheck.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Verification/RekorVerificationJob.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Verification/RekorVerificationMetrics.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Verification/RekorVerificationService.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Verification/TimeSkewValidationException.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Verification/TimeSkewValidator.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Verification/VerificationReport.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Verification/VerificationSectionStatus.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: 122
- Files with issues: 122
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/IProofEmitter.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/PathWitnessPredicateTypes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/PoEArtifactGenerator.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/PoEModels.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Audit/AttestorAuditRecord.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Bulk/BulkVerificationModels.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Bulk/IBulkVerificationJobStore.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Chain/AttestationChain.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Chain/AttestationChainBuilder.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Chain/AttestationChainValidator.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Chain/AttestationLink.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Chain/AttestationLinkResolver.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Chain/DependencyInjectionRoutine.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Chain/IAttestationLinkResolver.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Chain/InMemoryAttestationLinkStore.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Chain/InMemoryAttestationNodeProvider.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Chain/InTotoStatementMaterials.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Configuration/RekorVerificationOptions.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Delta/DeltaAttestationService.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Delta/IDeltaAttestationService.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/InToto/ArtifactDigests.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/InToto/IInTotoLinkEmitter.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/InToto/IInTotoLinkSigningService.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/InToto/ILinkRecorder.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/InToto/InTotoLink.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/InToto/InTotoLinkPredicate.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/InToto/LinkBuilder.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/InToto/LinkRecorder.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/InToto/MaterialSpec.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/InToto/Layout/ILayoutVerifier.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/InToto/Layout/InTotoLayout.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/InToto/Layout/LayoutVerifier.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Layers/ILayerAttestationService.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Layers/LayerAttestation.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Layers/LayerAttestationService.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/obj/Debug/net10.0/StellaOps.Attestor.Core.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/obj/Debug/net10.0/StellaOps.Attestor.Core.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/obj/Release/net10.0/StellaOps.Attestor.Core.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/obj/Release/net10.0/StellaOps.Attestor.Core.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Observability/AttestorActivitySource.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Observability/AttestorMetrics.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Observability/AttestorTelemetryTags.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Offline/AttestorOfflineBundle.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Offline/IAttestorBundleService.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Options/AttestorOptions.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Options/RekorQueueOptions.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Options/RekorVerificationOptions.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Queue/IRekorSubmissionQueue.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Queue/QueueDepthSnapshot.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Queue/RekorQueueItem.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Queue/RekorSubmissionStatus.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Rekor/CheckpointDivergenceAlertPublisher.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Rekor/CheckpointDivergenceDetector.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Rekor/FileSystemRekorTileCache.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Rekor/ICheckpointDivergenceDetector.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Rekor/IRekorBackendResolver.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Rekor/IRekorCheckpointStore.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Rekor/IRekorClient.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Rekor/IRekorTileCache.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Rekor/IRekorTileClient.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Rekor/RekorBackend.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Rekor/RekorEntryEvent.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Rekor/RekorInclusionVerificationResult.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Rekor/RekorProofResponse.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Rekor/RekorReceipt.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Rekor/RekorSubmissionResponse.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Rekor/RekorSyncBackgroundService.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Resilience/CircuitBreaker.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Resilience/CircuitBreakerOptions.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Serialization/CanonicalJsonSerializer.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Signing/AttestationSignRequest.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Signing/AttestationSignResult.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Signing/AttestorSigningException.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Signing/DssePreAuthenticationEncoding.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Signing/DsseSigningService.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Signing/DsseVerificationReportSigner.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Signing/FileKeyProvider.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Signing/IAttestationSigningService.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Signing/IVerificationReportSigner.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Storage/AttestorArchiveBundle.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Storage/AttestorEntry.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Storage/AttestorEntryContinuationToken.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Storage/AttestorEntryQuery.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Storage/IAttestorArchiveStore.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Storage/IAttestorAuditSink.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Storage/IAttestorDedupeStore.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Storage/IAttestorEntryRepository.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Submission/AttestorSubmissionRequest.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Submission/AttestorSubmissionResult.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Submission/AttestorSubmissionValidationResult.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Submission/AttestorSubmissionValidator.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Submission/AttestorValidationException.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Submission/IAttestorSubmissionService.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Submission/IDsseCanonicalizer.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Submission/SubmissionContext.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Transparency/ITransparencyWitnessClient.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Transparency/TransparencyServiceExtensions.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Transparency/TransparencyStatus.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Transparency/TransparencyStatusProvider.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Transparency/TransparencyWitnessObservation.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Transparency/TransparencyWitnessRequest.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Validation/PredicateSchemaValidator.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Verification/AttestorVerificationException.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Verification/AttestorVerificationRequest.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Verification/AttestorVerificationResult.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Verification/CheckpointSignatureVerifier.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Verification/IAttestorVerificationCache.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Verification/IAttestorVerificationService.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Verification/InstrumentedTimeSkewValidator.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Verification/IRekorVerificationService.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Verification/MerkleProofVerifier.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Verification/RekorOfflineReceiptVerifier.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Verification/RekorVerificationHealthCheck.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Verification/RekorVerificationJob.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Verification/RekorVerificationMetrics.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Verification/RekorVerificationService.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Verification/TimeSkewValidationException.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Verification/TimeSkewValidator.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Verification/VerificationReport.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Verification/VerificationSectionStatus.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
## Testing Fullness Findings
- Status: PASS
- Expected layers (heuristic): Unit
- Detected test projects: src/Attestor/__Libraries/__Tests/StellaOps.Attestor.GraphRoot.Tests/StellaOps.Attestor.GraphRoot.Tests.csproj [Unit]; src/Attestor/__Tests/StellaOps.Attestor.Conformance.Tests/StellaOps.Attestor.Conformance.Tests.csproj [Unit]; src/Attestor/__Tests/StellaOps.Attestor.Infrastructure.Tests/StellaOps.Attestor.Infrastructure.Tests.csproj [Unit]; src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/StellaOps.Attestor.Core.Tests.csproj [Unit]; src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/StellaOps.Attestor.Tests.csproj [Unit]; src/Cli/__Tests/StellaOps.Cli.Tests/StellaOps.Cli.Tests.csproj [CLI]
- 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,234 @@
# Audit - StellaOps.Attestor.Core
## Project
- Path: src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/StellaOps.Attestor.Core.csproj
- Module: Attestor
- Kind: Library
- Audit date (UTC): 2026-01-31
- Files scanned: 116
- Files with issues: 67
- 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: 63
- Namespace violations: 0
- Using directive violations: 7
- Naming violations (interfaces/fields/const/async): 31
- Service locator usage (BuildServiceProvider/GetService): 2
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/IProofEmitter.cs (188 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/PoEArtifactGenerator.cs (246 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/PoEModels.cs (240 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Chain/AttestationChain.cs (244 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Chain/AttestationChainBuilder.cs (346 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Chain/AttestationChainValidator.cs (335 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Chain/AttestationLink.cs (144 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Chain/AttestationLinkResolver.cs (565 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Chain/IAttestationLinkResolver.cs (195 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Chain/InMemoryAttestationLinkStore.cs (170 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Chain/InMemoryAttestationNodeProvider.cs (106 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Chain/InTotoStatementMaterials.cs (194 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Configuration/RekorVerificationOptions.cs (172 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Delta/DeltaAttestationService.cs (324 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Delta/IDeltaAttestationService.cs (185 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/InToto/ArtifactDigests.cs (165 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/InToto/IInTotoLinkSigningService.cs (159 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/InToto/InTotoLink.cs (170 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/InToto/InTotoLinkPredicate.cs (243 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/InToto/LinkBuilder.cs (294 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/InToto/LinkRecorder.cs (302 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/InToto/MaterialSpec.cs (129 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/InToto/Layout/ILayoutVerifier.cs (271 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/InToto/Layout/InTotoLayout.cs (267 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/InToto/Layout/LayoutVerifier.cs (410 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Layers/ILayerAttestationService.cs (129 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Layers/LayerAttestation.cs (284 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Layers/LayerAttestationService.cs (447 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Observability/AttestorMetrics.cs (181 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Options/AttestorOptions.cs (432 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Options/RekorVerificationOptions.cs (200 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Queue/IRekorSubmissionQueue.cs (115 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Rekor/CheckpointDivergenceAlertPublisher.cs (295 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Rekor/CheckpointDivergenceDetector.cs (472 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Rekor/FileSystemRekorTileCache.cs (354 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Rekor/ICheckpointDivergenceDetector.cs (375 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Rekor/IRekorCheckpointStore.cs (134 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Rekor/IRekorTileCache.cs (174 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Rekor/IRekorTileClient.cs (209 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Rekor/RekorEntryEvent.cs (334 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Rekor/RekorReceipt.cs (430 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Rekor/RekorSyncBackgroundService.cs (364 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Resilience/CircuitBreaker.cs (369 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Serialization/CanonicalJsonSerializer.cs (219 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Signing/DsseSigningService.cs (292 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Signing/FileKeyProvider.cs (184 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Storage/AttestorEntry.cs (143 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Submission/AttestorSubmissionResult.cs (117 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Submission/AttestorSubmissionValidator.cs (234 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Transparency/TransparencyStatus.cs (426 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Transparency/TransparencyStatusProvider.cs (349 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Validation/PredicateSchemaValidator.cs (193 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Verification/CheckpointSignatureVerifier.cs (568 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Verification/InstrumentedTimeSkewValidator.cs (103 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Verification/IRekorVerificationService.cs (417 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Verification/MerkleProofVerifier.cs (160 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Verification/RekorOfflineReceiptVerifier.cs (219 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Verification/RekorVerificationHealthCheck.cs (369 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Verification/RekorVerificationJob.cs (382 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Verification/RekorVerificationMetrics.cs (211 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Verification/RekorVerificationService.cs (488 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Verification/TimeSkewValidator.cs (225 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Verification/VerificationReport.cs (186 lines)
- Namespace issues:
- none
- Using directive issues:
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Delta/DeltaAttestationService.cs: using directives inside namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/InToto/ArtifactDigests.cs: using directives inside namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Serialization/CanonicalJsonSerializer.cs: using directives inside namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Signing/DsseSigningService.cs: using directives inside namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Validation/PredicateSchemaValidator.cs: using directives inside namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Verification/CheckpointSignatureVerifier.cs: using directives inside namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Verification/RekorVerificationService.cs: using directives inside namespace
- Naming issues:
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Delta/DeltaAttestationService.cs: private field naming
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Rekor/CheckpointDivergenceDetector.cs: private field naming
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Rekor/RekorSyncBackgroundService.cs: private field naming
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Serialization/CanonicalJsonSerializer.cs: private field naming
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Signing/DssePreAuthenticationEncoding.cs: private field naming
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Submission/AttestorSubmissionValidator.cs: private field naming
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Verification/RekorOfflineReceiptVerifier.cs: private field naming
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Verification/RekorVerificationMetrics.cs: private field naming
- Async issues:
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/PoEArtifactGenerator.cs: missing ConfigureAwait(false)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Chain/InMemoryAttestationLinkStore.cs: async method naming
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Delta/DeltaAttestationService.cs: async method naming
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Delta/DeltaAttestationService.cs: missing ConfigureAwait(false)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/InToto/IInTotoLinkEmitter.cs: missing ConfigureAwait(false)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/InToto/ILinkRecorder.cs: missing ConfigureAwait(false)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Rekor/CheckpointDivergenceAlertPublisher.cs: missing ConfigureAwait(false)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Rekor/CheckpointDivergenceDetector.cs: missing ConfigureAwait(false)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Rekor/FileSystemRekorTileCache.cs: async method naming
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Rekor/FileSystemRekorTileCache.cs: missing ConfigureAwait(false)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Rekor/RekorSyncBackgroundService.cs: async method naming
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Rekor/RekorSyncBackgroundService.cs: missing ConfigureAwait(false)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Resilience/CircuitBreaker.cs: async method naming
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Resilience/CircuitBreaker.cs: missing ConfigureAwait(false)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Signing/DsseSigningService.cs: missing ConfigureAwait(false)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Submission/AttestorSubmissionValidator.cs: async method naming
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Transparency/TransparencyStatusProvider.cs: async method naming
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Transparency/TransparencyStatusProvider.cs: missing ConfigureAwait(false)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Verification/RekorOfflineReceiptVerifier.cs: async method naming
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Verification/RekorVerificationHealthCheck.cs: missing ConfigureAwait(false)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Verification/RekorVerificationJob.cs: async method naming
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Verification/RekorVerificationJob.cs: missing ConfigureAwait(false)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Verification/RekorVerificationService.cs: missing ConfigureAwait(false)
- Service locator matches:
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Chain/DependencyInjectionRoutine.cs:24 services.TryAddSingleton<IAttestationLinkStore>(sp => sp.GetRequiredService<InMemoryAttestationLinkStore>());
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Chain/DependencyInjectionRoutine.cs:26 services.TryAddSingleton<IAttestationNodeProvider>(sp => sp.GetRequiredService<InMemoryAttestationNodeProvider>());
- 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: 116
- Files with issues: 67
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/IProofEmitter.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/PoEArtifactGenerator.cs | ConfigureAwaitMissing; FileLength>100 | Add ConfigureAwait(false) to awaited calls in library-like code.; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/PoEModels.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Chain/AttestationChain.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Chain/AttestationChainBuilder.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Chain/AttestationChainValidator.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Chain/AttestationLink.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Chain/AttestationLinkResolver.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Chain/DependencyInjectionRoutine.cs | ServiceLocator | Remove service locator usage; use constructor injection. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Chain/IAttestationLinkResolver.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Chain/InMemoryAttestationLinkStore.cs | AsyncNaming; FileLength>100 | Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Chain/InMemoryAttestationNodeProvider.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Chain/InTotoStatementMaterials.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Configuration/RekorVerificationOptions.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Delta/DeltaAttestationService.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; PrivateFieldNaming; UsingInsideNamespace | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Rename async methods to end with Async.; Rename private fields to _camelCase.; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Delta/IDeltaAttestationService.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/InToto/ArtifactDigests.cs | FileLength>100; UsingInsideNamespace | Move using directives outside namespace.; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/InToto/IInTotoLinkEmitter.cs | ConfigureAwaitMissing | Add ConfigureAwait(false) to awaited calls in library-like code. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/InToto/IInTotoLinkSigningService.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/InToto/ILinkRecorder.cs | ConfigureAwaitMissing | Add ConfigureAwait(false) to awaited calls in library-like code. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/InToto/InTotoLink.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/InToto/InTotoLinkPredicate.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/InToto/LinkBuilder.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/InToto/LinkRecorder.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/InToto/MaterialSpec.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/InToto/Layout/ILayoutVerifier.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/InToto/Layout/InTotoLayout.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/InToto/Layout/LayoutVerifier.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Layers/ILayerAttestationService.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Layers/LayerAttestation.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Layers/LayerAttestationService.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Observability/AttestorMetrics.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Options/AttestorOptions.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Options/RekorVerificationOptions.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Queue/IRekorSubmissionQueue.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Rekor/CheckpointDivergenceAlertPublisher.cs | ConfigureAwaitMissing; FileLength>100 | Add ConfigureAwait(false) to awaited calls in library-like code.; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Rekor/CheckpointDivergenceDetector.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/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Rekor/FileSystemRekorTileCache.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/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Rekor/ICheckpointDivergenceDetector.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Rekor/IRekorCheckpointStore.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Rekor/IRekorTileCache.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Rekor/IRekorTileClient.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Rekor/RekorEntryEvent.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Rekor/RekorReceipt.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Rekor/RekorSyncBackgroundService.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/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Resilience/CircuitBreaker.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/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Serialization/CanonicalJsonSerializer.cs | FileLength>100; PrivateFieldNaming; UsingInsideNamespace | Move using directives outside namespace.; Rename private fields to _camelCase.; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Signing/DssePreAuthenticationEncoding.cs | PrivateFieldNaming | Rename private fields to _camelCase. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Signing/DsseSigningService.cs | ConfigureAwaitMissing; FileLength>100; UsingInsideNamespace | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Signing/FileKeyProvider.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Storage/AttestorEntry.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Submission/AttestorSubmissionResult.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Submission/AttestorSubmissionValidator.cs | AsyncNaming; FileLength>100; PrivateFieldNaming | Rename async methods to end with Async.; Rename private fields to _camelCase.; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Transparency/TransparencyStatus.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Transparency/TransparencyStatusProvider.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/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Validation/PredicateSchemaValidator.cs | FileLength>100; UsingInsideNamespace | Move using directives outside namespace.; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Verification/CheckpointSignatureVerifier.cs | FileLength>100; UsingInsideNamespace | Move using directives outside namespace.; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Verification/InstrumentedTimeSkewValidator.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Verification/IRekorVerificationService.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Verification/MerkleProofVerifier.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Verification/RekorOfflineReceiptVerifier.cs | AsyncNaming; FileLength>100; PrivateFieldNaming | Rename async methods to end with Async.; Rename private fields to _camelCase.; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Verification/RekorVerificationHealthCheck.cs | ConfigureAwaitMissing; FileLength>100 | Add ConfigureAwait(false) to awaited calls in library-like code.; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Verification/RekorVerificationJob.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/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Verification/RekorVerificationMetrics.cs | FileLength>100; PrivateFieldNaming | Rename private fields to _camelCase.; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Verification/RekorVerificationService.cs | ConfigureAwaitMissing; FileLength>100; UsingInsideNamespace | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Verification/TimeSkewValidator.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core/Verification/VerificationReport.cs | FileLength>100 | Split file to stay <= 100 lines. |
## Testing Fullness Findings
- Status: PASS
- Expected layers (heuristic): Unit
- Detected test projects: src/Attestor/__Libraries/__Tests/StellaOps.Attestor.GraphRoot.Tests/StellaOps.Attestor.GraphRoot.Tests.csproj [Unit]; src/Attestor/__Tests/StellaOps.Attestor.Conformance.Tests/StellaOps.Attestor.Conformance.Tests.csproj [Unit]; src/Attestor/__Tests/StellaOps.Attestor.Infrastructure.Tests/StellaOps.Attestor.Infrastructure.Tests.csproj [Unit]; src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Core.Tests/StellaOps.Attestor.Core.Tests.csproj [Unit]; src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/StellaOps.Attestor.Tests.csproj [Unit]; src/Cli/__Tests/StellaOps.Cli.Tests/StellaOps.Cli.Tests.csproj [CLI]
- 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,162 @@
# Audit - StellaOps.Attestor.Infrastructure
## Project
- Path: src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/StellaOps.Attestor.Infrastructure.csproj
- Module: Attestor
- Kind: Library
- Audit date (UTC): 2026-01-30
- Files scanned: 39
- Files with issues: 38
- 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: 21
- Namespace violations: 38
- 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/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/ServiceCollectionExtensions.cs (209 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Bulk/BulkVerificationWorker.cs (241 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/InToto/InTotoLinkSigningService.cs (176 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Offline/AttestorBundleService.cs (270 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Queue/PostgresRekorSubmissionQueue.cs (539 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Rekor/HttpRekorClient.cs (389 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Rekor/HttpRekorTileClient.cs (470 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Rekor/ResilientRekorClient.cs (363 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Rekor/ServiceMapAwareRekorBackendResolver.cs (286 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Rekor/StubRekorClient.cs (111 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Signing/AttestorSigningKeyRegistry.cs (405 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Signing/AttestorSigningService.cs (261 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Storage/InMemoryAttestorEntryRepository.cs (171 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Storage/S3AttestorArchiveStore.cs (184 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Submission/AttestorSubmissionService.cs (787 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Transparency/HttpTransparencyWitnessClient.cs (224 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Verification/AttestorVerificationService.cs (382 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Verification/InMemoryAttestorVerificationCache.cs (116 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Verification/MessagingAttestorVerificationCache.cs (108 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Watchlist/PostgresWatchlistRepository.cs (415 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Workers/RekorRetryWorker.cs (257 lines)
- Namespace issues:
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/ServiceCollectionExtensions.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Bulk/BulkVerificationWorker.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Bulk/InMemoryBulkVerificationJobStore.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/InToto/InTotoLinkSigningService.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/obj/Debug/net10.0/StellaOps.Attestor.Infrastructure.AssemblyInfo.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/obj/Debug/net10.0/StellaOps.Attestor.Infrastructure.GlobalUsings.g.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/obj/Release/net10.0/StellaOps.Attestor.Infrastructure.AssemblyInfo.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/obj/Release/net10.0/StellaOps.Attestor.Infrastructure.GlobalUsings.g.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Offline/AttestorBundleService.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Queue/PostgresRekorSubmissionQueue.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Rekor/HttpRekorClient.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Rekor/HttpRekorTileClient.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Rekor/RekorBackendResolver.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Rekor/ResilientRekorClient.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Rekor/ServiceMapAwareRekorBackendResolver.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Rekor/StubRekorClient.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Signing/AttestorSigningKeyRegistry.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Signing/AttestorSigningService.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Storage/CachingAttestorDedupeStore.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Storage/InMemoryAttestorAuditSink.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Storage/InMemoryAttestorDedupeStore.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Storage/InMemoryAttestorEntryRepository.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Storage/NullAttestorArchiveStore.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Storage/RedisAttestorDedupeStore.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Storage/S3AttestorArchiveStore.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Submission/AttestorSubmissionService.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Submission/DefaultDsseCanonicalizer.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Transparency/HttpTransparencyWitnessClient.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Transparency/NullTransparencyWitnessClient.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Verification/AttestorVerificationService.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Verification/CachedAttestorVerificationService.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Verification/InMemoryAttestorVerificationCache.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Verification/MessagingAttestorVerificationCache.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Verification/NoOpAttestorVerificationCache.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Watchlist/PostgresWatchlistRepository.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Workers/RekorRetryWorker.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: 39
- Files with issues: 38
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/ServiceCollectionExtensions.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Bulk/BulkVerificationWorker.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Bulk/InMemoryBulkVerificationJobStore.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/InToto/InTotoLinkSigningService.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/obj/Debug/net10.0/StellaOps.Attestor.Infrastructure.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/obj/Debug/net10.0/StellaOps.Attestor.Infrastructure.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/obj/Release/net10.0/StellaOps.Attestor.Infrastructure.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/obj/Release/net10.0/StellaOps.Attestor.Infrastructure.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Offline/AttestorBundleService.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Queue/PostgresRekorSubmissionQueue.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Rekor/HttpRekorClient.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Rekor/HttpRekorTileClient.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Rekor/RekorBackendResolver.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Rekor/ResilientRekorClient.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Rekor/ServiceMapAwareRekorBackendResolver.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Rekor/StubRekorClient.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Signing/AttestorSigningKeyRegistry.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Signing/AttestorSigningService.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Storage/CachingAttestorDedupeStore.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Storage/InMemoryAttestorAuditSink.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Storage/InMemoryAttestorDedupeStore.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Storage/InMemoryAttestorEntryRepository.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Storage/NullAttestorArchiveStore.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Storage/RedisAttestorDedupeStore.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Storage/S3AttestorArchiveStore.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Submission/AttestorSubmissionService.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Submission/DefaultDsseCanonicalizer.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Transparency/HttpTransparencyWitnessClient.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Transparency/NullTransparencyWitnessClient.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Verification/AttestorVerificationService.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Verification/CachedAttestorVerificationService.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Verification/InMemoryAttestorVerificationCache.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Verification/MessagingAttestorVerificationCache.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Verification/NoOpAttestorVerificationCache.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Watchlist/PostgresWatchlistRepository.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Workers/RekorRetryWorker.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: src/Attestor/__Tests/StellaOps.Attestor.Conformance.Tests/StellaOps.Attestor.Conformance.Tests.csproj [Unit]; src/Attestor/__Tests/StellaOps.Attestor.Infrastructure.Tests/StellaOps.Attestor.Infrastructure.Tests.csproj [Unit]; src/Attestor/__Tests/StellaOps.Attestor.Watchlist.Tests/StellaOps.Attestor.Watchlist.Tests.csproj [Unit]; src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/StellaOps.Attestor.Tests.csproj [Unit]
- Missing layers: Integration
### 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,172 @@
# Audit - StellaOps.Attestor.Infrastructure
## Project
- Path: src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/StellaOps.Attestor.Infrastructure.csproj
- Module: Attestor
- Kind: Library
- Audit date (UTC): 2026-01-31
- Files scanned: 33
- Files with issues: 25
- 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: 21
- Namespace violations: 0
- Using directive violations: 9
- Naming violations (interfaces/fields/const/async): 28
- Service locator usage (BuildServiceProvider/GetService): 24
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/ServiceCollectionExtensions.cs (210 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Bulk/BulkVerificationWorker.cs (242 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/InToto/InTotoLinkSigningService.cs (177 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Offline/AttestorBundleService.cs (271 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Queue/PostgresRekorSubmissionQueue.cs (539 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Rekor/HttpRekorClient.cs (390 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Rekor/HttpRekorTileClient.cs (471 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Rekor/ResilientRekorClient.cs (364 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Rekor/ServiceMapAwareRekorBackendResolver.cs (286 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Rekor/StubRekorClient.cs (112 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Signing/AttestorSigningKeyRegistry.cs (406 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Signing/AttestorSigningService.cs (262 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Storage/InMemoryAttestorEntryRepository.cs (172 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Storage/S3AttestorArchiveStore.cs (185 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Submission/AttestorSubmissionService.cs (788 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Transparency/HttpTransparencyWitnessClient.cs (225 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Verification/AttestorVerificationService.cs (383 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Verification/InMemoryAttestorVerificationCache.cs (117 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Verification/MessagingAttestorVerificationCache.cs (109 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Watchlist/PostgresWatchlistRepository.cs (416 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Workers/RekorRetryWorker.cs (257 lines)
- Namespace issues:
- none
- Using directive issues:
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Queue/PostgresRekorSubmissionQueue.cs: using directives not sorted
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Rekor/HttpRekorClient.cs: using directives inside namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Rekor/HttpRekorTileClient.cs: using directives inside namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Signing/AttestorSigningKeyRegistry.cs: using directives inside namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Storage/S3AttestorArchiveStore.cs: using directives inside namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Transparency/HttpTransparencyWitnessClient.cs: using directives inside namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Verification/AttestorVerificationService.cs: using directives inside namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Workers/RekorRetryWorker.cs: using directives inside namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Workers/RekorRetryWorker.cs: using directives not sorted
- Naming issues:
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Rekor/HttpRekorClient.cs: private field naming
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Submission/AttestorSubmissionService.cs: private field naming
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Submission/DefaultDsseCanonicalizer.cs: private field naming
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Transparency/HttpTransparencyWitnessClient.cs: private field naming
- Async issues:
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Bulk/BulkVerificationWorker.cs: async method naming
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Bulk/BulkVerificationWorker.cs: blocking async usage
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Offline/AttestorBundleService.cs: async method naming
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Queue/PostgresRekorSubmissionQueue.cs: async method naming
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Queue/PostgresRekorSubmissionQueue.cs: missing ConfigureAwait(false)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Rekor/HttpRekorClient.cs: async method naming
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Rekor/ResilientRekorClient.cs: async method naming
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Rekor/ResilientRekorClient.cs: missing ConfigureAwait(false)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Rekor/ServiceMapAwareRekorBackendResolver.cs: async method naming
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Rekor/ServiceMapAwareRekorBackendResolver.cs: missing ConfigureAwait(false)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Storage/CachingAttestorDedupeStore.cs: async method naming
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Storage/RedisAttestorDedupeStore.cs: async method naming
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Storage/S3AttestorArchiveStore.cs: async method naming
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Submission/AttestorSubmissionService.cs: async method naming
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Transparency/HttpTransparencyWitnessClient.cs: async method naming
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Transparency/HttpTransparencyWitnessClient.cs: blocking async usage
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Verification/AttestorVerificationService.cs: async method naming
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Verification/AttestorVerificationService.cs: blocking async usage
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Verification/CachedAttestorVerificationService.cs: async method naming
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Verification/MessagingAttestorVerificationCache.cs: async method naming
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Watchlist/PostgresWatchlistRepository.cs: async method naming
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Watchlist/PostgresWatchlistRepository.cs: missing ConfigureAwait(false)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Workers/RekorRetryWorker.cs: async method naming
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Workers/RekorRetryWorker.cs: missing ConfigureAwait(false)
- Service locator matches:
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/ServiceCollectionExtensions.cs:50 var canonicalizer = sp.GetRequiredService<IDsseCanonicalizer>();
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/ServiceCollectionExtensions.cs:51 var options = sp.GetRequiredService<IOptions<AttestorOptions>>().Value;
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/ServiceCollectionExtensions.cs:58 var options = sp.GetRequiredService<IOptions<AttestorOptions>>().Value;
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/ServiceCollectionExtensions.cs:63 var options = sp.GetRequiredService<IOptions<AttestorOptions>>().Value;
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/ServiceCollectionExtensions.cs:85 var options = sp.GetRequiredService<IOptions<AttestorOptions>>().Value;
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/ServiceCollectionExtensions.cs:99 services.AddSingleton<IRekorClient>(sp => sp.GetRequiredService<HttpRekorClient>());
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/ServiceCollectionExtensions.cs:105 var options = sp.GetRequiredService<IOptions<AttestorOptions>>().Value;
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/ServiceCollectionExtensions.cs:110 var serviceMapLoader = sp.GetRequiredService<ISigstoreServiceMapLoader>();
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/ServiceCollectionExtensions.cs:111 var logger = sp.GetRequiredService<ILogger<ServiceMapAwareRekorBackendResolver>>();
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/ServiceCollectionExtensions.cs:114 sp.GetRequiredService<IOptions<AttestorOptions>>(),
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/ServiceCollectionExtensions.cs:119 return new ConfiguredRekorBackendResolver(sp.GetRequiredService<IOptions<AttestorOptions>>());
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/ServiceCollectionExtensions.cs:125 var options = sp.GetRequiredService<IOptions<AttestorOptions>>().Value;
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/ServiceCollectionExtensions.cs:134 services.AddSingleton<IRekorTileClient>(sp => sp.GetRequiredService<HttpRekorTileClient>());
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/ServiceCollectionExtensions.cs:138 var options = sp.GetRequiredService<IOptions<AttestorOptions>>().Value;
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/ServiceCollectionExtensions.cs:150 var options = sp.GetRequiredService<IOptions<AttestorOptions>>().Value;
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/ServiceCollectionExtensions.cs:156 return sp.GetRequiredService<HttpTransparencyWitnessClient>();
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/ServiceCollectionExtensions.cs:165 var options = sp.GetRequiredService<IOptions<AttestorOptions>>().Value;
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/ServiceCollectionExtensions.cs:171 var multiplexer = sp.GetRequiredService<IConnectionMultiplexer>();
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/ServiceCollectionExtensions.cs:172 return new RedisAttestorDedupeStore(multiplexer, sp.GetRequiredService<IOptions<AttestorOptions>>());
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/ServiceCollectionExtensions.cs:177 var options = sp.GetRequiredService<IOptions<AttestorOptions>>().Value;
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/ServiceCollectionExtensions.cs:188 var options = sp.GetRequiredService<IOptions<AttestorOptions>>().Value;
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/ServiceCollectionExtensions.cs:199 return new S3AttestorArchiveStore(client, sp.GetRequiredService<IOptions<AttestorOptions>>(), sp.GetRequiredService<ILogger<S3AttestorArchiveStore>>());
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/ServiceCollectionExtensions.cs:202 return new NullAttestorArchiveStore(sp.GetRequiredService<ILogger<NullAttestorArchiveStore>>());
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Rekor/ServiceMapAwareRekorBackendResolver.cs:171 var serviceMap = await _serviceMapLoader.GetServiceMapAsync(cancellationToken);
- 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: 33
- Files with issues: 25
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/ServiceCollectionExtensions.cs | FileLength>100; ServiceLocator | Remove service locator usage; use constructor injection.; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Bulk/BulkVerificationWorker.cs | AsyncNaming; BlockingAsync; FileLength>100 | Rename async methods to end with Async.; Replace .Result/.Wait/GetAwaiter().GetResult() with await.; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/InToto/InTotoLinkSigningService.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Offline/AttestorBundleService.cs | AsyncNaming; FileLength>100 | Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Queue/PostgresRekorSubmissionQueue.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. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Rekor/HttpRekorClient.cs | AsyncNaming; FileLength>100; PrivateFieldNaming; UsingInsideNamespace | Move using directives outside namespace.; Rename async methods to end with Async.; Rename private fields to _camelCase.; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Rekor/HttpRekorTileClient.cs | FileLength>100; UsingInsideNamespace | Move using directives outside namespace.; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Rekor/ResilientRekorClient.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/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Rekor/ServiceMapAwareRekorBackendResolver.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; ServiceLocator | Add ConfigureAwait(false) to awaited calls in library-like code.; Remove service locator usage; use constructor injection.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Rekor/StubRekorClient.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Signing/AttestorSigningKeyRegistry.cs | FileLength>100; UsingInsideNamespace | Move using directives outside namespace.; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Signing/AttestorSigningService.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Storage/CachingAttestorDedupeStore.cs | AsyncNaming | Rename async methods to end with Async. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Storage/InMemoryAttestorEntryRepository.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Storage/RedisAttestorDedupeStore.cs | AsyncNaming | Rename async methods to end with Async. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Storage/S3AttestorArchiveStore.cs | AsyncNaming; FileLength>100; UsingInsideNamespace | Move using directives outside namespace.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Submission/AttestorSubmissionService.cs | AsyncNaming; FileLength>100; PrivateFieldNaming | Rename async methods to end with Async.; Rename private fields to _camelCase.; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Submission/DefaultDsseCanonicalizer.cs | PrivateFieldNaming | Rename private fields to _camelCase. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Transparency/HttpTransparencyWitnessClient.cs | AsyncNaming; BlockingAsync; FileLength>100; PrivateFieldNaming; UsingInsideNamespace | Move using directives outside namespace.; Rename async methods to end with Async.; Rename private fields to _camelCase.; Replace .Result/.Wait/GetAwaiter().GetResult() with await.; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Verification/AttestorVerificationService.cs | AsyncNaming; BlockingAsync; FileLength>100; UsingInsideNamespace | Move using directives outside namespace.; Rename async methods to end with Async.; Replace .Result/.Wait/GetAwaiter().GetResult() with await.; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Verification/CachedAttestorVerificationService.cs | AsyncNaming | Rename async methods to end with Async. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Verification/InMemoryAttestorVerificationCache.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Verification/MessagingAttestorVerificationCache.cs | AsyncNaming; FileLength>100 | Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Watchlist/PostgresWatchlistRepository.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/Attestor/StellaOps.Attestor/StellaOps.Attestor.Infrastructure/Workers/RekorRetryWorker.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; UsingInsideNamespace; UsingNotSorted | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Rename async methods to end with Async.; Sort using directives alphabetically.; Split file to stay <= 100 lines. |
## Testing Fullness Findings
- Status: FAIL
- Expected layers (heuristic): Integration, Unit
- Detected test projects: src/Attestor/__Tests/StellaOps.Attestor.Conformance.Tests/StellaOps.Attestor.Conformance.Tests.csproj [Unit]; src/Attestor/__Tests/StellaOps.Attestor.Infrastructure.Tests/StellaOps.Attestor.Infrastructure.Tests.csproj [Unit]; src/Attestor/__Tests/StellaOps.Attestor.Watchlist.Tests/StellaOps.Attestor.Watchlist.Tests.csproj [Unit]; src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/StellaOps.Attestor.Tests.csproj [Unit]
- Missing layers: Integration
### 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,187 @@
# Audit - StellaOps.Attestor.Tests
## Project
- Path: src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/StellaOps.Attestor.Tests.csproj
- Module: Attestor
- Kind: Library
- Audit date (UTC): 2026-01-30
- Files scanned: 45
- Files with issues: 45
- 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: 31
- Namespace violations: 45
- 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/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/AttestationBundleEndpointsTests.cs (274 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/AttestationQueryTests.cs (113 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/AttestorEntryRepositoryTests.cs (121 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/AttestorSigningServiceTests.cs (392 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/AttestorStorageTests.cs (110 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/AttestorSubmissionServiceTests.cs (370 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/AttestorSubmissionValidatorHardeningTests.cs (174 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/AttestorVerificationServiceTests.cs (737 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/BulkVerificationWorkerTests.cs (247 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/CachedAttestorVerificationServiceTests.cs (128 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/CheckpointSignatureVerifierTests.cs (166 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/HttpRekorClientTests.cs (154 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/HttpTransparencyWitnessClientTests.cs (193 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/MerkleProofVerifierTests.cs (320 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/RekorInclusionVerificationIntegrationTests.cs (332 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/RekorRetryWorkerTests.cs (233 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/RekorSubmissionQueueTests.cs (160 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/TestDoubles.cs (279 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/TimeSkewValidationIntegrationTests.cs (418 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/TimeSkewValidatorTests.cs (223 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/Api/ProofsApiContractTests.cs (367 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/Auth/AttestorAuthTests.cs (422 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/Contract/AttestorContractSnapshotTests.cs (461 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/Fixtures/AttestorTestWebApplicationFactory.cs (139 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/Integration/Queue/PostgresRekorSubmissionQueueIntegrationTests.cs (411 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/Negative/AttestorNegativeTests.cs (512 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/Observability/AttestorOTelTraceTests.cs (474 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/Signing/Sm2AttestorTests.cs (115 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/TestSupport/TestAttestorDoubles.cs (111 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/Timestamping/AttestationTimestampPolicyTests.cs (123 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/Timestamping/AttestationTimestampServiceTests.cs (116 lines)
- Namespace issues:
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/AttestationBundleEndpointsTests.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/AttestationQueryTests.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/AttestorEntryRepositoryTests.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/AttestorSigningServiceTests.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/AttestorStorageTests.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/AttestorSubmissionServiceTests.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/AttestorSubmissionValidatorHardeningTests.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/AttestorVerificationServiceTests.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/BulkVerificationContractsTests.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/BulkVerificationWorkerTests.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/CachedAttestorVerificationServiceTests.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/CheckpointSignatureVerifierTests.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/CorrelationIdTests.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/HttpRekorClientTests.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/HttpTransparencyWitnessClientTests.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/LiveDedupeStoreTests.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/MerkleProofVerifierTests.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/ProofChainQueryServiceTests.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/ProofVerificationServiceTests.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/RekorInclusionVerificationIntegrationTests.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/RekorRetryWorkerTests.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/RekorSubmissionQueueTests.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/TestDoubles.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/TimeSkewValidationIntegrationTests.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/TimeSkewValidatorTests.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/WebServiceFeatureGateTests.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/Api/ProofsApiContractTests.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/Auth/AttestorAuthTests.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/Contract/AttestorContractSnapshotTests.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/Fixtures/AttestorTestWebApplicationFactory.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/Integration/Queue/PostgresRekorSubmissionQueueIntegrationTests.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/Negative/AttestorNegativeTests.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/obj/Debug/net10.0/SelfRegisteredExtensions.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/obj/Debug/net10.0/StellaOps.Attestor.Tests.AssemblyInfo.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/obj/Debug/net10.0/StellaOps.Attestor.Tests.GlobalUsings.g.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/obj/Debug/net10.0/XunitAutoGeneratedEntryPoint.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/obj/Release/net10.0/StellaOps.Attestor.Tests.GlobalUsings.g.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/Observability/AttestorOTelTraceTests.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/Signing/Sm2AttestorTests.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/Signing/SmSoftGateCollection.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/TestSupport/TestAttestorDoubles.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/Timestamping/AttestationTimestampPolicyTests.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/Timestamping/AttestationTimestampServiceTests.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/Timestamping/TimeCorrelationValidatorTests.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>.
- Remove overrides that disable TreatWarningsAsErrors.
- Split files over 100 lines into smaller types or partials.
## File-Level Findings
- Status: FAIL
- Files scanned: 45
- Files with issues: 45
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/AttestationBundleEndpointsTests.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/AttestationQueryTests.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/AttestorEntryRepositoryTests.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/AttestorSigningServiceTests.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/AttestorStorageTests.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/AttestorSubmissionServiceTests.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/AttestorSubmissionValidatorHardeningTests.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/AttestorVerificationServiceTests.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/BulkVerificationContractsTests.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/BulkVerificationWorkerTests.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/CachedAttestorVerificationServiceTests.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/CheckpointSignatureVerifierTests.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/CorrelationIdTests.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/HttpRekorClientTests.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/HttpTransparencyWitnessClientTests.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/LiveDedupeStoreTests.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/MerkleProofVerifierTests.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/ProofChainQueryServiceTests.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/ProofVerificationServiceTests.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/RekorInclusionVerificationIntegrationTests.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/RekorRetryWorkerTests.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/RekorSubmissionQueueTests.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/TestDoubles.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/TimeSkewValidationIntegrationTests.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/TimeSkewValidatorTests.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/WebServiceFeatureGateTests.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/Api/ProofsApiContractTests.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/Auth/AttestorAuthTests.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/Contract/AttestorContractSnapshotTests.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/Fixtures/AttestorTestWebApplicationFactory.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/Integration/Queue/PostgresRekorSubmissionQueueIntegrationTests.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/Negative/AttestorNegativeTests.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/obj/Debug/net10.0/SelfRegisteredExtensions.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/obj/Debug/net10.0/StellaOps.Attestor.Tests.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/obj/Debug/net10.0/StellaOps.Attestor.Tests.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/obj/Debug/net10.0/XunitAutoGeneratedEntryPoint.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/obj/Release/net10.0/StellaOps.Attestor.Tests.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/Observability/AttestorOTelTraceTests.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/Signing/Sm2AttestorTests.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/Signing/SmSoftGateCollection.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/TestSupport/TestAttestorDoubles.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/Timestamping/AttestationTimestampPolicyTests.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/Timestamping/AttestationTimestampServiceTests.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/Timestamping/TimeCorrelationValidatorTests.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,247 @@
# Audit - StellaOps.Attestor.Tests
## Project
- Path: src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/StellaOps.Attestor.Tests.csproj
- Module: Attestor
- Kind: Test
- Audit date (UTC): 2026-01-31
- Files scanned: 39
- Files with issues: 37
- 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: 31
- Namespace violations: 0
- Using directive violations: 48
- Naming violations (interfaces/fields/const/async): 64
- Service locator usage (BuildServiceProvider/GetService): 2
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/AttestationBundleEndpointsTests.cs (274 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/AttestationQueryTests.cs (113 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/AttestorEntryRepositoryTests.cs (121 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/AttestorSigningServiceTests.cs (392 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/AttestorStorageTests.cs (110 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/AttestorSubmissionServiceTests.cs (370 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/AttestorSubmissionValidatorHardeningTests.cs (174 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/AttestorVerificationServiceTests.cs (737 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/BulkVerificationWorkerTests.cs (247 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/CachedAttestorVerificationServiceTests.cs (128 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/CheckpointSignatureVerifierTests.cs (166 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/HttpRekorClientTests.cs (154 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/HttpTransparencyWitnessClientTests.cs (193 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/MerkleProofVerifierTests.cs (320 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/RekorInclusionVerificationIntegrationTests.cs (332 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/RekorRetryWorkerTests.cs (233 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/RekorSubmissionQueueTests.cs (160 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/TestDoubles.cs (279 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/TimeSkewValidationIntegrationTests.cs (418 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/TimeSkewValidatorTests.cs (223 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/Api/ProofsApiContractTests.cs (367 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/Auth/AttestorAuthTests.cs (422 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/Contract/AttestorContractSnapshotTests.cs (461 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/Fixtures/AttestorTestWebApplicationFactory.cs (139 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/Integration/Queue/PostgresRekorSubmissionQueueIntegrationTests.cs (411 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/Negative/AttestorNegativeTests.cs (512 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/Observability/AttestorOTelTraceTests.cs (474 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/Signing/Sm2AttestorTests.cs (115 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/TestSupport/TestAttestorDoubles.cs (111 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/Timestamping/AttestationTimestampPolicyTests.cs (123 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/Timestamping/AttestationTimestampServiceTests.cs (116 lines)
- Namespace issues:
- none
- Using directive issues:
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/AttestationBundleEndpointsTests.cs: using directives inside namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/AttestationBundleEndpointsTests.cs: using directives not sorted
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/AttestationQueryTests.cs: using directives not sorted
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/AttestorEntryRepositoryTests.cs: using directives not sorted
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/AttestorSigningServiceTests.cs: using directives inside namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/AttestorSigningServiceTests.cs: using directives not sorted
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/AttestorStorageTests.cs: using directives not sorted
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/AttestorSubmissionServiceTests.cs: using directives inside namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/AttestorSubmissionServiceTests.cs: using directives not sorted
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/AttestorSubmissionValidatorHardeningTests.cs: using directives not sorted
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/AttestorVerificationServiceTests.cs: using directives inside namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/AttestorVerificationServiceTests.cs: using directives not sorted
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/BulkVerificationContractsTests.cs: using directives not sorted
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/BulkVerificationWorkerTests.cs: using directives inside namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/BulkVerificationWorkerTests.cs: using directives not sorted
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/CachedAttestorVerificationServiceTests.cs: using directives inside namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/CachedAttestorVerificationServiceTests.cs: using directives not sorted
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/CheckpointSignatureVerifierTests.cs: using directives not sorted
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/CorrelationIdTests.cs: using directives inside namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/CorrelationIdTests.cs: using directives not sorted
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/HttpRekorClientTests.cs: using directives not sorted
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/HttpTransparencyWitnessClientTests.cs: using directives inside namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/HttpTransparencyWitnessClientTests.cs: using directives not sorted
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/LiveDedupeStoreTests.cs: using directives not sorted
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/MerkleProofVerifierTests.cs: using directives not sorted
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/ProofChainQueryServiceTests.cs: using directives not sorted
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/ProofVerificationServiceTests.cs: using directives not sorted
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/RekorInclusionVerificationIntegrationTests.cs: using directives inside namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/RekorInclusionVerificationIntegrationTests.cs: using directives not sorted
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/RekorRetryWorkerTests.cs: using directives inside namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/TestDoubles.cs: using directives inside namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/TestDoubles.cs: using directives not sorted
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/TimeSkewValidationIntegrationTests.cs: using directives not sorted
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/TimeSkewValidatorTests.cs: using directives not sorted
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/WebServiceFeatureGateTests.cs: using directives inside namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/WebServiceFeatureGateTests.cs: using directives not sorted
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/Api/ProofsApiContractTests.cs: using directives not sorted
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/Auth/AttestorAuthTests.cs: using directives not sorted
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/Contract/AttestorContractSnapshotTests.cs: using directives inside namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/Contract/AttestorContractSnapshotTests.cs: using directives not sorted
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/Fixtures/AttestorTestWebApplicationFactory.cs: using directives not sorted
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/Negative/AttestorNegativeTests.cs: using directives inside namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/Negative/AttestorNegativeTests.cs: using directives not sorted
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/Observability/AttestorOTelTraceTests.cs: using directives inside namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/Observability/AttestorOTelTraceTests.cs: using directives not sorted
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/Signing/Sm2AttestorTests.cs: using directives not sorted
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/TestSupport/TestAttestorDoubles.cs: using directives not sorted
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/Timestamping/AttestationTimestampServiceTests.cs: using directives not sorted
- Naming issues:
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/AttestorSubmissionValidatorHardeningTests.cs: private field naming
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/AttestorVerificationServiceTests.cs: private field naming
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/RekorInclusionVerificationIntegrationTests.cs: private field naming
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/TimeSkewValidationIntegrationTests.cs: private field naming
- Async issues:
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/AttestationBundleEndpointsTests.cs: async method naming
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/AttestationBundleEndpointsTests.cs: missing ConfigureAwait(false)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/AttestationQueryTests.cs: async method naming
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/AttestationQueryTests.cs: missing ConfigureAwait(false)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/AttestorEntryRepositoryTests.cs: async method naming
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/AttestorEntryRepositoryTests.cs: missing ConfigureAwait(false)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/AttestorSigningServiceTests.cs: async method naming
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/AttestorSigningServiceTests.cs: blocking async usage
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/AttestorSigningServiceTests.cs: missing ConfigureAwait(false)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/AttestorStorageTests.cs: async method naming
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/AttestorStorageTests.cs: missing ConfigureAwait(false)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/AttestorSubmissionServiceTests.cs: async method naming
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/AttestorSubmissionServiceTests.cs: blocking async usage
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/AttestorSubmissionServiceTests.cs: missing ConfigureAwait(false)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/AttestorSubmissionValidatorHardeningTests.cs: async method naming
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/AttestorSubmissionValidatorHardeningTests.cs: blocking async usage
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/AttestorSubmissionValidatorHardeningTests.cs: missing ConfigureAwait(false)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/AttestorVerificationServiceTests.cs: async method naming
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/AttestorVerificationServiceTests.cs: blocking async usage
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/AttestorVerificationServiceTests.cs: missing ConfigureAwait(false)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/BulkVerificationWorkerTests.cs: async method naming
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/BulkVerificationWorkerTests.cs: blocking async usage
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/BulkVerificationWorkerTests.cs: missing ConfigureAwait(false)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/CachedAttestorVerificationServiceTests.cs: async method naming
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/CachedAttestorVerificationServiceTests.cs: missing ConfigureAwait(false)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/CorrelationIdTests.cs: async method naming
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/CorrelationIdTests.cs: missing ConfigureAwait(false)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/HttpRekorClientTests.cs: async method naming
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/HttpRekorClientTests.cs: missing ConfigureAwait(false)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/HttpTransparencyWitnessClientTests.cs: async method naming
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/HttpTransparencyWitnessClientTests.cs: missing ConfigureAwait(false)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/LiveDedupeStoreTests.cs: async method naming
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/LiveDedupeStoreTests.cs: missing ConfigureAwait(false)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/ProofChainQueryServiceTests.cs: async method naming
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/ProofChainQueryServiceTests.cs: missing ConfigureAwait(false)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/ProofVerificationServiceTests.cs: async method naming
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/ProofVerificationServiceTests.cs: missing ConfigureAwait(false)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/RekorRetryWorkerTests.cs: async method naming
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/RekorRetryWorkerTests.cs: missing ConfigureAwait(false)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/TestDoubles.cs: async method naming
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/TimeSkewValidationIntegrationTests.cs: async method naming
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/TimeSkewValidationIntegrationTests.cs: blocking async usage
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/TimeSkewValidationIntegrationTests.cs: missing ConfigureAwait(false)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/WebServiceFeatureGateTests.cs: async method naming
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/WebServiceFeatureGateTests.cs: missing ConfigureAwait(false)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/Api/ProofsApiContractTests.cs: async method naming
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/Api/ProofsApiContractTests.cs: blocking async usage
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/Api/ProofsApiContractTests.cs: missing ConfigureAwait(false)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/Auth/AttestorAuthTests.cs: async method naming
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/Auth/AttestorAuthTests.cs: missing ConfigureAwait(false)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/Contract/AttestorContractSnapshotTests.cs: async method naming
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/Contract/AttestorContractSnapshotTests.cs: missing ConfigureAwait(false)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/Integration/Queue/PostgresRekorSubmissionQueueIntegrationTests.cs: async method naming
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/Integration/Queue/PostgresRekorSubmissionQueueIntegrationTests.cs: missing ConfigureAwait(false)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/Negative/AttestorNegativeTests.cs: async method naming
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/Negative/AttestorNegativeTests.cs: missing ConfigureAwait(false)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/Observability/AttestorOTelTraceTests.cs: async method naming
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/Observability/AttestorOTelTraceTests.cs: missing ConfigureAwait(false)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/Timestamping/AttestationTimestampServiceTests.cs: async method naming
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/Timestamping/AttestationTimestampServiceTests.cs: missing ConfigureAwait(false)
- Service locator matches:
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/AttestationBundleEndpointsTests.cs:70 var repository = scope.ServiceProvider.GetRequiredService<IAttestorEntryRepository>();
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/AttestationBundleEndpointsTests.cs:71 var archiveStore = scope.ServiceProvider.GetRequiredService<IAttestorArchiveStore>();
- 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.
- Replace service locator usage with constructor injection.
- Split files over 100 lines into smaller types or partials.
## File-Level Findings
- Status: FAIL
- Files scanned: 39
- Files with issues: 37
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/AttestationBundleEndpointsTests.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; ServiceLocator; UsingInsideNamespace; UsingNotSorted | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Remove service locator usage; use constructor injection.; Rename async methods to end with Async.; Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/AttestationQueryTests.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. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/AttestorEntryRepositoryTests.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. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/AttestorSigningServiceTests.cs | AsyncNaming; BlockingAsync; ConfigureAwaitMissing; FileLength>100; UsingInsideNamespace; UsingNotSorted | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Rename async methods to end with Async.; Replace .Result/.Wait/GetAwaiter().GetResult() with await.; Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/AttestorStorageTests.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. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/AttestorSubmissionServiceTests.cs | AsyncNaming; BlockingAsync; ConfigureAwaitMissing; FileLength>100; UsingInsideNamespace; UsingNotSorted | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Rename async methods to end with Async.; Replace .Result/.Wait/GetAwaiter().GetResult() with await.; Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/AttestorSubmissionValidatorHardeningTests.cs | AsyncNaming; BlockingAsync; 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.; Replace .Result/.Wait/GetAwaiter().GetResult() with await.; Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/AttestorVerificationServiceTests.cs | AsyncNaming; BlockingAsync; ConfigureAwaitMissing; FileLength>100; PrivateFieldNaming; UsingInsideNamespace; UsingNotSorted | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Rename async methods to end with Async.; Rename private fields to _camelCase.; Replace .Result/.Wait/GetAwaiter().GetResult() with await.; Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/BulkVerificationContractsTests.cs | UsingNotSorted | Sort using directives alphabetically. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/BulkVerificationWorkerTests.cs | AsyncNaming; BlockingAsync; ConfigureAwaitMissing; FileLength>100; UsingInsideNamespace; UsingNotSorted | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Rename async methods to end with Async.; Replace .Result/.Wait/GetAwaiter().GetResult() with await.; Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/CachedAttestorVerificationServiceTests.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; UsingInsideNamespace; UsingNotSorted | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Rename async methods to end with Async.; Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/CheckpointSignatureVerifierTests.cs | FileLength>100; UsingNotSorted | Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/CorrelationIdTests.cs | AsyncNaming; ConfigureAwaitMissing; UsingInsideNamespace; UsingNotSorted | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Rename async methods to end with Async.; Sort using directives alphabetically. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/HttpRekorClientTests.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. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/HttpTransparencyWitnessClientTests.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; UsingInsideNamespace; UsingNotSorted | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Rename async methods to end with Async.; Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/LiveDedupeStoreTests.cs | AsyncNaming; ConfigureAwaitMissing; UsingNotSorted | Add ConfigureAwait(false) to awaited calls in library-like code.; Rename async methods to end with Async.; Sort using directives alphabetically. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/MerkleProofVerifierTests.cs | FileLength>100; UsingNotSorted | Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/ProofChainQueryServiceTests.cs | AsyncNaming; ConfigureAwaitMissing; UsingNotSorted | Add ConfigureAwait(false) to awaited calls in library-like code.; Rename async methods to end with Async.; Sort using directives alphabetically. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/ProofVerificationServiceTests.cs | AsyncNaming; ConfigureAwaitMissing; UsingNotSorted | Add ConfigureAwait(false) to awaited calls in library-like code.; Rename async methods to end with Async.; Sort using directives alphabetically. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/RekorInclusionVerificationIntegrationTests.cs | FileLength>100; PrivateFieldNaming; UsingInsideNamespace; UsingNotSorted | Move using directives outside namespace.; Rename private fields to _camelCase.; Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/RekorRetryWorkerTests.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/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/RekorSubmissionQueueTests.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/TestDoubles.cs | AsyncNaming; FileLength>100; UsingInsideNamespace; UsingNotSorted | Move using directives outside namespace.; Rename async methods to end with Async.; Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/TimeSkewValidationIntegrationTests.cs | AsyncNaming; BlockingAsync; 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.; Replace .Result/.Wait/GetAwaiter().GetResult() with await.; Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/TimeSkewValidatorTests.cs | FileLength>100; UsingNotSorted | Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/WebServiceFeatureGateTests.cs | AsyncNaming; ConfigureAwaitMissing; UsingInsideNamespace; UsingNotSorted | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Rename async methods to end with Async.; Sort using directives alphabetically. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/Api/ProofsApiContractTests.cs | AsyncNaming; BlockingAsync; ConfigureAwaitMissing; FileLength>100; UsingNotSorted | Add ConfigureAwait(false) to awaited calls in library-like code.; Rename async methods to end with Async.; Replace .Result/.Wait/GetAwaiter().GetResult() with await.; Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/Auth/AttestorAuthTests.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. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/Contract/AttestorContractSnapshotTests.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; UsingInsideNamespace; UsingNotSorted | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Rename async methods to end with Async.; Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/Fixtures/AttestorTestWebApplicationFactory.cs | FileLength>100; UsingNotSorted | Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/Integration/Queue/PostgresRekorSubmissionQueueIntegrationTests.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/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/Negative/AttestorNegativeTests.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; UsingInsideNamespace; UsingNotSorted | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Rename async methods to end with Async.; Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/Observability/AttestorOTelTraceTests.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; UsingInsideNamespace; UsingNotSorted | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Rename async methods to end with Async.; Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/Signing/Sm2AttestorTests.cs | FileLength>100; UsingNotSorted | Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/TestSupport/TestAttestorDoubles.cs | FileLength>100; UsingNotSorted | Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/Timestamping/AttestationTimestampPolicyTests.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/Timestamping/AttestationTimestampServiceTests.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.

View File

@@ -0,0 +1,162 @@
# Audit - StellaOps.Attestor.WebService
## Project
- Path: src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/StellaOps.Attestor.WebService.csproj
- Module: Attestor
- Kind: Library
- Audit date (UTC): 2026-01-30
- Files scanned: 39
- Files with issues: 37
- 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: 24
- Namespace violations: 37
- 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/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/AttestorWebServiceComposition.cs (484 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/AttestorWebServiceEndpoints.cs (711 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/WatchlistEndpoints.cs (455 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Contracts/AttestationListContracts.cs (146 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Contracts/BulkVerificationContracts.cs (218 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Contracts/InTotoLinkContracts.cs (248 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Contracts/Spdx3BuildProfileContracts.cs (222 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Contracts/VerdictContracts.cs (101 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Contracts/Anchors/AnchorDtos.cs (159 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Contracts/Proofs/ProofDtos.cs (171 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Controllers/AnchorsController.cs (188 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Controllers/BundlesController.cs (484 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Controllers/ChainController.cs (245 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Controllers/ProofChainController.cs (192 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Controllers/ProofsController.cs (141 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Controllers/VerdictController.cs (421 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Controllers/VerifyController.cs (104 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Models/ChainApiModels.cs (206 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Models/ProofChainModels.cs (331 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Services/ChainQueryService.cs (363 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Services/IPredicateTypeRouter.cs (125 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Services/PredicateTypeRouter.cs (226 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Services/ProofChainQueryService.cs (304 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Services/ProofVerificationService.cs (216 lines)
- Namespace issues:
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/AttestorWebServiceComposition.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/AttestorWebServiceControllerFeatureProvider.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/AttestorWebServiceEndpoints.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/WatchlistEndpoints.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Contracts/AttestationBundleContracts.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Contracts/AttestationDetailContracts.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Contracts/AttestationListContracts.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Contracts/AttestationSignContracts.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Contracts/BulkVerificationContracts.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Contracts/InTotoLinkContracts.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Contracts/Spdx3BuildProfileContracts.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Contracts/VerdictContracts.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Contracts/Anchors/AnchorDtos.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Contracts/Proofs/ProofDtos.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Controllers/AnchorsController.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Controllers/BundlesController.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Controllers/ChainController.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Controllers/ProofChainController.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Controllers/ProofsController.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Controllers/VerdictController.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Controllers/VerifyController.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Models/ChainApiModels.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Models/ProofChainModels.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/obj/Debug/net10.0/StellaOps.Attestor.WebService.AssemblyInfo.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/obj/Debug/net10.0/StellaOps.Attestor.WebService.GlobalUsings.g.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/obj/Debug/net10.0/StellaOps.Attestor.WebService.MvcApplicationPartsAssemblyInfo.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/obj/Release/net10.0/StellaOps.Attestor.WebService.GlobalUsings.g.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Options/AttestorWebServiceFeatures.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Services/ChainQueryService.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Services/IChainQueryService.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Services/IPredicateTypeRouter.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Services/IProofChainQueryService.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Services/IProofVerificationService.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Services/PredicateTypeRouter.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Services/ProofChainQueryService.cs: missing namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Services/ProofVerificationService.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: 39
- Files with issues: 37
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/AttestorWebServiceComposition.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/AttestorWebServiceControllerFeatureProvider.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/AttestorWebServiceEndpoints.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/WatchlistEndpoints.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Contracts/AttestationBundleContracts.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Contracts/AttestationDetailContracts.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Contracts/AttestationListContracts.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Contracts/AttestationSignContracts.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Contracts/BulkVerificationContracts.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Contracts/InTotoLinkContracts.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Contracts/Spdx3BuildProfileContracts.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Contracts/VerdictContracts.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Contracts/Anchors/AnchorDtos.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Contracts/Proofs/ProofDtos.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Controllers/AnchorsController.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Controllers/BundlesController.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Controllers/ChainController.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Controllers/ProofChainController.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Controllers/ProofsController.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Controllers/VerdictController.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Controllers/VerifyController.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Models/ChainApiModels.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Models/ProofChainModels.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/obj/Debug/net10.0/StellaOps.Attestor.WebService.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/obj/Debug/net10.0/StellaOps.Attestor.WebService.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/obj/Debug/net10.0/StellaOps.Attestor.WebService.MvcApplicationPartsAssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/obj/Release/net10.0/StellaOps.Attestor.WebService.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Options/AttestorWebServiceFeatures.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Services/ChainQueryService.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Services/IChainQueryService.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Services/IPredicateTypeRouter.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Services/IProofChainQueryService.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Services/IProofVerificationService.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Services/PredicateTypeRouter.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Services/ProofChainQueryService.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Services/ProofVerificationService.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/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/StellaOps.Attestor.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,121 @@
# Audit - StellaOps.Attestor.WebService
## Project
- Path: src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/StellaOps.Attestor.WebService.csproj
- Module: Attestor
- Kind: Service
- Audit date (UTC): 2026-01-31
- Files scanned: 34
- Files with issues: 24
- File-level report: docs/implplan/audits/csproj-standards/file-audit.csv
## Coding Standards Findings
- Status: FAIL
- Nullable: enable
- TreatWarningsAsErrors: explicit true
- Deterministic: inherited true
- 100-line rule violations: 24
- Namespace violations: 0
- Using directive violations: 2
- Naming violations (interfaces/fields/const/async): 4
- Service locator usage (BuildServiceProvider/GetService): 2
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/AttestorWebServiceComposition.cs (485 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/AttestorWebServiceEndpoints.cs (712 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/WatchlistEndpoints.cs (455 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Contracts/AttestationListContracts.cs (147 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Contracts/BulkVerificationContracts.cs (219 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Contracts/InTotoLinkContracts.cs (249 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Contracts/Spdx3BuildProfileContracts.cs (222 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Contracts/VerdictContracts.cs (101 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Contracts/Anchors/AnchorDtos.cs (159 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Contracts/Proofs/ProofDtos.cs (171 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Controllers/AnchorsController.cs (189 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Controllers/BundlesController.cs (484 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Controllers/ChainController.cs (245 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Controllers/ProofChainController.cs (193 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Controllers/ProofsController.cs (141 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Controllers/VerdictController.cs (422 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Controllers/VerifyController.cs (104 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Models/ChainApiModels.cs (207 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Models/ProofChainModels.cs (331 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Services/ChainQueryService.cs (364 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Services/IPredicateTypeRouter.cs (125 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Services/PredicateTypeRouter.cs (227 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Services/ProofChainQueryService.cs (305 lines)
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Services/ProofVerificationService.cs (217 lines)
- Namespace issues:
- none
- Using directive issues:
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/AttestorWebServiceComposition.cs: using directives inside namespace
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Services/PredicateTypeRouter.cs: using directives inside namespace
- Naming issues:
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Services/PredicateTypeRouter.cs: private field naming
- Async issues:
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/WatchlistEndpoints.cs: async method naming
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Contracts/BulkVerificationContracts.cs: blocking async usage
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Controllers/AnchorsController.cs: async method naming
- Service locator matches:
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/AttestorWebServiceComposition.cs:152 var loggerFactory = sp.GetRequiredService<ILoggerFactory>();
- src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/AttestorWebServiceComposition.cs:371 var guidProvider = app.Services.GetService<IGuidProvider>() ?? SystemGuidProvider.Instance;
- 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: 34
- Files with issues: 24
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/AttestorWebServiceComposition.cs | FileLength>100; ServiceLocator; UsingInsideNamespace | Move using directives outside namespace.; Remove service locator usage; use constructor injection.; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/AttestorWebServiceEndpoints.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/WatchlistEndpoints.cs | AsyncNaming; FileLength>100 | Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Contracts/AttestationListContracts.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Contracts/BulkVerificationContracts.cs | BlockingAsync; FileLength>100 | Replace .Result/.Wait/GetAwaiter().GetResult() with await.; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Contracts/InTotoLinkContracts.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Contracts/Spdx3BuildProfileContracts.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Contracts/VerdictContracts.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Contracts/Anchors/AnchorDtos.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Contracts/Proofs/ProofDtos.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Controllers/AnchorsController.cs | AsyncNaming; FileLength>100 | Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Controllers/BundlesController.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Controllers/ChainController.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Controllers/ProofChainController.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Controllers/ProofsController.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Controllers/VerdictController.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Controllers/VerifyController.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Models/ChainApiModels.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Models/ProofChainModels.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Services/ChainQueryService.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Services/IPredicateTypeRouter.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Services/PredicateTypeRouter.cs | FileLength>100; PrivateFieldNaming; UsingInsideNamespace | Move using directives outside namespace.; Rename private fields to _camelCase.; Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Services/ProofChainQueryService.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/StellaOps.Attestor/StellaOps.Attestor.WebService/Services/ProofVerificationService.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: src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/StellaOps.Attestor.Tests.csproj [Unit]
- Missing layers: E2E, Integration, Offline, Security
### 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,99 @@
# Audit - StellaOps.Attestor.Bundle
## Project
- Path: src/Attestor/__Libraries/StellaOps.Attestor.Bundle/StellaOps.Attestor.Bundle.csproj
- Module: Attestor
- Kind: Library
- Audit date (UTC): 2026-01-30
- 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: explicit true
- Deterministic: inherited true
- 100-line rule violations: 7
- Namespace violations: 14
- 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/Attestor/__Libraries/StellaOps.Attestor.Bundle/Builder/SigstoreBundleBuilder.cs (311 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Bundle/Models/SigstoreBundle.cs (102 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Bundle/Models/TransparencyLogEntry.cs (103 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Bundle/Models/VerificationMaterial.cs (102 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Bundle/Serialization/SigstoreBundleSerializer.cs (195 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Bundle/Verification/BundleVerificationResult.cs (172 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Bundle/Verification/SigstoreBundleVerifier.cs (671 lines)
- Namespace issues:
- src/Attestor/__Libraries/StellaOps.Attestor.Bundle/Builder/SigstoreBundleBuilder.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Bundle/Models/InclusionProof.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Bundle/Models/SigstoreBundle.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Bundle/Models/TransparencyLogEntry.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Bundle/Models/VerificationMaterial.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Bundle/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Bundle/obj/Debug/net10.0/StellaOps.Attestor.Bundle.AssemblyInfo.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Bundle/obj/Debug/net10.0/StellaOps.Attestor.Bundle.GlobalUsings.g.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Bundle/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Bundle/obj/Release/net10.0/StellaOps.Attestor.Bundle.AssemblyInfo.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Bundle/obj/Release/net10.0/StellaOps.Attestor.Bundle.GlobalUsings.g.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Bundle/Serialization/SigstoreBundleSerializer.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Bundle/Verification/BundleVerificationResult.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Bundle/Verification/SigstoreBundleVerifier.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: 14
- Files with issues: 14
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Attestor/__Libraries/StellaOps.Attestor.Bundle/Builder/SigstoreBundleBuilder.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.Bundle/Models/InclusionProof.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.Bundle/Models/SigstoreBundle.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.Bundle/Models/TransparencyLogEntry.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.Bundle/Models/VerificationMaterial.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.Bundle/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.Bundle/obj/Debug/net10.0/StellaOps.Attestor.Bundle.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.Bundle/obj/Debug/net10.0/StellaOps.Attestor.Bundle.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.Bundle/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.Bundle/obj/Release/net10.0/StellaOps.Attestor.Bundle.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.Bundle/obj/Release/net10.0/StellaOps.Attestor.Bundle.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.Bundle/Serialization/SigstoreBundleSerializer.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.Bundle/Verification/BundleVerificationResult.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.Bundle/Verification/SigstoreBundleVerifier.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/Attestor/__Tests/StellaOps.Attestor.Bundle.Tests/StellaOps.Attestor.Bundle.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,82 @@
# Audit - StellaOps.Attestor.Bundle
## Project
- Path: src/Attestor/__Libraries/StellaOps.Attestor.Bundle/StellaOps.Attestor.Bundle.csproj
- Module: Attestor
- Kind: Library
- Audit date (UTC): 2026-01-31
- Files scanned: 8
- Files with issues: 7
- 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: 7
- Namespace violations: 0
- Using directive violations: 1
- Naming violations (interfaces/fields/const/async): 3
- Service locator usage (BuildServiceProvider/GetService): 0
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Attestor/__Libraries/StellaOps.Attestor.Bundle/Builder/SigstoreBundleBuilder.cs (312 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Bundle/Models/SigstoreBundle.cs (102 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Bundle/Models/TransparencyLogEntry.cs (103 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Bundle/Models/VerificationMaterial.cs (102 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Bundle/Serialization/SigstoreBundleSerializer.cs (196 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Bundle/Verification/BundleVerificationResult.cs (172 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Bundle/Verification/SigstoreBundleVerifier.cs (672 lines)
- Namespace issues:
- none
- Using directive issues:
- src/Attestor/__Libraries/StellaOps.Attestor.Bundle/Verification/SigstoreBundleVerifier.cs: using directives inside namespace
- Naming issues:
- src/Attestor/__Libraries/StellaOps.Attestor.Bundle/Serialization/SigstoreBundleSerializer.cs: private field naming
- Async issues:
- src/Attestor/__Libraries/StellaOps.Attestor.Bundle/Verification/SigstoreBundleVerifier.cs: blocking async usage
- src/Attestor/__Libraries/StellaOps.Attestor.Bundle/Verification/SigstoreBundleVerifier.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: 8
- Files with issues: 7
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Attestor/__Libraries/StellaOps.Attestor.Bundle/Builder/SigstoreBundleBuilder.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.Bundle/Models/SigstoreBundle.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.Bundle/Models/TransparencyLogEntry.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.Bundle/Models/VerificationMaterial.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.Bundle/Serialization/SigstoreBundleSerializer.cs | FileLength>100; PrivateFieldNaming | Rename private fields to _camelCase.; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.Bundle/Verification/BundleVerificationResult.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.Bundle/Verification/SigstoreBundleVerifier.cs | BlockingAsync; ConfigureAwaitMissing; FileLength>100; UsingInsideNamespace | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Replace .Result/.Wait/GetAwaiter().GetResult() with await.; Split file to stay <= 100 lines. |
## Testing Fullness Findings
- Status: PASS
- Expected layers (heuristic): Unit
- Detected test projects: src/Attestor/__Tests/StellaOps.Attestor.Bundle.Tests/StellaOps.Attestor.Bundle.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,104 @@
# Audit - StellaOps.Attestor.Bundling
## Project
- Path: src/Attestor/__Libraries/StellaOps.Attestor.Bundling/StellaOps.Attestor.Bundling.csproj
- Module: Attestor
- Kind: Library
- Audit date (UTC): 2026-01-30
- Files scanned: 16
- Files with issues: 16
- 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: 8
- Namespace violations: 16
- 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/Attestor/__Libraries/StellaOps.Attestor.Bundling/Abstractions/IAttestationBundler.cs (158 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Bundling/Abstractions/IBundleStore.cs (139 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Bundling/Configuration/BundlingOptions.cs (388 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Bundling/Models/AttestationBundle.cs (362 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Bundling/Services/AttestationBundler.cs (398 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Bundling/Services/OfflineKitBundleProvider.cs (364 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Bundling/Services/RetentionPolicyEnforcer.cs (534 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Bundling/Signing/KmsOrgKeySigner.cs (362 lines)
- Namespace issues:
- src/Attestor/__Libraries/StellaOps.Attestor.Bundling/Abstractions/IAttestationBundler.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Bundling/Abstractions/IBundleAggregator.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Bundling/Abstractions/IBundleStore.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Bundling/Abstractions/IOrgKeySigner.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Bundling/Configuration/BundlingOptions.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Bundling/Models/AttestationBundle.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Bundling/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Bundling/obj/Debug/net10.0/StellaOps.Attestor.Bundling.AssemblyInfo.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Bundling/obj/Debug/net10.0/StellaOps.Attestor.Bundling.GlobalUsings.g.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Bundling/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Bundling/obj/Release/net10.0/StellaOps.Attestor.Bundling.AssemblyInfo.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Bundling/obj/Release/net10.0/StellaOps.Attestor.Bundling.GlobalUsings.g.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Bundling/Services/AttestationBundler.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Bundling/Services/OfflineKitBundleProvider.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Bundling/Services/RetentionPolicyEnforcer.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Bundling/Signing/KmsOrgKeySigner.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: 16
- Files with issues: 16
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Attestor/__Libraries/StellaOps.Attestor.Bundling/Abstractions/IAttestationBundler.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.Bundling/Abstractions/IBundleAggregator.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.Bundling/Abstractions/IBundleStore.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.Bundling/Abstractions/IOrgKeySigner.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.Bundling/Configuration/BundlingOptions.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.Bundling/Models/AttestationBundle.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.Bundling/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.Bundling/obj/Debug/net10.0/StellaOps.Attestor.Bundling.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.Bundling/obj/Debug/net10.0/StellaOps.Attestor.Bundling.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.Bundling/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.Bundling/obj/Release/net10.0/StellaOps.Attestor.Bundling.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.Bundling/obj/Release/net10.0/StellaOps.Attestor.Bundling.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.Bundling/Services/AttestationBundler.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.Bundling/Services/OfflineKitBundleProvider.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.Bundling/Services/RetentionPolicyEnforcer.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.Bundling/Signing/KmsOrgKeySigner.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/Attestor/__Tests/StellaOps.Attestor.Bundling.Tests/StellaOps.Attestor.Bundling.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,86 @@
# Audit - StellaOps.Attestor.Bundling
## Project
- Path: src/Attestor/__Libraries/StellaOps.Attestor.Bundling/StellaOps.Attestor.Bundling.csproj
- Module: Attestor
- Kind: Library
- Audit date (UTC): 2026-01-31
- Files scanned: 10
- 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: 8
- Namespace violations: 0
- Using directive violations: 0
- Naming violations (interfaces/fields/const/async): 6
- Service locator usage (BuildServiceProvider/GetService): 0
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Attestor/__Libraries/StellaOps.Attestor.Bundling/Abstractions/IAttestationBundler.cs (158 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Bundling/Abstractions/IBundleStore.cs (139 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Bundling/Configuration/BundlingOptions.cs (388 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Bundling/Models/AttestationBundle.cs (362 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Bundling/Services/AttestationBundler.cs (399 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Bundling/Services/OfflineKitBundleProvider.cs (364 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Bundling/Services/RetentionPolicyEnforcer.cs (534 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Bundling/Signing/KmsOrgKeySigner.cs (363 lines)
- Namespace issues:
- none
- Using directive issues:
- none
- Naming issues:
- none
- Async issues:
- src/Attestor/__Libraries/StellaOps.Attestor.Bundling/Services/AttestationBundler.cs: missing ConfigureAwait(false)
- src/Attestor/__Libraries/StellaOps.Attestor.Bundling/Services/OfflineKitBundleProvider.cs: missing ConfigureAwait(false)
- src/Attestor/__Libraries/StellaOps.Attestor.Bundling/Services/RetentionPolicyEnforcer.cs: async method naming
- src/Attestor/__Libraries/StellaOps.Attestor.Bundling/Services/RetentionPolicyEnforcer.cs: missing ConfigureAwait(false)
- src/Attestor/__Libraries/StellaOps.Attestor.Bundling/Signing/KmsOrgKeySigner.cs: async method naming
- src/Attestor/__Libraries/StellaOps.Attestor.Bundling/Signing/KmsOrgKeySigner.cs: missing ConfigureAwait(false)
- Service locator matches:
- none
- Assembly.LoadFrom matches:
- none
### Fix Guidance
- 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: 10
- Files with issues: 8
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Attestor/__Libraries/StellaOps.Attestor.Bundling/Abstractions/IAttestationBundler.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.Bundling/Abstractions/IBundleStore.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.Bundling/Configuration/BundlingOptions.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.Bundling/Models/AttestationBundle.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.Bundling/Services/AttestationBundler.cs | ConfigureAwaitMissing; FileLength>100 | Add ConfigureAwait(false) to awaited calls in library-like code.; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.Bundling/Services/OfflineKitBundleProvider.cs | ConfigureAwaitMissing; FileLength>100 | Add ConfigureAwait(false) to awaited calls in library-like code.; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.Bundling/Services/RetentionPolicyEnforcer.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/Attestor/__Libraries/StellaOps.Attestor.Bundling/Signing/KmsOrgKeySigner.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. |
## Testing Fullness Findings
- Status: PASS
- Expected layers (heuristic): Unit
- Detected test projects: src/Attestor/__Tests/StellaOps.Attestor.Bundling.Tests/StellaOps.Attestor.Bundling.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,87 @@
# Audit - StellaOps.Attestor.EvidencePack
## Project
- Path: src/Attestor/__Libraries/StellaOps.Attestor.EvidencePack/StellaOps.Attestor.EvidencePack.csproj
- Module: Attestor
- Kind: Library
- Audit date (UTC): 2026-01-30
- Files scanned: 9
- Files with issues: 9
- 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: 9
- 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/Attestor/__Libraries/StellaOps.Attestor.EvidencePack/ReleaseEvidencePackBuilder.cs (415 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.EvidencePack/ReleaseEvidencePackSerializer.cs (774 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.EvidencePack/Models/ReleaseEvidencePackManifest.cs (347 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.EvidencePack/Models/VerificationReplayLog.cs (237 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.EvidencePack/Services/VerificationReplayLogBuilder.cs (335 lines)
- Namespace issues:
- src/Attestor/__Libraries/StellaOps.Attestor.EvidencePack/ReleaseEvidencePackBuilder.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.EvidencePack/ReleaseEvidencePackSerializer.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.EvidencePack/Models/ReleaseEvidencePackManifest.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.EvidencePack/Models/VerificationReplayLog.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.EvidencePack/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.EvidencePack/obj/Release/net10.0/StellaOps.Attestor.EvidencePack.AssemblyInfo.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.EvidencePack/obj/Release/net10.0/StellaOps.Attestor.EvidencePack.GlobalUsings.g.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.EvidencePack/Services/ReplayLogSerializerContext.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.EvidencePack/Services/VerificationReplayLogBuilder.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: 9
- Files with issues: 9
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Attestor/__Libraries/StellaOps.Attestor.EvidencePack/ReleaseEvidencePackBuilder.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.EvidencePack/ReleaseEvidencePackSerializer.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.EvidencePack/Models/ReleaseEvidencePackManifest.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.EvidencePack/Models/VerificationReplayLog.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.EvidencePack/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.EvidencePack/obj/Release/net10.0/StellaOps.Attestor.EvidencePack.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.EvidencePack/obj/Release/net10.0/StellaOps.Attestor.EvidencePack.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.EvidencePack/Services/ReplayLogSerializerContext.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.EvidencePack/Services/VerificationReplayLogBuilder.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/Attestor/__Tests/StellaOps.Attestor.EvidencePack.IntegrationTests/StellaOps.Attestor.EvidencePack.IntegrationTests.csproj [Integration]; src/Attestor/__Tests/StellaOps.Attestor.EvidencePack.Tests/StellaOps.Attestor.EvidencePack.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.Attestor.EvidencePack
## Project
- Path: src/Attestor/__Libraries/StellaOps.Attestor.EvidencePack/StellaOps.Attestor.EvidencePack.csproj
- Module: Attestor
- Kind: Library
- Audit date (UTC): 2026-01-31
- Files scanned: 6
- 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/Attestor/__Libraries/StellaOps.Attestor.EvidencePack/ReleaseEvidencePackBuilder.cs (416 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.EvidencePack/ReleaseEvidencePackSerializer.cs (775 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.EvidencePack/Models/ReleaseEvidencePackManifest.cs (347 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.EvidencePack/Models/VerificationReplayLog.cs (237 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.EvidencePack/Services/VerificationReplayLogBuilder.cs (336 lines)
- Namespace issues:
- none
- Using directive issues:
- src/Attestor/__Libraries/StellaOps.Attestor.EvidencePack/ReleaseEvidencePackBuilder.cs: using directives inside namespace
- src/Attestor/__Libraries/StellaOps.Attestor.EvidencePack/ReleaseEvidencePackSerializer.cs: using directives inside namespace
- Naming issues:
- none
- Async issues:
- src/Attestor/__Libraries/StellaOps.Attestor.EvidencePack/ReleaseEvidencePackSerializer.cs: async method naming
- src/Attestor/__Libraries/StellaOps.Attestor.EvidencePack/ReleaseEvidencePackSerializer.cs: blocking async usage
- src/Attestor/__Libraries/StellaOps.Attestor.EvidencePack/ReleaseEvidencePackSerializer.cs: missing ConfigureAwait(false)
- src/Attestor/__Libraries/StellaOps.Attestor.EvidencePack/Services/VerificationReplayLogBuilder.cs: blocking async usage
- Service locator matches:
- none
- Assembly.LoadFrom matches:
- none
### Fix Guidance
- 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: 6
- Files with issues: 5
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Attestor/__Libraries/StellaOps.Attestor.EvidencePack/ReleaseEvidencePackBuilder.cs | FileLength>100; UsingInsideNamespace | Move using directives outside namespace.; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.EvidencePack/ReleaseEvidencePackSerializer.cs | AsyncNaming; BlockingAsync; 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.; Replace .Result/.Wait/GetAwaiter().GetResult() with await.; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.EvidencePack/Models/ReleaseEvidencePackManifest.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.EvidencePack/Models/VerificationReplayLog.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.EvidencePack/Services/VerificationReplayLogBuilder.cs | BlockingAsync; FileLength>100 | Replace .Result/.Wait/GetAwaiter().GetResult() with await.; Split file to stay <= 100 lines. |
## Testing Fullness Findings
- Status: PASS
- Expected layers (heuristic): Unit
- Detected test projects: src/Attestor/__Tests/StellaOps.Attestor.EvidencePack.IntegrationTests/StellaOps.Attestor.EvidencePack.IntegrationTests.csproj [Integration]; src/Attestor/__Tests/StellaOps.Attestor.EvidencePack.Tests/StellaOps.Attestor.EvidencePack.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,93 @@
# Audit - StellaOps.Attestor.FixChain
## Project
- Path: src/Attestor/__Libraries/StellaOps.Attestor.FixChain/StellaOps.Attestor.FixChain.csproj
- Module: Attestor
- 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: 5
- 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/Attestor/__Libraries/StellaOps.Attestor.FixChain/FixChainAttestationService.cs (507 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.FixChain/FixChainModels.cs (142 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.FixChain/FixChainPredicate.cs (146 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.FixChain/FixChainStatementBuilder.cs (277 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.FixChain/FixChainValidator.cs (249 lines)
- Namespace issues:
- src/Attestor/__Libraries/StellaOps.Attestor.FixChain/FixChainAttestationService.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.FixChain/FixChainModels.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.FixChain/FixChainPredicate.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.FixChain/FixChainStatementBuilder.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.FixChain/FixChainValidator.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.FixChain/ServiceCollectionExtensions.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.FixChain/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.FixChain/obj/Debug/net10.0/StellaOps.Attestor.FixChain.AssemblyInfo.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.FixChain/obj/Debug/net10.0/StellaOps.Attestor.FixChain.GlobalUsings.g.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.FixChain/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.FixChain/obj/Release/net10.0/StellaOps.Attestor.FixChain.AssemblyInfo.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.FixChain/obj/Release/net10.0/StellaOps.Attestor.FixChain.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/Attestor/__Libraries/StellaOps.Attestor.FixChain/FixChainAttestationService.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.FixChain/FixChainModels.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.FixChain/FixChainPredicate.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.FixChain/FixChainStatementBuilder.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.FixChain/FixChainValidator.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.FixChain/ServiceCollectionExtensions.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.FixChain/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.FixChain/obj/Debug/net10.0/StellaOps.Attestor.FixChain.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.FixChain/obj/Debug/net10.0/StellaOps.Attestor.FixChain.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.FixChain/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.FixChain/obj/Release/net10.0/StellaOps.Attestor.FixChain.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.FixChain/obj/Release/net10.0/StellaOps.Attestor.FixChain.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
## Testing Fullness Findings
- Status: PASS
- Expected layers (heuristic): Unit
- Detected test projects: src/Attestor/__Libraries/__Tests/StellaOps.Attestor.FixChain.Tests/StellaOps.Attestor.FixChain.Tests.csproj [Unit]; src/Attestor/__Tests/StellaOps.Attestor.FixChain.Tests/StellaOps.Attestor.FixChain.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,78 @@
# Audit - StellaOps.Attestor.FixChain
## Project
- Path: src/Attestor/__Libraries/StellaOps.Attestor.FixChain/StellaOps.Attestor.FixChain.csproj
- Module: Attestor
- Kind: Library
- Audit date (UTC): 2026-01-31
- Files scanned: 6
- 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: 0
- Naming violations (interfaces/fields/const/async): 4
- Service locator usage (BuildServiceProvider/GetService): 0
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Attestor/__Libraries/StellaOps.Attestor.FixChain/FixChainAttestationService.cs (508 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.FixChain/FixChainModels.cs (143 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.FixChain/FixChainPredicate.cs (146 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.FixChain/FixChainStatementBuilder.cs (278 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.FixChain/FixChainValidator.cs (249 lines)
- Namespace issues:
- none
- Using directive issues:
- none
- Naming issues:
- src/Attestor/__Libraries/StellaOps.Attestor.FixChain/FixChainAttestationService.cs: private field naming
- src/Attestor/__Libraries/StellaOps.Attestor.FixChain/FixChainStatementBuilder.cs: private field naming
- src/Attestor/__Libraries/StellaOps.Attestor.FixChain/FixChainValidator.cs: private field naming
- Async issues:
- src/Attestor/__Libraries/StellaOps.Attestor.FixChain/FixChainAttestationService.cs: missing ConfigureAwait(false)
- Service locator matches:
- none
- Assembly.LoadFrom matches:
- none
### Fix Guidance
- Align interface/field/const naming to standards.
- 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: 6
- Files with issues: 5
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Attestor/__Libraries/StellaOps.Attestor.FixChain/FixChainAttestationService.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/Attestor/__Libraries/StellaOps.Attestor.FixChain/FixChainModels.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.FixChain/FixChainPredicate.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.FixChain/FixChainStatementBuilder.cs | FileLength>100; PrivateFieldNaming | Rename private fields to _camelCase.; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.FixChain/FixChainValidator.cs | FileLength>100; PrivateFieldNaming | Rename private fields to _camelCase.; Split file to stay <= 100 lines. |
## Testing Fullness Findings
- Status: PASS
- Expected layers (heuristic): Unit
- Detected test projects: src/Attestor/__Libraries/__Tests/StellaOps.Attestor.FixChain.Tests/StellaOps.Attestor.FixChain.Tests.csproj [Unit]; src/Attestor/__Tests/StellaOps.Attestor.FixChain.Tests/StellaOps.Attestor.FixChain.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,101 @@
# Audit - StellaOps.Attestor.GraphRoot
## Project
- Path: src/Attestor/__Libraries/StellaOps.Attestor.GraphRoot/StellaOps.Attestor.GraphRoot.csproj
- Module: Attestor
- Kind: Library
- Audit date (UTC): 2026-01-30
- Files scanned: 17
- Files with issues: 17
- 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: 17
- 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/Attestor/__Libraries/StellaOps.Attestor.GraphRoot/GraphRootAttestor.cs (693 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.GraphRoot/Models/GraphRootPredicate.cs (121 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.GraphRoot/Models/GraphRootResults.cs (106 lines)
- Namespace issues:
- src/Attestor/__Libraries/StellaOps.Attestor.GraphRoot/GraphRootAttestor.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.GraphRoot/GraphRootAttestorOptions.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.GraphRoot/GraphRootServiceCollectionExtensions.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.GraphRoot/GraphType.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.GraphRoot/IGraphRootAttestor.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.GraphRoot/IMerkleRootComputer.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.GraphRoot/Sha256MerkleRootComputer.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.GraphRoot/Models/GraphRootAttestation.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.GraphRoot/Models/GraphRootAttestationRequest.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.GraphRoot/Models/GraphRootPredicate.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.GraphRoot/Models/GraphRootResults.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.GraphRoot/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.GraphRoot/obj/Debug/net10.0/StellaOps.Attestor.GraphRoot.AssemblyInfo.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.GraphRoot/obj/Debug/net10.0/StellaOps.Attestor.GraphRoot.GlobalUsings.g.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.GraphRoot/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.GraphRoot/obj/Release/net10.0/StellaOps.Attestor.GraphRoot.AssemblyInfo.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.GraphRoot/obj/Release/net10.0/StellaOps.Attestor.GraphRoot.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: 17
- Files with issues: 17
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Attestor/__Libraries/StellaOps.Attestor.GraphRoot/GraphRootAttestor.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.GraphRoot/GraphRootAttestorOptions.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.GraphRoot/GraphRootServiceCollectionExtensions.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.GraphRoot/GraphType.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.GraphRoot/IGraphRootAttestor.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.GraphRoot/IMerkleRootComputer.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.GraphRoot/Sha256MerkleRootComputer.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.GraphRoot/Models/GraphRootAttestation.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.GraphRoot/Models/GraphRootAttestationRequest.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.GraphRoot/Models/GraphRootPredicate.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.GraphRoot/Models/GraphRootResults.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.GraphRoot/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.GraphRoot/obj/Debug/net10.0/StellaOps.Attestor.GraphRoot.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.GraphRoot/obj/Debug/net10.0/StellaOps.Attestor.GraphRoot.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.GraphRoot/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.GraphRoot/obj/Release/net10.0/StellaOps.Attestor.GraphRoot.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.GraphRoot/obj/Release/net10.0/StellaOps.Attestor.GraphRoot.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
## Testing Fullness Findings
- Status: PASS
- Expected layers (heuristic): Unit
- Detected test projects: src/Attestor/__Libraries/__Tests/StellaOps.Attestor.GraphRoot.Tests/StellaOps.Attestor.GraphRoot.Tests.csproj [Unit]; src/Attestor/__Tests/StellaOps.Attestor.GraphRoot.Tests/StellaOps.Attestor.GraphRoot.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,76 @@
# Audit - StellaOps.Attestor.GraphRoot
## Project
- Path: src/Attestor/__Libraries/StellaOps.Attestor.GraphRoot/StellaOps.Attestor.GraphRoot.csproj
- Module: Attestor
- Kind: Library
- Audit date (UTC): 2026-01-31
- Files scanned: 11
- Files with issues: 4
- 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): 1
- Service locator usage (BuildServiceProvider/GetService): 4
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Attestor/__Libraries/StellaOps.Attestor.GraphRoot/GraphRootAttestor.cs (694 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.GraphRoot/Models/GraphRootPredicate.cs (121 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.GraphRoot/Models/GraphRootResults.cs (106 lines)
- Namespace issues:
- none
- Using directive issues:
- none
- Naming issues:
- none
- Async issues:
- src/Attestor/__Libraries/StellaOps.Attestor.GraphRoot/GraphRootAttestor.cs: missing ConfigureAwait(false)
- Service locator matches:
- src/Attestor/__Libraries/StellaOps.Attestor.GraphRoot/GraphRootServiceCollectionExtensions.cs:46 var merkleComputer = sp.GetRequiredService<IMerkleRootComputer>();
- src/Attestor/__Libraries/StellaOps.Attestor.GraphRoot/GraphRootServiceCollectionExtensions.cs:47 var signatureService = sp.GetRequiredService<EnvelopeSignatureService>();
- src/Attestor/__Libraries/StellaOps.Attestor.GraphRoot/GraphRootServiceCollectionExtensions.cs:48 var logger = sp.GetRequiredService<Microsoft.Extensions.Logging.ILogger<GraphRootAttestor>>();
- src/Attestor/__Libraries/StellaOps.Attestor.GraphRoot/GraphRootServiceCollectionExtensions.cs:50 var timeProvider = sp.GetService<TimeProvider>();
- Assembly.LoadFrom matches:
- none
### Fix Guidance
- 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: 11
- Files with issues: 4
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Attestor/__Libraries/StellaOps.Attestor.GraphRoot/GraphRootAttestor.cs | ConfigureAwaitMissing; FileLength>100 | Add ConfigureAwait(false) to awaited calls in library-like code.; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.GraphRoot/GraphRootServiceCollectionExtensions.cs | ServiceLocator | Remove service locator usage; use constructor injection. |
| src/Attestor/__Libraries/StellaOps.Attestor.GraphRoot/Models/GraphRootPredicate.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.GraphRoot/Models/GraphRootResults.cs | FileLength>100 | Split file to stay <= 100 lines. |
## Testing Fullness Findings
- Status: PASS
- Expected layers (heuristic): Unit
- Detected test projects: src/Attestor/__Libraries/__Tests/StellaOps.Attestor.GraphRoot.Tests/StellaOps.Attestor.GraphRoot.Tests.csproj [Unit]; src/Attestor/__Tests/StellaOps.Attestor.GraphRoot.Tests/StellaOps.Attestor.GraphRoot.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,91 @@
# Audit - StellaOps.Attestor.Oci
## Project
- Path: src/Attestor/__Libraries/StellaOps.Attestor.Oci/StellaOps.Attestor.Oci.csproj
- Module: Attestor
- Kind: Library
- Audit date (UTC): 2026-01-30
- Files scanned: 11
- Files with issues: 11
- 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: 11
- 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/Attestor/__Libraries/StellaOps.Attestor.Oci/Services/IOciAttestationAttacher.cs (361 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Oci/Services/IOciRegistryClient.cs (187 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Oci/Services/ISbomOciPublisher.cs (167 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Oci/Services/OrasAttestationAttacher.cs (472 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Oci/Services/SbomOciPublisher.cs (306 lines)
- Namespace issues:
- src/Attestor/__Libraries/StellaOps.Attestor.Oci/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Oci/obj/Debug/net10.0/StellaOps.Attestor.Oci.AssemblyInfo.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Oci/obj/Debug/net10.0/StellaOps.Attestor.Oci.GlobalUsings.g.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Oci/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Oci/obj/Release/net10.0/StellaOps.Attestor.Oci.AssemblyInfo.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Oci/obj/Release/net10.0/StellaOps.Attestor.Oci.GlobalUsings.g.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Oci/Services/IOciAttestationAttacher.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Oci/Services/IOciRegistryClient.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Oci/Services/ISbomOciPublisher.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Oci/Services/OrasAttestationAttacher.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Oci/Services/SbomOciPublisher.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: 11
- Files with issues: 11
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Attestor/__Libraries/StellaOps.Attestor.Oci/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.Oci/obj/Debug/net10.0/StellaOps.Attestor.Oci.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.Oci/obj/Debug/net10.0/StellaOps.Attestor.Oci.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.Oci/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.Oci/obj/Release/net10.0/StellaOps.Attestor.Oci.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.Oci/obj/Release/net10.0/StellaOps.Attestor.Oci.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.Oci/Services/IOciAttestationAttacher.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.Oci/Services/IOciRegistryClient.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.Oci/Services/ISbomOciPublisher.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.Oci/Services/OrasAttestationAttacher.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.Oci/Services/SbomOciPublisher.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/Attestor/__Tests/StellaOps.Attestor.Oci.Tests/StellaOps.Attestor.Oci.Tests.csproj [Unit]; src/Cli/__Tests/StellaOps.Cli.Tests/StellaOps.Cli.Tests.csproj [CLI]
- 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,77 @@
# Audit - StellaOps.Attestor.Oci
## Project
- Path: src/Attestor/__Libraries/StellaOps.Attestor.Oci/StellaOps.Attestor.Oci.csproj
- Module: Attestor
- Kind: Library
- 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: 1
- Naming violations (interfaces/fields/const/async): 2
- Service locator usage (BuildServiceProvider/GetService): 0
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Attestor/__Libraries/StellaOps.Attestor.Oci/Services/IOciAttestationAttacher.cs (361 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Oci/Services/IOciRegistryClient.cs (187 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Oci/Services/ISbomOciPublisher.cs (167 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Oci/Services/OrasAttestationAttacher.cs (473 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Oci/Services/SbomOciPublisher.cs (307 lines)
- Namespace issues:
- none
- Using directive issues:
- src/Attestor/__Libraries/StellaOps.Attestor.Oci/Services/OrasAttestationAttacher.cs: using directives inside namespace
- Naming issues:
- src/Attestor/__Libraries/StellaOps.Attestor.Oci/Services/SbomOciPublisher.cs: private field naming
- Async issues:
- src/Attestor/__Libraries/StellaOps.Attestor.Oci/Services/SbomOciPublisher.cs: async method naming
- 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/Attestor/__Libraries/StellaOps.Attestor.Oci/Services/IOciAttestationAttacher.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.Oci/Services/IOciRegistryClient.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.Oci/Services/ISbomOciPublisher.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.Oci/Services/OrasAttestationAttacher.cs | FileLength>100; UsingInsideNamespace | Move using directives outside namespace.; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.Oci/Services/SbomOciPublisher.cs | AsyncNaming; FileLength>100; PrivateFieldNaming | Rename async methods to end with Async.; Rename private fields to _camelCase.; Split file to stay <= 100 lines. |
## Testing Fullness Findings
- Status: PASS
- Expected layers (heuristic): Unit
- Detected test projects: src/Attestor/__Tests/StellaOps.Attestor.Oci.Tests/StellaOps.Attestor.Oci.Tests.csproj [Unit]; src/Cli/__Tests/StellaOps.Cli.Tests/StellaOps.Cli.Tests.csproj [CLI]
- 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,96 @@
# Audit - StellaOps.Attestor.Offline
## Project
- Path: src/Attestor/__Libraries/StellaOps.Attestor.Offline/StellaOps.Attestor.Offline.csproj
- Module: Attestor
- Kind: Library
- Audit date (UTC): 2026-01-30
- Files scanned: 13
- Files with issues: 13
- 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: 13
- 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/Attestor/__Libraries/StellaOps.Attestor.Offline/Abstractions/IOfflineRootStore.cs (119 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Offline/Abstractions/IRuleBundleSignatureVerifier.cs (169 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Offline/Models/OfflineVerificationResult.cs (113 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Offline/Services/FileSystemRootStore.cs (643 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Offline/Services/OfflineVerifier.cs (1069 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Offline/Services/RuleBundleSignatureVerifier.cs (347 lines)
- Namespace issues:
- src/Attestor/__Libraries/StellaOps.Attestor.Offline/Abstractions/IOfflineRootStore.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Offline/Abstractions/IOfflineVerifier.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Offline/Abstractions/IRuleBundleSignatureVerifier.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Offline/Models/OfflineVerificationResult.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Offline/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Offline/obj/Debug/net10.0/StellaOps.Attestor.Offline.AssemblyInfo.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Offline/obj/Debug/net10.0/StellaOps.Attestor.Offline.GlobalUsings.g.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Offline/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Offline/obj/Release/net10.0/StellaOps.Attestor.Offline.AssemblyInfo.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Offline/obj/Release/net10.0/StellaOps.Attestor.Offline.GlobalUsings.g.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Offline/Services/FileSystemRootStore.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Offline/Services/OfflineVerifier.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Offline/Services/RuleBundleSignatureVerifier.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: 13
- Files with issues: 13
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Attestor/__Libraries/StellaOps.Attestor.Offline/Abstractions/IOfflineRootStore.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.Offline/Abstractions/IOfflineVerifier.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.Offline/Abstractions/IRuleBundleSignatureVerifier.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.Offline/Models/OfflineVerificationResult.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.Offline/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.Offline/obj/Debug/net10.0/StellaOps.Attestor.Offline.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.Offline/obj/Debug/net10.0/StellaOps.Attestor.Offline.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.Offline/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.Offline/obj/Release/net10.0/StellaOps.Attestor.Offline.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.Offline/obj/Release/net10.0/StellaOps.Attestor.Offline.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.Offline/Services/FileSystemRootStore.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.Offline/Services/OfflineVerifier.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.Offline/Services/RuleBundleSignatureVerifier.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/Attestor/__Tests/StellaOps.Attestor.Conformance.Tests/StellaOps.Attestor.Conformance.Tests.csproj [Unit]; src/Attestor/__Tests/StellaOps.Attestor.Offline.Tests/StellaOps.Attestor.Offline.Tests.csproj [Offline]
- 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,84 @@
# Audit - StellaOps.Attestor.Offline
## Project
- Path: src/Attestor/__Libraries/StellaOps.Attestor.Offline/StellaOps.Attestor.Offline.csproj
- Module: Attestor
- Kind: Library
- Audit date (UTC): 2026-01-31
- Files scanned: 7
- 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): 5
- Service locator usage (BuildServiceProvider/GetService): 0
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Attestor/__Libraries/StellaOps.Attestor.Offline/Abstractions/IOfflineRootStore.cs (119 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Offline/Abstractions/IRuleBundleSignatureVerifier.cs (169 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Offline/Models/OfflineVerificationResult.cs (113 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Offline/Services/FileSystemRootStore.cs (644 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Offline/Services/OfflineVerifier.cs (1070 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Offline/Services/RuleBundleSignatureVerifier.cs (348 lines)
- Namespace issues:
- none
- Using directive issues:
- src/Attestor/__Libraries/StellaOps.Attestor.Offline/Services/FileSystemRootStore.cs: using directives inside namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Offline/Services/OfflineVerifier.cs: using directives inside namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Offline/Services/RuleBundleSignatureVerifier.cs: using directives inside namespace
- Naming issues:
- src/Attestor/__Libraries/StellaOps.Attestor.Offline/Services/RuleBundleSignatureVerifier.cs: private field naming
- Async issues:
- src/Attestor/__Libraries/StellaOps.Attestor.Offline/Services/FileSystemRootStore.cs: async method naming
- src/Attestor/__Libraries/StellaOps.Attestor.Offline/Services/FileSystemRootStore.cs: missing ConfigureAwait(false)
- src/Attestor/__Libraries/StellaOps.Attestor.Offline/Services/OfflineVerifier.cs: missing ConfigureAwait(false)
- src/Attestor/__Libraries/StellaOps.Attestor.Offline/Services/RuleBundleSignatureVerifier.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: 7
- Files with issues: 6
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Attestor/__Libraries/StellaOps.Attestor.Offline/Abstractions/IOfflineRootStore.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.Offline/Abstractions/IRuleBundleSignatureVerifier.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.Offline/Models/OfflineVerificationResult.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.Offline/Services/FileSystemRootStore.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/Attestor/__Libraries/StellaOps.Attestor.Offline/Services/OfflineVerifier.cs | ConfigureAwaitMissing; FileLength>100; UsingInsideNamespace | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.Offline/Services/RuleBundleSignatureVerifier.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. |
## Testing Fullness Findings
- Status: PASS
- Expected layers (heuristic): Unit
- Detected test projects: src/Attestor/__Tests/StellaOps.Attestor.Conformance.Tests/StellaOps.Attestor.Conformance.Tests.csproj [Unit]; src/Attestor/__Tests/StellaOps.Attestor.Offline.Tests/StellaOps.Attestor.Offline.Tests.csproj [Offline]
- 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,105 @@
# Audit - StellaOps.Attestor.Persistence
## Project
- Path: src/Attestor/__Libraries/StellaOps.Attestor.Persistence/StellaOps.Attestor.Persistence.csproj
- Module: Attestor
- Kind: Library
- Audit date (UTC): 2026-01-30
- Files scanned: 18
- Files with issues: 18
- 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: 4
- Namespace violations: 18
- 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/Attestor/__Libraries/StellaOps.Attestor.Persistence/ProofChainDbContext.cs (226 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Persistence/Repositories/IProofChainRepository.cs (207 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Persistence/Repositories/PostgresVerdictLedgerRepository.cs (241 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Persistence/Services/TrustAnchorMatcher.cs (326 lines)
- Namespace issues:
- src/Attestor/__Libraries/StellaOps.Attestor.Persistence/ProofChainDbContext.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Persistence/Entities/AuditLogEntity.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Persistence/Entities/DsseEnvelopeEntity.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Persistence/Entities/RekorEntryEntity.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Persistence/Entities/SbomEntryEntity.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Persistence/Entities/SpineEntity.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Persistence/Entities/TrustAnchorEntity.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Persistence/Entities/VerdictLedgerEntry.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Persistence/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Persistence/obj/Debug/net10.0/StellaOps.Attestor.Persistence.AssemblyInfo.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Persistence/obj/Debug/net10.0/StellaOps.Attestor.Persistence.GlobalUsings.g.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Persistence/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Persistence/obj/Release/net10.0/StellaOps.Attestor.Persistence.AssemblyInfo.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Persistence/obj/Release/net10.0/StellaOps.Attestor.Persistence.GlobalUsings.g.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Persistence/Repositories/IProofChainRepository.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Persistence/Repositories/IVerdictLedgerRepository.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Persistence/Repositories/PostgresVerdictLedgerRepository.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Persistence/Services/TrustAnchorMatcher.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: 18
- Files with issues: 18
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Attestor/__Libraries/StellaOps.Attestor.Persistence/ProofChainDbContext.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.Persistence/Entities/AuditLogEntity.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.Persistence/Entities/DsseEnvelopeEntity.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.Persistence/Entities/RekorEntryEntity.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.Persistence/Entities/SbomEntryEntity.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.Persistence/Entities/SpineEntity.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.Persistence/Entities/TrustAnchorEntity.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.Persistence/Entities/VerdictLedgerEntry.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.Persistence/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.Persistence/obj/Debug/net10.0/StellaOps.Attestor.Persistence.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.Persistence/obj/Debug/net10.0/StellaOps.Attestor.Persistence.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.Persistence/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.Persistence/obj/Release/net10.0/StellaOps.Attestor.Persistence.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.Persistence/obj/Release/net10.0/StellaOps.Attestor.Persistence.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.Persistence/Repositories/IProofChainRepository.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.Persistence/Repositories/IVerdictLedgerRepository.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.Persistence/Repositories/PostgresVerdictLedgerRepository.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.Persistence/Services/TrustAnchorMatcher.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: src/Attestor/__Tests/StellaOps.Attestor.Persistence.Tests/StellaOps.Attestor.Persistence.Tests.csproj [Unit]
- Missing layers: Integration
### 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.Attestor.Persistence
## Project
- Path: src/Attestor/__Libraries/StellaOps.Attestor.Persistence/StellaOps.Attestor.Persistence.csproj
- Module: Attestor
- Kind: Library
- Audit date (UTC): 2026-01-31
- Files scanned: 12
- Files with issues: 4
- 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: 4
- Namespace violations: 0
- Using directive violations: 0
- Naming violations (interfaces/fields/const/async): 3
- Service locator usage (BuildServiceProvider/GetService): 0
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Attestor/__Libraries/StellaOps.Attestor.Persistence/ProofChainDbContext.cs (226 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Persistence/Repositories/IProofChainRepository.cs (208 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Persistence/Repositories/PostgresVerdictLedgerRepository.cs (241 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Persistence/Services/TrustAnchorMatcher.cs (327 lines)
- Namespace issues:
- none
- Using directive issues:
- none
- Naming issues:
- none
- Async issues:
- src/Attestor/__Libraries/StellaOps.Attestor.Persistence/Repositories/PostgresVerdictLedgerRepository.cs: async method naming
- src/Attestor/__Libraries/StellaOps.Attestor.Persistence/Repositories/PostgresVerdictLedgerRepository.cs: missing ConfigureAwait(false)
- src/Attestor/__Libraries/StellaOps.Attestor.Persistence/Services/TrustAnchorMatcher.cs: missing ConfigureAwait(false)
- Service locator matches:
- none
- Assembly.LoadFrom matches:
- none
### Fix Guidance
- 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: 12
- Files with issues: 4
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Attestor/__Libraries/StellaOps.Attestor.Persistence/ProofChainDbContext.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.Persistence/Repositories/IProofChainRepository.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.Persistence/Repositories/PostgresVerdictLedgerRepository.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/Attestor/__Libraries/StellaOps.Attestor.Persistence/Services/TrustAnchorMatcher.cs | ConfigureAwaitMissing; FileLength>100 | Add ConfigureAwait(false) to awaited calls in library-like code.; Split file to stay <= 100 lines. |
## Testing Fullness Findings
- Status: FAIL
- Expected layers (heuristic): Integration, Unit
- Detected test projects: src/Attestor/__Tests/StellaOps.Attestor.Persistence.Tests/StellaOps.Attestor.Persistence.Tests.csproj [Unit]
- Missing layers: Integration
### 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,298 @@
# Audit - StellaOps.Attestor.ProofChain
## Project
- Path: src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/StellaOps.Attestor.ProofChain.csproj
- Module: Attestor
- Kind: Library
- Audit date (UTC): 2026-01-30
- Files scanned: 91
- Files with issues: 91
- 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: 52
- Namespace violations: 91
- 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/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Assembly/IProofSpineAssembler.cs (199 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Audit/AuditHashLogger.cs (284 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Builders/IStatementBuilder.cs (118 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Builders/StatementBuilder.cs (137 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/ChangeTrace/ChangeTraceAttestationService.cs (209 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Generators/BackportProofGenerator.cs (556 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Generators/BinaryFingerprintEvidenceGenerator.cs (215 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Generators/VexProofIntegrator.cs (298 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Graph/InMemoryProofGraphService.cs (292 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Graph/IProofGraphService.cs (277 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Identifiers/ContentAddressedId.cs (169 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Identifiers/ContentAddressedIdGenerator.cs (170 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Json/IJsonSchemaValidator.cs (361 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Json/Rfc8785JsonCanonicalizer.cs (316 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Linking/ComponentRefExtractor.cs (266 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Merkle/DeterministicMerkleTreeBuilder.cs (215 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Merkle/IMerkleTreeBuilder.cs (106 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Pipeline/IProofChainPipeline.cs (151 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/BinaryFingerprintEvidencePredicate.cs (216 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/BinaryMicroWitnessPredicate.cs (263 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/BudgetCheckPredicate.cs (179 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/ChangeTracePredicate.cs (239 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/DeltaVerdictPredicate.cs (192 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/PolicyDecisionPredicate.cs (118 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/ReachabilityDriftPredicate.cs (222 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/SbomDeltaPredicate.cs (240 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/UnknownsBudgetPredicate.cs (109 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/VerdictDeltaPredicate.cs (288 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/VexAttestationPredicate.cs (218 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/VexDeltaPredicate.cs (204 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/AI/AIArtifactBasePredicate.cs (163 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/AI/AIAuthorityClassifier.cs (367 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/AI/AIExplanationPredicate.cs (135 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/AI/AIPolicyDraftPredicate.cs (259 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/AI/AIRemediationPlanPredicate.cs (274 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/AI/AIVexDraftPredicate.cs (156 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Receipts/IReceiptGenerator.cs (141 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Rekor/EnhancedRekorProof.cs (289 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Replay/AIArtifactReplayManifest.cs (151 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Replay/IAIArtifactReplayer.cs (170 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Services/UnknownsAggregator.cs (137 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Signing/IProofChainSigner.cs (123 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Signing/ProofChainSigner.cs (197 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Statements/ReachabilityDriftStatement.cs (258 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Statements/ReachabilityWitnessStatement.cs (317 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Statements/SbomLinkageStatement.cs (137 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Statements/UncertaintyBudgetStatement.cs (258 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Statements/UncertaintyStatement.cs (163 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Statements/VerdictReceiptStatement.cs (201 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Verification/AIArtifactVerificationStep.cs (443 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Verification/IVerificationPipeline.cs (199 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Verification/VerificationPipeline.cs (717 lines)
- Namespace issues:
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/ProofHashing.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Assembly/IProofSpineAssembler.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Audit/AuditHashLogger.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Builders/IStatementBuilder.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Builders/StatementBuilder.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/ChangeTrace/ChangeTraceAttestationService.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/ChangeTrace/IChangeTraceAttestationService.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Generators/BackportProofGenerator.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Generators/BinaryFingerprintEvidenceGenerator.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Generators/VexProofIntegrator.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Graph/InMemoryProofGraphService.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Graph/IProofGraphService.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Identifiers/ContentAddressedId.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Identifiers/ContentAddressedIdGenerator.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Identifiers/GraphRevisionId.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Identifiers/IContentAddressedIdGenerator.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Identifiers/SbomEntryId.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Identifiers/TrustAnchorId.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Internal/Hex.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Json/IJsonCanonicalizer.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Json/IJsonSchemaValidator.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Json/Rfc8785JsonCanonicalizer.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Linking/ComponentRefExtractor.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/MediaTypes/AIArtifactMediaTypes.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Merkle/DeterministicMerkleTreeBuilder.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Merkle/IMerkleTreeBuilder.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Models/ProofBlob.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Models/UnknownsSummary.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/obj/Debug/net10.0/StellaOps.Attestor.ProofChain.AssemblyInfo.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/obj/Debug/net10.0/StellaOps.Attestor.ProofChain.GlobalUsings.g.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/obj/Release/net10.0/StellaOps.Attestor.ProofChain.AssemblyInfo.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/obj/Release/net10.0/StellaOps.Attestor.ProofChain.GlobalUsings.g.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Pipeline/IProofChainPipeline.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/BinaryFingerprintEvidencePredicate.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/BinaryMicroWitnessPredicate.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/BudgetCheckPredicate.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/ChangeTracePredicate.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/DeltaVerdictPredicate.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/EvidencePredicate.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/PolicyDecisionPredicate.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/ProofSpinePredicate.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/ReachabilityDriftPredicate.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/ReachabilitySubgraphPredicate.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/ReasoningPredicate.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/SbomDeltaPredicate.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/UnknownsBudgetPredicate.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/VerdictDeltaPredicate.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/VexAttestationPredicate.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/VexDeltaPredicate.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/VexPredicate.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/AI/AIArtifactBasePredicate.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/AI/AIAuthorityClassifier.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/AI/AIExplanationPredicate.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/AI/AIPolicyDraftPredicate.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/AI/AIRemediationPlanPredicate.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/AI/AIVexDraftPredicate.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Receipts/IReceiptGenerator.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Rekor/EnhancedRekorProof.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Replay/AIArtifactReplayManifest.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Replay/IAIArtifactReplayer.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Sbom/CycloneDxSubjectExtractor.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Sbom/ISbomSubjectExtractor.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Services/UnknownsAggregator.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Signing/DssePreAuthenticationEncoding.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Signing/IProofChainKeyStore.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Signing/IProofChainSigner.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Signing/ProofChainSigner.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Statements/BinaryMicroWitnessStatement.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Statements/ChangeTraceStatement.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Statements/DeltaVerdictStatement.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Statements/EvidenceStatement.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Statements/InTotoStatement.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Statements/ProofSpineStatement.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Statements/ReachabilityDriftStatement.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Statements/ReachabilitySubgraphStatement.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Statements/ReachabilityWitnessStatement.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Statements/ReasoningStatement.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Statements/SbomLinkageStatement.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Statements/UncertaintyBudgetStatement.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Statements/UncertaintyStatement.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Statements/VerdictReceiptStatement.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Statements/VexVerdictStatement.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Statements/AI/AIExplanationStatement.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Statements/AI/AIPolicyDraftStatement.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Statements/AI/AIRemediationPlanStatement.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Statements/AI/AIVexDraftStatement.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Verification/AIArtifactVerificationStep.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Verification/IVerificationPipeline.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Verification/VerificationPipeline.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: 91
- Files with issues: 91
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/ProofHashing.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Assembly/IProofSpineAssembler.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Audit/AuditHashLogger.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Builders/IStatementBuilder.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Builders/StatementBuilder.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/ChangeTrace/ChangeTraceAttestationService.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/ChangeTrace/IChangeTraceAttestationService.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Generators/BackportProofGenerator.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Generators/BinaryFingerprintEvidenceGenerator.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Generators/VexProofIntegrator.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Graph/InMemoryProofGraphService.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Graph/IProofGraphService.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Identifiers/ContentAddressedId.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Identifiers/ContentAddressedIdGenerator.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Identifiers/GraphRevisionId.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Identifiers/IContentAddressedIdGenerator.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Identifiers/SbomEntryId.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Identifiers/TrustAnchorId.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Internal/Hex.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Json/IJsonCanonicalizer.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Json/IJsonSchemaValidator.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Json/Rfc8785JsonCanonicalizer.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Linking/ComponentRefExtractor.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/MediaTypes/AIArtifactMediaTypes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Merkle/DeterministicMerkleTreeBuilder.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Merkle/IMerkleTreeBuilder.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Models/ProofBlob.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Models/UnknownsSummary.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/obj/Debug/net10.0/StellaOps.Attestor.ProofChain.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/obj/Debug/net10.0/StellaOps.Attestor.ProofChain.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/obj/Release/net10.0/StellaOps.Attestor.ProofChain.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/obj/Release/net10.0/StellaOps.Attestor.ProofChain.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Pipeline/IProofChainPipeline.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/BinaryFingerprintEvidencePredicate.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/BinaryMicroWitnessPredicate.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/BudgetCheckPredicate.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/ChangeTracePredicate.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/DeltaVerdictPredicate.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/EvidencePredicate.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/PolicyDecisionPredicate.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/ProofSpinePredicate.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/ReachabilityDriftPredicate.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/ReachabilitySubgraphPredicate.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/ReasoningPredicate.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/SbomDeltaPredicate.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/UnknownsBudgetPredicate.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/VerdictDeltaPredicate.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/VexAttestationPredicate.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/VexDeltaPredicate.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/VexPredicate.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/AI/AIArtifactBasePredicate.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/AI/AIAuthorityClassifier.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/AI/AIExplanationPredicate.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/AI/AIPolicyDraftPredicate.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/AI/AIRemediationPlanPredicate.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/AI/AIVexDraftPredicate.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Receipts/IReceiptGenerator.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Rekor/EnhancedRekorProof.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Replay/AIArtifactReplayManifest.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Replay/IAIArtifactReplayer.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Sbom/CycloneDxSubjectExtractor.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Sbom/ISbomSubjectExtractor.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Services/UnknownsAggregator.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Signing/DssePreAuthenticationEncoding.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Signing/IProofChainKeyStore.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Signing/IProofChainSigner.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Signing/ProofChainSigner.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Statements/BinaryMicroWitnessStatement.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Statements/ChangeTraceStatement.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Statements/DeltaVerdictStatement.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Statements/EvidenceStatement.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Statements/InTotoStatement.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Statements/ProofSpineStatement.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Statements/ReachabilityDriftStatement.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Statements/ReachabilitySubgraphStatement.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Statements/ReachabilityWitnessStatement.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Statements/ReasoningStatement.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Statements/SbomLinkageStatement.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Statements/UncertaintyBudgetStatement.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Statements/UncertaintyStatement.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Statements/VerdictReceiptStatement.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Statements/VexVerdictStatement.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Statements/AI/AIExplanationStatement.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Statements/AI/AIPolicyDraftStatement.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Statements/AI/AIRemediationPlanStatement.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Statements/AI/AIVexDraftStatement.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Verification/AIArtifactVerificationStep.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Verification/IVerificationPipeline.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Verification/VerificationPipeline.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/__Tests/__Benchmarks/proof-chain/StellaOps.Bench.ProofChain.csproj [Performance] (no test attributes detected); src/__Tests/Integration/StellaOps.Integration.AirGap/StellaOps.Integration.AirGap.csproj [Integration, Offline] (no test attributes detected); src/__Tests/Integration/StellaOps.Integration.Determinism/StellaOps.Integration.Determinism.csproj [Integration]; src/__Tests/Integration/StellaOps.Integration.E2E/StellaOps.Integration.E2E.csproj [E2E, Integration]; src/__Tests/Integration/StellaOps.Integration.Performance/StellaOps.Integration.Performance.csproj [Integration, Performance]; src/__Tests/Integration/StellaOps.Integration.ProofChain/StellaOps.Integration.ProofChain.csproj [Integration]; src/Attestor/__Tests/StellaOps.Attestor.ProofChain.Tests/StellaOps.Attestor.ProofChain.Tests.csproj [Unit]; src/Scanner/__Tests/StellaOps.Scanner.SmartDiff.Tests/StellaOps.Scanner.SmartDiff.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,184 @@
# Audit - StellaOps.Attestor.ProofChain
## Project
- Path: src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/StellaOps.Attestor.ProofChain.csproj
- Module: Attestor
- Kind: Library
- Audit date (UTC): 2026-01-31
- Files scanned: 85
- Files with issues: 54
- 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: 53
- Namespace violations: 0
- Using directive violations: 6
- Naming violations (interfaces/fields/const/async): 7
- Service locator usage (BuildServiceProvider/GetService): 0
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Assembly/IProofSpineAssembler.cs (200 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Audit/AuditHashLogger.cs (285 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Builders/IStatementBuilder.cs (119 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Builders/StatementBuilder.cs (138 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/ChangeTrace/ChangeTraceAttestationService.cs (210 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Generators/BackportProofGenerator.cs (557 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Generators/BinaryFingerprintEvidenceGenerator.cs (216 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Generators/VexProofIntegrator.cs (299 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Graph/InMemoryProofGraphService.cs (292 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Graph/IProofGraphService.cs (277 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Identifiers/ContentAddressedId.cs (170 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Identifiers/ContentAddressedIdGenerator.cs (171 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Json/IJsonSchemaValidator.cs (362 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Json/Rfc8785JsonCanonicalizer.cs (317 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Linking/ComponentRefExtractor.cs (266 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Merkle/DeterministicMerkleTreeBuilder.cs (215 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Merkle/IMerkleTreeBuilder.cs (106 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Models/ProofBlob.cs (101 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Pipeline/IProofChainPipeline.cs (152 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/BinaryFingerprintEvidencePredicate.cs (216 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/BinaryMicroWitnessPredicate.cs (263 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/BudgetCheckPredicate.cs (179 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/ChangeTracePredicate.cs (239 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/DeltaVerdictPredicate.cs (192 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/PolicyDecisionPredicate.cs (119 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/ReachabilityDriftPredicate.cs (222 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/SbomDeltaPredicate.cs (240 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/UnknownsBudgetPredicate.cs (109 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/VerdictDeltaPredicate.cs (288 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/VexAttestationPredicate.cs (218 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/VexDeltaPredicate.cs (204 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/AI/AIArtifactBasePredicate.cs (163 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/AI/AIAuthorityClassifier.cs (367 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/AI/AIExplanationPredicate.cs (135 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/AI/AIPolicyDraftPredicate.cs (259 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/AI/AIRemediationPlanPredicate.cs (274 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/AI/AIVexDraftPredicate.cs (156 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Receipts/IReceiptGenerator.cs (142 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Rekor/EnhancedRekorProof.cs (289 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Replay/AIArtifactReplayManifest.cs (152 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Replay/IAIArtifactReplayer.cs (170 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Services/UnknownsAggregator.cs (138 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Signing/IProofChainSigner.cs (124 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Signing/ProofChainSigner.cs (198 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Statements/ReachabilityDriftStatement.cs (258 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Statements/ReachabilityWitnessStatement.cs (317 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Statements/SbomLinkageStatement.cs (137 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Statements/UncertaintyBudgetStatement.cs (258 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Statements/UncertaintyStatement.cs (163 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Statements/VerdictReceiptStatement.cs (202 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Verification/AIArtifactVerificationStep.cs (444 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Verification/IVerificationPipeline.cs (200 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Verification/VerificationPipeline.cs (718 lines)
- Namespace issues:
- none
- Using directive issues:
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Generators/BackportProofGenerator.cs: using directives inside namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Generators/BinaryFingerprintEvidenceGenerator.cs: using directives inside namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Json/IJsonSchemaValidator.cs: using directives inside namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Json/Rfc8785JsonCanonicalizer.cs: using directives inside namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Sbom/CycloneDxSubjectExtractor.cs: using directives inside namespace
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Services/UnknownsAggregator.cs: using directives inside namespace
- Naming issues:
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Identifiers/ContentAddressedIdGenerator.cs: private field naming
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Json/Rfc8785JsonCanonicalizer.cs: private field naming
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Signing/ProofChainSigner.cs: private field naming
- Async issues:
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Services/UnknownsAggregator.cs: blocking async usage
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Verification/AIArtifactVerificationStep.cs: missing ConfigureAwait(false)
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Verification/VerificationPipeline.cs: blocking async usage
- src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Verification/VerificationPipeline.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: 85
- Files with issues: 54
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Assembly/IProofSpineAssembler.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Audit/AuditHashLogger.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Builders/IStatementBuilder.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Builders/StatementBuilder.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/ChangeTrace/ChangeTraceAttestationService.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Generators/BackportProofGenerator.cs | FileLength>100; UsingInsideNamespace | Move using directives outside namespace.; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Generators/BinaryFingerprintEvidenceGenerator.cs | FileLength>100; UsingInsideNamespace | Move using directives outside namespace.; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Generators/VexProofIntegrator.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Graph/InMemoryProofGraphService.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Graph/IProofGraphService.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Identifiers/ContentAddressedId.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Identifiers/ContentAddressedIdGenerator.cs | FileLength>100; PrivateFieldNaming | Rename private fields to _camelCase.; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Json/IJsonSchemaValidator.cs | FileLength>100; UsingInsideNamespace | Move using directives outside namespace.; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Json/Rfc8785JsonCanonicalizer.cs | FileLength>100; PrivateFieldNaming; UsingInsideNamespace | Move using directives outside namespace.; Rename private fields to _camelCase.; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Linking/ComponentRefExtractor.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Merkle/DeterministicMerkleTreeBuilder.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Merkle/IMerkleTreeBuilder.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Models/ProofBlob.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Pipeline/IProofChainPipeline.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/BinaryFingerprintEvidencePredicate.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/BinaryMicroWitnessPredicate.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/BudgetCheckPredicate.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/ChangeTracePredicate.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/DeltaVerdictPredicate.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/PolicyDecisionPredicate.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/ReachabilityDriftPredicate.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/SbomDeltaPredicate.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/UnknownsBudgetPredicate.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/VerdictDeltaPredicate.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/VexAttestationPredicate.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/VexDeltaPredicate.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/AI/AIArtifactBasePredicate.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/AI/AIAuthorityClassifier.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/AI/AIExplanationPredicate.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/AI/AIPolicyDraftPredicate.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/AI/AIRemediationPlanPredicate.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/AI/AIVexDraftPredicate.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Receipts/IReceiptGenerator.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Rekor/EnhancedRekorProof.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Replay/AIArtifactReplayManifest.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Replay/IAIArtifactReplayer.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Sbom/CycloneDxSubjectExtractor.cs | UsingInsideNamespace | Move using directives outside namespace. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Services/UnknownsAggregator.cs | BlockingAsync; FileLength>100; UsingInsideNamespace | Move using directives outside namespace.; Replace .Result/.Wait/GetAwaiter().GetResult() with await.; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Signing/IProofChainSigner.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Signing/ProofChainSigner.cs | FileLength>100; PrivateFieldNaming | Rename private fields to _camelCase.; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Statements/ReachabilityDriftStatement.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Statements/ReachabilityWitnessStatement.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Statements/SbomLinkageStatement.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Statements/UncertaintyBudgetStatement.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Statements/UncertaintyStatement.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Statements/VerdictReceiptStatement.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Verification/AIArtifactVerificationStep.cs | ConfigureAwaitMissing; FileLength>100 | Add ConfigureAwait(false) to awaited calls in library-like code.; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Verification/IVerificationPipeline.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Verification/VerificationPipeline.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. |
## Testing Fullness Findings
- Status: PASS
- Expected layers (heuristic): Unit
- Detected test projects: src/__Tests/__Benchmarks/proof-chain/StellaOps.Bench.ProofChain.csproj [Performance] (no test attributes detected); src/__Tests/Integration/StellaOps.Integration.AirGap/StellaOps.Integration.AirGap.csproj [Integration, Offline] (no test attributes detected); src/__Tests/Integration/StellaOps.Integration.Determinism/StellaOps.Integration.Determinism.csproj [Integration]; src/__Tests/Integration/StellaOps.Integration.E2E/StellaOps.Integration.E2E.csproj [E2E, Integration]; src/__Tests/Integration/StellaOps.Integration.Performance/StellaOps.Integration.Performance.csproj [Integration, Performance]; src/__Tests/Integration/StellaOps.Integration.ProofChain/StellaOps.Integration.ProofChain.csproj [Integration]; src/Attestor/__Tests/StellaOps.Attestor.ProofChain.Tests/StellaOps.Attestor.ProofChain.Tests.csproj [Unit]; src/Scanner/__Tests/StellaOps.Scanner.SmartDiff.Tests/StellaOps.Scanner.SmartDiff.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,91 @@
# Audit - StellaOps.Attestor.Spdx3
## Project
- Path: src/Attestor/__Libraries/StellaOps.Attestor.Spdx3/StellaOps.Attestor.Spdx3.csproj
- Module: Attestor
- Kind: Library
- Audit date (UTC): 2026-01-30
- Files scanned: 11
- Files with issues: 11
- 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: 11
- 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/Attestor/__Libraries/StellaOps.Attestor.Spdx3/BuildAttestationMapper.cs (148 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Spdx3/BuildRelationshipBuilder.cs (161 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Spdx3/CombinedDocumentBuilder.cs (283 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Spdx3/DsseSpdx3Signer.cs (477 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Spdx3/IBuildAttestationMapper.cs (173 lines)
- Namespace issues:
- src/Attestor/__Libraries/StellaOps.Attestor.Spdx3/BuildAttestationMapper.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Spdx3/BuildRelationshipBuilder.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Spdx3/CombinedDocumentBuilder.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Spdx3/DsseSpdx3Signer.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Spdx3/IBuildAttestationMapper.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Spdx3/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Spdx3/obj/Debug/net10.0/StellaOps.Attestor.Spdx3.AssemblyInfo.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Spdx3/obj/Debug/net10.0/StellaOps.Attestor.Spdx3.GlobalUsings.g.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Spdx3/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Spdx3/obj/Release/net10.0/StellaOps.Attestor.Spdx3.AssemblyInfo.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Spdx3/obj/Release/net10.0/StellaOps.Attestor.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: 11
- Files with issues: 11
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Attestor/__Libraries/StellaOps.Attestor.Spdx3/BuildAttestationMapper.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.Spdx3/BuildRelationshipBuilder.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.Spdx3/CombinedDocumentBuilder.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.Spdx3/DsseSpdx3Signer.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.Spdx3/IBuildAttestationMapper.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.Spdx3/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.Spdx3/obj/Debug/net10.0/StellaOps.Attestor.Spdx3.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.Spdx3/obj/Debug/net10.0/StellaOps.Attestor.Spdx3.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.Spdx3/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.Spdx3/obj/Release/net10.0/StellaOps.Attestor.Spdx3.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.Spdx3/obj/Release/net10.0/StellaOps.Attestor.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/Attestor/__Libraries/__Tests/StellaOps.Attestor.Spdx3.Tests/StellaOps.Attestor.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,76 @@
# Audit - StellaOps.Attestor.Spdx3
## Project
- Path: src/Attestor/__Libraries/StellaOps.Attestor.Spdx3/StellaOps.Attestor.Spdx3.csproj
- Module: Attestor
- Kind: Library
- 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): 0
- Service locator usage (BuildServiceProvider/GetService): 0
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Attestor/__Libraries/StellaOps.Attestor.Spdx3/BuildAttestationMapper.cs (149 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Spdx3/BuildRelationshipBuilder.cs (162 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Spdx3/CombinedDocumentBuilder.cs (284 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Spdx3/DsseSpdx3Signer.cs (478 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Spdx3/IBuildAttestationMapper.cs (173 lines)
- Namespace issues:
- none
- Using directive issues:
- src/Attestor/__Libraries/StellaOps.Attestor.Spdx3/BuildAttestationMapper.cs: using directives inside namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Spdx3/BuildRelationshipBuilder.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: 5
- Files with issues: 5
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Attestor/__Libraries/StellaOps.Attestor.Spdx3/BuildAttestationMapper.cs | FileLength>100; UsingInsideNamespace | Move using directives outside namespace.; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.Spdx3/BuildRelationshipBuilder.cs | FileLength>100; UsingInsideNamespace | Move using directives outside namespace.; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.Spdx3/CombinedDocumentBuilder.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.Spdx3/DsseSpdx3Signer.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.Spdx3/IBuildAttestationMapper.cs | FileLength>100 | Split file to stay <= 100 lines. |
## Testing Fullness Findings
- Status: PASS
- Expected layers (heuristic): Unit
- Detected test projects: src/Attestor/__Libraries/__Tests/StellaOps.Attestor.Spdx3.Tests/StellaOps.Attestor.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,163 @@
# Audit - StellaOps.Attestor.StandardPredicates
## Project
- Path: src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/StellaOps.Attestor.StandardPredicates.csproj
- Module: Attestor
- Kind: Library
- Audit date (UTC): 2026-01-30
- Files scanned: 40
- Files with issues: 40
- 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: 19
- Namespace violations: 40
- 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/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/BinaryDiff/BinaryDiffDsseVerifier.cs (214 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/BinaryDiff/BinaryDiffModels.cs (156 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/BinaryDiff/BinaryDiffPredicateBuilder.cs (304 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/BinaryDiff/BinaryDiffPredicateSerializer.cs (160 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/BinaryDiff/BinaryDiffSchema.cs (248 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/Canonicalization/SbomCanonicalizer.cs (125 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/Licensing/SpdxLicenseList.cs (407 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/Models/SbomDocument.cs (3784 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/Parsers/CycloneDxPredicateParser.cs (301 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/Parsers/SlsaProvenancePredicateParser.cs (268 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/Parsers/SpdxPredicateParser.cs (256 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/Validation/SlsaSchemaValidator.cs (436 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/VexOverride/VexOverridePredicate.cs (166 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/VexOverride/VexOverridePredicateBuilder.cs (334 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/VexOverride/VexOverridePredicateParser.cs (439 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/Writers/CycloneDxTimestampExtension.cs (134 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/Writers/CycloneDxWriter.cs (3654 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/Writers/SpdxTimestampExtension.cs (208 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/Writers/SpdxWriter.cs (3522 lines)
- Namespace issues:
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/IPredicateParser.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/IPredicateTimestampMetadata.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/IStandardPredicateRegistry.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/JsonCanonicalizer.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/PredicateParseResult.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/SbomExtractionResult.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/StandardPredicateRegistry.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/BinaryDiff/BinaryDiffDsseSigner.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/BinaryDiff/BinaryDiffDsseVerifier.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/BinaryDiff/BinaryDiffModels.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/BinaryDiff/BinaryDiffOptions.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/BinaryDiff/BinaryDiffPredicateBuilder.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/BinaryDiff/BinaryDiffPredicateSerializer.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/BinaryDiff/BinaryDiffSchema.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/BinaryDiff/ServiceCollectionExtensions.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/Canonicalization/ISbomCanonicalizer.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/Canonicalization/SbomCanonicalizer.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/Licensing/SpdxLicenseExpressions.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/Licensing/SpdxLicenseList.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/Models/SbomDocument.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/obj/Debug/net10.0/StellaOps.Attestor.StandardPredicates.AssemblyInfo.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/obj/Debug/net10.0/StellaOps.Attestor.StandardPredicates.GlobalUsings.g.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/obj/Release/net10.0/StellaOps.Attestor.StandardPredicates.AssemblyInfo.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/obj/Release/net10.0/StellaOps.Attestor.StandardPredicates.GlobalUsings.g.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/Parsers/CycloneDxPredicateParser.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/Parsers/SlsaProvenancePredicateParser.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/Parsers/SpdxPredicateParser.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/Validation/SlsaSchemaValidator.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/Validation/SlsaValidationOptions.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/VexOverride/VexOverridePredicate.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/VexOverride/VexOverridePredicateBuilder.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/VexOverride/VexOverridePredicateParser.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/Writers/CycloneDxTimestampExtension.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/Writers/CycloneDxWriter.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/Writers/ISbomWriter.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/Writers/SpdxTimestampExtension.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/Writers/SpdxWriter.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/Writers/SpdxWriterOptions.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: 40
- Files with issues: 40
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/IPredicateParser.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/IPredicateTimestampMetadata.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/IStandardPredicateRegistry.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/JsonCanonicalizer.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/PredicateParseResult.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/SbomExtractionResult.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/StandardPredicateRegistry.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/BinaryDiff/BinaryDiffDsseSigner.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/BinaryDiff/BinaryDiffDsseVerifier.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/BinaryDiff/BinaryDiffModels.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/BinaryDiff/BinaryDiffOptions.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/BinaryDiff/BinaryDiffPredicateBuilder.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/BinaryDiff/BinaryDiffPredicateSerializer.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/BinaryDiff/BinaryDiffSchema.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/BinaryDiff/ServiceCollectionExtensions.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/Canonicalization/ISbomCanonicalizer.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/Canonicalization/SbomCanonicalizer.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/Licensing/SpdxLicenseExpressions.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/Licensing/SpdxLicenseList.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/Models/SbomDocument.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/obj/Debug/net10.0/StellaOps.Attestor.StandardPredicates.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/obj/Debug/net10.0/StellaOps.Attestor.StandardPredicates.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/obj/Release/net10.0/StellaOps.Attestor.StandardPredicates.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/obj/Release/net10.0/StellaOps.Attestor.StandardPredicates.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/Parsers/CycloneDxPredicateParser.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/Parsers/SlsaProvenancePredicateParser.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/Parsers/SpdxPredicateParser.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/Validation/SlsaSchemaValidator.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/Validation/SlsaValidationOptions.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/VexOverride/VexOverridePredicate.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/VexOverride/VexOverridePredicateBuilder.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/VexOverride/VexOverridePredicateParser.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/Writers/CycloneDxTimestampExtension.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/Writers/CycloneDxWriter.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/Writers/ISbomWriter.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/Writers/SpdxTimestampExtension.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/Writers/SpdxWriter.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/Writers/SpdxWriterOptions.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
## Testing Fullness Findings
- Status: PASS
- Expected layers (heuristic): Unit
- Detected test projects: src/Attestor/__Tests/StellaOps.Attestor.EvidencePack.IntegrationTests/StellaOps.Attestor.EvidencePack.IntegrationTests.csproj [Integration]; src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/StellaOps.Attestor.StandardPredicates.Tests.csproj [Unit]; src/ReleaseOrchestrator/__Tests/StellaOps.ReleaseOrchestrator.Integration.Tests/StellaOps.ReleaseOrchestrator.Integration.Tests.csproj [Integration]
- 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,112 @@
# Audit - StellaOps.Attestor.StandardPredicates
## Project
- Path: src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/StellaOps.Attestor.StandardPredicates.csproj
- Module: Attestor
- Kind: Library
- Audit date (UTC): 2026-01-31
- Files scanned: 34
- Files with issues: 20
- 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: 19
- Namespace violations: 0
- Using directive violations: 4
- Naming violations (interfaces/fields/const/async): 5
- Service locator usage (BuildServiceProvider/GetService): 0
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/BinaryDiff/BinaryDiffDsseVerifier.cs (215 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/BinaryDiff/BinaryDiffModels.cs (156 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/BinaryDiff/BinaryDiffPredicateBuilder.cs (305 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/BinaryDiff/BinaryDiffPredicateSerializer.cs (160 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/BinaryDiff/BinaryDiffSchema.cs (249 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/Canonicalization/SbomCanonicalizer.cs (126 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/Licensing/SpdxLicenseList.cs (408 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/Models/SbomDocument.cs (3784 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/Parsers/CycloneDxPredicateParser.cs (302 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/Parsers/SlsaProvenancePredicateParser.cs (269 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/Parsers/SpdxPredicateParser.cs (257 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/Validation/SlsaSchemaValidator.cs (437 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/VexOverride/VexOverridePredicate.cs (166 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/VexOverride/VexOverridePredicateBuilder.cs (335 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/VexOverride/VexOverridePredicateParser.cs (440 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/Writers/CycloneDxTimestampExtension.cs (134 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/Writers/CycloneDxWriter.cs (3655 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/Writers/SpdxTimestampExtension.cs (208 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/Writers/SpdxWriter.cs (3523 lines)
- Namespace issues:
- none
- Using directive issues:
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/BinaryDiff/BinaryDiffDsseVerifier.cs: using directives inside namespace
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/Canonicalization/SbomCanonicalizer.cs: using directives inside namespace
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/Licensing/SpdxLicenseList.cs: using directives inside namespace
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/VexOverride/VexOverridePredicateBuilder.cs: using directives inside namespace
- Naming issues:
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/JsonCanonicalizer.cs: private field naming
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/BinaryDiff/BinaryDiffPredicateSerializer.cs: private field naming
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/BinaryDiff/BinaryDiffSchema.cs: private field naming
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/Licensing/SpdxLicenseList.cs: private field naming
- src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/Writers/CycloneDxWriter.cs: private field naming
- Async issues:
- none
- Service locator matches:
- none
- Assembly.LoadFrom matches:
- none
### Fix Guidance
- Align interface/field/const naming to standards.
- Move and sort using directives (outside namespace).
- Split files over 100 lines into smaller types or partials.
## File-Level Findings
- Status: FAIL
- Files scanned: 34
- Files with issues: 20
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/JsonCanonicalizer.cs | PrivateFieldNaming | Rename private fields to _camelCase. |
| src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/BinaryDiff/BinaryDiffDsseVerifier.cs | FileLength>100; UsingInsideNamespace | Move using directives outside namespace.; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/BinaryDiff/BinaryDiffModels.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/BinaryDiff/BinaryDiffPredicateBuilder.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/BinaryDiff/BinaryDiffPredicateSerializer.cs | FileLength>100; PrivateFieldNaming | Rename private fields to _camelCase.; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/BinaryDiff/BinaryDiffSchema.cs | FileLength>100; PrivateFieldNaming | Rename private fields to _camelCase.; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/Canonicalization/SbomCanonicalizer.cs | FileLength>100; UsingInsideNamespace | Move using directives outside namespace.; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/Licensing/SpdxLicenseList.cs | FileLength>100; PrivateFieldNaming; UsingInsideNamespace | Move using directives outside namespace.; Rename private fields to _camelCase.; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/Models/SbomDocument.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/Parsers/CycloneDxPredicateParser.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/Parsers/SlsaProvenancePredicateParser.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/Parsers/SpdxPredicateParser.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/Validation/SlsaSchemaValidator.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/VexOverride/VexOverridePredicate.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/VexOverride/VexOverridePredicateBuilder.cs | FileLength>100; UsingInsideNamespace | Move using directives outside namespace.; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/VexOverride/VexOverridePredicateParser.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/Writers/CycloneDxTimestampExtension.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/Writers/CycloneDxWriter.cs | FileLength>100; PrivateFieldNaming | Rename private fields to _camelCase.; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/Writers/SpdxTimestampExtension.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/Writers/SpdxWriter.cs | FileLength>100 | Split file to stay <= 100 lines. |
## Testing Fullness Findings
- Status: PASS
- Expected layers (heuristic): Unit
- Detected test projects: src/Attestor/__Tests/StellaOps.Attestor.EvidencePack.IntegrationTests/StellaOps.Attestor.EvidencePack.IntegrationTests.csproj [Integration]; src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/StellaOps.Attestor.StandardPredicates.Tests.csproj [Unit]; src/ReleaseOrchestrator/__Tests/StellaOps.ReleaseOrchestrator.Integration.Tests/StellaOps.ReleaseOrchestrator.Integration.Tests.csproj [Integration]
- 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,95 @@
# Audit - StellaOps.Attestor.Timestamping
## Project
- Path: src/Attestor/__Libraries/StellaOps.Attestor.Timestamping/StellaOps.Attestor.Timestamping.csproj
- Module: Attestor
- 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: inherited false
- 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/Attestor/__Libraries/StellaOps.Attestor.Timestamping/AttestationTimestampPolicyContext.cs (236 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Timestamping/AttestationTimestampService.cs (309 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Timestamping/IAttestationTimestampService.cs (268 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Timestamping/ITimeCorrelationValidator.cs (195 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Timestamping/TimeCorrelationValidator.cs (201 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Timestamping/TimestampedAttestation.cs (127 lines)
- Namespace issues:
- src/Attestor/__Libraries/StellaOps.Attestor.Timestamping/AttestationTimestampPolicyContext.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Timestamping/AttestationTimestampService.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Timestamping/IAttestationTimestampService.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Timestamping/ITimeCorrelationValidator.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Timestamping/TimeCorrelationValidator.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Timestamping/TimestampedAttestation.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Timestamping/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Timestamping/obj/Debug/net10.0/StellaOps.Attestor.Timestamping.AssemblyInfo.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Timestamping/obj/Debug/net10.0/StellaOps.Attestor.Timestamping.GlobalUsings.g.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Timestamping/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Timestamping/obj/Release/net10.0/StellaOps.Attestor.Timestamping.AssemblyInfo.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Timestamping/obj/Release/net10.0/StellaOps.Attestor.Timestamping.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>.
- Remove overrides that disable TreatWarningsAsErrors.
- 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/Attestor/__Libraries/StellaOps.Attestor.Timestamping/AttestationTimestampPolicyContext.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.Timestamping/AttestationTimestampService.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.Timestamping/IAttestationTimestampService.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.Timestamping/ITimeCorrelationValidator.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.Timestamping/TimeCorrelationValidator.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.Timestamping/TimestampedAttestation.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.Timestamping/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.Timestamping/obj/Debug/net10.0/StellaOps.Attestor.Timestamping.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.Timestamping/obj/Debug/net10.0/StellaOps.Attestor.Timestamping.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.Timestamping/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.Timestamping/obj/Release/net10.0/StellaOps.Attestor.Timestamping.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.Timestamping/obj/Release/net10.0/StellaOps.Attestor.Timestamping.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
## Testing Fullness Findings
- Status: PASS
- Expected layers (heuristic): Unit
- Detected test projects: src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/StellaOps.Attestor.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.Attestor.Timestamping
## Project
- Path: src/Attestor/__Libraries/StellaOps.Attestor.Timestamping/StellaOps.Attestor.Timestamping.csproj
- Module: Attestor
- 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: inherited false
- Deterministic: inherited true
- 100-line rule violations: 6
- 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/Attestor/__Libraries/StellaOps.Attestor.Timestamping/AttestationTimestampPolicyContext.cs (236 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Timestamping/AttestationTimestampService.cs (310 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Timestamping/IAttestationTimestampService.cs (268 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Timestamping/ITimeCorrelationValidator.cs (195 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Timestamping/TimeCorrelationValidator.cs (202 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Timestamping/TimestampedAttestation.cs (127 lines)
- Namespace issues:
- none
- Using directive issues:
- none
- Naming issues:
- none
- Async issues:
- src/Attestor/__Libraries/StellaOps.Attestor.Timestamping/AttestationTimestampService.cs: missing ConfigureAwait(false)
- src/Attestor/__Libraries/StellaOps.Attestor.Timestamping/TimeCorrelationValidator.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: 6
- Files with issues: 6
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Attestor/__Libraries/StellaOps.Attestor.Timestamping/AttestationTimestampPolicyContext.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.Timestamping/AttestationTimestampService.cs | ConfigureAwaitMissing; FileLength>100 | Add ConfigureAwait(false) to awaited calls in library-like code.; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.Timestamping/IAttestationTimestampService.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.Timestamping/ITimeCorrelationValidator.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.Timestamping/TimeCorrelationValidator.cs | ConfigureAwaitMissing; FileLength>100 | Add ConfigureAwait(false) to awaited calls in library-like code.; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.Timestamping/TimestampedAttestation.cs | FileLength>100 | Split file to stay <= 100 lines. |
## Testing Fullness Findings
- Status: PASS
- Expected layers (heuristic): Unit
- Detected test projects: src/Attestor/StellaOps.Attestor/StellaOps.Attestor.Tests/StellaOps.Attestor.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,100 @@
# Audit - StellaOps.Attestor.TrustRepo
## Project
- Path: src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/StellaOps.Attestor.TrustRepo.csproj
- Module: Attestor
- Kind: Library
- Audit date (UTC): 2026-01-30
- Files scanned: 13
- Files with issues: 13
- 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: 10
- Namespace violations: 13
- 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/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/ITufClient.cs (189 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/SigstoreServiceMapLoader.cs (330 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/TrustRepoOptions.cs (158 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/TrustRepoServiceCollectionExtensions.cs (175 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/TufClient.cs (601 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/TufKeyLoader.cs (320 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/TufMetadataStore.cs (368 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/TufMetadataVerifier.cs (342 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/Models/SigstoreServiceMap.cs (186 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/Models/TufModels.cs (232 lines)
- Namespace issues:
- src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/ITufClient.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/SigstoreServiceMapLoader.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/TrustRepoOptions.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/TrustRepoServiceCollectionExtensions.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/TufClient.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/TufKeyLoader.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/TufMetadataStore.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/TufMetadataVerifier.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/Models/SigstoreServiceMap.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/Models/TufModels.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/obj/Debug/net10.0/StellaOps.Attestor.TrustRepo.AssemblyInfo.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/obj/Debug/net10.0/StellaOps.Attestor.TrustRepo.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: 13
- Files with issues: 13
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/ITufClient.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/SigstoreServiceMapLoader.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/TrustRepoOptions.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/TrustRepoServiceCollectionExtensions.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/TufClient.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/TufKeyLoader.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/TufMetadataStore.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/TufMetadataVerifier.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/Models/SigstoreServiceMap.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/Models/TufModels.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/obj/Debug/net10.0/StellaOps.Attestor.TrustRepo.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/obj/Debug/net10.0/StellaOps.Attestor.TrustRepo.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
## Testing Fullness Findings
- Status: PASS
- Expected layers (heuristic): Unit
- Detected test projects: src/Attestor/__Libraries/__Tests/StellaOps.Attestor.TrustRepo.Tests/StellaOps.Attestor.TrustRepo.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,119 @@
# Audit - StellaOps.Attestor.TrustRepo
## Project
- Path: src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/StellaOps.Attestor.TrustRepo.csproj
- Module: Attestor
- Kind: Library
- Audit date (UTC): 2026-01-31
- Files scanned: 10
- Files with issues: 10
- 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: 10
- Namespace violations: 0
- Using directive violations: 2
- Naming violations (interfaces/fields/const/async): 14
- Service locator usage (BuildServiceProvider/GetService): 19
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/ITufClient.cs (189 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/SigstoreServiceMapLoader.cs (331 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/TrustRepoOptions.cs (158 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/TrustRepoServiceCollectionExtensions.cs (175 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/TufClient.cs (602 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/TufKeyLoader.cs (321 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/TufMetadataStore.cs (369 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/TufMetadataVerifier.cs (343 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/Models/SigstoreServiceMap.cs (186 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/Models/TufModels.cs (232 lines)
- Namespace issues:
- none
- Using directive issues:
- src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/TufKeyLoader.cs: using directives inside namespace
- src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/TufMetadataVerifier.cs: using directives inside namespace
- Naming issues:
- src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/SigstoreServiceMapLoader.cs: private field naming
- src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/TufClient.cs: private field naming
- src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/TufMetadataStore.cs: private field naming
- src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/TufMetadataVerifier.cs: private field naming
- Async issues:
- src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/ITufClient.cs: blocking async usage
- src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/SigstoreServiceMapLoader.cs: async method naming
- src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/SigstoreServiceMapLoader.cs: missing ConfigureAwait(false)
- src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/TufClient.cs: async method naming
- src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/TufClient.cs: blocking async usage
- src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/TufClient.cs: missing ConfigureAwait(false)
- src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/TufKeyLoader.cs: async method naming
- src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/TufKeyLoader.cs: missing ConfigureAwait(false)
- src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/TufMetadataStore.cs: async method naming
- src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/TufMetadataStore.cs: missing ConfigureAwait(false)
- Service locator matches:
- src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/TrustRepoServiceCollectionExtensions.cs:47 var options = sp.GetRequiredService<IOptions<TrustRepoOptions>>().Value;
- src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/TrustRepoServiceCollectionExtensions.cs:48 var logger = sp.GetRequiredService<ILogger<FileSystemTufMetadataStore>>();
- src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/TrustRepoServiceCollectionExtensions.cs:58 var store = sp.GetRequiredService<ITufMetadataStore>();
- src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/TrustRepoServiceCollectionExtensions.cs:59 var verifier = sp.GetRequiredService<ITufMetadataVerifier>();
- src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/TrustRepoServiceCollectionExtensions.cs:60 var options = sp.GetRequiredService<IOptions<TrustRepoOptions>>();
- src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/TrustRepoServiceCollectionExtensions.cs:61 var logger = sp.GetRequiredService<ILogger<TufClient>>();
- src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/TrustRepoServiceCollectionExtensions.cs:74 var options = sp.GetRequiredService<IOptions<TrustRepoOptions>>().Value;
- src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/TrustRepoServiceCollectionExtensions.cs:83 var tufClient = sp.GetRequiredService<ITufClient>();
- src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/TrustRepoServiceCollectionExtensions.cs:84 var logger = sp.GetRequiredService<ILogger<SigstoreServiceMapLoader>>();
- src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/TrustRepoServiceCollectionExtensions.cs:88 sp.GetRequiredService<IOptions<TrustRepoOptions>>(),
- src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/TrustRepoServiceCollectionExtensions.cs:120 var options = sp.GetRequiredService<IOptions<TrustRepoOptions>>().Value;
- src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/TrustRepoServiceCollectionExtensions.cs:121 var logger = sp.GetRequiredService<ILogger<FileSystemTufMetadataStore>>();
- src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/TrustRepoServiceCollectionExtensions.cs:131 var store = sp.GetRequiredService<ITufMetadataStore>();
- src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/TrustRepoServiceCollectionExtensions.cs:132 var verifier = sp.GetRequiredService<ITufMetadataVerifier>();
- src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/TrustRepoServiceCollectionExtensions.cs:133 var options = sp.GetRequiredService<IOptions<TrustRepoOptions>>();
- src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/TrustRepoServiceCollectionExtensions.cs:134 var logger = sp.GetRequiredService<ILogger<TufClient>>();
- src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/TrustRepoServiceCollectionExtensions.cs:144 var tufClient = sp.GetRequiredService<ITufClient>();
- src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/TrustRepoServiceCollectionExtensions.cs:145 var options = sp.GetRequiredService<IOptions<TrustRepoOptions>>();
- src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/TrustRepoServiceCollectionExtensions.cs:146 var logger = sp.GetRequiredService<ILogger<SigstoreServiceMapLoader>>();
- 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: 10
- Files with issues: 10
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/ITufClient.cs | BlockingAsync; FileLength>100 | Replace .Result/.Wait/GetAwaiter().GetResult() with await.; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/SigstoreServiceMapLoader.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/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/TrustRepoOptions.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/TrustRepoServiceCollectionExtensions.cs | FileLength>100; ServiceLocator | Remove service locator usage; use constructor injection.; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/TufClient.cs | AsyncNaming; BlockingAsync; 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.; Replace .Result/.Wait/GetAwaiter().GetResult() with await.; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/TufKeyLoader.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/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/TufMetadataStore.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/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/TufMetadataVerifier.cs | FileLength>100; PrivateFieldNaming; UsingInsideNamespace | Move using directives outside namespace.; Rename private fields to _camelCase.; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/Models/SigstoreServiceMap.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.TrustRepo/Models/TufModels.cs | FileLength>100 | Split file to stay <= 100 lines. |
## Testing Fullness Findings
- Status: PASS
- Expected layers (heuristic): Unit
- Detected test projects: src/Attestor/__Libraries/__Tests/StellaOps.Attestor.TrustRepo.Tests/StellaOps.Attestor.TrustRepo.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,94 @@
# Audit - StellaOps.Attestor.TrustVerdict.Tests
## Project
- Path: src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict.Tests/StellaOps.Attestor.TrustVerdict.Tests.csproj
- Module: Attestor
- 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: inherited false
- Deterministic: inherited true
- 100-line rule violations: 4
- 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/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict.Tests/TrustEvidenceMerkleBuilderTests.cs (391 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict.Tests/TrustVerdictCacheTests.cs (388 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict.Tests/TrustVerdictRepositoryMappingTests.cs (145 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict.Tests/TrustVerdictServiceTests.cs (617 lines)
- Namespace issues:
- src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict.Tests/JsonCanonicalizerTests.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict.Tests/TrustEvidenceMerkleBuilderTests.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict.Tests/TrustVerdictCacheTests.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict.Tests/TrustVerdictOciAttacherTests.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict.Tests/TrustVerdictRepositoryMappingTests.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict.Tests/TrustVerdictServiceTests.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict.Tests/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict.Tests/obj/Debug/net10.0/SelfRegisteredExtensions.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict.Tests/obj/Debug/net10.0/StellaOps.Attestor.TrustVerdict.Tests.AssemblyInfo.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict.Tests/obj/Debug/net10.0/StellaOps.Attestor.TrustVerdict.Tests.GlobalUsings.g.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict.Tests/obj/Debug/net10.0/XunitAutoGeneratedEntryPoint.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict.Tests/obj/Release/net10.0/StellaOps.Attestor.TrustVerdict.Tests.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>.
- Remove overrides that disable TreatWarningsAsErrors.
- 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/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict.Tests/JsonCanonicalizerTests.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict.Tests/TrustEvidenceMerkleBuilderTests.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict.Tests/TrustVerdictCacheTests.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict.Tests/TrustVerdictOciAttacherTests.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict.Tests/TrustVerdictRepositoryMappingTests.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict.Tests/TrustVerdictServiceTests.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict.Tests/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict.Tests/obj/Debug/net10.0/SelfRegisteredExtensions.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict.Tests/obj/Debug/net10.0/StellaOps.Attestor.TrustVerdict.Tests.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict.Tests/obj/Debug/net10.0/StellaOps.Attestor.TrustVerdict.Tests.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict.Tests/obj/Debug/net10.0/XunitAutoGeneratedEntryPoint.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict.Tests/obj/Release/net10.0/StellaOps.Attestor.TrustVerdict.Tests.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,83 @@
# Audit - StellaOps.Attestor.TrustVerdict.Tests
## Project
- Path: src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict.Tests/StellaOps.Attestor.TrustVerdict.Tests.csproj
- Module: Attestor
- Kind: Test
- Audit date (UTC): 2026-01-31
- Files scanned: 6
- Files with issues: 5
- 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: 3
- Naming violations (interfaces/fields/const/async): 6
- Service locator usage (BuildServiceProvider/GetService): 0
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict.Tests/TrustEvidenceMerkleBuilderTests.cs (391 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict.Tests/TrustVerdictCacheTests.cs (388 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict.Tests/TrustVerdictRepositoryMappingTests.cs (145 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict.Tests/TrustVerdictServiceTests.cs (617 lines)
- Namespace issues:
- none
- Using directive issues:
- src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict.Tests/TrustVerdictRepositoryMappingTests.cs: using directives inside namespace
- src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict.Tests/TrustVerdictRepositoryMappingTests.cs: using directives not sorted
- src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict.Tests/TrustVerdictServiceTests.cs: using directives not sorted
- Naming issues:
- none
- Async issues:
- src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict.Tests/TrustVerdictCacheTests.cs: async method naming
- src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict.Tests/TrustVerdictCacheTests.cs: missing ConfigureAwait(false)
- src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict.Tests/TrustVerdictOciAttacherTests.cs: async method naming
- src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict.Tests/TrustVerdictOciAttacherTests.cs: missing ConfigureAwait(false)
- src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict.Tests/TrustVerdictServiceTests.cs: async method naming
- src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict.Tests/TrustVerdictServiceTests.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: 6
- Files with issues: 5
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict.Tests/TrustEvidenceMerkleBuilderTests.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict.Tests/TrustVerdictCacheTests.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/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict.Tests/TrustVerdictOciAttacherTests.cs | AsyncNaming; ConfigureAwaitMissing | Add ConfigureAwait(false) to awaited calls in library-like code.; Rename async methods to end with Async. |
| src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict.Tests/TrustVerdictRepositoryMappingTests.cs | FileLength>100; UsingInsideNamespace; UsingNotSorted | Move using directives outside namespace.; Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict.Tests/TrustVerdictServiceTests.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.

View File

@@ -0,0 +1,102 @@
# Audit - StellaOps.Attestor.TrustVerdict
## Project
- Path: src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict/StellaOps.Attestor.TrustVerdict.csproj
- Module: Attestor
- Kind: Library
- Audit date (UTC): 2026-01-30
- Files scanned: 15
- 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: 8
- Namespace violations: 15
- 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/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict/TrustVerdictServiceCollectionExtensions.cs (143 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict/Caching/TrustVerdictCache.cs (544 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict/Evidence/TrustEvidenceMerkleBuilder.cs (381 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict/Oci/TrustVerdictOciAttacher.cs (405 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict/Persistence/TrustVerdictRepository.cs (628 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict/Predicates/TrustVerdictPredicate.cs (502 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict/Services/TrustVerdictService.cs (611 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict/Telemetry/TrustVerdictMetrics.cs (299 lines)
- Namespace issues:
- src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict/JsonCanonicalizer.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict/TrustVerdictServiceCollectionExtensions.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict/Caching/TrustVerdictCache.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict/Evidence/TrustEvidenceMerkleBuilder.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict/obj/Debug/net10.0/StellaOps.Attestor.TrustVerdict.AssemblyInfo.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict/obj/Debug/net10.0/StellaOps.Attestor.TrustVerdict.GlobalUsings.g.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict/obj/Release/net10.0/StellaOps.Attestor.TrustVerdict.AssemblyInfo.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict/obj/Release/net10.0/StellaOps.Attestor.TrustVerdict.GlobalUsings.g.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict/Oci/TrustVerdictOciAttacher.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict/Persistence/TrustVerdictRepository.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict/Predicates/TrustVerdictPredicate.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict/Services/TrustVerdictService.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict/Telemetry/TrustVerdictMetrics.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: 15
- Files with issues: 15
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict/JsonCanonicalizer.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict/TrustVerdictServiceCollectionExtensions.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict/Caching/TrustVerdictCache.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict/Evidence/TrustEvidenceMerkleBuilder.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict/obj/Debug/net10.0/StellaOps.Attestor.TrustVerdict.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict/obj/Debug/net10.0/StellaOps.Attestor.TrustVerdict.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict/obj/Release/net10.0/StellaOps.Attestor.TrustVerdict.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict/obj/Release/net10.0/StellaOps.Attestor.TrustVerdict.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict/Oci/TrustVerdictOciAttacher.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict/Persistence/TrustVerdictRepository.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict/Predicates/TrustVerdictPredicate.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict/Services/TrustVerdictService.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict/Telemetry/TrustVerdictMetrics.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/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict.Tests/StellaOps.Attestor.TrustVerdict.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,88 @@
# Audit - StellaOps.Attestor.TrustVerdict
## Project
- Path: src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict/StellaOps.Attestor.TrustVerdict.csproj
- Module: Attestor
- Kind: Library
- Audit date (UTC): 2026-01-31
- Files scanned: 9
- Files with issues: 9
- 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: 8
- Namespace violations: 0
- Using directive violations: 0
- Naming violations (interfaces/fields/const/async): 7
- Service locator usage (BuildServiceProvider/GetService): 0
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict/TrustVerdictServiceCollectionExtensions.cs (143 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict/Caching/TrustVerdictCache.cs (544 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict/Evidence/TrustEvidenceMerkleBuilder.cs (382 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict/Oci/TrustVerdictOciAttacher.cs (406 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict/Persistence/TrustVerdictRepository.cs (629 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict/Predicates/TrustVerdictPredicate.cs (502 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict/Services/TrustVerdictService.cs (612 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict/Telemetry/TrustVerdictMetrics.cs (300 lines)
- Namespace issues:
- none
- Using directive issues:
- none
- Naming issues:
- src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict/JsonCanonicalizer.cs: private field naming
- src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict/Persistence/TrustVerdictRepository.cs: private field naming
- Async issues:
- src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict/Caching/TrustVerdictCache.cs: async method naming
- src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict/Caching/TrustVerdictCache.cs: missing ConfigureAwait(false)
- src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict/Persistence/TrustVerdictRepository.cs: async method naming
- src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict/Persistence/TrustVerdictRepository.cs: missing ConfigureAwait(false)
- src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict/Services/TrustVerdictService.cs: missing ConfigureAwait(false)
- Service locator matches:
- none
- Assembly.LoadFrom matches:
- none
### Fix Guidance
- Align interface/field/const naming to standards.
- 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: 9
- Files with issues: 9
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict/JsonCanonicalizer.cs | PrivateFieldNaming | Rename private fields to _camelCase. |
| src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict/TrustVerdictServiceCollectionExtensions.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict/Caching/TrustVerdictCache.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/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict/Evidence/TrustEvidenceMerkleBuilder.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict/Oci/TrustVerdictOciAttacher.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict/Persistence/TrustVerdictRepository.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/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict/Predicates/TrustVerdictPredicate.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict/Services/TrustVerdictService.cs | ConfigureAwaitMissing; FileLength>100 | Add ConfigureAwait(false) to awaited calls in library-like code.; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict/Telemetry/TrustVerdictMetrics.cs | FileLength>100 | Split file to stay <= 100 lines. |
## Testing Fullness Findings
- Status: PASS
- Expected layers (heuristic): Unit
- Detected test projects: src/Attestor/__Libraries/StellaOps.Attestor.TrustVerdict.Tests/StellaOps.Attestor.TrustVerdict.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,111 @@
# Audit - StellaOps.Attestor.Watchlist
## Project
- Path: src/Attestor/__Libraries/StellaOps.Attestor.Watchlist/StellaOps.Attestor.Watchlist.csproj
- Module: Attestor
- Kind: Library
- Audit date (UTC): 2026-01-30
- Files scanned: 18
- Files with issues: 18
- 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: 11
- Namespace violations: 18
- 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/Attestor/__Libraries/StellaOps.Attestor.Watchlist/ServiceCollectionExtensions.cs (104 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Watchlist/Events/IdentityAlertEvent.cs (204 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Watchlist/Matching/IdentityMatcher.cs (218 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Watchlist/Matching/PatternCompiler.cs (340 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Watchlist/Models/IdentityMatchResult.cs (129 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Watchlist/Models/WatchedIdentity.cs (259 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Watchlist/Monitoring/IdentityMonitorBackgroundService.cs (270 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Watchlist/Monitoring/IdentityMonitorService.cs (236 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Watchlist/Storage/InMemoryWatchlistRepository.cs (209 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Watchlist/Storage/IWatchlistRepository.cs (153 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Watchlist/Storage/PostgresWatchlistRepository.cs (398 lines)
- Namespace issues:
- src/Attestor/__Libraries/StellaOps.Attestor.Watchlist/ServiceCollectionExtensions.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Watchlist/Events/IdentityAlertEvent.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Watchlist/Events/IdentityAlertEventKinds.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Watchlist/Matching/IdentityMatcher.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Watchlist/Matching/IIdentityMatcher.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Watchlist/Matching/PatternCompiler.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Watchlist/Models/IdentityAlertSeverity.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Watchlist/Models/IdentityMatchResult.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Watchlist/Models/WatchedIdentity.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Watchlist/Models/WatchlistMatchMode.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Watchlist/Models/WatchlistScope.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Watchlist/Monitoring/IdentityMonitorBackgroundService.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Watchlist/Monitoring/IdentityMonitorService.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Watchlist/Monitoring/IIdentityAlertPublisher.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Watchlist/Monitoring/WatchlistMonitorOptions.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Watchlist/Storage/InMemoryWatchlistRepository.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Watchlist/Storage/IWatchlistRepository.cs: missing namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Watchlist/Storage/PostgresWatchlistRepository.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: 18
- Files with issues: 18
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Attestor/__Libraries/StellaOps.Attestor.Watchlist/ServiceCollectionExtensions.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.Watchlist/Events/IdentityAlertEvent.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.Watchlist/Events/IdentityAlertEventKinds.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.Watchlist/Matching/IdentityMatcher.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.Watchlist/Matching/IIdentityMatcher.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.Watchlist/Matching/PatternCompiler.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.Watchlist/Models/IdentityAlertSeverity.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.Watchlist/Models/IdentityMatchResult.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.Watchlist/Models/WatchedIdentity.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.Watchlist/Models/WatchlistMatchMode.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.Watchlist/Models/WatchlistScope.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.Watchlist/Monitoring/IdentityMonitorBackgroundService.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.Watchlist/Monitoring/IdentityMonitorService.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.Watchlist/Monitoring/IIdentityAlertPublisher.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.Watchlist/Monitoring/WatchlistMonitorOptions.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Attestor/__Libraries/StellaOps.Attestor.Watchlist/Storage/InMemoryWatchlistRepository.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.Watchlist/Storage/IWatchlistRepository.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.Watchlist/Storage/PostgresWatchlistRepository.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/Attestor/__Tests/StellaOps.Attestor.Watchlist.Tests/StellaOps.Attestor.Watchlist.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,101 @@
# Audit - StellaOps.Attestor.Watchlist
## Project
- Path: src/Attestor/__Libraries/StellaOps.Attestor.Watchlist/StellaOps.Attestor.Watchlist.csproj
- Module: Attestor
- Kind: Library
- Audit date (UTC): 2026-01-31
- Files scanned: 18
- Files with issues: 11
- 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: 11
- Namespace violations: 0
- Using directive violations: 2
- Naming violations (interfaces/fields/const/async): 10
- Service locator usage (BuildServiceProvider/GetService): 3
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Attestor/__Libraries/StellaOps.Attestor.Watchlist/ServiceCollectionExtensions.cs (104 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Watchlist/Events/IdentityAlertEvent.cs (205 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Watchlist/Matching/IdentityMatcher.cs (219 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Watchlist/Matching/PatternCompiler.cs (341 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Watchlist/Models/IdentityMatchResult.cs (129 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Watchlist/Models/WatchedIdentity.cs (259 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Watchlist/Monitoring/IdentityMonitorBackgroundService.cs (271 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Watchlist/Monitoring/IdentityMonitorService.cs (237 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Watchlist/Storage/InMemoryWatchlistRepository.cs (210 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Watchlist/Storage/IWatchlistRepository.cs (153 lines)
- src/Attestor/__Libraries/StellaOps.Attestor.Watchlist/Storage/PostgresWatchlistRepository.cs (399 lines)
- Namespace issues:
- none
- Using directive issues:
- src/Attestor/__Libraries/StellaOps.Attestor.Watchlist/Matching/IdentityMatcher.cs: using directives inside namespace
- src/Attestor/__Libraries/StellaOps.Attestor.Watchlist/Monitoring/IdentityMonitorService.cs: using directives inside namespace
- Naming issues:
- src/Attestor/__Libraries/StellaOps.Attestor.Watchlist/Matching/IdentityMatcher.cs: private field naming
- src/Attestor/__Libraries/StellaOps.Attestor.Watchlist/Monitoring/IdentityMonitorService.cs: private field naming
- src/Attestor/__Libraries/StellaOps.Attestor.Watchlist/Storage/PostgresWatchlistRepository.cs: private field naming
- Async issues:
- src/Attestor/__Libraries/StellaOps.Attestor.Watchlist/Matching/IdentityMatcher.cs: missing ConfigureAwait(false)
- src/Attestor/__Libraries/StellaOps.Attestor.Watchlist/Monitoring/IdentityMonitorBackgroundService.cs: async method naming
- src/Attestor/__Libraries/StellaOps.Attestor.Watchlist/Monitoring/IdentityMonitorBackgroundService.cs: missing ConfigureAwait(false)
- src/Attestor/__Libraries/StellaOps.Attestor.Watchlist/Monitoring/IdentityMonitorService.cs: async method naming
- src/Attestor/__Libraries/StellaOps.Attestor.Watchlist/Monitoring/IdentityMonitorService.cs: missing ConfigureAwait(false)
- src/Attestor/__Libraries/StellaOps.Attestor.Watchlist/Storage/PostgresWatchlistRepository.cs: async method naming
- src/Attestor/__Libraries/StellaOps.Attestor.Watchlist/Storage/PostgresWatchlistRepository.cs: missing ConfigureAwait(false)
- Service locator matches:
- src/Attestor/__Libraries/StellaOps.Attestor.Watchlist/ServiceCollectionExtensions.cs:70 sp.GetRequiredService<Microsoft.Extensions.Caching.Memory.IMemoryCache>(),
- src/Attestor/__Libraries/StellaOps.Attestor.Watchlist/ServiceCollectionExtensions.cs:71 sp.GetRequiredService<Microsoft.Extensions.Logging.ILogger<PostgresWatchlistRepository>>()));
- src/Attestor/__Libraries/StellaOps.Attestor.Watchlist/ServiceCollectionExtensions.cs:76 sp.GetRequiredService<Microsoft.Extensions.Logging.ILogger<PostgresAlertDedupRepository>>()));
- 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: 18
- Files with issues: 11
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Attestor/__Libraries/StellaOps.Attestor.Watchlist/ServiceCollectionExtensions.cs | FileLength>100; ServiceLocator | Remove service locator usage; use constructor injection.; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.Watchlist/Events/IdentityAlertEvent.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.Watchlist/Matching/IdentityMatcher.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/Attestor/__Libraries/StellaOps.Attestor.Watchlist/Matching/PatternCompiler.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.Watchlist/Models/IdentityMatchResult.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.Watchlist/Models/WatchedIdentity.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.Watchlist/Monitoring/IdentityMonitorBackgroundService.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/Attestor/__Libraries/StellaOps.Attestor.Watchlist/Monitoring/IdentityMonitorService.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; PrivateFieldNaming; UsingInsideNamespace | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Rename async methods to end with Async.; Rename private fields to _camelCase.; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.Watchlist/Storage/InMemoryWatchlistRepository.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.Watchlist/Storage/IWatchlistRepository.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/StellaOps.Attestor.Watchlist/Storage/PostgresWatchlistRepository.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. |
## Testing Fullness Findings
- Status: PASS
- Expected layers (heuristic): Unit
- Detected test projects: src/Attestor/__Tests/StellaOps.Attestor.Watchlist.Tests/StellaOps.Attestor.Watchlist.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.Attestor.FixChain.Tests
## Project
- Path: src/Attestor/__Libraries/__Tests/StellaOps.Attestor.FixChain.Tests/StellaOps.Attestor.FixChain.Tests.csproj
- Module: Attestor
- Kind: Test
- 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: 3
- Naming violations (interfaces/fields/const/async): 2
- Service locator usage (BuildServiceProvider/GetService): 0
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Attestor/__Libraries/__Tests/StellaOps.Attestor.FixChain.Tests/Unit/FixChainPredicateTests.cs (159 lines)
- src/Attestor/__Libraries/__Tests/StellaOps.Attestor.FixChain.Tests/Unit/FixChainStatementBuilderTests.cs (306 lines)
- src/Attestor/__Libraries/__Tests/StellaOps.Attestor.FixChain.Tests/Unit/FixChainValidatorTests.cs (311 lines)
- Namespace issues:
- none
- Using directive issues:
- src/Attestor/__Libraries/__Tests/StellaOps.Attestor.FixChain.Tests/Unit/FixChainPredicateTests.cs: using directives not sorted
- src/Attestor/__Libraries/__Tests/StellaOps.Attestor.FixChain.Tests/Unit/FixChainStatementBuilderTests.cs: using directives not sorted
- src/Attestor/__Libraries/__Tests/StellaOps.Attestor.FixChain.Tests/Unit/FixChainValidatorTests.cs: using directives not sorted
- Naming issues:
- none
- Async issues:
- src/Attestor/__Libraries/__Tests/StellaOps.Attestor.FixChain.Tests/Unit/FixChainStatementBuilderTests.cs: async method naming
- src/Attestor/__Libraries/__Tests/StellaOps.Attestor.FixChain.Tests/Unit/FixChainStatementBuilderTests.cs: missing ConfigureAwait(false)
- Service locator matches:
- none
- Assembly.LoadFrom matches:
- none
### Fix Guidance
- 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: 3
- Files with issues: 3
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Attestor/__Libraries/__Tests/StellaOps.Attestor.FixChain.Tests/Unit/FixChainPredicateTests.cs | FileLength>100; UsingNotSorted | Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/__Tests/StellaOps.Attestor.FixChain.Tests/Unit/FixChainStatementBuilderTests.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. |
| src/Attestor/__Libraries/__Tests/StellaOps.Attestor.FixChain.Tests/Unit/FixChainValidatorTests.cs | FileLength>100; UsingNotSorted | 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.

View File

@@ -0,0 +1,86 @@
# Audit - StellaOps.Attestor.GraphRoot.Tests
## Project
- Path: src/Attestor/__Libraries/__Tests/StellaOps.Attestor.GraphRoot.Tests/StellaOps.Attestor.GraphRoot.Tests.csproj
- Module: Attestor
- 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: explicit false
- Deterministic: inherited true
- 100-line rule violations: 4
- Namespace violations: 0
- Using directive violations: 4
- Naming violations (interfaces/fields/const/async): 6
- Service locator usage (BuildServiceProvider/GetService): 3
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Attestor/__Libraries/__Tests/StellaOps.Attestor.GraphRoot.Tests/GraphRootAttestorTests.cs (316 lines)
- src/Attestor/__Libraries/__Tests/StellaOps.Attestor.GraphRoot.Tests/GraphRootModelsTests.cs (240 lines)
- src/Attestor/__Libraries/__Tests/StellaOps.Attestor.GraphRoot.Tests/GraphRootPipelineIntegrationTests.cs (568 lines)
- src/Attestor/__Libraries/__Tests/StellaOps.Attestor.GraphRoot.Tests/Sha256MerkleRootComputerTests.cs (190 lines)
- Namespace issues:
- none
- Using directive issues:
- src/Attestor/__Libraries/__Tests/StellaOps.Attestor.GraphRoot.Tests/GraphRootAttestorTests.cs: using directives not sorted
- src/Attestor/__Libraries/__Tests/StellaOps.Attestor.GraphRoot.Tests/GraphRootModelsTests.cs: using directives not sorted
- src/Attestor/__Libraries/__Tests/StellaOps.Attestor.GraphRoot.Tests/GraphRootPipelineIntegrationTests.cs: using directives not sorted
- src/Attestor/__Libraries/__Tests/StellaOps.Attestor.GraphRoot.Tests/Sha256MerkleRootComputerTests.cs: using directives not sorted
- Naming issues:
- src/Attestor/__Libraries/__Tests/StellaOps.Attestor.GraphRoot.Tests/GraphRootAttestorTests.cs: private field naming
- src/Attestor/__Libraries/__Tests/StellaOps.Attestor.GraphRoot.Tests/GraphRootPipelineIntegrationTests.cs: private field naming
- Async issues:
- src/Attestor/__Libraries/__Tests/StellaOps.Attestor.GraphRoot.Tests/GraphRootAttestorTests.cs: async method naming
- src/Attestor/__Libraries/__Tests/StellaOps.Attestor.GraphRoot.Tests/GraphRootAttestorTests.cs: missing ConfigureAwait(false)
- src/Attestor/__Libraries/__Tests/StellaOps.Attestor.GraphRoot.Tests/GraphRootPipelineIntegrationTests.cs: async method naming
- src/Attestor/__Libraries/__Tests/StellaOps.Attestor.GraphRoot.Tests/GraphRootPipelineIntegrationTests.cs: missing ConfigureAwait(false)
- Service locator matches:
- src/Attestor/__Libraries/__Tests/StellaOps.Attestor.GraphRoot.Tests/GraphRootPipelineIntegrationTests.cs:542 var provider = services.BuildServiceProvider();
- src/Attestor/__Libraries/__Tests/StellaOps.Attestor.GraphRoot.Tests/GraphRootPipelineIntegrationTests.cs:545 var attestor = provider.GetService<IGraphRootAttestor>();
- src/Attestor/__Libraries/__Tests/StellaOps.Attestor.GraphRoot.Tests/GraphRootPipelineIntegrationTests.cs:549 var merkleComputer = provider.GetService<IMerkleRootComputer>();
- 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.
- Replace service locator usage with constructor injection.
- 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/Attestor/__Libraries/__Tests/StellaOps.Attestor.GraphRoot.Tests/GraphRootAttestorTests.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/Attestor/__Libraries/__Tests/StellaOps.Attestor.GraphRoot.Tests/GraphRootModelsTests.cs | FileLength>100; UsingNotSorted | Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/__Tests/StellaOps.Attestor.GraphRoot.Tests/GraphRootPipelineIntegrationTests.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; PrivateFieldNaming; ServiceLocator; UsingNotSorted | Add ConfigureAwait(false) to awaited calls in library-like code.; Remove service locator usage; use constructor injection.; Rename async methods to end with Async.; Rename private fields to _camelCase.; Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/__Tests/StellaOps.Attestor.GraphRoot.Tests/Sha256MerkleRootComputerTests.cs | FileLength>100; UsingNotSorted | 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.

View File

@@ -0,0 +1,80 @@
# Audit - StellaOps.Attestor.Spdx3.Tests
## Project
- Path: src/Attestor/__Libraries/__Tests/StellaOps.Attestor.Spdx3.Tests/StellaOps.Attestor.Spdx3.Tests.csproj
- Module: Attestor
- 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: explicit true
- Deterministic: inherited true
- 100-line rule violations: 4
- Namespace violations: 0
- Using directive violations: 4
- Naming violations (interfaces/fields/const/async): 4
- Service locator usage (BuildServiceProvider/GetService): 0
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Attestor/__Libraries/__Tests/StellaOps.Attestor.Spdx3.Tests/BuildAttestationMapperTests.cs (178 lines)
- src/Attestor/__Libraries/__Tests/StellaOps.Attestor.Spdx3.Tests/BuildProfileValidatorTests.cs (187 lines)
- src/Attestor/__Libraries/__Tests/StellaOps.Attestor.Spdx3.Tests/CombinedDocumentBuilderTests.cs (281 lines)
- src/Attestor/__Libraries/__Tests/StellaOps.Attestor.Spdx3.Tests/DsseSpdx3SignerTests.cs (308 lines)
- Namespace issues:
- none
- Using directive issues:
- src/Attestor/__Libraries/__Tests/StellaOps.Attestor.Spdx3.Tests/BuildAttestationMapperTests.cs: using directives not sorted
- src/Attestor/__Libraries/__Tests/StellaOps.Attestor.Spdx3.Tests/BuildProfileValidatorTests.cs: using directives not sorted
- src/Attestor/__Libraries/__Tests/StellaOps.Attestor.Spdx3.Tests/CombinedDocumentBuilderTests.cs: using directives not sorted
- src/Attestor/__Libraries/__Tests/StellaOps.Attestor.Spdx3.Tests/DsseSpdx3SignerTests.cs: using directives not sorted
- Naming issues:
- src/Attestor/__Libraries/__Tests/StellaOps.Attestor.Spdx3.Tests/CombinedDocumentBuilderTests.cs: private field naming
- src/Attestor/__Libraries/__Tests/StellaOps.Attestor.Spdx3.Tests/DsseSpdx3SignerTests.cs: private field naming
- Async issues:
- src/Attestor/__Libraries/__Tests/StellaOps.Attestor.Spdx3.Tests/DsseSpdx3SignerTests.cs: async method naming
- src/Attestor/__Libraries/__Tests/StellaOps.Attestor.Spdx3.Tests/DsseSpdx3SignerTests.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: 4
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Attestor/__Libraries/__Tests/StellaOps.Attestor.Spdx3.Tests/BuildAttestationMapperTests.cs | FileLength>100; UsingNotSorted | Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/__Tests/StellaOps.Attestor.Spdx3.Tests/BuildProfileValidatorTests.cs | FileLength>100; UsingNotSorted | Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/__Tests/StellaOps.Attestor.Spdx3.Tests/CombinedDocumentBuilderTests.cs | FileLength>100; PrivateFieldNaming; UsingNotSorted | Rename private fields to _camelCase.; Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/__Tests/StellaOps.Attestor.Spdx3.Tests/DsseSpdx3SignerTests.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. |
## 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,83 @@
# Audit - StellaOps.Attestor.TrustRepo.Tests
## Project
- Path: src/Attestor/__Libraries/__Tests/StellaOps.Attestor.TrustRepo.Tests/StellaOps.Attestor.TrustRepo.Tests.csproj
- Module: Attestor
- Kind: Test
- 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: inherited false
- Deterministic: inherited true
- 100-line rule violations: 3
- Namespace violations: 0
- Using directive violations: 4
- Naming violations (interfaces/fields/const/async): 7
- Service locator usage (BuildServiceProvider/GetService): 1
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Attestor/__Libraries/__Tests/StellaOps.Attestor.TrustRepo.Tests/SigstoreServiceMapTests.cs (229 lines)
- src/Attestor/__Libraries/__Tests/StellaOps.Attestor.TrustRepo.Tests/TufMetadataStoreTests.cs (217 lines)
- src/Attestor/__Libraries/__Tests/StellaOps.Attestor.TrustRepo.Tests/TufModelsTests.cs (223 lines)
- Namespace issues:
- none
- Using directive issues:
- src/Attestor/__Libraries/__Tests/StellaOps.Attestor.TrustRepo.Tests/SigstoreServiceMapTests.cs: using directives inside namespace
- src/Attestor/__Libraries/__Tests/StellaOps.Attestor.TrustRepo.Tests/SigstoreServiceMapTests.cs: using directives not sorted
- src/Attestor/__Libraries/__Tests/StellaOps.Attestor.TrustRepo.Tests/TufModelsTests.cs: using directives inside namespace
- src/Attestor/__Libraries/__Tests/StellaOps.Attestor.TrustRepo.Tests/TufModelsTests.cs: using directives not sorted
- Naming issues:
- src/Attestor/__Libraries/__Tests/StellaOps.Attestor.TrustRepo.Tests/SigstoreServiceMapTests.cs: private field naming
- src/Attestor/__Libraries/__Tests/StellaOps.Attestor.TrustRepo.Tests/TufModelsTests.cs: private field naming
- Async issues:
- src/Attestor/__Libraries/__Tests/StellaOps.Attestor.TrustRepo.Tests/SigstoreServiceMapTests.cs: async method naming
- src/Attestor/__Libraries/__Tests/StellaOps.Attestor.TrustRepo.Tests/SigstoreServiceMapTests.cs: blocking async usage
- src/Attestor/__Libraries/__Tests/StellaOps.Attestor.TrustRepo.Tests/SigstoreServiceMapTests.cs: missing ConfigureAwait(false)
- src/Attestor/__Libraries/__Tests/StellaOps.Attestor.TrustRepo.Tests/TufMetadataStoreTests.cs: async method naming
- src/Attestor/__Libraries/__Tests/StellaOps.Attestor.TrustRepo.Tests/TufMetadataStoreTests.cs: missing ConfigureAwait(false)
- Service locator matches:
- src/Attestor/__Libraries/__Tests/StellaOps.Attestor.TrustRepo.Tests/SigstoreServiceMapTests.cs:87 var map = await loader.GetServiceMapAsync();
- 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.
- Replace service locator usage with constructor injection.
- 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/Attestor/__Libraries/__Tests/StellaOps.Attestor.TrustRepo.Tests/SigstoreServiceMapTests.cs | AsyncNaming; BlockingAsync; ConfigureAwaitMissing; FileLength>100; PrivateFieldNaming; ServiceLocator; UsingInsideNamespace; UsingNotSorted | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Remove service locator usage; use constructor injection.; Rename async methods to end with Async.; Rename private fields to _camelCase.; Replace .Result/.Wait/GetAwaiter().GetResult() with await.; Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/__Libraries/__Tests/StellaOps.Attestor.TrustRepo.Tests/TufMetadataStoreTests.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/Attestor/__Libraries/__Tests/StellaOps.Attestor.TrustRepo.Tests/TufModelsTests.cs | FileLength>100; PrivateFieldNaming; UsingInsideNamespace; UsingNotSorted | Move using directives outside namespace.; Rename private fields to _camelCase.; 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.

View File

@@ -0,0 +1,77 @@
# Audit - StellaOps.Attestor.Bundle.Tests
## Project
- Path: src/Attestor/__Tests/StellaOps.Attestor.Bundle.Tests/StellaOps.Attestor.Bundle.Tests.csproj
- Module: Attestor
- Kind: Test
- 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: inherited false
- Deterministic: inherited true
- 100-line rule violations: 3
- Namespace violations: 0
- Using directive violations: 4
- Naming violations (interfaces/fields/const/async): 2
- Service locator usage (BuildServiceProvider/GetService): 0
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Attestor/__Tests/StellaOps.Attestor.Bundle.Tests/SigstoreBundleBuilderTests.cs (395 lines)
- src/Attestor/__Tests/StellaOps.Attestor.Bundle.Tests/SigstoreBundleSerializerTests.cs (269 lines)
- src/Attestor/__Tests/StellaOps.Attestor.Bundle.Tests/SigstoreBundleVerifierTests.cs (432 lines)
- Namespace issues:
- none
- Using directive issues:
- src/Attestor/__Tests/StellaOps.Attestor.Bundle.Tests/SigstoreBundleBuilderTests.cs: using directives not sorted
- src/Attestor/__Tests/StellaOps.Attestor.Bundle.Tests/SigstoreBundleSerializerTests.cs: using directives not sorted
- src/Attestor/__Tests/StellaOps.Attestor.Bundle.Tests/SigstoreBundleVerifierTests.cs: using directives inside namespace
- src/Attestor/__Tests/StellaOps.Attestor.Bundle.Tests/SigstoreBundleVerifierTests.cs: using directives not sorted
- Naming issues:
- none
- Async issues:
- src/Attestor/__Tests/StellaOps.Attestor.Bundle.Tests/SigstoreBundleVerifierTests.cs: async method naming
- src/Attestor/__Tests/StellaOps.Attestor.Bundle.Tests/SigstoreBundleVerifierTests.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: 3
- Files with issues: 3
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Attestor/__Tests/StellaOps.Attestor.Bundle.Tests/SigstoreBundleBuilderTests.cs | FileLength>100; UsingNotSorted | Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/__Tests/StellaOps.Attestor.Bundle.Tests/SigstoreBundleSerializerTests.cs | FileLength>100; UsingNotSorted | Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/__Tests/StellaOps.Attestor.Bundle.Tests/SigstoreBundleVerifierTests.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; UsingInsideNamespace; UsingNotSorted | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; 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.

View File

@@ -0,0 +1,107 @@
# Audit - StellaOps.Attestor.Bundling.Tests
## Project
- Path: src/Attestor/__Tests/StellaOps.Attestor.Bundling.Tests/StellaOps.Attestor.Bundling.Tests.csproj
- Module: Attestor
- Kind: Test
- Audit date (UTC): 2026-01-31
- Files scanned: 7
- Files with issues: 7
- 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: 7
- Namespace violations: 0
- Using directive violations: 7
- Naming violations (interfaces/fields/const/async): 21
- Service locator usage (BuildServiceProvider/GetService): 0
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Attestor/__Tests/StellaOps.Attestor.Bundling.Tests/AttestationBundlerTests.cs (530 lines)
- src/Attestor/__Tests/StellaOps.Attestor.Bundling.Tests/BundleAggregatorTests.cs (380 lines)
- src/Attestor/__Tests/StellaOps.Attestor.Bundling.Tests/BundleWorkflowIntegrationTests.cs (521 lines)
- src/Attestor/__Tests/StellaOps.Attestor.Bundling.Tests/KmsOrgKeySignerTests.cs (562 lines)
- src/Attestor/__Tests/StellaOps.Attestor.Bundling.Tests/OfflineKitBundleProviderTests.cs (159 lines)
- src/Attestor/__Tests/StellaOps.Attestor.Bundling.Tests/OrgKeySignerTests.cs (315 lines)
- src/Attestor/__Tests/StellaOps.Attestor.Bundling.Tests/RetentionPolicyEnforcerTests.cs (681 lines)
- Namespace issues:
- none
- Using directive issues:
- src/Attestor/__Tests/StellaOps.Attestor.Bundling.Tests/BundleAggregatorTests.cs: using directives not sorted
- src/Attestor/__Tests/StellaOps.Attestor.Bundling.Tests/BundleWorkflowIntegrationTests.cs: using directives inside namespace
- src/Attestor/__Tests/StellaOps.Attestor.Bundling.Tests/BundleWorkflowIntegrationTests.cs: using directives not sorted
- src/Attestor/__Tests/StellaOps.Attestor.Bundling.Tests/KmsOrgKeySignerTests.cs: using directives not sorted
- src/Attestor/__Tests/StellaOps.Attestor.Bundling.Tests/OfflineKitBundleProviderTests.cs: using directives inside namespace
- src/Attestor/__Tests/StellaOps.Attestor.Bundling.Tests/OfflineKitBundleProviderTests.cs: using directives not sorted
- src/Attestor/__Tests/StellaOps.Attestor.Bundling.Tests/OrgKeySignerTests.cs: using directives not sorted
- Naming issues:
- src/Attestor/__Tests/StellaOps.Attestor.Bundling.Tests/AttestationBundlerTests.cs: private field naming
- src/Attestor/__Tests/StellaOps.Attestor.Bundling.Tests/BundleAggregatorTests.cs: private field naming
- src/Attestor/__Tests/StellaOps.Attestor.Bundling.Tests/BundleWorkflowIntegrationTests.cs: private field naming
- src/Attestor/__Tests/StellaOps.Attestor.Bundling.Tests/KmsOrgKeySignerTests.cs: private field naming
- src/Attestor/__Tests/StellaOps.Attestor.Bundling.Tests/OfflineKitBundleProviderTests.cs: private field naming
- src/Attestor/__Tests/StellaOps.Attestor.Bundling.Tests/OrgKeySignerTests.cs: private field naming
- src/Attestor/__Tests/StellaOps.Attestor.Bundling.Tests/RetentionPolicyEnforcerTests.cs: private field naming
- Async issues:
- src/Attestor/__Tests/StellaOps.Attestor.Bundling.Tests/AttestationBundlerTests.cs: async method naming
- src/Attestor/__Tests/StellaOps.Attestor.Bundling.Tests/AttestationBundlerTests.cs: missing ConfigureAwait(false)
- src/Attestor/__Tests/StellaOps.Attestor.Bundling.Tests/BundleAggregatorTests.cs: async method naming
- src/Attestor/__Tests/StellaOps.Attestor.Bundling.Tests/BundleAggregatorTests.cs: missing ConfigureAwait(false)
- src/Attestor/__Tests/StellaOps.Attestor.Bundling.Tests/BundleWorkflowIntegrationTests.cs: async method naming
- src/Attestor/__Tests/StellaOps.Attestor.Bundling.Tests/BundleWorkflowIntegrationTests.cs: missing ConfigureAwait(false)
- src/Attestor/__Tests/StellaOps.Attestor.Bundling.Tests/KmsOrgKeySignerTests.cs: async method naming
- src/Attestor/__Tests/StellaOps.Attestor.Bundling.Tests/KmsOrgKeySignerTests.cs: missing ConfigureAwait(false)
- src/Attestor/__Tests/StellaOps.Attestor.Bundling.Tests/OfflineKitBundleProviderTests.cs: async method naming
- src/Attestor/__Tests/StellaOps.Attestor.Bundling.Tests/OfflineKitBundleProviderTests.cs: missing ConfigureAwait(false)
- src/Attestor/__Tests/StellaOps.Attestor.Bundling.Tests/OrgKeySignerTests.cs: async method naming
- src/Attestor/__Tests/StellaOps.Attestor.Bundling.Tests/OrgKeySignerTests.cs: missing ConfigureAwait(false)
- src/Attestor/__Tests/StellaOps.Attestor.Bundling.Tests/RetentionPolicyEnforcerTests.cs: async method naming
- src/Attestor/__Tests/StellaOps.Attestor.Bundling.Tests/RetentionPolicyEnforcerTests.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: 7
- Files with issues: 7
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Attestor/__Tests/StellaOps.Attestor.Bundling.Tests/AttestationBundlerTests.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/Attestor/__Tests/StellaOps.Attestor.Bundling.Tests/BundleAggregatorTests.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/Attestor/__Tests/StellaOps.Attestor.Bundling.Tests/BundleWorkflowIntegrationTests.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; PrivateFieldNaming; UsingInsideNamespace; UsingNotSorted | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Rename async methods to end with Async.; Rename private fields to _camelCase.; Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/__Tests/StellaOps.Attestor.Bundling.Tests/KmsOrgKeySignerTests.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/Attestor/__Tests/StellaOps.Attestor.Bundling.Tests/OfflineKitBundleProviderTests.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; PrivateFieldNaming; UsingInsideNamespace; UsingNotSorted | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Rename async methods to end with Async.; Rename private fields to _camelCase.; Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/__Tests/StellaOps.Attestor.Bundling.Tests/OrgKeySignerTests.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/Attestor/__Tests/StellaOps.Attestor.Bundling.Tests/RetentionPolicyEnforcerTests.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. |
## 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,80 @@
# Audit - StellaOps.Attestor.Conformance.Tests
## Project
- Path: src/Attestor/__Tests/StellaOps.Attestor.Conformance.Tests/StellaOps.Attestor.Conformance.Tests.csproj
- Module: Attestor
- 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: 1
- Naming violations (interfaces/fields/const/async): 6
- Service locator usage (BuildServiceProvider/GetService): 0
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Attestor/__Tests/StellaOps.Attestor.Conformance.Tests/CheckpointParityTests.cs (214 lines)
- src/Attestor/__Tests/StellaOps.Attestor.Conformance.Tests/ConformanceTestFixture.cs (438 lines)
- src/Attestor/__Tests/StellaOps.Attestor.Conformance.Tests/InclusionProofParityTests.cs (180 lines)
- src/Attestor/__Tests/StellaOps.Attestor.Conformance.Tests/VerificationParityTests.cs (169 lines)
- Namespace issues:
- none
- Using directive issues:
- src/Attestor/__Tests/StellaOps.Attestor.Conformance.Tests/ConformanceTestFixture.cs: using directives not sorted
- Naming issues:
- none
- Async issues:
- src/Attestor/__Tests/StellaOps.Attestor.Conformance.Tests/CheckpointParityTests.cs: async method naming
- src/Attestor/__Tests/StellaOps.Attestor.Conformance.Tests/CheckpointParityTests.cs: missing ConfigureAwait(false)
- src/Attestor/__Tests/StellaOps.Attestor.Conformance.Tests/InclusionProofParityTests.cs: async method naming
- src/Attestor/__Tests/StellaOps.Attestor.Conformance.Tests/InclusionProofParityTests.cs: missing ConfigureAwait(false)
- src/Attestor/__Tests/StellaOps.Attestor.Conformance.Tests/VerificationParityTests.cs: async method naming
- src/Attestor/__Tests/StellaOps.Attestor.Conformance.Tests/VerificationParityTests.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: 4
- Files with issues: 4
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Attestor/__Tests/StellaOps.Attestor.Conformance.Tests/CheckpointParityTests.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/Attestor/__Tests/StellaOps.Attestor.Conformance.Tests/ConformanceTestFixture.cs | FileLength>100; UsingNotSorted | Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/__Tests/StellaOps.Attestor.Conformance.Tests/InclusionProofParityTests.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/Attestor/__Tests/StellaOps.Attestor.Conformance.Tests/VerificationParityTests.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. |
## 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,88 @@
# Audit - StellaOps.Attestor.EvidencePack.IntegrationTests
## Project
- Path: src/Attestor/__Tests/StellaOps.Attestor.EvidencePack.IntegrationTests/StellaOps.Attestor.EvidencePack.IntegrationTests.csproj
- Module: Attestor
- Kind: Test
- Audit date (UTC): 2026-01-31
- Files scanned: 6
- Files with issues: 5
- 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: 5
- Namespace violations: 0
- Using directive violations: 7
- Naming violations (interfaces/fields/const/async): 6
- Service locator usage (BuildServiceProvider/GetService): 0
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Attestor/__Tests/StellaOps.Attestor.EvidencePack.IntegrationTests/EvidencePackGenerationTests.cs (476 lines)
- src/Attestor/__Tests/StellaOps.Attestor.EvidencePack.IntegrationTests/OfflineVerificationTests.cs (362 lines)
- src/Attestor/__Tests/StellaOps.Attestor.EvidencePack.IntegrationTests/ReproducibilityTests.cs (302 lines)
- src/Attestor/__Tests/StellaOps.Attestor.EvidencePack.IntegrationTests/SlsaStrictValidationTests.cs (388 lines)
- src/Attestor/__Tests/StellaOps.Attestor.EvidencePack.IntegrationTests/TamperDetectionTests.cs (281 lines)
- Namespace issues:
- none
- Using directive issues:
- src/Attestor/__Tests/StellaOps.Attestor.EvidencePack.IntegrationTests/EvidencePackGenerationTests.cs: using directives not sorted
- src/Attestor/__Tests/StellaOps.Attestor.EvidencePack.IntegrationTests/OfflineVerificationTests.cs: using directives inside namespace
- src/Attestor/__Tests/StellaOps.Attestor.EvidencePack.IntegrationTests/OfflineVerificationTests.cs: using directives not sorted
- src/Attestor/__Tests/StellaOps.Attestor.EvidencePack.IntegrationTests/ReproducibilityTests.cs: using directives not sorted
- src/Attestor/__Tests/StellaOps.Attestor.EvidencePack.IntegrationTests/SlsaStrictValidationTests.cs: using directives not sorted
- src/Attestor/__Tests/StellaOps.Attestor.EvidencePack.IntegrationTests/TamperDetectionTests.cs: using directives inside namespace
- src/Attestor/__Tests/StellaOps.Attestor.EvidencePack.IntegrationTests/TamperDetectionTests.cs: using directives not sorted
- Naming issues:
- none
- Async issues:
- src/Attestor/__Tests/StellaOps.Attestor.EvidencePack.IntegrationTests/EvidencePackGenerationTests.cs: async method naming
- src/Attestor/__Tests/StellaOps.Attestor.EvidencePack.IntegrationTests/EvidencePackGenerationTests.cs: missing ConfigureAwait(false)
- src/Attestor/__Tests/StellaOps.Attestor.EvidencePack.IntegrationTests/OfflineVerificationTests.cs: async method naming
- src/Attestor/__Tests/StellaOps.Attestor.EvidencePack.IntegrationTests/OfflineVerificationTests.cs: missing ConfigureAwait(false)
- src/Attestor/__Tests/StellaOps.Attestor.EvidencePack.IntegrationTests/TamperDetectionTests.cs: async method naming
- src/Attestor/__Tests/StellaOps.Attestor.EvidencePack.IntegrationTests/TamperDetectionTests.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: 6
- Files with issues: 5
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Attestor/__Tests/StellaOps.Attestor.EvidencePack.IntegrationTests/EvidencePackGenerationTests.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. |
| src/Attestor/__Tests/StellaOps.Attestor.EvidencePack.IntegrationTests/OfflineVerificationTests.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; UsingInsideNamespace; UsingNotSorted | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Rename async methods to end with Async.; Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/__Tests/StellaOps.Attestor.EvidencePack.IntegrationTests/ReproducibilityTests.cs | FileLength>100; UsingNotSorted | Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/__Tests/StellaOps.Attestor.EvidencePack.IntegrationTests/SlsaStrictValidationTests.cs | FileLength>100; UsingNotSorted | Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/__Tests/StellaOps.Attestor.EvidencePack.IntegrationTests/TamperDetectionTests.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; UsingInsideNamespace; UsingNotSorted | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; 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.

View File

@@ -0,0 +1,74 @@
# Audit - StellaOps.Attestor.EvidencePack.Tests
## Project
- Path: src/Attestor/__Tests/StellaOps.Attestor.EvidencePack.Tests/StellaOps.Attestor.EvidencePack.Tests.csproj
- Module: Attestor
- Kind: Test
- 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: inherited false
- Deterministic: inherited true
- 100-line rule violations: 3
- Namespace violations: 0
- Using directive violations: 2
- Naming violations (interfaces/fields/const/async): 1
- Service locator usage (BuildServiceProvider/GetService): 0
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Attestor/__Tests/StellaOps.Attestor.EvidencePack.Tests/ReleaseEvidencePackBuilderTests.cs (400 lines)
- src/Attestor/__Tests/StellaOps.Attestor.EvidencePack.Tests/ReleaseEvidencePackManifestTests.cs (270 lines)
- src/Attestor/__Tests/StellaOps.Attestor.EvidencePack.Tests/VerificationReplayLogBuilderTests.cs (259 lines)
- Namespace issues:
- none
- Using directive issues:
- src/Attestor/__Tests/StellaOps.Attestor.EvidencePack.Tests/ReleaseEvidencePackManifestTests.cs: using directives not sorted
- src/Attestor/__Tests/StellaOps.Attestor.EvidencePack.Tests/VerificationReplayLogBuilderTests.cs: using directives not sorted
- Naming issues:
- none
- Async issues:
- src/Attestor/__Tests/StellaOps.Attestor.EvidencePack.Tests/VerificationReplayLogBuilderTests.cs: blocking async usage
- 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: 3
- Files with issues: 3
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Attestor/__Tests/StellaOps.Attestor.EvidencePack.Tests/ReleaseEvidencePackBuilderTests.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Tests/StellaOps.Attestor.EvidencePack.Tests/ReleaseEvidencePackManifestTests.cs | FileLength>100; UsingNotSorted | Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/__Tests/StellaOps.Attestor.EvidencePack.Tests/VerificationReplayLogBuilderTests.cs | BlockingAsync; FileLength>100; UsingNotSorted | Replace .Result/.Wait/GetAwaiter().GetResult() with await.; 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.

View File

@@ -0,0 +1,97 @@
# Audit - StellaOps.Attestor.FixChain.Tests
## Project
- Path: src/Attestor/__Tests/StellaOps.Attestor.FixChain.Tests/StellaOps.Attestor.FixChain.Tests.csproj
- Module: Attestor
- 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: explicit true
- Deterministic: inherited true
- 100-line rule violations: 4
- Namespace violations: 0
- Using directive violations: 6
- Naming violations (interfaces/fields/const/async): 6
- Service locator usage (BuildServiceProvider/GetService): 13
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Attestor/__Tests/StellaOps.Attestor.FixChain.Tests/Integration/FixChainAttestationIntegrationTests.cs (361 lines)
- src/Attestor/__Tests/StellaOps.Attestor.FixChain.Tests/Unit/FixChainAttestationServiceTests.cs (388 lines)
- src/Attestor/__Tests/StellaOps.Attestor.FixChain.Tests/Unit/FixChainStatementBuilderTests.cs (419 lines)
- src/Attestor/__Tests/StellaOps.Attestor.FixChain.Tests/Unit/FixChainValidatorTests.cs (439 lines)
- Namespace issues:
- none
- Using directive issues:
- src/Attestor/__Tests/StellaOps.Attestor.FixChain.Tests/Integration/FixChainAttestationIntegrationTests.cs: using directives not sorted
- src/Attestor/__Tests/StellaOps.Attestor.FixChain.Tests/Unit/FixChainAttestationServiceTests.cs: using directives inside namespace
- src/Attestor/__Tests/StellaOps.Attestor.FixChain.Tests/Unit/FixChainAttestationServiceTests.cs: using directives not sorted
- src/Attestor/__Tests/StellaOps.Attestor.FixChain.Tests/Unit/FixChainStatementBuilderTests.cs: using directives inside namespace
- src/Attestor/__Tests/StellaOps.Attestor.FixChain.Tests/Unit/FixChainStatementBuilderTests.cs: using directives not sorted
- src/Attestor/__Tests/StellaOps.Attestor.FixChain.Tests/Unit/FixChainValidatorTests.cs: using directives not sorted
- Naming issues:
- none
- Async issues:
- src/Attestor/__Tests/StellaOps.Attestor.FixChain.Tests/Integration/FixChainAttestationIntegrationTests.cs: async method naming
- src/Attestor/__Tests/StellaOps.Attestor.FixChain.Tests/Integration/FixChainAttestationIntegrationTests.cs: missing ConfigureAwait(false)
- src/Attestor/__Tests/StellaOps.Attestor.FixChain.Tests/Unit/FixChainAttestationServiceTests.cs: async method naming
- src/Attestor/__Tests/StellaOps.Attestor.FixChain.Tests/Unit/FixChainAttestationServiceTests.cs: missing ConfigureAwait(false)
- src/Attestor/__Tests/StellaOps.Attestor.FixChain.Tests/Unit/FixChainStatementBuilderTests.cs: async method naming
- src/Attestor/__Tests/StellaOps.Attestor.FixChain.Tests/Unit/FixChainStatementBuilderTests.cs: missing ConfigureAwait(false)
- Service locator matches:
- src/Attestor/__Tests/StellaOps.Attestor.FixChain.Tests/Integration/FixChainAttestationIntegrationTests.cs:44 _services = services.BuildServiceProvider();
- src/Attestor/__Tests/StellaOps.Attestor.FixChain.Tests/Integration/FixChainAttestationIntegrationTests.cs:51 var attestationService = _services.GetRequiredService<IFixChainAttestationService>();
- src/Attestor/__Tests/StellaOps.Attestor.FixChain.Tests/Integration/FixChainAttestationIntegrationTests.cs:75 var attestationService = _services.GetRequiredService<IFixChainAttestationService>();
- src/Attestor/__Tests/StellaOps.Attestor.FixChain.Tests/Integration/FixChainAttestationIntegrationTests.cs:99 var attestationService = _services.GetRequiredService<IFixChainAttestationService>();
- src/Attestor/__Tests/StellaOps.Attestor.FixChain.Tests/Integration/FixChainAttestationIntegrationTests.cs:120 var attestationService = _services.GetRequiredService<IFixChainAttestationService>();
- src/Attestor/__Tests/StellaOps.Attestor.FixChain.Tests/Integration/FixChainAttestationIntegrationTests.cs:148 var attestationService = _services.GetRequiredService<IFixChainAttestationService>();
- src/Attestor/__Tests/StellaOps.Attestor.FixChain.Tests/Integration/FixChainAttestationIntegrationTests.cs:171 var attestationService = _services.GetRequiredService<IFixChainAttestationService>();
- src/Attestor/__Tests/StellaOps.Attestor.FixChain.Tests/Integration/FixChainAttestationIntegrationTests.cs:191 var attestationService = _services.GetRequiredService<IFixChainAttestationService>();
- src/Attestor/__Tests/StellaOps.Attestor.FixChain.Tests/Integration/FixChainAttestationIntegrationTests.cs:207 var attestationService = _services.GetRequiredService<IFixChainAttestationService>();
- src/Attestor/__Tests/StellaOps.Attestor.FixChain.Tests/Integration/FixChainAttestationIntegrationTests.cs:221 var attestationService = _services.GetRequiredService<IFixChainAttestationService>();
- src/Attestor/__Tests/StellaOps.Attestor.FixChain.Tests/Integration/FixChainAttestationIntegrationTests.cs:236 var attestationService = _services.GetRequiredService<IFixChainAttestationService>();
- src/Attestor/__Tests/StellaOps.Attestor.FixChain.Tests/Integration/FixChainAttestationIntegrationTests.cs:262 var sp = services.BuildServiceProvider();
- src/Attestor/__Tests/StellaOps.Attestor.FixChain.Tests/Integration/FixChainAttestationIntegrationTests.cs:263 var attestationService = sp.GetRequiredService<IFixChainAttestationService>();
- Assembly.LoadFrom matches:
- none
### Fix Guidance
- 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: 4
- Files with issues: 4
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Attestor/__Tests/StellaOps.Attestor.FixChain.Tests/Integration/FixChainAttestationIntegrationTests.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; ServiceLocator; UsingNotSorted | Add ConfigureAwait(false) to awaited calls in library-like code.; Remove service locator usage; use constructor injection.; Rename async methods to end with Async.; Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/__Tests/StellaOps.Attestor.FixChain.Tests/Unit/FixChainAttestationServiceTests.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; UsingInsideNamespace; UsingNotSorted | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Rename async methods to end with Async.; Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/__Tests/StellaOps.Attestor.FixChain.Tests/Unit/FixChainStatementBuilderTests.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; UsingInsideNamespace; UsingNotSorted | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Rename async methods to end with Async.; Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/__Tests/StellaOps.Attestor.FixChain.Tests/Unit/FixChainValidatorTests.cs | FileLength>100; UsingNotSorted | 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.

View File

@@ -0,0 +1,66 @@
# Audit - StellaOps.Attestor.GraphRoot.Tests
## Project
- Path: src/Attestor/__Tests/StellaOps.Attestor.GraphRoot.Tests/StellaOps.Attestor.GraphRoot.Tests.csproj
- Module: Attestor
- Kind: Test
- Audit date (UTC): 2026-01-31
- Files scanned: 1
- Files with issues: 1
- 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: 1
- 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/Attestor/__Tests/StellaOps.Attestor.GraphRoot.Tests/GraphRootTests.cs (296 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: 1
- Files with issues: 1
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Attestor/__Tests/StellaOps.Attestor.GraphRoot.Tests/GraphRootTests.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,94 @@
# Audit - StellaOps.Attestor.Infrastructure.Tests
## Project
- Path: src/Attestor/__Tests/StellaOps.Attestor.Infrastructure.Tests/StellaOps.Attestor.Infrastructure.Tests.csproj
- Module: Attestor
- Kind: Test
- 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: inherited false
- Deterministic: inherited true
- 100-line rule violations: 4
- Namespace violations: 0
- Using directive violations: 6
- Naming violations (interfaces/fields/const/async): 13
- Service locator usage (BuildServiceProvider/GetService): 0
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Attestor/__Tests/StellaOps.Attestor.Infrastructure.Tests/HttpRekorClientTests.cs (396 lines)
- src/Attestor/__Tests/StellaOps.Attestor.Infrastructure.Tests/HttpRekorTileClientTests.cs (305 lines)
- src/Attestor/__Tests/StellaOps.Attestor.Infrastructure.Tests/RekorBackendResolverTests.cs (256 lines)
- src/Attestor/__Tests/StellaOps.Attestor.Infrastructure.Tests/Verification/RekorVerificationJobIntegrationTests.cs (322 lines)
- Namespace issues:
- none
- Using directive issues:
- src/Attestor/__Tests/StellaOps.Attestor.Infrastructure.Tests/DefaultDsseCanonicalizerTests.cs: using directives inside namespace
- src/Attestor/__Tests/StellaOps.Attestor.Infrastructure.Tests/DefaultDsseCanonicalizerTests.cs: using directives not sorted
- src/Attestor/__Tests/StellaOps.Attestor.Infrastructure.Tests/HttpRekorClientTests.cs: using directives not sorted
- src/Attestor/__Tests/StellaOps.Attestor.Infrastructure.Tests/HttpRekorTileClientTests.cs: using directives not sorted
- src/Attestor/__Tests/StellaOps.Attestor.Infrastructure.Tests/InMemoryAttestorEntryRepositoryTests.cs: using directives not sorted
- src/Attestor/__Tests/StellaOps.Attestor.Infrastructure.Tests/RekorBackendResolverTests.cs: using directives not sorted
- Naming issues:
- src/Attestor/__Tests/StellaOps.Attestor.Infrastructure.Tests/DefaultDsseCanonicalizerTests.cs: private field naming
- src/Attestor/__Tests/StellaOps.Attestor.Infrastructure.Tests/InMemoryAttestorEntryRepositoryTests.cs: private field naming
- src/Attestor/__Tests/StellaOps.Attestor.Infrastructure.Tests/Verification/RekorVerificationJobIntegrationTests.cs: private field naming
- Async issues:
- src/Attestor/__Tests/StellaOps.Attestor.Infrastructure.Tests/DefaultDsseCanonicalizerTests.cs: async method naming
- src/Attestor/__Tests/StellaOps.Attestor.Infrastructure.Tests/DefaultDsseCanonicalizerTests.cs: missing ConfigureAwait(false)
- src/Attestor/__Tests/StellaOps.Attestor.Infrastructure.Tests/HttpRekorClientTests.cs: async method naming
- src/Attestor/__Tests/StellaOps.Attestor.Infrastructure.Tests/HttpRekorClientTests.cs: missing ConfigureAwait(false)
- src/Attestor/__Tests/StellaOps.Attestor.Infrastructure.Tests/HttpRekorTileClientTests.cs: async method naming
- src/Attestor/__Tests/StellaOps.Attestor.Infrastructure.Tests/HttpRekorTileClientTests.cs: missing ConfigureAwait(false)
- src/Attestor/__Tests/StellaOps.Attestor.Infrastructure.Tests/InMemoryAttestorEntryRepositoryTests.cs: async method naming
- src/Attestor/__Tests/StellaOps.Attestor.Infrastructure.Tests/InMemoryAttestorEntryRepositoryTests.cs: missing ConfigureAwait(false)
- src/Attestor/__Tests/StellaOps.Attestor.Infrastructure.Tests/Verification/RekorVerificationJobIntegrationTests.cs: async method naming
- src/Attestor/__Tests/StellaOps.Attestor.Infrastructure.Tests/Verification/RekorVerificationJobIntegrationTests.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: 6
- Files with issues: 6
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Attestor/__Tests/StellaOps.Attestor.Infrastructure.Tests/DefaultDsseCanonicalizerTests.cs | AsyncNaming; ConfigureAwaitMissing; PrivateFieldNaming; UsingInsideNamespace; UsingNotSorted | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Rename async methods to end with Async.; Rename private fields to _camelCase.; Sort using directives alphabetically. |
| src/Attestor/__Tests/StellaOps.Attestor.Infrastructure.Tests/HttpRekorClientTests.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. |
| src/Attestor/__Tests/StellaOps.Attestor.Infrastructure.Tests/HttpRekorTileClientTests.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. |
| src/Attestor/__Tests/StellaOps.Attestor.Infrastructure.Tests/InMemoryAttestorEntryRepositoryTests.cs | AsyncNaming; ConfigureAwaitMissing; 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. |
| src/Attestor/__Tests/StellaOps.Attestor.Infrastructure.Tests/RekorBackendResolverTests.cs | FileLength>100; UsingNotSorted | Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/__Tests/StellaOps.Attestor.Infrastructure.Tests/Verification/RekorVerificationJobIntegrationTests.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. |
## 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,83 @@
# Audit - StellaOps.Attestor.Oci.Tests
## Project
- Path: src/Attestor/__Tests/StellaOps.Attestor.Oci.Tests/StellaOps.Attestor.Oci.Tests.csproj
- Module: Attestor
- 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: 3
- Naming violations (interfaces/fields/const/async): 7
- Service locator usage (BuildServiceProvider/GetService): 0
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Attestor/__Tests/StellaOps.Attestor.Oci.Tests/OciAttestationAttacherIntegrationTests.cs (128 lines)
- src/Attestor/__Tests/StellaOps.Attestor.Oci.Tests/OciReferenceTests.cs (169 lines)
- src/Attestor/__Tests/StellaOps.Attestor.Oci.Tests/OrasAttestationAttacherTests.cs (275 lines)
- src/Attestor/__Tests/StellaOps.Attestor.Oci.Tests/SbomOciPublisherTests.cs (373 lines)
- Namespace issues:
- none
- Using directive issues:
- src/Attestor/__Tests/StellaOps.Attestor.Oci.Tests/OciAttestationAttacherIntegrationTests.cs: using directives not sorted
- src/Attestor/__Tests/StellaOps.Attestor.Oci.Tests/OrasAttestationAttacherTests.cs: using directives not sorted
- src/Attestor/__Tests/StellaOps.Attestor.Oci.Tests/SbomOciPublisherTests.cs: using directives not sorted
- Naming issues:
- src/Attestor/__Tests/StellaOps.Attestor.Oci.Tests/OciAttestationAttacherIntegrationTests.cs: private field naming
- Async issues:
- src/Attestor/__Tests/StellaOps.Attestor.Oci.Tests/OciAttestationAttacherIntegrationTests.cs: async method naming
- src/Attestor/__Tests/StellaOps.Attestor.Oci.Tests/OciAttestationAttacherIntegrationTests.cs: missing ConfigureAwait(false)
- src/Attestor/__Tests/StellaOps.Attestor.Oci.Tests/OrasAttestationAttacherTests.cs: async method naming
- src/Attestor/__Tests/StellaOps.Attestor.Oci.Tests/OrasAttestationAttacherTests.cs: missing ConfigureAwait(false)
- src/Attestor/__Tests/StellaOps.Attestor.Oci.Tests/SbomOciPublisherTests.cs: async method naming
- src/Attestor/__Tests/StellaOps.Attestor.Oci.Tests/SbomOciPublisherTests.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: 4
- Files with issues: 4
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Attestor/__Tests/StellaOps.Attestor.Oci.Tests/OciAttestationAttacherIntegrationTests.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/Attestor/__Tests/StellaOps.Attestor.Oci.Tests/OciReferenceTests.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Tests/StellaOps.Attestor.Oci.Tests/OrasAttestationAttacherTests.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. |
| src/Attestor/__Tests/StellaOps.Attestor.Oci.Tests/SbomOciPublisherTests.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.

View File

@@ -0,0 +1,86 @@
# Audit - StellaOps.Attestor.Offline.Tests
## Project
- Path: src/Attestor/__Tests/StellaOps.Attestor.Offline.Tests/StellaOps.Attestor.Offline.Tests.csproj
- Module: Attestor
- Kind: Test
- 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: inherited false
- Deterministic: inherited true
- 100-line rule violations: 3
- Namespace violations: 0
- Using directive violations: 6
- Naming violations (interfaces/fields/const/async): 9
- Service locator usage (BuildServiceProvider/GetService): 0
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Attestor/__Tests/StellaOps.Attestor.Offline.Tests/FileSystemRootStoreTests.cs (457 lines)
- src/Attestor/__Tests/StellaOps.Attestor.Offline.Tests/OfflineCertChainValidatorTests.cs (499 lines)
- src/Attestor/__Tests/StellaOps.Attestor.Offline.Tests/OfflineVerifierTests.cs (538 lines)
- Namespace issues:
- none
- Using directive issues:
- src/Attestor/__Tests/StellaOps.Attestor.Offline.Tests/FileSystemRootStoreTests.cs: using directives inside namespace
- src/Attestor/__Tests/StellaOps.Attestor.Offline.Tests/FileSystemRootStoreTests.cs: using directives not sorted
- src/Attestor/__Tests/StellaOps.Attestor.Offline.Tests/OfflineCertChainValidatorTests.cs: using directives inside namespace
- src/Attestor/__Tests/StellaOps.Attestor.Offline.Tests/OfflineCertChainValidatorTests.cs: using directives not sorted
- src/Attestor/__Tests/StellaOps.Attestor.Offline.Tests/OfflineVerifierTests.cs: using directives inside namespace
- src/Attestor/__Tests/StellaOps.Attestor.Offline.Tests/OfflineVerifierTests.cs: using directives not sorted
- Naming issues:
- src/Attestor/__Tests/StellaOps.Attestor.Offline.Tests/FileSystemRootStoreTests.cs: private field naming
- src/Attestor/__Tests/StellaOps.Attestor.Offline.Tests/OfflineCertChainValidatorTests.cs: private field naming
- src/Attestor/__Tests/StellaOps.Attestor.Offline.Tests/OfflineVerifierTests.cs: private field naming
- Async issues:
- src/Attestor/__Tests/StellaOps.Attestor.Offline.Tests/FileSystemRootStoreTests.cs: async method naming
- src/Attestor/__Tests/StellaOps.Attestor.Offline.Tests/FileSystemRootStoreTests.cs: missing ConfigureAwait(false)
- src/Attestor/__Tests/StellaOps.Attestor.Offline.Tests/OfflineCertChainValidatorTests.cs: async method naming
- src/Attestor/__Tests/StellaOps.Attestor.Offline.Tests/OfflineCertChainValidatorTests.cs: missing ConfigureAwait(false)
- src/Attestor/__Tests/StellaOps.Attestor.Offline.Tests/OfflineVerifierTests.cs: async method naming
- src/Attestor/__Tests/StellaOps.Attestor.Offline.Tests/OfflineVerifierTests.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: 3
- Files with issues: 3
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Attestor/__Tests/StellaOps.Attestor.Offline.Tests/FileSystemRootStoreTests.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; PrivateFieldNaming; UsingInsideNamespace; UsingNotSorted | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Rename async methods to end with Async.; Rename private fields to _camelCase.; Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/__Tests/StellaOps.Attestor.Offline.Tests/OfflineCertChainValidatorTests.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; PrivateFieldNaming; UsingInsideNamespace; UsingNotSorted | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Rename async methods to end with Async.; Rename private fields to _camelCase.; Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/__Tests/StellaOps.Attestor.Offline.Tests/OfflineVerifierTests.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; PrivateFieldNaming; UsingInsideNamespace; UsingNotSorted | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Rename async methods to end with Async.; Rename private fields to _camelCase.; 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.

View File

@@ -0,0 +1,71 @@
# Audit - StellaOps.Attestor.Persistence.Tests
## Project
- Path: src/Attestor/__Tests/StellaOps.Attestor.Persistence.Tests/StellaOps.Attestor.Persistence.Tests.csproj
- Module: Attestor
- 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: 1
- 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/Attestor/__Tests/StellaOps.Attestor.Persistence.Tests/TrustAnchorMatcherTests.cs (213 lines)
- Namespace issues:
- none
- Using directive issues:
- src/Attestor/__Tests/StellaOps.Attestor.Persistence.Tests/ProofChainDbContextTests.cs: using directives inside namespace
- Naming issues:
- none
- Async issues:
- src/Attestor/__Tests/StellaOps.Attestor.Persistence.Tests/TrustAnchorMatcherTests.cs: async method naming
- src/Attestor/__Tests/StellaOps.Attestor.Persistence.Tests/TrustAnchorMatcherTests.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/Attestor/__Tests/StellaOps.Attestor.Persistence.Tests/ProofChainDbContextTests.cs | UsingInsideNamespace | Move using directives outside namespace. |
| src/Attestor/__Tests/StellaOps.Attestor.Persistence.Tests/TrustAnchorMatcherTests.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. |
## 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,121 @@
# Audit - StellaOps.Attestor.ProofChain.Tests
## Project
- Path: src/Attestor/__Tests/StellaOps.Attestor.ProofChain.Tests/StellaOps.Attestor.ProofChain.Tests.csproj
- Module: Attestor
- Kind: Test
- Audit date (UTC): 2026-01-31
- Files scanned: 20
- Files with issues: 16
- 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: 14
- Namespace violations: 0
- Using directive violations: 13
- Naming violations (interfaces/fields/const/async): 13
- Service locator usage (BuildServiceProvider/GetService): 0
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Attestor/__Tests/StellaOps.Attestor.ProofChain.Tests/BinaryMicroWitnessPredicateTests.cs (265 lines)
- src/Attestor/__Tests/StellaOps.Attestor.ProofChain.Tests/ContentAddressedIdGeneratorTests.cs (322 lines)
- src/Attestor/__Tests/StellaOps.Attestor.ProofChain.Tests/ContentAddressedIdTests.cs (241 lines)
- src/Attestor/__Tests/StellaOps.Attestor.ProofChain.Tests/JsonCanonicalizerTests.cs (125 lines)
- src/Attestor/__Tests/StellaOps.Attestor.ProofChain.Tests/MerkleTreeBuilderTests.cs (179 lines)
- src/Attestor/__Tests/StellaOps.Attestor.ProofChain.Tests/ProofSpineAssemblyIntegrationTests.cs (264 lines)
- src/Attestor/__Tests/StellaOps.Attestor.ProofChain.Tests/ChangeTrace/ChangeTracePredicateTests.cs (294 lines)
- src/Attestor/__Tests/StellaOps.Attestor.ProofChain.Tests/Envelope/DsseEnvelopeDeterminismTests.cs (299 lines)
- src/Attestor/__Tests/StellaOps.Attestor.ProofChain.Tests/Services/UnknownsAggregatorTests.cs (102 lines)
- src/Attestor/__Tests/StellaOps.Attestor.ProofChain.Tests/Signing/ProofChainSignerTests.cs (123 lines)
- src/Attestor/__Tests/StellaOps.Attestor.ProofChain.Tests/Statements/InTotoStatementSnapshotTests.cs (452 lines)
- src/Attestor/__Tests/StellaOps.Attestor.ProofChain.Tests/Statements/StatementBuilderTests.cs (138 lines)
- src/Attestor/__Tests/StellaOps.Attestor.ProofChain.Tests/Statements/UncertaintyStatementTests.cs (260 lines)
- src/Attestor/__Tests/StellaOps.Attestor.ProofChain.Tests/Statements/UnknownsBudgetPredicateTests.cs (242 lines)
- Namespace issues:
- none
- Using directive issues:
- src/Attestor/__Tests/StellaOps.Attestor.ProofChain.Tests/BinaryMicroWitnessPredicateTests.cs: using directives not sorted
- src/Attestor/__Tests/StellaOps.Attestor.ProofChain.Tests/JsonCanonicalizerTests.cs: using directives inside namespace
- src/Attestor/__Tests/StellaOps.Attestor.ProofChain.Tests/JsonCanonicalizerTests.cs: using directives not sorted
- src/Attestor/__Tests/StellaOps.Attestor.ProofChain.Tests/MerkleTreeBuilderTests.cs: using directives not sorted
- src/Attestor/__Tests/StellaOps.Attestor.ProofChain.Tests/PredicateSchemaValidatorTests.cs: using directives inside namespace
- src/Attestor/__Tests/StellaOps.Attestor.ProofChain.Tests/ProofSpineAssemblyIntegrationTests.cs: using directives not sorted
- src/Attestor/__Tests/StellaOps.Attestor.ProofChain.Tests/ChangeTrace/ChangeTracePredicateTests.cs: using directives not sorted
- src/Attestor/__Tests/StellaOps.Attestor.ProofChain.Tests/Envelope/DsseEnvelopeDeterminismTests.cs: using directives not sorted
- src/Attestor/__Tests/StellaOps.Attestor.ProofChain.Tests/Statements/DeltaVerdictStatementTests.cs: using directives not sorted
- src/Attestor/__Tests/StellaOps.Attestor.ProofChain.Tests/Statements/InTotoStatementSnapshotTests.cs: using directives not sorted
- src/Attestor/__Tests/StellaOps.Attestor.ProofChain.Tests/Statements/StatementBuilderTests.cs: using directives not sorted
- src/Attestor/__Tests/StellaOps.Attestor.ProofChain.Tests/Statements/UncertaintyStatementTests.cs: using directives not sorted
- src/Attestor/__Tests/StellaOps.Attestor.ProofChain.Tests/Statements/UnknownsBudgetPredicateTests.cs: using directives not sorted
- Naming issues:
- src/Attestor/__Tests/StellaOps.Attestor.ProofChain.Tests/BinaryMicroWitnessPredicateTests.cs: private field naming
- src/Attestor/__Tests/StellaOps.Attestor.ProofChain.Tests/ContentAddressedIdTests.cs: private field naming
- src/Attestor/__Tests/StellaOps.Attestor.ProofChain.Tests/ChangeTrace/ChangeTracePredicateTests.cs: private field naming
- src/Attestor/__Tests/StellaOps.Attestor.ProofChain.Tests/Envelope/DsseEnvelopeDeterminismTests.cs: private field naming
- src/Attestor/__Tests/StellaOps.Attestor.ProofChain.Tests/Signing/ProofChainSignerTests.cs: private field naming
- src/Attestor/__Tests/StellaOps.Attestor.ProofChain.Tests/Statements/DeltaVerdictStatementTests.cs: private field naming
- src/Attestor/__Tests/StellaOps.Attestor.ProofChain.Tests/Statements/InTotoStatementSnapshotTests.cs: private field naming
- src/Attestor/__Tests/StellaOps.Attestor.ProofChain.Tests/Statements/UnknownsBudgetPredicateTests.cs: private field naming
- Async issues:
- src/Attestor/__Tests/StellaOps.Attestor.ProofChain.Tests/PredicateSchemaValidatorTests.cs: async method naming
- src/Attestor/__Tests/StellaOps.Attestor.ProofChain.Tests/PredicateSchemaValidatorTests.cs: missing ConfigureAwait(false)
- src/Attestor/__Tests/StellaOps.Attestor.ProofChain.Tests/Services/UnknownsAggregatorTests.cs: blocking async usage
- src/Attestor/__Tests/StellaOps.Attestor.ProofChain.Tests/Signing/ProofChainSignerTests.cs: async method naming
- src/Attestor/__Tests/StellaOps.Attestor.ProofChain.Tests/Signing/ProofChainSignerTests.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: 20
- Files with issues: 16
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Attestor/__Tests/StellaOps.Attestor.ProofChain.Tests/BinaryMicroWitnessPredicateTests.cs | FileLength>100; PrivateFieldNaming; UsingNotSorted | Rename private fields to _camelCase.; Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/__Tests/StellaOps.Attestor.ProofChain.Tests/ContentAddressedIdGeneratorTests.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Tests/StellaOps.Attestor.ProofChain.Tests/ContentAddressedIdTests.cs | FileLength>100; PrivateFieldNaming | Rename private fields to _camelCase.; Split file to stay <= 100 lines. |
| src/Attestor/__Tests/StellaOps.Attestor.ProofChain.Tests/JsonCanonicalizerTests.cs | FileLength>100; UsingInsideNamespace; UsingNotSorted | Move using directives outside namespace.; Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/__Tests/StellaOps.Attestor.ProofChain.Tests/MerkleTreeBuilderTests.cs | FileLength>100; UsingNotSorted | Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/__Tests/StellaOps.Attestor.ProofChain.Tests/PredicateSchemaValidatorTests.cs | AsyncNaming; ConfigureAwaitMissing; UsingInsideNamespace | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Rename async methods to end with Async. |
| src/Attestor/__Tests/StellaOps.Attestor.ProofChain.Tests/ProofSpineAssemblyIntegrationTests.cs | FileLength>100; UsingNotSorted | Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/__Tests/StellaOps.Attestor.ProofChain.Tests/ChangeTrace/ChangeTracePredicateTests.cs | FileLength>100; PrivateFieldNaming; UsingNotSorted | Rename private fields to _camelCase.; Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/__Tests/StellaOps.Attestor.ProofChain.Tests/Envelope/DsseEnvelopeDeterminismTests.cs | FileLength>100; PrivateFieldNaming; UsingNotSorted | Rename private fields to _camelCase.; Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/__Tests/StellaOps.Attestor.ProofChain.Tests/Services/UnknownsAggregatorTests.cs | BlockingAsync; FileLength>100 | Replace .Result/.Wait/GetAwaiter().GetResult() with await.; Split file to stay <= 100 lines. |
| src/Attestor/__Tests/StellaOps.Attestor.ProofChain.Tests/Signing/ProofChainSignerTests.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/Attestor/__Tests/StellaOps.Attestor.ProofChain.Tests/Statements/DeltaVerdictStatementTests.cs | PrivateFieldNaming; UsingNotSorted | Rename private fields to _camelCase.; Sort using directives alphabetically. |
| src/Attestor/__Tests/StellaOps.Attestor.ProofChain.Tests/Statements/InTotoStatementSnapshotTests.cs | FileLength>100; PrivateFieldNaming; UsingNotSorted | Rename private fields to _camelCase.; Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/__Tests/StellaOps.Attestor.ProofChain.Tests/Statements/StatementBuilderTests.cs | FileLength>100; UsingNotSorted | Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/__Tests/StellaOps.Attestor.ProofChain.Tests/Statements/UncertaintyStatementTests.cs | FileLength>100; UsingNotSorted | Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/__Tests/StellaOps.Attestor.ProofChain.Tests/Statements/UnknownsBudgetPredicateTests.cs | FileLength>100; PrivateFieldNaming; UsingNotSorted | Rename private fields to _camelCase.; 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.

View File

@@ -0,0 +1,187 @@
# Audit - StellaOps.Attestor.StandardPredicates.Tests
## Project
- Path: src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/StellaOps.Attestor.StandardPredicates.Tests.csproj
- Module: Attestor
- Kind: Test
- Audit date (UTC): 2026-01-31
- Files scanned: 36
- Files with issues: 35
- 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: 27
- Namespace violations: 0
- Using directive violations: 58
- Naming violations (interfaces/fields/const/async): 2
- Service locator usage (BuildServiceProvider/GetService): 0
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/CycloneDxDeterminismTests.cs (195 lines)
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/CycloneDxFeatureGenerationTests.cs (277 lines)
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/CycloneDxTestData.cs (631 lines)
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/SerialNumberDerivationTests.cs (293 lines)
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/SpdxDeterminismTests.cs (324 lines)
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/SpdxWriterAiProfileTests.cs (113 lines)
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/SpdxWriterCoreProfileTests.cs (227 lines)
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/SpdxWriterCoverageTests.cs (568 lines)
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/SpdxWriterExtensionTests.cs (182 lines)
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/SpdxWriterIntegrityIdentifierEdgeTests.cs (170 lines)
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/SpdxWriterIntegrityMethodsTests.cs (132 lines)
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/SpdxWriterLicenseEdgeTests.cs (114 lines)
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/SpdxWriterLicensingProfileTests.cs (154 lines)
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/SpdxWriterLiteProfileTests.cs (119 lines)
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/SpdxWriterNamespaceImportTests.cs (256 lines)
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/SpdxWriterRelationshipMappingTests.cs (114 lines)
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/SpdxWriterSecurityEdgeTests.cs (174 lines)
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/SpdxWriterSecurityProfileTests.cs (118 lines)
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/SpdxWriterSoftwareProfileTests.cs (191 lines)
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/StandardPredicateRegistryTests.cs (229 lines)
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/TimestampExtensionTests.cs (151 lines)
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/BinaryDiff/BinaryDiffPredicateBuilderTests.cs (123 lines)
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/BinaryDiff/BinaryDiffTestData.cs (139 lines)
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/Parsers/SpdxPredicateParserTests.cs (387 lines)
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/Validation/SlsaSchemaValidatorTests.cs (424 lines)
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/VexOverride/VexOverridePredicateBuilderTests.cs (226 lines)
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/VexOverride/VexOverridePredicateParserTests.cs (256 lines)
- Namespace issues:
- none
- Using directive issues:
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/CycloneDxDeterminismTests.cs: using directives not sorted
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/CycloneDxFeatureGenerationTests.cs: using directives inside namespace
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/CycloneDxFeatureGenerationTests.cs: using directives not sorted
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/CycloneDxSchemaValidationTests.cs: using directives inside namespace
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/CycloneDxSchemaValidationTests.cs: using directives not sorted
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/CycloneDxTestData.cs: using directives not sorted
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/SerialNumberDerivationTests.cs: using directives not sorted
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/SpdxDeterminismTests.cs: using directives inside namespace
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/SpdxDeterminismTests.cs: using directives not sorted
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/SpdxSchemaValidationTests.cs: using directives inside namespace
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/SpdxSchemaValidationTests.cs: using directives not sorted
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/SpdxWriterAiProfileTests.cs: using directives inside namespace
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/SpdxWriterAiProfileTests.cs: using directives not sorted
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/SpdxWriterCoreProfileTests.cs: using directives inside namespace
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/SpdxWriterCoreProfileTests.cs: using directives not sorted
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/SpdxWriterCoverageTests.cs: using directives inside namespace
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/SpdxWriterCoverageTests.cs: using directives not sorted
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/SpdxWriterDatasetProfileTests.cs: using directives inside namespace
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/SpdxWriterDatasetProfileTests.cs: using directives not sorted
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/SpdxWriterExtensionTests.cs: using directives inside namespace
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/SpdxWriterExtensionTests.cs: using directives not sorted
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/SpdxWriterIntegrityIdentifierEdgeTests.cs: using directives inside namespace
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/SpdxWriterIntegrityIdentifierEdgeTests.cs: using directives not sorted
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/SpdxWriterIntegrityMethodsTests.cs: using directives inside namespace
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/SpdxWriterIntegrityMethodsTests.cs: using directives not sorted
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/SpdxWriterLicenseEdgeTests.cs: using directives inside namespace
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/SpdxWriterLicenseEdgeTests.cs: using directives not sorted
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/SpdxWriterLicensingProfileTests.cs: using directives inside namespace
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/SpdxWriterLicensingProfileTests.cs: using directives not sorted
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/SpdxWriterLiteProfileTests.cs: using directives inside namespace
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/SpdxWriterLiteProfileTests.cs: using directives not sorted
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/SpdxWriterNamespaceImportTests.cs: using directives inside namespace
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/SpdxWriterNamespaceImportTests.cs: using directives not sorted
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/SpdxWriterRelationshipMappingTests.cs: using directives inside namespace
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/SpdxWriterRelationshipMappingTests.cs: using directives not sorted
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/SpdxWriterSecurityEdgeTests.cs: using directives inside namespace
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/SpdxWriterSecurityEdgeTests.cs: using directives not sorted
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/SpdxWriterSecurityProfileTests.cs: using directives inside namespace
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/SpdxWriterSecurityProfileTests.cs: using directives not sorted
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/SpdxWriterSoftwareProfileTests.cs: using directives inside namespace
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/SpdxWriterSoftwareProfileTests.cs: using directives not sorted
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/StandardPredicateRegistryTests.cs: using directives not sorted
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/TimestampExtensionTests.cs: using directives inside namespace
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/TimestampExtensionTests.cs: using directives not sorted
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/BinaryDiff/BinaryDiffDsseSignerTests.cs: using directives not sorted
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/BinaryDiff/BinaryDiffPredicateBuilderTests.cs: using directives not sorted
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/BinaryDiff/BinaryDiffPredicateSerializerTests.cs: using directives not sorted
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/BinaryDiff/BinaryDiffSchemaValidationTests.cs: using directives inside namespace
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/BinaryDiff/BinaryDiffSchemaValidationTests.cs: using directives not sorted
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/BinaryDiff/BinaryDiffTestData.cs: using directives not sorted
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/Parsers/CycloneDxPredicateParserTests.cs: using directives not sorted
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/Parsers/SlsaProvenancePredicateParserTests.cs: using directives not sorted
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/Parsers/SpdxPredicateParserTests.cs: using directives not sorted
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/Validation/SlsaSchemaValidatorTests.cs: using directives not sorted
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/VexOverride/VexOverridePredicateBuilderTests.cs: using directives inside namespace
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/VexOverride/VexOverridePredicateBuilderTests.cs: using directives not sorted
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/VexOverride/VexOverridePredicateParserTests.cs: using directives inside namespace
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/VexOverride/VexOverridePredicateParserTests.cs: using directives not sorted
- Naming issues:
- none
- Async issues:
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/BinaryDiff/BinaryDiffDsseSignerTests.cs: async method naming
- src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/BinaryDiff/BinaryDiffDsseSignerTests.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: 36
- Files with issues: 35
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/CycloneDxDeterminismTests.cs | FileLength>100; UsingNotSorted | Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/CycloneDxFeatureGenerationTests.cs | FileLength>100; UsingInsideNamespace; UsingNotSorted | Move using directives outside namespace.; Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/CycloneDxSchemaValidationTests.cs | UsingInsideNamespace; UsingNotSorted | Move using directives outside namespace.; Sort using directives alphabetically. |
| src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/CycloneDxTestData.cs | FileLength>100; UsingNotSorted | Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/SerialNumberDerivationTests.cs | FileLength>100; UsingNotSorted | Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/SpdxDeterminismTests.cs | FileLength>100; UsingInsideNamespace; UsingNotSorted | Move using directives outside namespace.; Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/SpdxSchemaValidationTests.cs | UsingInsideNamespace; UsingNotSorted | Move using directives outside namespace.; Sort using directives alphabetically. |
| src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/SpdxWriterAiProfileTests.cs | FileLength>100; UsingInsideNamespace; UsingNotSorted | Move using directives outside namespace.; Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/SpdxWriterCoreProfileTests.cs | FileLength>100; UsingInsideNamespace; UsingNotSorted | Move using directives outside namespace.; Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/SpdxWriterCoverageTests.cs | FileLength>100; UsingInsideNamespace; UsingNotSorted | Move using directives outside namespace.; Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/SpdxWriterDatasetProfileTests.cs | UsingInsideNamespace; UsingNotSorted | Move using directives outside namespace.; Sort using directives alphabetically. |
| src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/SpdxWriterExtensionTests.cs | FileLength>100; UsingInsideNamespace; UsingNotSorted | Move using directives outside namespace.; Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/SpdxWriterIntegrityIdentifierEdgeTests.cs | FileLength>100; UsingInsideNamespace; UsingNotSorted | Move using directives outside namespace.; Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/SpdxWriterIntegrityMethodsTests.cs | FileLength>100; UsingInsideNamespace; UsingNotSorted | Move using directives outside namespace.; Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/SpdxWriterLicenseEdgeTests.cs | FileLength>100; UsingInsideNamespace; UsingNotSorted | Move using directives outside namespace.; Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/SpdxWriterLicensingProfileTests.cs | FileLength>100; UsingInsideNamespace; UsingNotSorted | Move using directives outside namespace.; Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/SpdxWriterLiteProfileTests.cs | FileLength>100; UsingInsideNamespace; UsingNotSorted | Move using directives outside namespace.; Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/SpdxWriterNamespaceImportTests.cs | FileLength>100; UsingInsideNamespace; UsingNotSorted | Move using directives outside namespace.; Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/SpdxWriterRelationshipMappingTests.cs | FileLength>100; UsingInsideNamespace; UsingNotSorted | Move using directives outside namespace.; Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/SpdxWriterSecurityEdgeTests.cs | FileLength>100; UsingInsideNamespace; UsingNotSorted | Move using directives outside namespace.; Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/SpdxWriterSecurityProfileTests.cs | FileLength>100; UsingInsideNamespace; UsingNotSorted | Move using directives outside namespace.; Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/SpdxWriterSoftwareProfileTests.cs | FileLength>100; UsingInsideNamespace; UsingNotSorted | Move using directives outside namespace.; Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/StandardPredicateRegistryTests.cs | FileLength>100; UsingNotSorted | Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/TimestampExtensionTests.cs | FileLength>100; UsingInsideNamespace; UsingNotSorted | Move using directives outside namespace.; Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/BinaryDiff/BinaryDiffDsseSignerTests.cs | AsyncNaming; ConfigureAwaitMissing; UsingNotSorted | Add ConfigureAwait(false) to awaited calls in library-like code.; Rename async methods to end with Async.; Sort using directives alphabetically. |
| src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/BinaryDiff/BinaryDiffPredicateBuilderTests.cs | FileLength>100; UsingNotSorted | Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/BinaryDiff/BinaryDiffPredicateSerializerTests.cs | UsingNotSorted | Sort using directives alphabetically. |
| src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/BinaryDiff/BinaryDiffSchemaValidationTests.cs | UsingInsideNamespace; UsingNotSorted | Move using directives outside namespace.; Sort using directives alphabetically. |
| src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/BinaryDiff/BinaryDiffTestData.cs | FileLength>100; UsingNotSorted | Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/Parsers/CycloneDxPredicateParserTests.cs | UsingNotSorted | Sort using directives alphabetically. |
| src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/Parsers/SlsaProvenancePredicateParserTests.cs | UsingNotSorted | Sort using directives alphabetically. |
| src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/Parsers/SpdxPredicateParserTests.cs | FileLength>100; UsingNotSorted | Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/Validation/SlsaSchemaValidatorTests.cs | FileLength>100; UsingNotSorted | Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/VexOverride/VexOverridePredicateBuilderTests.cs | FileLength>100; UsingInsideNamespace; UsingNotSorted | Move using directives outside namespace.; Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/__Tests/StellaOps.Attestor.StandardPredicates.Tests/VexOverride/VexOverridePredicateParserTests.cs | FileLength>100; UsingInsideNamespace; UsingNotSorted | Move using directives outside namespace.; 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.

View File

@@ -0,0 +1,99 @@
# Audit - StellaOps.Attestor.Types.Tests
## Project
- Path: src/Attestor/__Tests/StellaOps.Attestor.Types.Tests/StellaOps.Attestor.Types.Tests.csproj
- Module: Attestor
- Kind: Test
- Audit date (UTC): 2026-01-31
- 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: inherited false
- Deterministic: inherited true
- 100-line rule violations: 7
- Namespace violations: 0
- Using directive violations: 11
- Naming violations (interfaces/fields/const/async): 8
- Service locator usage (BuildServiceProvider/GetService): 0
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Attestor/__Tests/StellaOps.Attestor.Types.Tests/AttestationGoldenSamplesTests.cs (133 lines)
- src/Attestor/__Tests/StellaOps.Attestor.Types.Tests/SmartDiffSchemaValidationTests.cs (111 lines)
- src/Attestor/__Tests/StellaOps.Attestor.Types.Tests/Determinism/AttestationDeterminismTests.cs (521 lines)
- src/Attestor/__Tests/StellaOps.Attestor.Types.Tests/Integration/SbomAttestationSignVerifyIntegrationTests.cs (550 lines)
- src/Attestor/__Tests/StellaOps.Attestor.Types.Tests/Rekor/RekorInclusionProofTests.cs (603 lines)
- src/Attestor/__Tests/StellaOps.Attestor.Types.Tests/Rekor/RekorReceiptGenerationTests.cs (551 lines)
- src/Attestor/__Tests/StellaOps.Attestor.Types.Tests/Rekor/RekorReceiptVerificationTests.cs (767 lines)
- Namespace issues:
- none
- Using directive issues:
- src/Attestor/__Tests/StellaOps.Attestor.Types.Tests/AttestationGoldenSamplesTests.cs: using directives not sorted
- src/Attestor/__Tests/StellaOps.Attestor.Types.Tests/GeneratorOutputTests.cs: using directives inside namespace
- src/Attestor/__Tests/StellaOps.Attestor.Types.Tests/GeneratorOutputTests.cs: using directives not sorted
- src/Attestor/__Tests/StellaOps.Attestor.Types.Tests/SmartDiffSchemaValidationTests.cs: using directives inside namespace
- src/Attestor/__Tests/StellaOps.Attestor.Types.Tests/SmartDiffSchemaValidationTests.cs: using directives not sorted
- src/Attestor/__Tests/StellaOps.Attestor.Types.Tests/Determinism/AttestationDeterminismTests.cs: using directives not sorted
- src/Attestor/__Tests/StellaOps.Attestor.Types.Tests/Integration/SbomAttestationSignVerifyIntegrationTests.cs: using directives inside namespace
- src/Attestor/__Tests/StellaOps.Attestor.Types.Tests/Integration/SbomAttestationSignVerifyIntegrationTests.cs: using directives not sorted
- src/Attestor/__Tests/StellaOps.Attestor.Types.Tests/Rekor/RekorInclusionProofTests.cs: using directives not sorted
- src/Attestor/__Tests/StellaOps.Attestor.Types.Tests/Rekor/RekorReceiptGenerationTests.cs: using directives not sorted
- src/Attestor/__Tests/StellaOps.Attestor.Types.Tests/Rekor/RekorReceiptVerificationTests.cs: using directives not sorted
- Naming issues:
- src/Attestor/__Tests/StellaOps.Attestor.Types.Tests/SmartDiffSchemaValidationTests.cs: private field naming
- Async issues:
- src/Attestor/__Tests/StellaOps.Attestor.Types.Tests/Determinism/AttestationDeterminismTests.cs: async method naming
- src/Attestor/__Tests/StellaOps.Attestor.Types.Tests/Determinism/AttestationDeterminismTests.cs: missing ConfigureAwait(false)
- src/Attestor/__Tests/StellaOps.Attestor.Types.Tests/Integration/SbomAttestationSignVerifyIntegrationTests.cs: async method naming
- src/Attestor/__Tests/StellaOps.Attestor.Types.Tests/Integration/SbomAttestationSignVerifyIntegrationTests.cs: missing ConfigureAwait(false)
- src/Attestor/__Tests/StellaOps.Attestor.Types.Tests/Rekor/RekorReceiptGenerationTests.cs: async method naming
- src/Attestor/__Tests/StellaOps.Attestor.Types.Tests/Rekor/RekorReceiptGenerationTests.cs: blocking async usage
- src/Attestor/__Tests/StellaOps.Attestor.Types.Tests/Rekor/RekorReceiptGenerationTests.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: 8
- Files with issues: 8
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Attestor/__Tests/StellaOps.Attestor.Types.Tests/AttestationGoldenSamplesTests.cs | FileLength>100; UsingNotSorted | Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/__Tests/StellaOps.Attestor.Types.Tests/GeneratorOutputTests.cs | UsingInsideNamespace; UsingNotSorted | Move using directives outside namespace.; Sort using directives alphabetically. |
| src/Attestor/__Tests/StellaOps.Attestor.Types.Tests/SmartDiffSchemaValidationTests.cs | FileLength>100; PrivateFieldNaming; UsingInsideNamespace; UsingNotSorted | Move using directives outside namespace.; Rename private fields to _camelCase.; Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/__Tests/StellaOps.Attestor.Types.Tests/Determinism/AttestationDeterminismTests.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. |
| src/Attestor/__Tests/StellaOps.Attestor.Types.Tests/Integration/SbomAttestationSignVerifyIntegrationTests.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; UsingInsideNamespace; UsingNotSorted | Add ConfigureAwait(false) to awaited calls in library-like code.; Move using directives outside namespace.; Rename async methods to end with Async.; Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/__Tests/StellaOps.Attestor.Types.Tests/Rekor/RekorInclusionProofTests.cs | FileLength>100; UsingNotSorted | Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/__Tests/StellaOps.Attestor.Types.Tests/Rekor/RekorReceiptGenerationTests.cs | AsyncNaming; BlockingAsync; ConfigureAwaitMissing; FileLength>100; UsingNotSorted | Add ConfigureAwait(false) to awaited calls in library-like code.; Rename async methods to end with Async.; Replace .Result/.Wait/GetAwaiter().GetResult() with await.; Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/__Tests/StellaOps.Attestor.Types.Tests/Rekor/RekorReceiptVerificationTests.cs | FileLength>100; UsingNotSorted | 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.

View File

@@ -0,0 +1,72 @@
# Audit - StellaOps.Attestor.Verify.Tests
## Project
- Path: src/Attestor/__Tests/StellaOps.Attestor.Verify.Tests/StellaOps.Attestor.Verify.Tests.csproj
- Module: Attestor
- Kind: Test
- Audit date (UTC): 2026-01-31
- Files scanned: 1
- Files with issues: 1
- 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: 1
- Namespace violations: 0
- Using directive violations: 2
- Naming violations (interfaces/fields/const/async): 3
- Service locator usage (BuildServiceProvider/GetService): 0
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Attestor/__Tests/StellaOps.Attestor.Verify.Tests/AttestorVerificationEngineTests.cs (413 lines)
- Namespace issues:
- none
- Using directive issues:
- src/Attestor/__Tests/StellaOps.Attestor.Verify.Tests/AttestorVerificationEngineTests.cs: using directives inside namespace
- src/Attestor/__Tests/StellaOps.Attestor.Verify.Tests/AttestorVerificationEngineTests.cs: using directives not sorted
- Naming issues:
- src/Attestor/__Tests/StellaOps.Attestor.Verify.Tests/AttestorVerificationEngineTests.cs: private field naming
- Async issues:
- src/Attestor/__Tests/StellaOps.Attestor.Verify.Tests/AttestorVerificationEngineTests.cs: async method naming
- src/Attestor/__Tests/StellaOps.Attestor.Verify.Tests/AttestorVerificationEngineTests.cs: blocking async usage
- 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: 1
- Files with issues: 1
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Attestor/__Tests/StellaOps.Attestor.Verify.Tests/AttestorVerificationEngineTests.cs | AsyncNaming; BlockingAsync; FileLength>100; PrivateFieldNaming; UsingInsideNamespace; UsingNotSorted | Move using directives outside namespace.; Rename async methods to end with Async.; Rename private fields to _camelCase.; Replace .Result/.Wait/GetAwaiter().GetResult() with await.; 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.

View File

@@ -0,0 +1,88 @@
# Audit - StellaOps.Attestor.Watchlist.Tests
## Project
- Path: src/Attestor/__Tests/StellaOps.Attestor.Watchlist.Tests/StellaOps.Attestor.Watchlist.Tests.csproj
- Module: Attestor
- Kind: Test
- Audit date (UTC): 2026-01-31
- Files scanned: 7
- Files with issues: 7
- 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: 7
- Namespace violations: 0
- Using directive violations: 2
- Naming violations (interfaces/fields/const/async): 7
- Service locator usage (BuildServiceProvider/GetService): 0
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Attestor/__Tests/StellaOps.Attestor.Watchlist.Tests/Events/IdentityAlertEventTests.cs (266 lines)
- src/Attestor/__Tests/StellaOps.Attestor.Watchlist.Tests/Matching/IdentityMatcherTests.cs (238 lines)
- src/Attestor/__Tests/StellaOps.Attestor.Watchlist.Tests/Matching/PatternCompilerTests.cs (355 lines)
- src/Attestor/__Tests/StellaOps.Attestor.Watchlist.Tests/Models/WatchedIdentityTests.cs (224 lines)
- src/Attestor/__Tests/StellaOps.Attestor.Watchlist.Tests/Monitoring/IdentityMonitorServiceIntegrationTests.cs (401 lines)
- src/Attestor/__Tests/StellaOps.Attestor.Watchlist.Tests/Storage/PostgresWatchlistRepositoryTests.cs (257 lines)
- src/Attestor/__Tests/StellaOps.Attestor.Watchlist.Tests/Storage/WatchlistPostgresFixture.cs (107 lines)
- Namespace issues:
- none
- Using directive issues:
- src/Attestor/__Tests/StellaOps.Attestor.Watchlist.Tests/Events/IdentityAlertEventTests.cs: using directives inside namespace
- src/Attestor/__Tests/StellaOps.Attestor.Watchlist.Tests/Events/IdentityAlertEventTests.cs: using directives not sorted
- Naming issues:
- none
- Async issues:
- src/Attestor/__Tests/StellaOps.Attestor.Watchlist.Tests/Matching/IdentityMatcherTests.cs: async method naming
- src/Attestor/__Tests/StellaOps.Attestor.Watchlist.Tests/Matching/IdentityMatcherTests.cs: missing ConfigureAwait(false)
- src/Attestor/__Tests/StellaOps.Attestor.Watchlist.Tests/Monitoring/IdentityMonitorServiceIntegrationTests.cs: async method naming
- src/Attestor/__Tests/StellaOps.Attestor.Watchlist.Tests/Monitoring/IdentityMonitorServiceIntegrationTests.cs: missing ConfigureAwait(false)
- src/Attestor/__Tests/StellaOps.Attestor.Watchlist.Tests/Storage/PostgresWatchlistRepositoryTests.cs: async method naming
- src/Attestor/__Tests/StellaOps.Attestor.Watchlist.Tests/Storage/PostgresWatchlistRepositoryTests.cs: missing ConfigureAwait(false)
- src/Attestor/__Tests/StellaOps.Attestor.Watchlist.Tests/Storage/WatchlistPostgresFixture.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: 7
- Files with issues: 7
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Attestor/__Tests/StellaOps.Attestor.Watchlist.Tests/Events/IdentityAlertEventTests.cs | FileLength>100; UsingInsideNamespace; UsingNotSorted | Move using directives outside namespace.; Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/Attestor/__Tests/StellaOps.Attestor.Watchlist.Tests/Matching/IdentityMatcherTests.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/Attestor/__Tests/StellaOps.Attestor.Watchlist.Tests/Matching/PatternCompilerTests.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Tests/StellaOps.Attestor.Watchlist.Tests/Models/WatchedIdentityTests.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/Attestor/__Tests/StellaOps.Attestor.Watchlist.Tests/Monitoring/IdentityMonitorServiceIntegrationTests.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/Attestor/__Tests/StellaOps.Attestor.Watchlist.Tests/Storage/PostgresWatchlistRepositoryTests.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/Attestor/__Tests/StellaOps.Attestor.Watchlist.Tests/Storage/WatchlistPostgresFixture.cs | ConfigureAwaitMissing; FileLength>100 | Add ConfigureAwait(false) to awaited calls in library-like code.; 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.