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,98 @@
# Audit - StellaOps.AdvisoryAI.Hosting
## Project
- Path: src/AdvisoryAI/StellaOps.AdvisoryAI.Hosting/StellaOps.AdvisoryAI.Hosting.csproj
- Module: AdvisoryAI
- Kind: Library
- Audit date (UTC): 2026-01-30
- Files scanned: 16
- 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: 4
- 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/AdvisoryAI/StellaOps.AdvisoryAI.Hosting/FileSystemAdvisoryOutputStore.cs (181 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI.Hosting/FileSystemAdvisoryPlanCache.cs (469 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI.Hosting/FileSystemAdvisoryTaskQueue.cs (191 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI.Hosting/ServiceCollectionExtensions.cs (281 lines)
- Namespace issues:
- src/AdvisoryAI/StellaOps.AdvisoryAI.Hosting/AdvisoryAiGuardrailOptions.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI.Hosting/AdvisoryAiMetrics.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI.Hosting/AdvisoryAiServiceOptions.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI.Hosting/AdvisoryAiServiceOptionsValidator.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI.Hosting/FileSystemAdvisoryOutputStore.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI.Hosting/FileSystemAdvisoryPlanCache.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI.Hosting/FileSystemAdvisoryTaskQueue.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI.Hosting/GuardrailAllowlistLoader.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI.Hosting/GuardrailPhraseLoader.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI.Hosting/IGuidProvider.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI.Hosting/ServiceCollectionExtensions.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI.Hosting/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI.Hosting/obj/Debug/net10.0/StellaOps.AdvisoryAI.Hosting.AssemblyInfo.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI.Hosting/obj/Debug/net10.0/StellaOps.AdvisoryAI.Hosting.GlobalUsings.g.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI.Hosting/obj/Release/net10.0/StellaOps.AdvisoryAI.Hosting.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: 16
- Files with issues: 15
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/AdvisoryAI/StellaOps.AdvisoryAI.Hosting/AdvisoryAiGuardrailOptions.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI.Hosting/AdvisoryAiMetrics.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI.Hosting/AdvisoryAiServiceOptions.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI.Hosting/AdvisoryAiServiceOptionsValidator.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI.Hosting/FileSystemAdvisoryOutputStore.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI.Hosting/FileSystemAdvisoryPlanCache.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI.Hosting/FileSystemAdvisoryTaskQueue.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI.Hosting/GuardrailAllowlistLoader.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI.Hosting/GuardrailPhraseLoader.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI.Hosting/IGuidProvider.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI.Hosting/ServiceCollectionExtensions.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI.Hosting/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI.Hosting/obj/Debug/net10.0/StellaOps.AdvisoryAI.Hosting.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI.Hosting/obj/Debug/net10.0/StellaOps.AdvisoryAI.Hosting.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI.Hosting/obj/Release/net10.0/StellaOps.AdvisoryAI.Hosting.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
## Testing Fullness Findings
- Status: PASS
- Expected layers (heuristic): Unit
- Detected test projects: src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/StellaOps.AdvisoryAI.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.AdvisoryAI.Hosting
## Project
- Path: src/AdvisoryAI/StellaOps.AdvisoryAI.Hosting/StellaOps.AdvisoryAI.Hosting.csproj
- Module: AdvisoryAI
- Kind: Library
- Audit date (UTC): 2026-01-31
- Files scanned: 12
- 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: 5
- Namespace violations: 0
- Using directive violations: 2
- Naming violations (interfaces/fields/const/async): 4
- Service locator usage (BuildServiceProvider/GetService): 4
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/AdvisoryAI/StellaOps.AdvisoryAI.Hosting/AdvisoryAiServiceOptionsValidator.cs (101 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI.Hosting/FileSystemAdvisoryOutputStore.cs (182 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI.Hosting/FileSystemAdvisoryPlanCache.cs (470 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI.Hosting/FileSystemAdvisoryTaskQueue.cs (192 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI.Hosting/ServiceCollectionExtensions.cs (282 lines)
- Namespace issues:
- none
- Using directive issues:
- src/AdvisoryAI/StellaOps.AdvisoryAI.Hosting/GuardrailAllowlistLoader.cs: using directives inside namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI.Hosting/GuardrailPhraseLoader.cs: using directives inside namespace
- Naming issues:
- src/AdvisoryAI/StellaOps.AdvisoryAI.Hosting/AdvisoryAiMetrics.cs: private field naming
- Async issues:
- src/AdvisoryAI/StellaOps.AdvisoryAI.Hosting/FileSystemAdvisoryOutputStore.cs: async method naming
- src/AdvisoryAI/StellaOps.AdvisoryAI.Hosting/FileSystemAdvisoryPlanCache.cs: async method naming
- src/AdvisoryAI/StellaOps.AdvisoryAI.Hosting/FileSystemAdvisoryTaskQueue.cs: async method naming
- Service locator matches:
- src/AdvisoryAI/StellaOps.AdvisoryAI.Hosting/ServiceCollectionExtensions.cs:67 var inference = provider.GetRequiredService<IOptions<AdvisoryAiInferenceOptions>>().Value ?? new AdvisoryAiInferenceOptions();
- src/AdvisoryAI/StellaOps.AdvisoryAI.Hosting/ServiceCollectionExtensions.cs:90 var inference = provider.GetRequiredService<IOptions<AdvisoryAiInferenceOptions>>().Value ?? new AdvisoryAiInferenceOptions();
- src/AdvisoryAI/StellaOps.AdvisoryAI.Hosting/ServiceCollectionExtensions.cs:92 ? provider.GetRequiredService<RemoteAdvisoryInferenceClient>()
- src/AdvisoryAI/StellaOps.AdvisoryAI.Hosting/ServiceCollectionExtensions.cs:93 : provider.GetRequiredService<LocalAdvisoryInferenceClient>();
- 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: 12
- Files with issues: 8
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/AdvisoryAI/StellaOps.AdvisoryAI.Hosting/AdvisoryAiMetrics.cs | PrivateFieldNaming | Rename private fields to _camelCase. |
| src/AdvisoryAI/StellaOps.AdvisoryAI.Hosting/AdvisoryAiServiceOptionsValidator.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI.Hosting/FileSystemAdvisoryOutputStore.cs | AsyncNaming; FileLength>100 | Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI.Hosting/FileSystemAdvisoryPlanCache.cs | AsyncNaming; FileLength>100 | Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI.Hosting/FileSystemAdvisoryTaskQueue.cs | AsyncNaming; FileLength>100 | Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI.Hosting/GuardrailAllowlistLoader.cs | UsingInsideNamespace | Move using directives outside namespace. |
| src/AdvisoryAI/StellaOps.AdvisoryAI.Hosting/GuardrailPhraseLoader.cs | UsingInsideNamespace | Move using directives outside namespace. |
| src/AdvisoryAI/StellaOps.AdvisoryAI.Hosting/ServiceCollectionExtensions.cs | FileLength>100; ServiceLocator | Remove service locator usage; use constructor injection.; Split file to stay <= 100 lines. |
## Testing Fullness Findings
- Status: PASS
- Expected layers (heuristic): Unit
- Detected test projects: src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/StellaOps.AdvisoryAI.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.AdvisoryAI.Plugin.Unified
## Project
- Path: src/AdvisoryAI/StellaOps.AdvisoryAI.Plugin.Unified/StellaOps.AdvisoryAI.Plugin.Unified.csproj
- Module: AdvisoryAI
- 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: 2
- 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/AdvisoryAI/StellaOps.AdvisoryAI.Plugin.Unified/LlmPluginAdapter.cs (218 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI.Plugin.Unified/LlmPluginAdapterFactory.cs (138 lines)
- Namespace issues:
- src/AdvisoryAI/StellaOps.AdvisoryAI.Plugin.Unified/LlmPluginAdapter.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI.Plugin.Unified/LlmPluginAdapterFactory.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI.Plugin.Unified/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI.Plugin.Unified/obj/Debug/net10.0/StellaOps.AdvisoryAI.Plugin.Unified.AssemblyInfo.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI.Plugin.Unified/obj/Debug/net10.0/StellaOps.AdvisoryAI.Plugin.Unified.GlobalUsings.g.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI.Plugin.Unified/obj/Release/net10.0/StellaOps.AdvisoryAI.Plugin.Unified.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: 6
- Files with issues: 6
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/AdvisoryAI/StellaOps.AdvisoryAI.Plugin.Unified/LlmPluginAdapter.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI.Plugin.Unified/LlmPluginAdapterFactory.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI.Plugin.Unified/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI.Plugin.Unified/obj/Debug/net10.0/StellaOps.AdvisoryAI.Plugin.Unified.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI.Plugin.Unified/obj/Debug/net10.0/StellaOps.AdvisoryAI.Plugin.Unified.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI.Plugin.Unified/obj/Release/net10.0/StellaOps.AdvisoryAI.Plugin.Unified.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
## Testing Fullness Findings
- Status: PASS
- Expected layers (heuristic): Unit
- Detected test projects: src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/StellaOps.AdvisoryAI.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,70 @@
# Audit - StellaOps.AdvisoryAI.Plugin.Unified
## Project
- Path: src/AdvisoryAI/StellaOps.AdvisoryAI.Plugin.Unified/StellaOps.AdvisoryAI.Plugin.Unified.csproj
- Module: AdvisoryAI
- Kind: Plugin
- 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 true
- Deterministic: inherited true
- 100-line rule violations: 2
- 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/AdvisoryAI/StellaOps.AdvisoryAI.Plugin.Unified/LlmPluginAdapter.cs (219 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI.Plugin.Unified/LlmPluginAdapterFactory.cs (139 lines)
- Namespace issues:
- none
- Using directive issues:
- none
- Naming issues:
- none
- Async issues:
- src/AdvisoryAI/StellaOps.AdvisoryAI.Plugin.Unified/LlmPluginAdapter.cs: async method naming
- src/AdvisoryAI/StellaOps.AdvisoryAI.Plugin.Unified/LlmPluginAdapter.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: 2
- Files with issues: 2
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/AdvisoryAI/StellaOps.AdvisoryAI.Plugin.Unified/LlmPluginAdapter.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/AdvisoryAI/StellaOps.AdvisoryAI.Plugin.Unified/LlmPluginAdapterFactory.cs | FileLength>100 | Split file to stay <= 100 lines. |
## Testing Fullness Findings
- Status: PASS
- Expected layers (heuristic): Unit
- Detected test projects: src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/StellaOps.AdvisoryAI.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.AdvisoryAI.Scm.Plugin.Unified
## Project
- Path: src/AdvisoryAI/StellaOps.AdvisoryAI.Scm.Plugin.Unified/StellaOps.AdvisoryAI.Scm.Plugin.Unified.csproj
- Module: AdvisoryAI
- 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: 2
- 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/AdvisoryAI/StellaOps.AdvisoryAI.Scm.Plugin.Unified/ScmPluginAdapter.cs (348 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI.Scm.Plugin.Unified/ScmPluginAdapterFactory.cs (135 lines)
- Namespace issues:
- src/AdvisoryAI/StellaOps.AdvisoryAI.Scm.Plugin.Unified/ScmPluginAdapter.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI.Scm.Plugin.Unified/ScmPluginAdapterFactory.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI.Scm.Plugin.Unified/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI.Scm.Plugin.Unified/obj/Debug/net10.0/StellaOps.AdvisoryAI.Scm.Plugin.Unified.AssemblyInfo.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI.Scm.Plugin.Unified/obj/Debug/net10.0/StellaOps.AdvisoryAI.Scm.Plugin.Unified.GlobalUsings.g.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI.Scm.Plugin.Unified/obj/Release/net10.0/StellaOps.AdvisoryAI.Scm.Plugin.Unified.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: 6
- Files with issues: 6
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/AdvisoryAI/StellaOps.AdvisoryAI.Scm.Plugin.Unified/ScmPluginAdapter.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI.Scm.Plugin.Unified/ScmPluginAdapterFactory.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI.Scm.Plugin.Unified/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI.Scm.Plugin.Unified/obj/Debug/net10.0/StellaOps.AdvisoryAI.Scm.Plugin.Unified.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI.Scm.Plugin.Unified/obj/Debug/net10.0/StellaOps.AdvisoryAI.Scm.Plugin.Unified.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI.Scm.Plugin.Unified/obj/Release/net10.0/StellaOps.AdvisoryAI.Scm.Plugin.Unified.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
## Testing Fullness Findings
- Status: PASS
- Expected layers (heuristic): Unit
- Detected test projects: src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/StellaOps.AdvisoryAI.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,70 @@
# Audit - StellaOps.AdvisoryAI.Scm.Plugin.Unified
## Project
- Path: src/AdvisoryAI/StellaOps.AdvisoryAI.Scm.Plugin.Unified/StellaOps.AdvisoryAI.Scm.Plugin.Unified.csproj
- Module: AdvisoryAI
- Kind: Plugin
- 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 true
- Deterministic: inherited true
- 100-line rule violations: 2
- 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/AdvisoryAI/StellaOps.AdvisoryAI.Scm.Plugin.Unified/ScmPluginAdapter.cs (349 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI.Scm.Plugin.Unified/ScmPluginAdapterFactory.cs (136 lines)
- Namespace issues:
- none
- Using directive issues:
- none
- Naming issues:
- none
- Async issues:
- src/AdvisoryAI/StellaOps.AdvisoryAI.Scm.Plugin.Unified/ScmPluginAdapter.cs: async method naming
- src/AdvisoryAI/StellaOps.AdvisoryAI.Scm.Plugin.Unified/ScmPluginAdapter.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: 2
- Files with issues: 2
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/AdvisoryAI/StellaOps.AdvisoryAI.Scm.Plugin.Unified/ScmPluginAdapter.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/AdvisoryAI/StellaOps.AdvisoryAI.Scm.Plugin.Unified/ScmPluginAdapterFactory.cs | FileLength>100 | Split file to stay <= 100 lines. |
## Testing Fullness Findings
- Status: PASS
- Expected layers (heuristic): Unit
- Detected test projects: src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/StellaOps.AdvisoryAI.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,132 @@
# Audit - StellaOps.AdvisoryAI.WebService
## Project
- Path: src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/StellaOps.AdvisoryAI.WebService.csproj
- Module: AdvisoryAI
- 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: 15
- Namespace violations: 26
- 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/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Program.cs (1317 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Contracts/ChatContracts.cs (399 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Contracts/ConsentContracts.cs (128 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Contracts/ExplainResponse.cs (158 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Contracts/JustifyContracts.cs (127 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Contracts/PolicyStudioContracts.cs (242 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Contracts/RemediationContracts.cs (236 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Endpoints/AttestationEndpoints.cs (332 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Endpoints/ChatEndpoints.cs (1225 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Endpoints/EvidencePackEndpoints.cs (897 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Endpoints/RunEndpoints.cs (908 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Services/AuthorizationService.cs (117 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Services/IAiConsentStore.cs (118 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Services/IAiJustificationGenerator.cs (222 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Services/RateLimitsService.cs (109 lines)
- Namespace issues:
- src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Contracts/AdvisoryExecuteRequest.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Contracts/AdvisoryOutputResponse.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Contracts/AdvisoryPlanRequest.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Contracts/AdvisoryPlanResponse.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Contracts/AdvisoryQueueRequest.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Contracts/AdvisoryQueueResponse.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Contracts/ChatContracts.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Contracts/ConsentContracts.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Contracts/ExplainRequest.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Contracts/ExplainResponse.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Contracts/JustifyContracts.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Contracts/PolicyStudioContracts.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Contracts/RemediationContracts.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Endpoints/AttestationEndpoints.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Endpoints/ChatEndpoints.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Endpoints/EvidencePackEndpoints.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Endpoints/RunEndpoints.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/obj/Debug/net10.0/StellaOps.AdvisoryAI.WebService.AssemblyInfo.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/obj/Debug/net10.0/StellaOps.AdvisoryAI.WebService.GlobalUsings.g.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/obj/Debug/net10.0/StellaOps.AdvisoryAI.WebService.MvcApplicationPartsAssemblyInfo.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/obj/Release/net10.0/StellaOps.AdvisoryAI.WebService.GlobalUsings.g.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Services/AuthorizationService.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Services/IAiConsentStore.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Services/IAiJustificationGenerator.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Services/RateLimitsService.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/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Program.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Contracts/AdvisoryExecuteRequest.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Contracts/AdvisoryOutputResponse.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Contracts/AdvisoryPlanRequest.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Contracts/AdvisoryPlanResponse.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Contracts/AdvisoryQueueRequest.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Contracts/AdvisoryQueueResponse.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Contracts/ChatContracts.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Contracts/ConsentContracts.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Contracts/ExplainRequest.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Contracts/ExplainResponse.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Contracts/JustifyContracts.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Contracts/PolicyStudioContracts.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Contracts/RemediationContracts.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Endpoints/AttestationEndpoints.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Endpoints/ChatEndpoints.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Endpoints/EvidencePackEndpoints.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Endpoints/RunEndpoints.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/obj/Debug/net10.0/StellaOps.AdvisoryAI.WebService.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/obj/Debug/net10.0/StellaOps.AdvisoryAI.WebService.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/obj/Debug/net10.0/StellaOps.AdvisoryAI.WebService.MvcApplicationPartsAssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/obj/Release/net10.0/StellaOps.AdvisoryAI.WebService.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Services/AuthorizationService.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Services/IAiConsentStore.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Services/IAiJustificationGenerator.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Services/RateLimitsService.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/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/StellaOps.AdvisoryAI.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,105 @@
# Audit - StellaOps.AdvisoryAI.WebService
## Project
- Path: src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/StellaOps.AdvisoryAI.WebService.csproj
- Module: AdvisoryAI
- Kind: Service
- Audit date (UTC): 2026-01-31
- Files scanned: 22
- Files with issues: 15
- File-level report: docs/implplan/audits/csproj-standards/file-audit.csv
## Coding Standards Findings
- Status: FAIL
- Nullable: enable
- TreatWarningsAsErrors: explicit true
- Deterministic: inherited true
- 100-line rule violations: 15
- Namespace violations: 1
- Using directive violations: 1
- Naming violations (interfaces/fields/const/async): 4
- Service locator usage (BuildServiceProvider/GetService): 4
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Program.cs (1318 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Contracts/ChatContracts.cs (400 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Contracts/ConsentContracts.cs (128 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Contracts/ExplainResponse.cs (158 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Contracts/JustifyContracts.cs (127 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Contracts/PolicyStudioContracts.cs (243 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Contracts/RemediationContracts.cs (237 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Endpoints/AttestationEndpoints.cs (332 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Endpoints/ChatEndpoints.cs (1226 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Endpoints/EvidencePackEndpoints.cs (898 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Endpoints/RunEndpoints.cs (909 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Services/AuthorizationService.cs (117 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Services/IAiConsentStore.cs (118 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Services/IAiJustificationGenerator.cs (222 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Services/RateLimitsService.cs (109 lines)
- Namespace issues:
- src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Program.cs: block-scoped namespace
- Using directive issues:
- src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Program.cs: using directives not sorted
- Naming issues:
- src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Endpoints/ChatEndpoints.cs: private field naming
- Async issues:
- src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Endpoints/AttestationEndpoints.cs: async method naming
- src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Endpoints/ChatEndpoints.cs: async method naming
- src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Endpoints/EvidencePackEndpoints.cs: async method naming
- Service locator matches:
- src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Endpoints/AttestationEndpoints.cs:90 var store = httpContext.RequestServices.GetService<IAiAttestationStore>();
- src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Endpoints/EvidencePackEndpoints.cs:231 var store = httpContext.RequestServices.GetService<IEvidencePackStore>();
- src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Endpoints/EvidencePackEndpoints.cs:313 var store = httpContext.RequestServices.GetService<IEvidencePackStore>();
- src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Endpoints/EvidencePackEndpoints.cs:345 var store = httpContext.RequestServices.GetService<IEvidencePackStore>();
- Assembly.LoadFrom matches:
- none
### Fix Guidance
- Align interface/field/const naming to standards.
- Move and sort using directives (outside namespace).
- Normalize namespaces to file-scoped StellaOps.<Area>.
- 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: 22
- Files with issues: 15
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Program.cs | FileLength>100; NamespaceNotFileScoped; UsingNotSorted | Convert to file-scoped namespace.; Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Contracts/ChatContracts.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Contracts/ConsentContracts.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Contracts/ExplainResponse.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Contracts/JustifyContracts.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Contracts/PolicyStudioContracts.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Contracts/RemediationContracts.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Endpoints/AttestationEndpoints.cs | AsyncNaming; FileLength>100; ServiceLocator | Remove service locator usage; use constructor injection.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Endpoints/ChatEndpoints.cs | AsyncNaming; FileLength>100; PrivateFieldNaming | Rename async methods to end with Async.; Rename private fields to _camelCase.; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Endpoints/EvidencePackEndpoints.cs | AsyncNaming; FileLength>100; ServiceLocator | Remove service locator usage; use constructor injection.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Endpoints/RunEndpoints.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Services/AuthorizationService.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Services/IAiConsentStore.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Services/IAiJustificationGenerator.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI.WebService/Services/RateLimitsService.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/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/StellaOps.AdvisoryAI.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,77 @@
# Audit - StellaOps.AdvisoryAI.Worker
## Project
- Path: src/AdvisoryAI/StellaOps.AdvisoryAI.Worker/StellaOps.AdvisoryAI.Worker.csproj
- Module: AdvisoryAI
- Kind: Library
- Audit date (UTC): 2026-01-30
- Files scanned: 8
- 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: 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/AdvisoryAI/StellaOps.AdvisoryAI.Worker/Services/AdvisoryTaskWorker.cs (158 lines)
- Namespace issues:
- src/AdvisoryAI/StellaOps.AdvisoryAI.Worker/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI.Worker/obj/Debug/net10.0/StellaOps.AdvisoryAI.Worker.AssemblyInfo.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI.Worker/obj/Debug/net10.0/StellaOps.AdvisoryAI.Worker.GlobalUsings.g.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI.Worker/obj/Release/net10.0/StellaOps.AdvisoryAI.Worker.GlobalUsings.g.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI.Worker/Services/AdvisoryTaskWorker.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI.Worker/Services/RetryJitterSource.cs: missing namespace
- Using directive issues:
- none
- Naming issues:
- none
- Async issues:
- none
- Service locator matches:
- none
- Assembly.LoadFrom matches:
- none
### Fix Guidance
- Normalize namespaces to file-scoped StellaOps.<Area>.
- Split files over 100 lines into smaller types or partials.
## File-Level Findings
- Status: FAIL
- Files scanned: 8
- Files with issues: 6
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/AdvisoryAI/StellaOps.AdvisoryAI.Worker/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI.Worker/obj/Debug/net10.0/StellaOps.AdvisoryAI.Worker.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI.Worker/obj/Debug/net10.0/StellaOps.AdvisoryAI.Worker.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI.Worker/obj/Release/net10.0/StellaOps.AdvisoryAI.Worker.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI.Worker/Services/AdvisoryTaskWorker.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI.Worker/Services/RetryJitterSource.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
## Testing Fullness Findings
- Status: PASS
- Expected layers (heuristic): Unit
- Detected test projects: src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/StellaOps.AdvisoryAI.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,69 @@
# Audit - StellaOps.AdvisoryAI.Worker
## Project
- Path: src/AdvisoryAI/StellaOps.AdvisoryAI.Worker/StellaOps.AdvisoryAI.Worker.csproj
- Module: AdvisoryAI
- Kind: Service
- Audit date (UTC): 2026-01-31
- Files scanned: 4
- 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): 1
- Service locator usage (BuildServiceProvider/GetService): 0
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/AdvisoryAI/StellaOps.AdvisoryAI.Worker/Services/AdvisoryTaskWorker.cs (159 lines)
- Namespace issues:
- none
- Using directive issues:
- src/AdvisoryAI/StellaOps.AdvisoryAI.Worker/Services/AdvisoryTaskWorker.cs: using directives inside namespace
- Naming issues:
- none
- Async issues:
- src/AdvisoryAI/StellaOps.AdvisoryAI.Worker/Services/AdvisoryTaskWorker.cs: async method naming
- 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: 4
- Files with issues: 1
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/AdvisoryAI/StellaOps.AdvisoryAI.Worker/Services/AdvisoryTaskWorker.cs | AsyncNaming; FileLength>100; UsingInsideNamespace | 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): E2E, Integration, Offline, Security, Unit
- Detected test projects: src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/StellaOps.AdvisoryAI.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,566 @@
# Audit - StellaOps.AdvisoryAI
## Project
- Path: src/AdvisoryAI/StellaOps.AdvisoryAI/StellaOps.AdvisoryAI.csproj
- Module: AdvisoryAI
- Kind: Library
- Audit date (UTC): 2026-01-30
- Files scanned: 187
- Files with issues: 186
- 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: 130
- Namespace violations: 186
- 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/AdvisoryAI/StellaOps.AdvisoryAI/Actions/ActionAuditLedger.cs (152 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Actions/ActionDefinition.cs (136 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Actions/ActionExecutor.cs (457 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Actions/ActionPolicyGate.cs (360 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Actions/ActionRegistry.cs (434 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Actions/ApprovalWorkflowAdapter.cs (276 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Actions/IActionAuditLedger.cs (277 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Actions/IActionExecutor.cs (350 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Actions/IActionPolicyGate.cs (359 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Actions/IApprovalWorkflowAdapter.cs (284 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Actions/IdempotencyHandler.cs (214 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Caching/IAdvisoryPlanCache.cs (173 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/ActionProposalParser.cs (290 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/AttestationIntegration.cs (349 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/ChatPromptAssembler.cs (271 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/ChatResponseStreamer.cs (489 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/ConversationContextBuilder.cs (378 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/ConversationService.cs (733 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/EvidencePackChatIntegration.cs (347 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/GroundingValidator.cs (602 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/OpsMemoryIntegration.cs (295 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/OpsMemoryLinkResolver.cs (148 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Assembly/DataProviders.cs (363 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Assembly/EvidenceBundleAssembler.cs (686 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Assembly/IEvidenceBundleAssembler.cs (152 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Assembly/Providers/BinaryPatchDataProvider.cs (123 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Assembly/Providers/ContextDataProvider.cs (111 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Assembly/Providers/FixDataProvider.cs (193 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Assembly/Providers/OpsMemoryDataProvider.cs (208 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Assembly/Providers/PolicyDataProvider.cs (125 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Assembly/Providers/ProvenanceDataProvider.cs (211 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Assembly/Providers/ReachabilityDataProvider.cs (170 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Assembly/Providers/SbomDataProvider.cs (211 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Assembly/Providers/VexDataProvider.cs (155 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Audit/AdvisoryChatAuditEnvelopeBuilder.cs (709 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/DependencyInjection/AdvisoryChatServiceCollectionExtensions.cs (203 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Inference/ClaudeInferenceClient.cs (343 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Inference/LocalInferenceClient.cs (319 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Inference/OllamaInferenceClient.cs (296 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Inference/OpenAIInferenceClient.cs (329 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Inference/SystemPromptLoader.cs (105 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Models/AdvisoryChatModels.cs (407 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Models/AdvisoryChatResponseModels.cs (331 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Options/AdvisoryChatOptions.cs (329 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Routing/AdvisoryChatIntentRouter.cs (463 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Services/AdvisoryChatQuotaService.cs (308 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Services/AdvisoryChatService.cs (896 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Services/PostgresAdvisoryChatAuditLogger.cs (531 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Settings/AdvisoryChatSettingsService.cs (204 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Settings/AdvisoryChatSettingsStore.cs (141 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Settings/AdvisoryChatToolPolicy.cs (235 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chunking/CsafDocumentChunker.cs (279 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chunking/OpenVexDocumentChunker.cs (200 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chunking/OsvDocumentChunker.cs (139 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Context/SbomContextResult.cs (190 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/DependencyInjection/ToolsetServiceCollectionExtensions.cs (106 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Execution/AdvisoryPipelineExecutor.cs (133 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Explanation/DefaultExplanationPromptService.cs (158 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Explanation/EvidenceAnchoredExplanationGenerator.cs (218 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Explanation/ExplanationPromptTemplates.cs (283 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Explanation/ExplanationResult.cs (143 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Explanation/IEvidenceRetrievalService.cs (123 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Guardrails/AdvisoryGuardrailPipeline.cs (382 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/AdvisoryInferenceClient.cs (216 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/ILocalLlmRuntime.cs (137 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlamaCppRuntime.cs (183 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmBenchmark.cs (309 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LocalInferenceOptions.cs (130 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LocalLlmConfig.cs (162 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/ModelBundle.cs (281 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/OnnxRuntime.cs (139 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/ProviderBasedAdvisoryInferenceClient.cs (236 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/SignedModelBundleManager.cs (398 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmProviders/ClaudeLlmProvider.cs (568 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmProviders/GeminiLlmProvider.cs (576 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmProviders/ILlmProvider.cs (179 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmProviders/ILlmProviderPlugin.cs (249 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmProviders/LlamaServerLlmProvider.cs (593 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmProviders/LlmInferenceCache.cs (571 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmProviders/LlmProviderFactory.cs (362 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmProviders/LlmProviderOptions.cs (169 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmProviders/OllamaLlmProvider.cs (537 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmProviders/OpenAiLlmProvider.cs (591 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Metrics/AdvisoryPipelineMetrics.cs (111 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Orchestration/AdvisoryPipelineOptions.cs (160 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Orchestration/AdvisoryPipelineOrchestrator.cs (426 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Orchestration/AdvisoryPipelinePlanResponse.cs (111 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Outputs/AdvisoryOutputStore.cs (179 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/PolicyStudio/AiPolicyIntentParser.cs (278 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/PolicyStudio/IPolicyRuleGenerator.cs (181 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/PolicyStudio/ITestCaseSynthesizer.cs (171 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/PolicyStudio/LatticeRuleGenerator.cs (269 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/PolicyStudio/NullPolicyIntentParser.cs (115 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/PolicyStudio/PolicyBundleCompiler.cs (774 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/PolicyStudio/PolicyIntent.cs (197 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/PolicyStudio/PropertyBasedTestSynthesizer.cs (327 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Prompting/AdvisoryPromptAssembler.cs (391 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Providers/ConcelierAdvisoryDocumentProvider.cs (126 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Providers/ExcititorVexDocumentProvider.cs (203 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Providers/ISbomContextClient.cs (197 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Providers/SbomContextHttpClient.cs (235 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/AiRemediationPlanner.cs (365 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/AzureDevOpsPullRequestGenerator.cs (143 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/GitHubPullRequestGenerator.cs (311 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/GitLabMergeRequestGenerator.cs (122 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/IPullRequestGenerator.cs (225 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/NullRemediationPlanner.cs (101 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/PrTemplateBuilder.cs (326 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/RemediationDeltaService.cs (325 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/RemediationPlan.cs (225 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/ScmConnector/AzureDevOpsScmConnector.cs (387 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/ScmConnector/GiteaScmConnector.cs (328 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/ScmConnector/GitHubScmConnector.cs (324 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/ScmConnector/GitLabScmConnector.cs (336 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/ScmConnector/IScmConnector.cs (273 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/ScmConnector/ScmConnectorBase.cs (160 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/ScmConnector/ScmConnectorCatalog.cs (190 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Replay/AIArtifactReplayer.cs (462 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Retrievers/SbomContextRetriever.cs (210 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Runs/InMemoryRunStore.cs (162 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Runs/IRunService.cs (430 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Runs/IRunStore.cs (105 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Runs/RunService.cs (724 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Runs/Models/Run.cs (279 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Runs/Models/RunArtifact.cs (183 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Runs/Models/RunEvent.cs (429 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Storage/ConversationStore.cs (377 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Tools/DeterministicToolset.cs (383 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Tools/SemanticVersion.cs (257 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Tools/SemanticVersionRange.cs (122 lines)
- Namespace issues:
- src/AdvisoryAI/StellaOps.AdvisoryAI/Abstractions/AdvisoryRetrievalRequest.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Abstractions/AdvisoryRetrievalResult.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Abstractions/IAdvisoryDocumentProvider.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Abstractions/IAdvisoryStructuredRetriever.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Abstractions/IAdvisoryVectorRetriever.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Abstractions/ISbomContextRetriever.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Abstractions/SbomContextRequest.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Actions/ActionAuditLedger.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Actions/ActionDefinition.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Actions/ActionExecutor.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Actions/ActionPolicyGate.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Actions/ActionRegistry.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Actions/ApprovalWorkflowAdapter.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Actions/IActionAuditLedger.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Actions/IActionExecutor.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Actions/IActionPolicyGate.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Actions/IActionRegistry.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Actions/IApprovalWorkflowAdapter.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Actions/IdempotencyHandler.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Actions/IGuidGenerator.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Actions/IIdempotencyHandler.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Caching/IAdvisoryPlanCache.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/ActionProposalParser.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/AttestationIntegration.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/ChatPromptAssembler.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/ChatResponseStreamer.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/ConversationContextBuilder.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/ConversationService.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/EvidencePackChatIntegration.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/GroundingValidator.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/OpsMemoryIntegration.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/OpsMemoryLinkResolver.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Assembly/DataProviders.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Assembly/EvidenceBundleAssembler.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Assembly/IEvidenceBundleAssembler.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Assembly/Providers/BinaryPatchDataProvider.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Assembly/Providers/ContextDataProvider.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Assembly/Providers/FixDataProvider.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Assembly/Providers/OpsMemoryDataProvider.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Assembly/Providers/PolicyDataProvider.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Assembly/Providers/ProvenanceDataProvider.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Assembly/Providers/ReachabilityDataProvider.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Assembly/Providers/SbomDataProvider.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Assembly/Providers/VexDataProvider.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Audit/AdvisoryChatAuditEnvelopeBuilder.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Audit/ChatAuditRecords.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/DependencyInjection/AdvisoryChatServiceCollectionExtensions.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Inference/ClaudeInferenceClient.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Inference/IAdvisoryChatInferenceClient.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Inference/LocalInferenceClient.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Inference/OllamaInferenceClient.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Inference/OpenAIInferenceClient.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Inference/SystemPromptLoader.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Models/AdvisoryChatModels.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Models/AdvisoryChatResponseModels.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Options/AdvisoryChatOptions.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Routing/AdvisoryChatIntentRouter.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Services/AdvisoryChatQuotaService.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Services/AdvisoryChatService.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Services/LocalChatInferenceClient.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Services/NullAdvisoryChatAuditLogger.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Services/PostgresAdvisoryChatAuditLogger.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Settings/AdvisoryChatSettingsModels.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Settings/AdvisoryChatSettingsService.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Settings/AdvisoryChatSettingsStore.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Settings/AdvisoryChatToolPolicy.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chunking/CsafDocumentChunker.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chunking/DocumentChunkerFactory.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chunking/IDocumentChunker.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chunking/JsonElementExtensions.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chunking/MarkdownDocumentChunker.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chunking/OpenVexDocumentChunker.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chunking/OsvDocumentChunker.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Context/SbomContextResult.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/DependencyInjection/ActionsServiceCollectionExtensions.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/DependencyInjection/SbomContextServiceCollectionExtensions.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/DependencyInjection/ToolsetServiceCollectionExtensions.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Diagnostics/AdvisoryAiActivitySource.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Documents/AdvisoryChunk.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Documents/AdvisoryDocument.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Documents/DocumentFormat.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Documents/DocumentFormatMapper.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Evidence/NullEvidencePackSigner.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Execution/AdvisoryPipelineExecutor.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Explanation/DefaultExplanationPromptService.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Explanation/EvidenceAnchoredExplanationGenerator.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Explanation/ExplanationPromptTemplates.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Explanation/ExplanationRequest.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Explanation/ExplanationResult.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Explanation/IEvidenceRetrievalService.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Explanation/IExplanationGenerator.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Explanation/IExplanationRequestStore.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Explanation/InMemoryExplanationStore.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Explanation/NullCitationExtractor.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Explanation/NullEvidenceRetrievalService.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Explanation/NullExplanationInferenceClient.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Guardrails/AdvisoryGuardrailPipeline.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/AdvisoryInferenceClient.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/ILocalLlmRuntime.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlamaCppRuntime.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmBenchmark.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LocalInferenceOptions.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LocalLlmConfig.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/ModelBundle.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/OnnxRuntime.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/ProviderBasedAdvisoryInferenceClient.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/SignedModelBundleManager.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmProviders/ClaudeLlmProvider.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmProviders/GeminiLlmProvider.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmProviders/ILlmProvider.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmProviders/ILlmProviderPlugin.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmProviders/LlamaServerLlmProvider.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmProviders/LlmInferenceCache.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmProviders/LlmProviderFactory.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmProviders/LlmProviderOptions.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmProviders/OllamaLlmProvider.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmProviders/OpenAiLlmProvider.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Metrics/AdvisoryPipelineMetrics.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/obj/Debug/net10.0/StellaOps.AdvisoryAI.AssemblyInfo.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/obj/Debug/net10.0/StellaOps.AdvisoryAI.GlobalUsings.g.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/obj/Release/net10.0/StellaOps.AdvisoryAI.GlobalUsings.g.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Orchestration/AdvisoryPipelineOptions.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Orchestration/AdvisoryPipelineOrchestrator.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Orchestration/AdvisoryPipelinePlanResponse.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Orchestration/AdvisoryTaskPlan.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Orchestration/AdvisoryTaskRequest.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Orchestration/AdvisoryTaskType.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Orchestration/IAdvisoryPipelineOrchestrator.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Outputs/AdvisoryOutputStore.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/PolicyStudio/AiPolicyIntentParser.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/PolicyStudio/InMemoryPolicyIntentStore.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/PolicyStudio/IPolicyIntentParser.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/PolicyStudio/IPolicyRuleGenerator.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/PolicyStudio/ITestCaseSynthesizer.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/PolicyStudio/LatticeRuleGenerator.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/PolicyStudio/NullPolicyIntentParser.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/PolicyStudio/PolicyBundleCompiler.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/PolicyStudio/PolicyIntent.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/PolicyStudio/PropertyBasedTestSynthesizer.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Prompting/AdvisoryPromptAssembler.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Providers/ConcelierAdvisoryDocumentProvider.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Providers/ExcititorVexDocumentProvider.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Providers/ISbomContextClient.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Providers/NullAdvisoryDocumentProvider.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Providers/NullSbomContextClient.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Providers/SbomContextClientOptions.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Providers/SbomContextHttpClient.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Queue/IAdvisoryTaskQueue.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/AiRemediationPlanner.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/AzureDevOpsPullRequestGenerator.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/GitHubPullRequestGenerator.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/GitLabMergeRequestGenerator.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/IPackageVersionResolver.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/IPullRequestGenerator.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/IRemediationPlanner.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/NullRemediationPlanner.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/PrTemplateBuilder.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/RemediationDeltaService.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/RemediationPlan.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/RemediationPlanRequest.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/ScmConnector/AzureDevOpsScmConnector.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/ScmConnector/GiteaScmConnector.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/ScmConnector/GitHubScmConnector.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/ScmConnector/GitLabScmConnector.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/ScmConnector/IScmConnector.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/ScmConnector/ScmConnectorBase.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/ScmConnector/ScmConnectorCatalog.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Replay/AIArtifactReplayer.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Retrievers/AdvisoryStructuredRetriever.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Retrievers/AdvisoryVectorRetriever.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Retrievers/SbomContextRetriever.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Runs/InMemoryRunStore.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Runs/IRunService.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Runs/IRunStore.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Runs/RunService.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Runs/Models/Run.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Runs/Models/RunArtifact.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Runs/Models/RunEvent.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Storage/ConversationStore.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Tools/DependencyAnalysisResult.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Tools/DeterministicToolset.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Tools/IDeterministicToolset.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Tools/SemanticVersion.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Tools/SemanticVersionRange.cs: missing namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Vectorization/DeterministicHashVectorEncoder.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: 187
- Files with issues: 186
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Abstractions/AdvisoryRetrievalRequest.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Abstractions/AdvisoryRetrievalResult.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Abstractions/IAdvisoryDocumentProvider.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Abstractions/IAdvisoryStructuredRetriever.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Abstractions/IAdvisoryVectorRetriever.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Abstractions/ISbomContextRetriever.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Abstractions/SbomContextRequest.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Actions/ActionAuditLedger.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Actions/ActionDefinition.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Actions/ActionExecutor.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Actions/ActionPolicyGate.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Actions/ActionRegistry.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Actions/ApprovalWorkflowAdapter.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Actions/IActionAuditLedger.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Actions/IActionExecutor.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Actions/IActionPolicyGate.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Actions/IActionRegistry.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Actions/IApprovalWorkflowAdapter.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Actions/IdempotencyHandler.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Actions/IGuidGenerator.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Actions/IIdempotencyHandler.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Caching/IAdvisoryPlanCache.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/ActionProposalParser.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/AttestationIntegration.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/ChatPromptAssembler.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/ChatResponseStreamer.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/ConversationContextBuilder.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/ConversationService.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/EvidencePackChatIntegration.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/GroundingValidator.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/OpsMemoryIntegration.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/OpsMemoryLinkResolver.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Assembly/DataProviders.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Assembly/EvidenceBundleAssembler.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Assembly/IEvidenceBundleAssembler.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Assembly/Providers/BinaryPatchDataProvider.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Assembly/Providers/ContextDataProvider.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Assembly/Providers/FixDataProvider.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Assembly/Providers/OpsMemoryDataProvider.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Assembly/Providers/PolicyDataProvider.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Assembly/Providers/ProvenanceDataProvider.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Assembly/Providers/ReachabilityDataProvider.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Assembly/Providers/SbomDataProvider.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Assembly/Providers/VexDataProvider.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Audit/AdvisoryChatAuditEnvelopeBuilder.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Audit/ChatAuditRecords.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/DependencyInjection/AdvisoryChatServiceCollectionExtensions.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Inference/ClaudeInferenceClient.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Inference/IAdvisoryChatInferenceClient.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Inference/LocalInferenceClient.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Inference/OllamaInferenceClient.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Inference/OpenAIInferenceClient.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Inference/SystemPromptLoader.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Models/AdvisoryChatModels.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Models/AdvisoryChatResponseModels.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Options/AdvisoryChatOptions.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Routing/AdvisoryChatIntentRouter.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Services/AdvisoryChatQuotaService.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Services/AdvisoryChatService.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Services/LocalChatInferenceClient.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Services/NullAdvisoryChatAuditLogger.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Services/PostgresAdvisoryChatAuditLogger.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Settings/AdvisoryChatSettingsModels.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Settings/AdvisoryChatSettingsService.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Settings/AdvisoryChatSettingsStore.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Settings/AdvisoryChatToolPolicy.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chunking/CsafDocumentChunker.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chunking/DocumentChunkerFactory.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chunking/IDocumentChunker.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chunking/JsonElementExtensions.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chunking/MarkdownDocumentChunker.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chunking/OpenVexDocumentChunker.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chunking/OsvDocumentChunker.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Context/SbomContextResult.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/DependencyInjection/ActionsServiceCollectionExtensions.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI/DependencyInjection/SbomContextServiceCollectionExtensions.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI/DependencyInjection/ToolsetServiceCollectionExtensions.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Diagnostics/AdvisoryAiActivitySource.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Documents/AdvisoryChunk.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Documents/AdvisoryDocument.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Documents/DocumentFormat.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Documents/DocumentFormatMapper.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Evidence/NullEvidencePackSigner.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Execution/AdvisoryPipelineExecutor.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Explanation/DefaultExplanationPromptService.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Explanation/EvidenceAnchoredExplanationGenerator.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Explanation/ExplanationPromptTemplates.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Explanation/ExplanationRequest.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Explanation/ExplanationResult.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Explanation/IEvidenceRetrievalService.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Explanation/IExplanationGenerator.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Explanation/IExplanationRequestStore.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Explanation/InMemoryExplanationStore.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Explanation/NullCitationExtractor.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Explanation/NullEvidenceRetrievalService.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Explanation/NullExplanationInferenceClient.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Guardrails/AdvisoryGuardrailPipeline.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/AdvisoryInferenceClient.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/ILocalLlmRuntime.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlamaCppRuntime.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmBenchmark.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LocalInferenceOptions.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LocalLlmConfig.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/ModelBundle.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/OnnxRuntime.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/ProviderBasedAdvisoryInferenceClient.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/SignedModelBundleManager.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmProviders/ClaudeLlmProvider.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmProviders/GeminiLlmProvider.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmProviders/ILlmProvider.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmProviders/ILlmProviderPlugin.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmProviders/LlamaServerLlmProvider.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmProviders/LlmInferenceCache.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmProviders/LlmProviderFactory.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmProviders/LlmProviderOptions.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmProviders/OllamaLlmProvider.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmProviders/OpenAiLlmProvider.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Metrics/AdvisoryPipelineMetrics.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI/obj/Debug/net10.0/StellaOps.AdvisoryAI.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI/obj/Debug/net10.0/StellaOps.AdvisoryAI.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI/obj/Release/net10.0/StellaOps.AdvisoryAI.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Orchestration/AdvisoryPipelineOptions.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Orchestration/AdvisoryPipelineOrchestrator.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Orchestration/AdvisoryPipelinePlanResponse.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Orchestration/AdvisoryTaskPlan.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Orchestration/AdvisoryTaskRequest.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Orchestration/AdvisoryTaskType.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Orchestration/IAdvisoryPipelineOrchestrator.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Outputs/AdvisoryOutputStore.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/PolicyStudio/AiPolicyIntentParser.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/PolicyStudio/InMemoryPolicyIntentStore.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI/PolicyStudio/IPolicyIntentParser.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI/PolicyStudio/IPolicyRuleGenerator.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/PolicyStudio/ITestCaseSynthesizer.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/PolicyStudio/LatticeRuleGenerator.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/PolicyStudio/NullPolicyIntentParser.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/PolicyStudio/PolicyBundleCompiler.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/PolicyStudio/PolicyIntent.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/PolicyStudio/PropertyBasedTestSynthesizer.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Prompting/AdvisoryPromptAssembler.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Providers/ConcelierAdvisoryDocumentProvider.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Providers/ExcititorVexDocumentProvider.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Providers/ISbomContextClient.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Providers/NullAdvisoryDocumentProvider.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Providers/NullSbomContextClient.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Providers/SbomContextClientOptions.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Providers/SbomContextHttpClient.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Queue/IAdvisoryTaskQueue.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/AiRemediationPlanner.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/AzureDevOpsPullRequestGenerator.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/GitHubPullRequestGenerator.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/GitLabMergeRequestGenerator.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/IPackageVersionResolver.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/IPullRequestGenerator.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/IRemediationPlanner.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/NullRemediationPlanner.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/PrTemplateBuilder.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/RemediationDeltaService.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/RemediationPlan.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/RemediationPlanRequest.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/ScmConnector/AzureDevOpsScmConnector.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/ScmConnector/GiteaScmConnector.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/ScmConnector/GitHubScmConnector.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/ScmConnector/GitLabScmConnector.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/ScmConnector/IScmConnector.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/ScmConnector/ScmConnectorBase.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/ScmConnector/ScmConnectorCatalog.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Replay/AIArtifactReplayer.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Retrievers/AdvisoryStructuredRetriever.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Retrievers/AdvisoryVectorRetriever.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Retrievers/SbomContextRetriever.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Runs/InMemoryRunStore.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Runs/IRunService.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Runs/IRunStore.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Runs/RunService.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Runs/Models/Run.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Runs/Models/RunArtifact.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Runs/Models/RunEvent.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Storage/ConversationStore.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Tools/DependencyAnalysisResult.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Tools/DeterministicToolset.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Tools/IDeterministicToolset.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Tools/SemanticVersion.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Tools/SemanticVersionRange.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Vectorization/DeterministicHashVectorEncoder.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
## Testing Fullness Findings
- Status: PASS
- Expected layers (heuristic): Unit
- Detected test projects: src/__Tests/__Benchmarks/AdvisoryAI/StellaOps.Bench.AdvisoryAI.csproj [Performance] (no test attributes detected); src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/StellaOps.AdvisoryAI.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,461 @@
# Audit - StellaOps.AdvisoryAI
## Project
- Path: src/AdvisoryAI/StellaOps.AdvisoryAI/StellaOps.AdvisoryAI.csproj
- Module: AdvisoryAI
- Kind: Library
- Audit date (UTC): 2026-01-31
- Files scanned: 183
- Files with issues: 137
- 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: 130
- Namespace violations: 1
- Using directive violations: 19
- Naming violations (interfaces/fields/const/async): 93
- Service locator usage (BuildServiceProvider/GetService): 17
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/AdvisoryAI/StellaOps.AdvisoryAI/Actions/ActionAuditLedger.cs (153 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Actions/ActionDefinition.cs (136 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Actions/ActionExecutor.cs (458 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Actions/ActionPolicyGate.cs (361 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Actions/ActionRegistry.cs (434 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Actions/ApprovalWorkflowAdapter.cs (277 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Actions/IActionAuditLedger.cs (277 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Actions/IActionExecutor.cs (350 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Actions/IActionPolicyGate.cs (359 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Actions/IApprovalWorkflowAdapter.cs (284 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Actions/IdempotencyHandler.cs (215 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Caching/IAdvisoryPlanCache.cs (174 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/ActionProposalParser.cs (290 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/AttestationIntegration.cs (350 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/ChatPromptAssembler.cs (272 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/ChatResponseStreamer.cs (490 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/ConversationContextBuilder.cs (378 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/ConversationService.cs (734 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/EvidencePackChatIntegration.cs (348 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/GroundingValidator.cs (603 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/OpsMemoryIntegration.cs (296 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/OpsMemoryLinkResolver.cs (149 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Assembly/DataProviders.cs (363 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Assembly/EvidenceBundleAssembler.cs (687 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Assembly/IEvidenceBundleAssembler.cs (152 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Assembly/Providers/BinaryPatchDataProvider.cs (123 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Assembly/Providers/ContextDataProvider.cs (111 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Assembly/Providers/FixDataProvider.cs (193 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Assembly/Providers/OpsMemoryDataProvider.cs (208 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Assembly/Providers/PolicyDataProvider.cs (125 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Assembly/Providers/ProvenanceDataProvider.cs (211 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Assembly/Providers/ReachabilityDataProvider.cs (170 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Assembly/Providers/SbomDataProvider.cs (211 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Assembly/Providers/VexDataProvider.cs (155 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Audit/AdvisoryChatAuditEnvelopeBuilder.cs (710 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/DependencyInjection/AdvisoryChatServiceCollectionExtensions.cs (203 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Inference/ClaudeInferenceClient.cs (344 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Inference/LocalInferenceClient.cs (320 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Inference/OllamaInferenceClient.cs (297 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Inference/OpenAIInferenceClient.cs (330 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Inference/SystemPromptLoader.cs (106 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Models/AdvisoryChatModels.cs (407 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Models/AdvisoryChatResponseModels.cs (331 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Options/AdvisoryChatOptions.cs (330 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Routing/AdvisoryChatIntentRouter.cs (464 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Services/AdvisoryChatQuotaService.cs (308 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Services/AdvisoryChatService.cs (897 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Services/PostgresAdvisoryChatAuditLogger.cs (531 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Settings/AdvisoryChatSettingsService.cs (205 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Settings/AdvisoryChatSettingsStore.cs (141 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Settings/AdvisoryChatToolPolicy.cs (236 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chunking/CsafDocumentChunker.cs (280 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chunking/OpenVexDocumentChunker.cs (201 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chunking/OsvDocumentChunker.cs (140 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Context/SbomContextResult.cs (190 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/DependencyInjection/ToolsetServiceCollectionExtensions.cs (107 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Execution/AdvisoryPipelineExecutor.cs (134 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Explanation/DefaultExplanationPromptService.cs (158 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Explanation/EvidenceAnchoredExplanationGenerator.cs (218 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Explanation/ExplanationPromptTemplates.cs (283 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Explanation/ExplanationResult.cs (143 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Explanation/IEvidenceRetrievalService.cs (123 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Guardrails/AdvisoryGuardrailPipeline.cs (383 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/AdvisoryInferenceClient.cs (217 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/ILocalLlmRuntime.cs (137 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlamaCppRuntime.cs (184 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmBenchmark.cs (310 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LocalInferenceOptions.cs (130 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LocalLlmConfig.cs (162 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/ModelBundle.cs (282 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/OnnxRuntime.cs (140 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/ProviderBasedAdvisoryInferenceClient.cs (237 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/SignedModelBundleManager.cs (398 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmProviders/ClaudeLlmProvider.cs (569 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmProviders/GeminiLlmProvider.cs (577 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmProviders/ILlmProvider.cs (179 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmProviders/ILlmProviderPlugin.cs (250 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmProviders/LlamaServerLlmProvider.cs (594 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmProviders/LlmInferenceCache.cs (572 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmProviders/LlmProviderFactory.cs (362 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmProviders/LlmProviderOptions.cs (169 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmProviders/OllamaLlmProvider.cs (538 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmProviders/OpenAiLlmProvider.cs (592 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Metrics/AdvisoryPipelineMetrics.cs (112 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Orchestration/AdvisoryPipelineOptions.cs (160 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Orchestration/AdvisoryPipelineOrchestrator.cs (427 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Orchestration/AdvisoryPipelinePlanResponse.cs (112 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Outputs/AdvisoryOutputStore.cs (180 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/PolicyStudio/AiPolicyIntentParser.cs (278 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/PolicyStudio/IPolicyRuleGenerator.cs (181 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/PolicyStudio/ITestCaseSynthesizer.cs (171 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/PolicyStudio/LatticeRuleGenerator.cs (269 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/PolicyStudio/NullPolicyIntentParser.cs (115 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/PolicyStudio/PolicyBundleCompiler.cs (775 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/PolicyStudio/PolicyIntent.cs (197 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/PolicyStudio/PropertyBasedTestSynthesizer.cs (327 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Prompting/AdvisoryPromptAssembler.cs (392 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Providers/ConcelierAdvisoryDocumentProvider.cs (127 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Providers/ExcititorVexDocumentProvider.cs (204 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Providers/ISbomContextClient.cs (197 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Providers/SbomContextHttpClient.cs (236 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/AiRemediationPlanner.cs (365 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/AzureDevOpsPullRequestGenerator.cs (143 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/GitHubPullRequestGenerator.cs (312 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/GitLabMergeRequestGenerator.cs (122 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/IPullRequestGenerator.cs (225 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/NullRemediationPlanner.cs (101 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/PrTemplateBuilder.cs (326 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/RemediationDeltaService.cs (325 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/RemediationPlan.cs (225 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/ScmConnector/AzureDevOpsScmConnector.cs (387 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/ScmConnector/GiteaScmConnector.cs (328 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/ScmConnector/GitHubScmConnector.cs (324 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/ScmConnector/GitLabScmConnector.cs (336 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/ScmConnector/IScmConnector.cs (273 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/ScmConnector/ScmConnectorBase.cs (160 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/ScmConnector/ScmConnectorCatalog.cs (190 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Replay/AIArtifactReplayer.cs (463 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Retrievers/SbomContextRetriever.cs (211 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Runs/InMemoryRunStore.cs (162 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Runs/IRunService.cs (430 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Runs/IRunStore.cs (105 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Runs/RunService.cs (725 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Runs/Models/Run.cs (279 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Runs/Models/RunArtifact.cs (183 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Runs/Models/RunEvent.cs (429 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Storage/ConversationStore.cs (378 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Tools/DeterministicToolset.cs (384 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Tools/SemanticVersion.cs (257 lines)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Tools/SemanticVersionRange.cs (122 lines)
- Namespace issues:
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/DependencyInjection/AdvisoryChatServiceCollectionExtensions.cs: namespace not StellaOps.*
- Using directive issues:
- src/AdvisoryAI/StellaOps.AdvisoryAI/Actions/ApprovalWorkflowAdapter.cs: using directives inside namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Inference/ClaudeInferenceClient.cs: using directives inside namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Inference/OllamaInferenceClient.cs: using directives inside namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Inference/OpenAIInferenceClient.cs: using directives inside namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Inference/SystemPromptLoader.cs: using directives inside namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chunking/CsafDocumentChunker.cs: using directives inside namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chunking/OpenVexDocumentChunker.cs: using directives inside namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chunking/OsvDocumentChunker.cs: using directives inside namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/AdvisoryInferenceClient.cs: using directives inside namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlamaCppRuntime.cs: using directives inside namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/ModelBundle.cs: using directives inside namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/OnnxRuntime.cs: using directives inside namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmProviders/ClaudeLlmProvider.cs: using directives inside namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmProviders/GeminiLlmProvider.cs: using directives inside namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmProviders/LlamaServerLlmProvider.cs: using directives inside namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmProviders/LlmInferenceCache.cs: using directives inside namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmProviders/OllamaLlmProvider.cs: using directives inside namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmProviders/OpenAiLlmProvider.cs: using directives inside namespace
- src/AdvisoryAI/StellaOps.AdvisoryAI/Providers/SbomContextHttpClient.cs: using directives inside namespace
- Naming issues:
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/ChatResponseStreamer.cs: private field naming
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Inference/ClaudeInferenceClient.cs: private field naming
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Inference/OllamaInferenceClient.cs: private field naming
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Inference/OpenAIInferenceClient.cs: private field naming
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Options/AdvisoryChatOptions.cs: private field naming
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Settings/AdvisoryChatToolPolicy.cs: private field naming
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chunking/CsafDocumentChunker.cs: private field naming
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chunking/MarkdownDocumentChunker.cs: private field naming
- src/AdvisoryAI/StellaOps.AdvisoryAI/Explanation/NullEvidenceRetrievalService.cs: private field naming
- src/AdvisoryAI/StellaOps.AdvisoryAI/Guardrails/AdvisoryGuardrailPipeline.cs: private field naming
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/SignedModelBundleManager.cs: private field naming
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmProviders/LlmInferenceCache.cs: private field naming
- src/AdvisoryAI/StellaOps.AdvisoryAI/Orchestration/AdvisoryPipelineOptions.cs: private field naming
- src/AdvisoryAI/StellaOps.AdvisoryAI/PolicyStudio/AiPolicyIntentParser.cs: private field naming
- src/AdvisoryAI/StellaOps.AdvisoryAI/PolicyStudio/PolicyBundleCompiler.cs: private field naming
- src/AdvisoryAI/StellaOps.AdvisoryAI/Prompting/AdvisoryPromptAssembler.cs: private field naming
- src/AdvisoryAI/StellaOps.AdvisoryAI/Providers/ExcititorVexDocumentProvider.cs: private field naming
- src/AdvisoryAI/StellaOps.AdvisoryAI/Providers/SbomContextHttpClient.cs: private field naming
- src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/AzureDevOpsPullRequestGenerator.cs: private field naming
- src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/GitHubPullRequestGenerator.cs: private field naming
- src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/GitLabMergeRequestGenerator.cs: private field naming
- src/AdvisoryAI/StellaOps.AdvisoryAI/Storage/ConversationStore.cs: private field naming
- src/AdvisoryAI/StellaOps.AdvisoryAI/Tools/SemanticVersionRange.cs: private field naming
- src/AdvisoryAI/StellaOps.AdvisoryAI/Vectorization/DeterministicHashVectorEncoder.cs: private field naming
- Async issues:
- src/AdvisoryAI/StellaOps.AdvisoryAI/Actions/ActionExecutor.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Actions/ApprovalWorkflowAdapter.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Actions/IdempotencyHandler.cs: blocking async usage
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/AttestationIntegration.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Assembly/EvidenceBundleAssembler.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Assembly/Providers/BinaryPatchDataProvider.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Assembly/Providers/ContextDataProvider.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Assembly/Providers/FixDataProvider.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Assembly/Providers/OpsMemoryDataProvider.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Assembly/Providers/PolicyDataProvider.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Assembly/Providers/ProvenanceDataProvider.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Assembly/Providers/ReachabilityDataProvider.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Assembly/Providers/SbomDataProvider.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Assembly/Providers/VexDataProvider.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Inference/ClaudeInferenceClient.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Inference/LocalInferenceClient.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Inference/OllamaInferenceClient.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Inference/OpenAIInferenceClient.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Inference/SystemPromptLoader.cs: async method naming
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Inference/SystemPromptLoader.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Services/AdvisoryChatService.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Explanation/EvidenceAnchoredExplanationGenerator.cs: async method naming
- src/AdvisoryAI/StellaOps.AdvisoryAI/Explanation/EvidenceAnchoredExplanationGenerator.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlamaCppRuntime.cs: async method naming
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlamaCppRuntime.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmBenchmark.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/ModelBundle.cs: async method naming
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/ModelBundle.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/OnnxRuntime.cs: async method naming
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/OnnxRuntime.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/ProviderBasedAdvisoryInferenceClient.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/SignedModelBundleManager.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmProviders/ClaudeLlmProvider.cs: async method naming
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmProviders/ClaudeLlmProvider.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmProviders/GeminiLlmProvider.cs: async method naming
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmProviders/GeminiLlmProvider.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmProviders/LlamaServerLlmProvider.cs: async method naming
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmProviders/LlamaServerLlmProvider.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmProviders/LlmInferenceCache.cs: blocking async usage
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmProviders/LlmInferenceCache.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmProviders/LlmProviderFactory.cs: async method naming
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmProviders/LlmProviderFactory.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmProviders/OllamaLlmProvider.cs: async method naming
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmProviders/OllamaLlmProvider.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmProviders/OpenAiLlmProvider.cs: async method naming
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmProviders/OpenAiLlmProvider.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Orchestration/AdvisoryPipelineOrchestrator.cs: async method naming
- src/AdvisoryAI/StellaOps.AdvisoryAI/PolicyStudio/AiPolicyIntentParser.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/StellaOps.AdvisoryAI/PolicyStudio/PolicyBundleCompiler.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Providers/ConcelierAdvisoryDocumentProvider.cs: async method naming
- src/AdvisoryAI/StellaOps.AdvisoryAI/Providers/ExcititorVexDocumentProvider.cs: async method naming
- src/AdvisoryAI/StellaOps.AdvisoryAI/Providers/SbomContextHttpClient.cs: async method naming
- src/AdvisoryAI/StellaOps.AdvisoryAI/Queue/IAdvisoryTaskQueue.cs: async method naming
- src/AdvisoryAI/StellaOps.AdvisoryAI/Queue/IAdvisoryTaskQueue.cs: blocking async usage
- src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/AiRemediationPlanner.cs: async method naming
- src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/AiRemediationPlanner.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/GitHubPullRequestGenerator.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/RemediationDeltaService.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/ScmConnector/AzureDevOpsScmConnector.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/ScmConnector/GiteaScmConnector.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/ScmConnector/GitHubScmConnector.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/ScmConnector/GitLabScmConnector.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/ScmConnector/ScmConnectorBase.cs: async method naming
- src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/ScmConnector/ScmConnectorBase.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Replay/AIArtifactReplayer.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/StellaOps.AdvisoryAI/Retrievers/AdvisoryStructuredRetriever.cs: async method naming
- src/AdvisoryAI/StellaOps.AdvisoryAI/Retrievers/AdvisoryVectorRetriever.cs: async method naming
- src/AdvisoryAI/StellaOps.AdvisoryAI/Retrievers/SbomContextRetriever.cs: async method naming
- src/AdvisoryAI/StellaOps.AdvisoryAI/Runs/RunService.cs: async method naming
- Service locator matches:
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/DependencyInjection/AdvisoryChatServiceCollectionExtensions.cs:75 var options = sp.GetRequiredService<IOptions<AdvisoryChatOptions>>().Value;
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/DependencyInjection/AdvisoryChatServiceCollectionExtensions.cs:156 var options = sp.GetRequiredService<IOptions<AdvisoryChatOptions>>().Value;
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/DependencyInjection/AdvisoryChatServiceCollectionExtensions.cs:172 var options = sp.GetRequiredService<IOptions<AdvisoryChatOptions>>().Value;
- src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/DependencyInjection/AdvisoryChatServiceCollectionExtensions.cs:188 var options = sp.GetRequiredService<IOptions<AdvisoryChatOptions>>().Value;
- src/AdvisoryAI/StellaOps.AdvisoryAI/DependencyInjection/SbomContextServiceCollectionExtensions.cs:26 var options = serviceProvider.GetRequiredService<IOptions<SbomContextClientOptions>>().Value;
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmProviders/ClaudeLlmProvider.cs:156 var httpClientFactory = services.GetRequiredService<IHttpClientFactory>();
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmProviders/ClaudeLlmProvider.cs:157 var loggerFactory = services.GetRequiredService<ILoggerFactory>();
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmProviders/GeminiLlmProvider.cs:138 var httpClientFactory = services.GetRequiredService<IHttpClientFactory>();
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmProviders/GeminiLlmProvider.cs:139 var loggerFactory = services.GetRequiredService<ILoggerFactory>();
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmProviders/LlamaServerLlmProvider.cs:166 var httpClientFactory = services.GetRequiredService<IHttpClientFactory>();
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmProviders/LlamaServerLlmProvider.cs:167 var loggerFactory = services.GetRequiredService<ILoggerFactory>();
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmProviders/OllamaLlmProvider.cs:162 var httpClientFactory = services.GetRequiredService<IHttpClientFactory>();
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmProviders/OllamaLlmProvider.cs:163 var loggerFactory = services.GetRequiredService<ILoggerFactory>();
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmProviders/OpenAiLlmProvider.cs:156 var httpClientFactory = services.GetRequiredService<IHttpClientFactory>();
- src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmProviders/OpenAiLlmProvider.cs:157 var loggerFactory = services.GetRequiredService<ILoggerFactory>();
- src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/ScmConnector/ScmConnectorCatalog.cs:138 var httpClientFactory = sp.GetRequiredService<IHttpClientFactory>();
- src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/ScmConnector/ScmConnectorCatalog.cs:139 var plugins = sp.GetServices<IScmConnectorPlugin>();
- Assembly.LoadFrom matches:
- none
### Fix Guidance
- Align interface/field/const naming to standards.
- Move and sort using directives (outside namespace).
- Normalize namespaces to file-scoped StellaOps.<Area>.
- 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: 183
- Files with issues: 137
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Actions/ActionAuditLedger.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Actions/ActionDefinition.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Actions/ActionExecutor.cs | ConfigureAwaitMissing; FileLength>100 | Add ConfigureAwait(false) to awaited calls in library-like code.; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Actions/ActionPolicyGate.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Actions/ActionRegistry.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Actions/ApprovalWorkflowAdapter.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/AdvisoryAI/StellaOps.AdvisoryAI/Actions/IActionAuditLedger.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Actions/IActionExecutor.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Actions/IActionPolicyGate.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Actions/IApprovalWorkflowAdapter.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Actions/IdempotencyHandler.cs | BlockingAsync; FileLength>100 | Replace .Result/.Wait/GetAwaiter().GetResult() with await.; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Caching/IAdvisoryPlanCache.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/ActionProposalParser.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/AttestationIntegration.cs | ConfigureAwaitMissing; FileLength>100 | Add ConfigureAwait(false) to awaited calls in library-like code.; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/ChatPromptAssembler.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/ChatResponseStreamer.cs | FileLength>100; PrivateFieldNaming | Rename private fields to _camelCase.; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/ConversationContextBuilder.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/ConversationService.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/EvidencePackChatIntegration.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/GroundingValidator.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/OpsMemoryIntegration.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/OpsMemoryLinkResolver.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Assembly/DataProviders.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Assembly/EvidenceBundleAssembler.cs | ConfigureAwaitMissing; FileLength>100 | Add ConfigureAwait(false) to awaited calls in library-like code.; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Assembly/IEvidenceBundleAssembler.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Assembly/Providers/BinaryPatchDataProvider.cs | ConfigureAwaitMissing; FileLength>100 | Add ConfigureAwait(false) to awaited calls in library-like code.; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Assembly/Providers/ContextDataProvider.cs | ConfigureAwaitMissing; FileLength>100 | Add ConfigureAwait(false) to awaited calls in library-like code.; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Assembly/Providers/FixDataProvider.cs | ConfigureAwaitMissing; FileLength>100 | Add ConfigureAwait(false) to awaited calls in library-like code.; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Assembly/Providers/OpsMemoryDataProvider.cs | ConfigureAwaitMissing; FileLength>100 | Add ConfigureAwait(false) to awaited calls in library-like code.; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Assembly/Providers/PolicyDataProvider.cs | ConfigureAwaitMissing; FileLength>100 | Add ConfigureAwait(false) to awaited calls in library-like code.; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Assembly/Providers/ProvenanceDataProvider.cs | ConfigureAwaitMissing; FileLength>100 | Add ConfigureAwait(false) to awaited calls in library-like code.; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Assembly/Providers/ReachabilityDataProvider.cs | ConfigureAwaitMissing; FileLength>100 | Add ConfigureAwait(false) to awaited calls in library-like code.; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Assembly/Providers/SbomDataProvider.cs | ConfigureAwaitMissing; FileLength>100 | Add ConfigureAwait(false) to awaited calls in library-like code.; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Assembly/Providers/VexDataProvider.cs | ConfigureAwaitMissing; FileLength>100 | Add ConfigureAwait(false) to awaited calls in library-like code.; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Audit/AdvisoryChatAuditEnvelopeBuilder.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/DependencyInjection/AdvisoryChatServiceCollectionExtensions.cs | FileLength>100; NamespaceNotStellaOps; ServiceLocator | Remove service locator usage; use constructor injection.; Split file to stay <= 100 lines.; Update namespace to StellaOps.<Area>. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Inference/ClaudeInferenceClient.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/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Inference/LocalInferenceClient.cs | ConfigureAwaitMissing; FileLength>100 | Add ConfigureAwait(false) to awaited calls in library-like code.; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Inference/OllamaInferenceClient.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/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Inference/OpenAIInferenceClient.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/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Inference/SystemPromptLoader.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/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Models/AdvisoryChatModels.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Models/AdvisoryChatResponseModels.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Options/AdvisoryChatOptions.cs | FileLength>100; PrivateFieldNaming | Rename private fields to _camelCase.; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Routing/AdvisoryChatIntentRouter.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Services/AdvisoryChatQuotaService.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Services/AdvisoryChatService.cs | ConfigureAwaitMissing; FileLength>100 | Add ConfigureAwait(false) to awaited calls in library-like code.; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Services/PostgresAdvisoryChatAuditLogger.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Settings/AdvisoryChatSettingsService.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Settings/AdvisoryChatSettingsStore.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chat/Settings/AdvisoryChatToolPolicy.cs | FileLength>100; PrivateFieldNaming | Rename private fields to _camelCase.; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chunking/CsafDocumentChunker.cs | FileLength>100; PrivateFieldNaming; UsingInsideNamespace | Move using directives outside namespace.; Rename private fields to _camelCase.; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chunking/MarkdownDocumentChunker.cs | PrivateFieldNaming | Rename private fields to _camelCase. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chunking/OpenVexDocumentChunker.cs | FileLength>100; UsingInsideNamespace | Move using directives outside namespace.; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Chunking/OsvDocumentChunker.cs | FileLength>100; UsingInsideNamespace | Move using directives outside namespace.; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Context/SbomContextResult.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/DependencyInjection/SbomContextServiceCollectionExtensions.cs | ServiceLocator | Remove service locator usage; use constructor injection. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/DependencyInjection/ToolsetServiceCollectionExtensions.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Execution/AdvisoryPipelineExecutor.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Explanation/DefaultExplanationPromptService.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Explanation/EvidenceAnchoredExplanationGenerator.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/AdvisoryAI/StellaOps.AdvisoryAI/Explanation/ExplanationPromptTemplates.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Explanation/ExplanationResult.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Explanation/IEvidenceRetrievalService.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Explanation/NullEvidenceRetrievalService.cs | PrivateFieldNaming | Rename private fields to _camelCase. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Guardrails/AdvisoryGuardrailPipeline.cs | FileLength>100; PrivateFieldNaming | Rename private fields to _camelCase.; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/AdvisoryInferenceClient.cs | FileLength>100; UsingInsideNamespace | Move using directives outside namespace.; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/ILocalLlmRuntime.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlamaCppRuntime.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/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmBenchmark.cs | ConfigureAwaitMissing; FileLength>100 | Add ConfigureAwait(false) to awaited calls in library-like code.; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LocalInferenceOptions.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LocalLlmConfig.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/ModelBundle.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/AdvisoryAI/StellaOps.AdvisoryAI/Inference/OnnxRuntime.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/AdvisoryAI/StellaOps.AdvisoryAI/Inference/ProviderBasedAdvisoryInferenceClient.cs | ConfigureAwaitMissing; FileLength>100 | Add ConfigureAwait(false) to awaited calls in library-like code.; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/SignedModelBundleManager.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/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmProviders/ClaudeLlmProvider.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; ServiceLocator; UsingInsideNamespace | 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.; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmProviders/GeminiLlmProvider.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; ServiceLocator; UsingInsideNamespace | 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.; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmProviders/ILlmProvider.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmProviders/ILlmProviderPlugin.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmProviders/LlamaServerLlmProvider.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; ServiceLocator; UsingInsideNamespace | 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.; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmProviders/LlmInferenceCache.cs | BlockingAsync; 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.; Replace .Result/.Wait/GetAwaiter().GetResult() with await.; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmProviders/LlmProviderFactory.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/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmProviders/LlmProviderOptions.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmProviders/OllamaLlmProvider.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; ServiceLocator; UsingInsideNamespace | 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.; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Inference/LlmProviders/OpenAiLlmProvider.cs | AsyncNaming; ConfigureAwaitMissing; FileLength>100; ServiceLocator; UsingInsideNamespace | 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.; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Metrics/AdvisoryPipelineMetrics.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Orchestration/AdvisoryPipelineOptions.cs | FileLength>100; PrivateFieldNaming | Rename private fields to _camelCase.; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Orchestration/AdvisoryPipelineOrchestrator.cs | AsyncNaming; FileLength>100 | Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Orchestration/AdvisoryPipelinePlanResponse.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Outputs/AdvisoryOutputStore.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/PolicyStudio/AiPolicyIntentParser.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/AdvisoryAI/StellaOps.AdvisoryAI/PolicyStudio/IPolicyRuleGenerator.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/PolicyStudio/ITestCaseSynthesizer.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/PolicyStudio/LatticeRuleGenerator.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/PolicyStudio/NullPolicyIntentParser.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/PolicyStudio/PolicyBundleCompiler.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/AdvisoryAI/StellaOps.AdvisoryAI/PolicyStudio/PolicyIntent.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/PolicyStudio/PropertyBasedTestSynthesizer.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Prompting/AdvisoryPromptAssembler.cs | FileLength>100; PrivateFieldNaming | Rename private fields to _camelCase.; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Providers/ConcelierAdvisoryDocumentProvider.cs | AsyncNaming; FileLength>100 | Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Providers/ExcititorVexDocumentProvider.cs | AsyncNaming; FileLength>100; PrivateFieldNaming | Rename async methods to end with Async.; Rename private fields to _camelCase.; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Providers/ISbomContextClient.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Providers/SbomContextHttpClient.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/AdvisoryAI/StellaOps.AdvisoryAI/Queue/IAdvisoryTaskQueue.cs | AsyncNaming; BlockingAsync | Rename async methods to end with Async.; Replace .Result/.Wait/GetAwaiter().GetResult() with await. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/AiRemediationPlanner.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/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/AzureDevOpsPullRequestGenerator.cs | FileLength>100; PrivateFieldNaming | Rename private fields to _camelCase.; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/GitHubPullRequestGenerator.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/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/GitLabMergeRequestGenerator.cs | FileLength>100; PrivateFieldNaming | Rename private fields to _camelCase.; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/IPullRequestGenerator.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/NullRemediationPlanner.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/PrTemplateBuilder.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/RemediationDeltaService.cs | ConfigureAwaitMissing; FileLength>100 | Add ConfigureAwait(false) to awaited calls in library-like code.; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/RemediationPlan.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/ScmConnector/AzureDevOpsScmConnector.cs | ConfigureAwaitMissing; FileLength>100 | Add ConfigureAwait(false) to awaited calls in library-like code.; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/ScmConnector/GiteaScmConnector.cs | ConfigureAwaitMissing; FileLength>100 | Add ConfigureAwait(false) to awaited calls in library-like code.; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/ScmConnector/GitHubScmConnector.cs | ConfigureAwaitMissing; FileLength>100 | Add ConfigureAwait(false) to awaited calls in library-like code.; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/ScmConnector/GitLabScmConnector.cs | ConfigureAwaitMissing; FileLength>100 | Add ConfigureAwait(false) to awaited calls in library-like code.; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/ScmConnector/IScmConnector.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/ScmConnector/ScmConnectorBase.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/AdvisoryAI/StellaOps.AdvisoryAI/Remediation/ScmConnector/ScmConnectorCatalog.cs | FileLength>100; ServiceLocator | Remove service locator usage; use constructor injection.; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Replay/AIArtifactReplayer.cs | ConfigureAwaitMissing; FileLength>100 | Add ConfigureAwait(false) to awaited calls in library-like code.; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Retrievers/AdvisoryStructuredRetriever.cs | AsyncNaming | Rename async methods to end with Async. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Retrievers/AdvisoryVectorRetriever.cs | AsyncNaming | Rename async methods to end with Async. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Retrievers/SbomContextRetriever.cs | AsyncNaming; FileLength>100 | Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Runs/InMemoryRunStore.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Runs/IRunService.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Runs/IRunStore.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Runs/RunService.cs | AsyncNaming; FileLength>100 | Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Runs/Models/Run.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Runs/Models/RunArtifact.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Runs/Models/RunEvent.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Storage/ConversationStore.cs | FileLength>100; PrivateFieldNaming | Rename private fields to _camelCase.; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Tools/DeterministicToolset.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Tools/SemanticVersion.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Tools/SemanticVersionRange.cs | FileLength>100; PrivateFieldNaming | Rename private fields to _camelCase.; Split file to stay <= 100 lines. |
| src/AdvisoryAI/StellaOps.AdvisoryAI/Vectorization/DeterministicHashVectorEncoder.cs | PrivateFieldNaming | Rename private fields to _camelCase. |
## Testing Fullness Findings
- Status: PASS
- Expected layers (heuristic): Unit
- Detected test projects: src/__Tests/__Benchmarks/AdvisoryAI/StellaOps.Bench.AdvisoryAI.csproj [Performance] (no test attributes detected); src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/StellaOps.AdvisoryAI.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,383 @@
# Audit - StellaOps.AdvisoryAI.Tests
## Project
- Path: src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/StellaOps.AdvisoryAI.Tests.csproj
- Module: AdvisoryAI
- Kind: Test
- Audit date (UTC): 2026-01-31
- Files scanned: 67
- Files with issues: 65
- 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: 50
- Namespace violations: 0
- Using directive violations: 67
- Naming violations (interfaces/fields/const/async): 114
- Service locator usage (BuildServiceProvider/GetService): 22
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/AdvisoryGuardrailInjectionTests.cs (220 lines)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/AdvisoryGuardrailOptionsBindingTests.cs (130 lines)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/AdvisoryGuardrailPerformanceTests.cs (145 lines)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/AdvisoryPipelineExecutorTests.cs (378 lines)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/AdvisoryPipelineOrchestratorTests.cs (490 lines)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/AdvisoryPlanCacheTests.cs (179 lines)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/AdvisoryPromptAssemblerTests.cs (230 lines)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/AdvisoryStructuredRetrieverTests.cs (153 lines)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/ExcititorVexDocumentProviderTests.cs (151 lines)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/ExplanationGeneratorIntegrationTests.cs (547 lines)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/ExplanationReplayGoldenTests.cs (501 lines)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/FileSystemAdvisoryOutputStoreTests.cs (110 lines)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/FileSystemAdvisoryPersistenceTests.cs (185 lines)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/FileSystemAdvisoryPlanCacheTests.cs (131 lines)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/GitHubPullRequestGeneratorTests.cs (337 lines)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/InMemoryRunStoreTests.cs (302 lines)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/LlmInferenceCacheTests.cs (173 lines)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/OfflineInferenceIntegrationTests.cs (796 lines)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/PolicyStudioIntegrationTests.cs (851 lines)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/RemediationIntegrationTests.cs (792 lines)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/RunServiceTests.cs (467 lines)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/SbomContextHttpClientTests.cs (149 lines)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/SbomContextRetrieverTests.cs (218 lines)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/SignedModelBundleManagerTests.cs (105 lines)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Actions/ActionExecutorTests.cs (359 lines)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Actions/ActionPolicyGateTests.cs (312 lines)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Actions/ActionRegistryTests.cs (244 lines)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Actions/IdempotencyHandlerTests.cs (310 lines)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Chat/ActionProposalParserTests.cs (315 lines)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Chat/AdvisoryChatIntentRouterTests.cs (260 lines)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Chat/ChatIntegrationTests.cs (451 lines)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Chat/ChatPromptAssemblerTests.cs (325 lines)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Chat/ConversationServiceTests.cs (445 lines)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Chat/DeterminismTests.cs (415 lines)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Chat/EvidenceBundleAssemblerTests.cs (444 lines)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Chat/GroundingValidatorTests.cs (414 lines)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Chat/Audit/AdvisoryChatAuditEnvelopeBuilderTests.cs (242 lines)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Chat/DataProviders/ReachabilityDataProviderTests.cs (140 lines)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Chat/DataProviders/VexDataProviderTests.cs (127 lines)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Chat/Inference/LocalInferenceClientTests.cs (276 lines)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Chat/Integration/AdvisoryChatEndpointsIntegrationTests.cs (278 lines)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Chat/Integration/AdvisoryChatErrorResponseTests.cs (134 lines)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Chat/Options/AdvisoryChatOptionsTests.cs (324 lines)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Chat/Security/AdvisoryChatSecurityTests.cs (490 lines)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Chat/Settings/AdvisoryChatSettingsServiceTests.cs (106 lines)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Integration/EvidenceCardExportIntegrationTests.cs (363 lines)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Integration/RunServiceIntegrationTests.cs (672 lines)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Plugins/LlmPluginAdapterTests.cs (242 lines)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Plugins/ScmPluginAdapterTests.cs (189 lines)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Worker/AdvisoryTaskWorkerTests.cs (212 lines)
- Namespace issues:
- none
- Using directive issues:
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/AdvisoryGuardrailInjectionTests.cs: using directives inside namespace
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/AdvisoryGuardrailInjectionTests.cs: using directives not sorted
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/AdvisoryGuardrailOptionsBindingTests.cs: using directives not sorted
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/AdvisoryGuardrailPerformanceTests.cs: using directives inside namespace
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/AdvisoryGuardrailPerformanceTests.cs: using directives not sorted
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/AdvisoryGuardrailPipelineTests.cs: using directives not sorted
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/AdvisoryPipelineExecutorTests.cs: using directives inside namespace
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/AdvisoryPipelineExecutorTests.cs: using directives not sorted
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/AdvisoryPipelineOrchestratorTests.cs: using directives not sorted
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/AdvisoryPipelinePlanResponseTests.cs: using directives not sorted
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/AdvisoryPlanCacheTests.cs: using directives not sorted
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/AdvisoryPromptAssemblerTests.cs: using directives inside namespace
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/AdvisoryPromptAssemblerTests.cs: using directives not sorted
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/AdvisoryStructuredRetrieverTests.cs: using directives not sorted
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/AdvisoryTaskQueueTests.cs: using directives not sorted
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/AdvisoryVectorRetrieverTests.cs: using directives not sorted
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/ConcelierAdvisoryDocumentProviderTests.cs: using directives not sorted
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/DeterministicToolsetTests.cs: using directives not sorted
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/ExcititorVexDocumentProviderTests.cs: using directives not sorted
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/ExplanationGeneratorIntegrationTests.cs: using directives not sorted
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/ExplanationReplayGoldenTests.cs: using directives not sorted
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/FileSystemAdvisoryOutputStoreTests.cs: using directives not sorted
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/FileSystemAdvisoryPersistenceTests.cs: using directives not sorted
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/FileSystemAdvisoryPlanCacheTests.cs: using directives not sorted
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/FileSystemAdvisoryTaskQueueTests.cs: using directives not sorted
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/GitHubPullRequestGeneratorTests.cs: using directives not sorted
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/InMemoryRunStoreTests.cs: using directives not sorted
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/LlmInferenceCacheTests.cs: using directives not sorted
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/LlmProviderConfigValidationTests.cs: using directives not sorted
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/OfflineInferenceIntegrationTests.cs: using directives inside namespace
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/OfflineInferenceIntegrationTests.cs: using directives not sorted
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/PolicyStudioIntegrationTests.cs: using directives not sorted
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/RemediationIntegrationTests.cs: using directives not sorted
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/RunServiceTests.cs: using directives not sorted
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/SbomContextHttpClientTests.cs: using directives not sorted
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/SbomContextRequestTests.cs: using directives not sorted
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/SbomContextRetrieverTests.cs: using directives not sorted
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/SemanticVersionTests.cs: using directives not sorted
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/SignedModelBundleManagerTests.cs: using directives inside namespace
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/SignedModelBundleManagerTests.cs: using directives not sorted
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/ToolsetServiceCollectionExtensionsTests.cs: using directives not sorted
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Actions/ActionExecutorTests.cs: using directives not sorted
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Actions/ActionPolicyGateTests.cs: using directives not sorted
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Actions/ActionRegistryTests.cs: using directives not sorted
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Actions/IdempotencyHandlerTests.cs: using directives not sorted
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Chat/ActionProposalParserTests.cs: using directives not sorted
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Chat/ChatIntegrationTests.cs: using directives not sorted
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Chat/ChatPromptAssemblerTests.cs: using directives not sorted
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Chat/ConversationServiceTests.cs: using directives not sorted
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Chat/DeterminismTests.cs: using directives not sorted
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Chat/GroundingValidatorTests.cs: using directives not sorted
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Chat/Audit/AdvisoryChatAuditEnvelopeBuilderTests.cs: using directives not sorted
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Chat/Inference/LocalInferenceClientTests.cs: using directives not sorted
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Chat/Integration/AdvisoryChatEndpointsIntegrationTests.cs: using directives not sorted
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Chat/Integration/AdvisoryChatErrorResponseTests.cs: using directives not sorted
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Chat/Security/AdvisoryChatSecurityTests.cs: using directives not sorted
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Chat/Settings/AdvisoryChatSettingsServiceTests.cs: using directives not sorted
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Chat/Settings/AdvisoryChatToolPolicyTests.cs: using directives not sorted
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Integration/EvidenceCardExportIntegrationTests.cs: using directives inside namespace
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Integration/EvidenceCardExportIntegrationTests.cs: using directives not sorted
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Integration/RunServiceIntegrationTests.cs: using directives not sorted
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Plugins/LlmPluginAdapterTests.cs: using directives not sorted
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Plugins/ScmPluginAdapterTests.cs: using directives not sorted
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/TestUtilities/TestCryptoHash.cs: using directives inside namespace
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/TestUtilities/TestCryptoHash.cs: using directives not sorted
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Worker/AdvisoryTaskWorkerTests.cs: using directives inside namespace
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Worker/AdvisoryTaskWorkerTests.cs: using directives not sorted
- Naming issues:
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/AdvisoryGuardrailInjectionTests.cs: private field naming
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/AdvisoryGuardrailPerformanceTests.cs: private field naming
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/LlmInferenceCacheTests.cs: private field naming
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/SignedModelBundleManagerTests.cs: private field naming
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Chat/Security/AdvisoryChatSecurityTests.cs: private field naming
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Integration/EvidenceCardExportIntegrationTests.cs: private field naming
- Async issues:
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/AdvisoryGuardrailInjectionTests.cs: async method naming
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/AdvisoryGuardrailInjectionTests.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/AdvisoryGuardrailOptionsBindingTests.cs: async method naming
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/AdvisoryGuardrailOptionsBindingTests.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/AdvisoryGuardrailPerformanceTests.cs: async method naming
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/AdvisoryGuardrailPerformanceTests.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/AdvisoryGuardrailPipelineTests.cs: async method naming
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/AdvisoryGuardrailPipelineTests.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/AdvisoryPipelineExecutorTests.cs: async method naming
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/AdvisoryPipelineExecutorTests.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/AdvisoryPipelineOrchestratorTests.cs: async method naming
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/AdvisoryPipelineOrchestratorTests.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/AdvisoryPlanCacheTests.cs: async method naming
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/AdvisoryPlanCacheTests.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/AdvisoryPromptAssemblerTests.cs: async method naming
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/AdvisoryPromptAssemblerTests.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/AdvisoryStructuredRetrieverTests.cs: async method naming
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/AdvisoryStructuredRetrieverTests.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/AdvisoryTaskQueueTests.cs: async method naming
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/AdvisoryTaskQueueTests.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/AdvisoryVectorRetrieverTests.cs: async method naming
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/AdvisoryVectorRetrieverTests.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/ConcelierAdvisoryDocumentProviderTests.cs: async method naming
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/ConcelierAdvisoryDocumentProviderTests.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/ExcititorVexDocumentProviderTests.cs: async method naming
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/ExcititorVexDocumentProviderTests.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/ExplanationGeneratorIntegrationTests.cs: async method naming
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/ExplanationGeneratorIntegrationTests.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/ExplanationReplayGoldenTests.cs: async method naming
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/ExplanationReplayGoldenTests.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/FileSystemAdvisoryOutputStoreTests.cs: async method naming
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/FileSystemAdvisoryOutputStoreTests.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/FileSystemAdvisoryPersistenceTests.cs: async method naming
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/FileSystemAdvisoryPersistenceTests.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/FileSystemAdvisoryPlanCacheTests.cs: async method naming
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/FileSystemAdvisoryPlanCacheTests.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/FileSystemAdvisoryTaskQueueTests.cs: async method naming
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/FileSystemAdvisoryTaskQueueTests.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/GitHubPullRequestGeneratorTests.cs: async method naming
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/GitHubPullRequestGeneratorTests.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/InMemoryRunStoreTests.cs: async method naming
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/InMemoryRunStoreTests.cs: blocking async usage
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/InMemoryRunStoreTests.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/LlmInferenceCacheTests.cs: async method naming
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/LlmInferenceCacheTests.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/OfflineInferenceIntegrationTests.cs: async method naming
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/OfflineInferenceIntegrationTests.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/PolicyStudioIntegrationTests.cs: async method naming
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/PolicyStudioIntegrationTests.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/RemediationIntegrationTests.cs: async method naming
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/RemediationIntegrationTests.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/RunServiceTests.cs: async method naming
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/RunServiceTests.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/SbomContextHttpClientTests.cs: async method naming
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/SbomContextHttpClientTests.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/SbomContextRetrieverTests.cs: async method naming
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/SbomContextRetrieverTests.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/SignedModelBundleManagerTests.cs: async method naming
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/SignedModelBundleManagerTests.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Actions/ActionExecutorTests.cs: async method naming
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Actions/ActionExecutorTests.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Actions/ActionPolicyGateTests.cs: async method naming
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Actions/ActionPolicyGateTests.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Actions/IdempotencyHandlerTests.cs: async method naming
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Actions/IdempotencyHandlerTests.cs: blocking async usage
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Actions/IdempotencyHandlerTests.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Chat/AdvisoryChatIntentRouterTests.cs: async method naming
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Chat/AdvisoryChatIntentRouterTests.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Chat/ChatIntegrationTests.cs: async method naming
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Chat/ChatIntegrationTests.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Chat/ConversationServiceTests.cs: async method naming
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Chat/ConversationServiceTests.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Chat/DeterminismTests.cs: async method naming
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Chat/DeterminismTests.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Chat/EvidenceBundleAssemblerTests.cs: async method naming
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Chat/EvidenceBundleAssemblerTests.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Chat/GroundingValidatorTests.cs: async method naming
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Chat/GroundingValidatorTests.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Chat/DataProviders/ReachabilityDataProviderTests.cs: async method naming
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Chat/DataProviders/ReachabilityDataProviderTests.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Chat/DataProviders/VexDataProviderTests.cs: async method naming
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Chat/DataProviders/VexDataProviderTests.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Chat/Inference/LocalInferenceClientTests.cs: async method naming
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Chat/Inference/LocalInferenceClientTests.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Chat/Inference/SystemPromptLoaderTests.cs: async method naming
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Chat/Inference/SystemPromptLoaderTests.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Chat/Integration/AdvisoryChatEndpointsIntegrationTests.cs: async method naming
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Chat/Integration/AdvisoryChatEndpointsIntegrationTests.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Chat/Integration/AdvisoryChatErrorResponseTests.cs: async method naming
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Chat/Integration/AdvisoryChatErrorResponseTests.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Chat/Security/AdvisoryChatSecurityTests.cs: async method naming
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Chat/Security/AdvisoryChatSecurityTests.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Chat/Services/AdvisoryChatQuotaServiceTests.cs: async method naming
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Chat/Services/AdvisoryChatQuotaServiceTests.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Chat/Settings/AdvisoryChatSettingsServiceTests.cs: async method naming
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Chat/Settings/AdvisoryChatSettingsServiceTests.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Integration/EvidenceCardExportIntegrationTests.cs: async method naming
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Integration/EvidenceCardExportIntegrationTests.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Integration/RunServiceIntegrationTests.cs: async method naming
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Integration/RunServiceIntegrationTests.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Plugins/LlmPluginAdapterTests.cs: async method naming
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Plugins/LlmPluginAdapterTests.cs: blocking async usage
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Plugins/LlmPluginAdapterTests.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Plugins/ScmPluginAdapterTests.cs: async method naming
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Plugins/ScmPluginAdapterTests.cs: missing ConfigureAwait(false)
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/TestUtilities/TestCryptoHash.cs: async method naming
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Worker/AdvisoryTaskWorkerTests.cs: async method naming
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Worker/AdvisoryTaskWorkerTests.cs: missing ConfigureAwait(false)
- Service locator matches:
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/AdvisoryGuardrailOptionsBindingTests.cs:49 await using var provider = services.BuildServiceProvider();
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/AdvisoryGuardrailOptionsBindingTests.cs:50 var options = provider.GetRequiredService<IOptions<AdvisoryGuardrailOptions>>().Value;
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/AdvisoryGuardrailOptionsBindingTests.cs:80 await using var provider = services.BuildServiceProvider();
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/AdvisoryGuardrailOptionsBindingTests.cs:81 var action = () => provider.GetRequiredService<IOptions<AdvisoryGuardrailOptions>>().Value;
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/AdvisoryGuardrailOptionsBindingTests.cs:101 await using var provider = services.BuildServiceProvider();
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/AdvisoryGuardrailOptionsBindingTests.cs:102 var action = () => provider.GetRequiredService<IOptions<AdvisoryGuardrailOptions>>().Value;
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/ToolsetServiceCollectionExtensionsTests.cs:27 var provider = services.BuildServiceProvider();
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/ToolsetServiceCollectionExtensionsTests.cs:28 var toolsetA = provider.GetRequiredService<IDeterministicToolset>();
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/ToolsetServiceCollectionExtensionsTests.cs:29 var toolsetB = provider.GetRequiredService<IDeterministicToolset>();
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/ToolsetServiceCollectionExtensionsTests.cs:51 var provider = services.BuildServiceProvider();
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/ToolsetServiceCollectionExtensionsTests.cs:52 var orchestrator = provider.GetRequiredService<IAdvisoryPipelineOrchestrator>();
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/ToolsetServiceCollectionExtensionsTests.cs:54 var again = provider.GetRequiredService<IAdvisoryPipelineOrchestrator>();
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Integration/EvidenceCardExportIntegrationTests.cs:33 var packService = services.GetRequiredService<IEvidencePackService>();
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Integration/EvidenceCardExportIntegrationTests.cs:54 var packService = services.GetRequiredService<IEvidencePackService>();
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Integration/EvidenceCardExportIntegrationTests.cs:75 var packService = services.GetRequiredService<IEvidencePackService>();
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Integration/EvidenceCardExportIntegrationTests.cs:102 var packService = services.GetRequiredService<IEvidencePackService>();
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Integration/EvidenceCardExportIntegrationTests.cs:129 var packService = services.GetRequiredService<IEvidencePackService>();
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Integration/EvidenceCardExportIntegrationTests.cs:163 var packService = services.GetRequiredService<IEvidencePackService>();
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Integration/EvidenceCardExportIntegrationTests.cs:189 var packService = services.GetRequiredService<IEvidencePackService>();
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Integration/EvidenceCardExportIntegrationTests.cs:239 return services.BuildServiceProvider();
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Plugins/LlmPluginAdapterTests.cs:131 var services = new ServiceCollection().BuildServiceProvider();
- src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Plugins/LlmPluginAdapterTests.cs:155 var services = new ServiceCollection().BuildServiceProvider();
- 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: 67
- Files with issues: 65
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/AdvisoryGuardrailInjectionTests.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/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/AdvisoryGuardrailOptionsBindingTests.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/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/AdvisoryGuardrailPerformanceTests.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/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/AdvisoryGuardrailPipelineTests.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/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/AdvisoryPipelineExecutorTests.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/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/AdvisoryPipelineOrchestratorTests.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/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/AdvisoryPipelinePlanResponseTests.cs | UsingNotSorted | Sort using directives alphabetically. |
| src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/AdvisoryPlanCacheTests.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/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/AdvisoryPromptAssemblerTests.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/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/AdvisoryStructuredRetrieverTests.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/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/AdvisoryTaskQueueTests.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/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/AdvisoryVectorRetrieverTests.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/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/ConcelierAdvisoryDocumentProviderTests.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/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/DeterministicToolsetTests.cs | UsingNotSorted | Sort using directives alphabetically. |
| src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/ExcititorVexDocumentProviderTests.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/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/ExplanationGeneratorIntegrationTests.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/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/ExplanationReplayGoldenTests.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/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/FileSystemAdvisoryOutputStoreTests.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/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/FileSystemAdvisoryPersistenceTests.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/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/FileSystemAdvisoryPlanCacheTests.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/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/FileSystemAdvisoryTaskQueueTests.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/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/GitHubPullRequestGeneratorTests.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/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/InMemoryRunStoreTests.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/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/LlmInferenceCacheTests.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/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/LlmProviderConfigValidationTests.cs | UsingNotSorted | Sort using directives alphabetically. |
| src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/OfflineInferenceIntegrationTests.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/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/PolicyStudioIntegrationTests.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/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/RemediationIntegrationTests.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/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/RunServiceTests.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/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/SbomContextHttpClientTests.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/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/SbomContextRequestTests.cs | UsingNotSorted | Sort using directives alphabetically. |
| src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/SbomContextRetrieverTests.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/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/SemanticVersionTests.cs | UsingNotSorted | Sort using directives alphabetically. |
| src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/SignedModelBundleManagerTests.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/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/ToolsetServiceCollectionExtensionsTests.cs | ServiceLocator; UsingNotSorted | Remove service locator usage; use constructor injection.; Sort using directives alphabetically. |
| src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Actions/ActionExecutorTests.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/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Actions/ActionPolicyGateTests.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/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Actions/ActionRegistryTests.cs | FileLength>100; UsingNotSorted | Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Actions/IdempotencyHandlerTests.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/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Chat/ActionProposalParserTests.cs | FileLength>100; UsingNotSorted | Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Chat/AdvisoryChatIntentRouterTests.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/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Chat/ChatIntegrationTests.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/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Chat/ChatPromptAssemblerTests.cs | FileLength>100; UsingNotSorted | Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Chat/ConversationServiceTests.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/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Chat/DeterminismTests.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/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Chat/EvidenceBundleAssemblerTests.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/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Chat/GroundingValidatorTests.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/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Chat/Audit/AdvisoryChatAuditEnvelopeBuilderTests.cs | FileLength>100; UsingNotSorted | Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Chat/DataProviders/ReachabilityDataProviderTests.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/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Chat/DataProviders/VexDataProviderTests.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/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Chat/Inference/LocalInferenceClientTests.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/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Chat/Inference/SystemPromptLoaderTests.cs | AsyncNaming; ConfigureAwaitMissing | Add ConfigureAwait(false) to awaited calls in library-like code.; Rename async methods to end with Async. |
| src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Chat/Integration/AdvisoryChatEndpointsIntegrationTests.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/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Chat/Integration/AdvisoryChatErrorResponseTests.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/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Chat/Options/AdvisoryChatOptionsTests.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Chat/Security/AdvisoryChatSecurityTests.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/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Chat/Services/AdvisoryChatQuotaServiceTests.cs | AsyncNaming; ConfigureAwaitMissing | Add ConfigureAwait(false) to awaited calls in library-like code.; Rename async methods to end with Async. |
| src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Chat/Settings/AdvisoryChatSettingsServiceTests.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/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Chat/Settings/AdvisoryChatToolPolicyTests.cs | UsingNotSorted | Sort using directives alphabetically. |
| src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Integration/EvidenceCardExportIntegrationTests.cs | AsyncNaming; 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.; Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Integration/RunServiceIntegrationTests.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/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Plugins/LlmPluginAdapterTests.cs | AsyncNaming; BlockingAsync; 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.; Replace .Result/.Wait/GetAwaiter().GetResult() with await.; Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Plugins/ScmPluginAdapterTests.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/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/TestUtilities/TestCryptoHash.cs | AsyncNaming; UsingInsideNamespace; UsingNotSorted | Move using directives outside namespace.; Rename async methods to end with Async.; Sort using directives alphabetically. |
| src/AdvisoryAI/__Tests/StellaOps.AdvisoryAI.Tests/Worker/AdvisoryTaskWorkerTests.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,119 @@
# Audit - StellaOps.AirGap.Controller
## Project
- Path: src/AirGap/StellaOps.AirGap.Controller/StellaOps.AirGap.Controller.csproj
- Module: AirGap
- Kind: Library
- Audit date (UTC): 2026-01-30
- Files scanned: 26
- 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: 6
- Namespace violations: 24
- 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/AirGap/StellaOps.AirGap.Controller/Auth/HeaderScopeAuthenticationHandler.cs (106 lines)
- src/AirGap/StellaOps.AirGap.Controller/Endpoints/AirGapEndpoints.cs (268 lines)
- src/AirGap/StellaOps.AirGap.Controller/Endpoints/RequestValidation.cs (108 lines)
- src/AirGap/StellaOps.AirGap.Controller/Services/AirGapStartupDiagnosticsHostedService.cs (175 lines)
- src/AirGap/StellaOps.AirGap.Controller/Services/AirGapStateService.cs (119 lines)
- src/AirGap/StellaOps.AirGap.Controller/Services/AirGapTelemetry.cs (178 lines)
- Namespace issues:
- src/AirGap/StellaOps.AirGap.Controller/Auth/HeaderScopeAuthenticationHandler.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Controller/DependencyInjection/AirGapControllerServiceCollectionExtensions.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Controller/Domain/AirGapState.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Controller/Endpoints/AirGapEndpoints.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Controller/Endpoints/RequestValidation.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Controller/Endpoints/Contracts/AirGapStatusResponse.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Controller/Endpoints/Contracts/SealRequest.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Controller/Endpoints/Contracts/VerifyRequest.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Controller/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Controller/obj/Debug/net10.0/StellaOps.AirGap.Controller.AssemblyInfo.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Controller/obj/Debug/net10.0/StellaOps.AirGap.Controller.GlobalUsings.g.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Controller/obj/Debug/net10.0/StellaOps.AirGap.Controller.MvcApplicationPartsAssemblyInfo.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Controller/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Controller/obj/Release/net10.0/StellaOps.AirGap.Controller.AssemblyInfo.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Controller/obj/Release/net10.0/StellaOps.AirGap.Controller.GlobalUsings.g.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Controller/obj/Release/net10.0/StellaOps.AirGap.Controller.MvcApplicationPartsAssemblyInfo.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Controller/Options/AirGapStartupOptions.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Controller/Options/AirGapTelemetryOptions.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Controller/Services/AirGapStartupDiagnosticsHostedService.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Controller/Services/AirGapStateService.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Controller/Services/AirGapTelemetry.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Controller/Services/ReplayVerificationService.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Controller/Stores/IAirGapStateStore.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Controller/Stores/InMemoryAirGapStateStore.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: 26
- Files with issues: 24
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/AirGap/StellaOps.AirGap.Controller/Auth/HeaderScopeAuthenticationHandler.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AirGap/StellaOps.AirGap.Controller/DependencyInjection/AirGapControllerServiceCollectionExtensions.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Controller/Domain/AirGapState.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Controller/Endpoints/AirGapEndpoints.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AirGap/StellaOps.AirGap.Controller/Endpoints/RequestValidation.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AirGap/StellaOps.AirGap.Controller/Endpoints/Contracts/AirGapStatusResponse.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Controller/Endpoints/Contracts/SealRequest.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Controller/Endpoints/Contracts/VerifyRequest.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Controller/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Controller/obj/Debug/net10.0/StellaOps.AirGap.Controller.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Controller/obj/Debug/net10.0/StellaOps.AirGap.Controller.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Controller/obj/Debug/net10.0/StellaOps.AirGap.Controller.MvcApplicationPartsAssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Controller/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Controller/obj/Release/net10.0/StellaOps.AirGap.Controller.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Controller/obj/Release/net10.0/StellaOps.AirGap.Controller.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Controller/obj/Release/net10.0/StellaOps.AirGap.Controller.MvcApplicationPartsAssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Controller/Options/AirGapStartupOptions.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Controller/Options/AirGapTelemetryOptions.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Controller/Services/AirGapStartupDiagnosticsHostedService.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AirGap/StellaOps.AirGap.Controller/Services/AirGapStateService.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AirGap/StellaOps.AirGap.Controller/Services/AirGapTelemetry.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AirGap/StellaOps.AirGap.Controller/Services/ReplayVerificationService.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Controller/Stores/IAirGapStateStore.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Controller/Stores/InMemoryAirGapStateStore.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
## Testing Fullness Findings
- Status: FAIL
- Expected layers (heuristic): Unit
- Detected test projects: src/AirGap/__Tests/StellaOps.AirGap.Controller.Tests/StellaOps.AirGap.Controller.Tests.csproj [Offline]; src/AirGap/__Tests/StellaOps.AirGap.Persistence.Tests/StellaOps.AirGap.Persistence.Tests.csproj [Offline]
- 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,88 @@
# Audit - StellaOps.AirGap.Controller
## Project
- Path: src/AirGap/StellaOps.AirGap.Controller/StellaOps.AirGap.Controller.csproj
- Module: AirGap
- Kind: Library
- Audit date (UTC): 2026-01-31
- Files scanned: 18
- 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: 6
- Namespace violations: 0
- Using directive violations: 1
- Naming violations (interfaces/fields/const/async): 7
- Service locator usage (BuildServiceProvider/GetService): 1
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/AirGap/StellaOps.AirGap.Controller/Auth/HeaderScopeAuthenticationHandler.cs (107 lines)
- src/AirGap/StellaOps.AirGap.Controller/Endpoints/AirGapEndpoints.cs (269 lines)
- src/AirGap/StellaOps.AirGap.Controller/Endpoints/RequestValidation.cs (108 lines)
- src/AirGap/StellaOps.AirGap.Controller/Services/AirGapStartupDiagnosticsHostedService.cs (175 lines)
- src/AirGap/StellaOps.AirGap.Controller/Services/AirGapStateService.cs (119 lines)
- src/AirGap/StellaOps.AirGap.Controller/Services/AirGapTelemetry.cs (179 lines)
- Namespace issues:
- none
- Using directive issues:
- src/AirGap/StellaOps.AirGap.Controller/Services/AirGapTelemetry.cs: using directives inside namespace
- Naming issues:
- src/AirGap/StellaOps.AirGap.Controller/Services/AirGapTelemetry.cs: private field naming
- Async issues:
- src/AirGap/StellaOps.AirGap.Controller/Endpoints/AirGapEndpoints.cs: async method naming
- src/AirGap/StellaOps.AirGap.Controller/Endpoints/AirGapEndpoints.cs: missing ConfigureAwait(false)
- src/AirGap/StellaOps.AirGap.Controller/Services/AirGapStartupDiagnosticsHostedService.cs: async method naming
- src/AirGap/StellaOps.AirGap.Controller/Services/AirGapStartupDiagnosticsHostedService.cs: missing ConfigureAwait(false)
- src/AirGap/StellaOps.AirGap.Controller/Services/AirGapStateService.cs: missing ConfigureAwait(false)
- src/AirGap/StellaOps.AirGap.Controller/Services/ReplayVerificationService.cs: missing ConfigureAwait(false)
- Service locator matches:
- src/AirGap/StellaOps.AirGap.Controller/DependencyInjection/AirGapControllerServiceCollectionExtensions.cs:29 var logger = sp.GetRequiredService<ILogger<InMemoryAirGapStateStore>>();
- 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: 8
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/AirGap/StellaOps.AirGap.Controller/Auth/HeaderScopeAuthenticationHandler.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AirGap/StellaOps.AirGap.Controller/DependencyInjection/AirGapControllerServiceCollectionExtensions.cs | ServiceLocator | Remove service locator usage; use constructor injection. |
| src/AirGap/StellaOps.AirGap.Controller/Endpoints/AirGapEndpoints.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/AirGap/StellaOps.AirGap.Controller/Endpoints/RequestValidation.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AirGap/StellaOps.AirGap.Controller/Services/AirGapStartupDiagnosticsHostedService.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/AirGap/StellaOps.AirGap.Controller/Services/AirGapStateService.cs | ConfigureAwaitMissing; FileLength>100 | Add ConfigureAwait(false) to awaited calls in library-like code.; Split file to stay <= 100 lines. |
| src/AirGap/StellaOps.AirGap.Controller/Services/AirGapTelemetry.cs | FileLength>100; PrivateFieldNaming; UsingInsideNamespace | Move using directives outside namespace.; Rename private fields to _camelCase.; Split file to stay <= 100 lines. |
| src/AirGap/StellaOps.AirGap.Controller/Services/ReplayVerificationService.cs | ConfigureAwaitMissing | Add ConfigureAwait(false) to awaited calls in library-like code. |
## Testing Fullness Findings
- Status: FAIL
- Expected layers (heuristic): Unit
- Detected test projects: src/AirGap/__Tests/StellaOps.AirGap.Controller.Tests/StellaOps.AirGap.Controller.Tests.csproj [Offline]; src/AirGap/__Tests/StellaOps.AirGap.Persistence.Tests/StellaOps.AirGap.Persistence.Tests.csproj [Offline]
- 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,206 @@
# Audit - StellaOps.AirGap.Importer
## Project
- Path: src/AirGap/StellaOps.AirGap.Importer/StellaOps.AirGap.Importer.csproj
- Module: AirGap
- Kind: Library
- Audit date (UTC): 2026-01-30
- Files scanned: 58
- Files with issues: 58
- 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: 25
- Namespace violations: 58
- 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/AirGap/StellaOps.AirGap.Importer/Policy/OfflineVerificationPolicy.cs (214 lines)
- src/AirGap/StellaOps.AirGap.Importer/Policy/OfflineVerificationPolicyLoader.cs (133 lines)
- src/AirGap/StellaOps.AirGap.Importer/Quarantine/FileSystemQuarantineService.cs (396 lines)
- src/AirGap/StellaOps.AirGap.Importer/Reconciliation/ArtifactIndex.cs (144 lines)
- src/AirGap/StellaOps.AirGap.Importer/Reconciliation/EvidenceGraph.cs (334 lines)
- src/AirGap/StellaOps.AirGap.Importer/Reconciliation/EvidenceReconciler.cs (395 lines)
- src/AirGap/StellaOps.AirGap.Importer/Reconciliation/JsonNormalizer.cs (282 lines)
- src/AirGap/StellaOps.AirGap.Importer/Reconciliation/SourcePrecedenceLattice.cs (265 lines)
- src/AirGap/StellaOps.AirGap.Importer/Reconciliation/Parsers/AttestationCollector.cs (439 lines)
- src/AirGap/StellaOps.AirGap.Importer/Reconciliation/Parsers/CycloneDxParser.cs (343 lines)
- src/AirGap/StellaOps.AirGap.Importer/Reconciliation/Parsers/DsseAttestationParser.cs (301 lines)
- src/AirGap/StellaOps.AirGap.Importer/Reconciliation/Parsers/IAttestationParser.cs (205 lines)
- src/AirGap/StellaOps.AirGap.Importer/Reconciliation/Parsers/ISbomParser.cs (189 lines)
- src/AirGap/StellaOps.AirGap.Importer/Reconciliation/Parsers/OpenVexParser.cs (183 lines)
- src/AirGap/StellaOps.AirGap.Importer/Reconciliation/Parsers/SbomCollector.cs (174 lines)
- src/AirGap/StellaOps.AirGap.Importer/Reconciliation/Parsers/SbomNormalizer.cs (513 lines)
- src/AirGap/StellaOps.AirGap.Importer/Reconciliation/Parsers/SpdxParser.cs (316 lines)
- src/AirGap/StellaOps.AirGap.Importer/Reconciliation/Signing/EvidenceGraphDsseSigner.cs (183 lines)
- src/AirGap/StellaOps.AirGap.Importer/Telemetry/OfflineKitMetrics.cs (143 lines)
- src/AirGap/StellaOps.AirGap.Importer/Validation/DsseVerifier.cs (212 lines)
- src/AirGap/StellaOps.AirGap.Importer/Validation/ImportValidator.cs (449 lines)
- src/AirGap/StellaOps.AirGap.Importer/Validation/ReferrerValidator.cs (481 lines)
- src/AirGap/StellaOps.AirGap.Importer/Validation/RekorOfflineReceiptVerifier.cs (656 lines)
- src/AirGap/StellaOps.AirGap.Importer/Validation/RuleBundleValidator.cs (433 lines)
- src/AirGap/StellaOps.AirGap.Importer/Versioning/BundleVersion.cs (145 lines)
- Namespace issues:
- src/AirGap/StellaOps.AirGap.Importer/Contracts/ReplayDepth.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Importer/Contracts/ReplayVerificationRequest.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Importer/Contracts/TrustRootConfig.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Importer/Models/BundleCatalogEntry.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Importer/Models/BundleItem.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Importer/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Importer/obj/Debug/net10.0/StellaOps.AirGap.Importer.AssemblyInfo.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Importer/obj/Debug/net10.0/StellaOps.AirGap.Importer.GlobalUsings.g.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Importer/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Importer/obj/Release/net10.0/StellaOps.AirGap.Importer.AssemblyInfo.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Importer/obj/Release/net10.0/StellaOps.AirGap.Importer.GlobalUsings.g.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Importer/Planning/BundleImportPlan.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Importer/Planning/BundleImportPlanner.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Importer/Policy/OfflineVerificationPolicy.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Importer/Policy/OfflineVerificationPolicyLoader.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Importer/Quarantine/FileSystemQuarantineService.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Importer/Quarantine/IQuarantineService.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Importer/Quarantine/QuarantineOptions.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Importer/Reconciliation/ArtifactIndex.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Importer/Reconciliation/EvidenceDirectoryDiscovery.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Importer/Reconciliation/EvidenceGraph.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Importer/Reconciliation/EvidenceReconciler.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Importer/Reconciliation/JsonNormalizer.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Importer/Reconciliation/SourcePrecedenceLattice.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Importer/Reconciliation/Parsers/AttestationCollector.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Importer/Reconciliation/Parsers/CycloneDxParser.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Importer/Reconciliation/Parsers/DsseAttestationParser.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Importer/Reconciliation/Parsers/IAttestationParser.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Importer/Reconciliation/Parsers/ISbomParser.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Importer/Reconciliation/Parsers/OpenVexParser.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Importer/Reconciliation/Parsers/SbomCollector.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Importer/Reconciliation/Parsers/SbomNormalizer.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Importer/Reconciliation/Parsers/SbomParserFactory.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Importer/Reconciliation/Parsers/SpdxParser.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Importer/Reconciliation/Signing/EvidenceGraphDsseSigner.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Importer/Repositories/IBundleCatalogRepository.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Importer/Repositories/IBundleItemRepository.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Importer/Repositories/InMemoryBundleRepositories.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Importer/Telemetry/OfflineKitLogFields.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Importer/Telemetry/OfflineKitLogScopes.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Importer/Telemetry/OfflineKitMetrics.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Importer/Validation/BundleValidationResult.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Importer/Validation/DsseEnvelope.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Importer/Validation/DssePreAuthenticationEncoding.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Importer/Validation/DsseVerifier.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Importer/Validation/ImportValidator.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Importer/Validation/MerkleRootCalculator.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Importer/Validation/ReferrerValidator.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Importer/Validation/RekorOfflineReceiptVerifier.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Importer/Validation/ReplayVerifier.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Importer/Validation/RootRotationPolicy.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Importer/Validation/RuleBundleValidator.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Importer/Validation/TrustStore.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Importer/Validation/TufMetadataValidator.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Importer/Versioning/BundleVersion.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Importer/Versioning/IBundleVersionStore.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Importer/Versioning/IVersionMonotonicityChecker.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Importer/Versioning/VersionMonotonicityChecker.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: 58
- Files with issues: 58
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/AirGap/StellaOps.AirGap.Importer/Contracts/ReplayDepth.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Importer/Contracts/ReplayVerificationRequest.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Importer/Contracts/TrustRootConfig.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Importer/Models/BundleCatalogEntry.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Importer/Models/BundleItem.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Importer/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Importer/obj/Debug/net10.0/StellaOps.AirGap.Importer.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Importer/obj/Debug/net10.0/StellaOps.AirGap.Importer.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Importer/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Importer/obj/Release/net10.0/StellaOps.AirGap.Importer.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Importer/obj/Release/net10.0/StellaOps.AirGap.Importer.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Importer/Planning/BundleImportPlan.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Importer/Planning/BundleImportPlanner.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Importer/Policy/OfflineVerificationPolicy.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AirGap/StellaOps.AirGap.Importer/Policy/OfflineVerificationPolicyLoader.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AirGap/StellaOps.AirGap.Importer/Quarantine/FileSystemQuarantineService.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AirGap/StellaOps.AirGap.Importer/Quarantine/IQuarantineService.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Importer/Quarantine/QuarantineOptions.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Importer/Reconciliation/ArtifactIndex.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AirGap/StellaOps.AirGap.Importer/Reconciliation/EvidenceDirectoryDiscovery.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Importer/Reconciliation/EvidenceGraph.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AirGap/StellaOps.AirGap.Importer/Reconciliation/EvidenceReconciler.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AirGap/StellaOps.AirGap.Importer/Reconciliation/JsonNormalizer.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AirGap/StellaOps.AirGap.Importer/Reconciliation/SourcePrecedenceLattice.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AirGap/StellaOps.AirGap.Importer/Reconciliation/Parsers/AttestationCollector.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AirGap/StellaOps.AirGap.Importer/Reconciliation/Parsers/CycloneDxParser.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AirGap/StellaOps.AirGap.Importer/Reconciliation/Parsers/DsseAttestationParser.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AirGap/StellaOps.AirGap.Importer/Reconciliation/Parsers/IAttestationParser.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AirGap/StellaOps.AirGap.Importer/Reconciliation/Parsers/ISbomParser.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AirGap/StellaOps.AirGap.Importer/Reconciliation/Parsers/OpenVexParser.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AirGap/StellaOps.AirGap.Importer/Reconciliation/Parsers/SbomCollector.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AirGap/StellaOps.AirGap.Importer/Reconciliation/Parsers/SbomNormalizer.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AirGap/StellaOps.AirGap.Importer/Reconciliation/Parsers/SbomParserFactory.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Importer/Reconciliation/Parsers/SpdxParser.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AirGap/StellaOps.AirGap.Importer/Reconciliation/Signing/EvidenceGraphDsseSigner.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AirGap/StellaOps.AirGap.Importer/Repositories/IBundleCatalogRepository.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Importer/Repositories/IBundleItemRepository.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Importer/Repositories/InMemoryBundleRepositories.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Importer/Telemetry/OfflineKitLogFields.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Importer/Telemetry/OfflineKitLogScopes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Importer/Telemetry/OfflineKitMetrics.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AirGap/StellaOps.AirGap.Importer/Validation/BundleValidationResult.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Importer/Validation/DsseEnvelope.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Importer/Validation/DssePreAuthenticationEncoding.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Importer/Validation/DsseVerifier.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AirGap/StellaOps.AirGap.Importer/Validation/ImportValidator.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AirGap/StellaOps.AirGap.Importer/Validation/MerkleRootCalculator.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Importer/Validation/ReferrerValidator.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AirGap/StellaOps.AirGap.Importer/Validation/RekorOfflineReceiptVerifier.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AirGap/StellaOps.AirGap.Importer/Validation/ReplayVerifier.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Importer/Validation/RootRotationPolicy.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Importer/Validation/RuleBundleValidator.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AirGap/StellaOps.AirGap.Importer/Validation/TrustStore.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Importer/Validation/TufMetadataValidator.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Importer/Versioning/BundleVersion.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AirGap/StellaOps.AirGap.Importer/Versioning/IBundleVersionStore.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Importer/Versioning/IVersionMonotonicityChecker.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Importer/Versioning/VersionMonotonicityChecker.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
## Testing Fullness Findings
- Status: FAIL
- Expected layers (heuristic): Unit
- Detected test projects: src/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/StellaOps.AirGap.Importer.Tests.csproj [Offline]
- 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,162 @@
# Audit - StellaOps.AirGap.Importer
## Project
- Path: src/AirGap/StellaOps.AirGap.Importer/StellaOps.AirGap.Importer.csproj
- Module: AirGap
- Kind: Library
- Audit date (UTC): 2026-01-31
- Files scanned: 52
- Files with issues: 28
- 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: 25
- Namespace violations: 0
- Using directive violations: 13
- Naming violations (interfaces/fields/const/async): 31
- Service locator usage (BuildServiceProvider/GetService): 0
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/AirGap/StellaOps.AirGap.Importer/Policy/OfflineVerificationPolicy.cs (214 lines)
- src/AirGap/StellaOps.AirGap.Importer/Policy/OfflineVerificationPolicyLoader.cs (134 lines)
- src/AirGap/StellaOps.AirGap.Importer/Quarantine/FileSystemQuarantineService.cs (397 lines)
- src/AirGap/StellaOps.AirGap.Importer/Reconciliation/ArtifactIndex.cs (145 lines)
- src/AirGap/StellaOps.AirGap.Importer/Reconciliation/EvidenceGraph.cs (334 lines)
- src/AirGap/StellaOps.AirGap.Importer/Reconciliation/EvidenceReconciler.cs (396 lines)
- src/AirGap/StellaOps.AirGap.Importer/Reconciliation/JsonNormalizer.cs (282 lines)
- src/AirGap/StellaOps.AirGap.Importer/Reconciliation/SourcePrecedenceLattice.cs (265 lines)
- src/AirGap/StellaOps.AirGap.Importer/Reconciliation/Parsers/AttestationCollector.cs (440 lines)
- src/AirGap/StellaOps.AirGap.Importer/Reconciliation/Parsers/CycloneDxParser.cs (344 lines)
- src/AirGap/StellaOps.AirGap.Importer/Reconciliation/Parsers/DsseAttestationParser.cs (302 lines)
- src/AirGap/StellaOps.AirGap.Importer/Reconciliation/Parsers/IAttestationParser.cs (205 lines)
- src/AirGap/StellaOps.AirGap.Importer/Reconciliation/Parsers/ISbomParser.cs (189 lines)
- src/AirGap/StellaOps.AirGap.Importer/Reconciliation/Parsers/OpenVexParser.cs (184 lines)
- src/AirGap/StellaOps.AirGap.Importer/Reconciliation/Parsers/SbomCollector.cs (175 lines)
- src/AirGap/StellaOps.AirGap.Importer/Reconciliation/Parsers/SbomNormalizer.cs (513 lines)
- src/AirGap/StellaOps.AirGap.Importer/Reconciliation/Parsers/SpdxParser.cs (317 lines)
- src/AirGap/StellaOps.AirGap.Importer/Reconciliation/Signing/EvidenceGraphDsseSigner.cs (184 lines)
- src/AirGap/StellaOps.AirGap.Importer/Telemetry/OfflineKitMetrics.cs (143 lines)
- src/AirGap/StellaOps.AirGap.Importer/Validation/DsseVerifier.cs (212 lines)
- src/AirGap/StellaOps.AirGap.Importer/Validation/ImportValidator.cs (450 lines)
- src/AirGap/StellaOps.AirGap.Importer/Validation/ReferrerValidator.cs (482 lines)
- src/AirGap/StellaOps.AirGap.Importer/Validation/RekorOfflineReceiptVerifier.cs (657 lines)
- src/AirGap/StellaOps.AirGap.Importer/Validation/RuleBundleValidator.cs (434 lines)
- src/AirGap/StellaOps.AirGap.Importer/Versioning/BundleVersion.cs (145 lines)
- Namespace issues:
- none
- Using directive issues:
- src/AirGap/StellaOps.AirGap.Importer/Policy/OfflineVerificationPolicyLoader.cs: using directives inside namespace
- src/AirGap/StellaOps.AirGap.Importer/Quarantine/FileSystemQuarantineService.cs: using directives inside namespace
- src/AirGap/StellaOps.AirGap.Importer/Reconciliation/EvidenceDirectoryDiscovery.cs: using directives inside namespace
- src/AirGap/StellaOps.AirGap.Importer/Reconciliation/Parsers/CycloneDxParser.cs: using directives inside namespace
- src/AirGap/StellaOps.AirGap.Importer/Reconciliation/Parsers/DsseAttestationParser.cs: using directives inside namespace
- src/AirGap/StellaOps.AirGap.Importer/Reconciliation/Parsers/OpenVexParser.cs: using directives inside namespace
- src/AirGap/StellaOps.AirGap.Importer/Reconciliation/Parsers/SpdxParser.cs: using directives inside namespace
- src/AirGap/StellaOps.AirGap.Importer/Reconciliation/Signing/EvidenceGraphDsseSigner.cs: using directives inside namespace
- src/AirGap/StellaOps.AirGap.Importer/Validation/ImportValidator.cs: using directives inside namespace
- src/AirGap/StellaOps.AirGap.Importer/Validation/MerkleRootCalculator.cs: using directives inside namespace
- src/AirGap/StellaOps.AirGap.Importer/Validation/ReferrerValidator.cs: using directives inside namespace
- src/AirGap/StellaOps.AirGap.Importer/Validation/RekorOfflineReceiptVerifier.cs: using directives inside namespace
- src/AirGap/StellaOps.AirGap.Importer/Validation/RuleBundleValidator.cs: using directives inside namespace
- Naming issues:
- src/AirGap/StellaOps.AirGap.Importer/Policy/OfflineVerificationPolicyLoader.cs: private field naming
- src/AirGap/StellaOps.AirGap.Importer/Quarantine/FileSystemQuarantineService.cs: private field naming
- src/AirGap/StellaOps.AirGap.Importer/Reconciliation/EvidenceDirectoryDiscovery.cs: private field naming
- src/AirGap/StellaOps.AirGap.Importer/Reconciliation/EvidenceGraph.cs: private field naming
- src/AirGap/StellaOps.AirGap.Importer/Reconciliation/EvidenceReconciler.cs: private field naming
- src/AirGap/StellaOps.AirGap.Importer/Reconciliation/JsonNormalizer.cs: private field naming
- src/AirGap/StellaOps.AirGap.Importer/Reconciliation/Parsers/CycloneDxParser.cs: private field naming
- src/AirGap/StellaOps.AirGap.Importer/Reconciliation/Parsers/DsseAttestationParser.cs: private field naming
- src/AirGap/StellaOps.AirGap.Importer/Reconciliation/Parsers/SpdxParser.cs: private field naming
- src/AirGap/StellaOps.AirGap.Importer/Reconciliation/Signing/EvidenceGraphDsseSigner.cs: private field naming
- src/AirGap/StellaOps.AirGap.Importer/Validation/RekorOfflineReceiptVerifier.cs: private field naming
- src/AirGap/StellaOps.AirGap.Importer/Validation/RuleBundleValidator.cs: private field naming
- Async issues:
- src/AirGap/StellaOps.AirGap.Importer/Policy/OfflineVerificationPolicyLoader.cs: async method naming
- src/AirGap/StellaOps.AirGap.Importer/Reconciliation/EvidenceGraph.cs: async method naming
- src/AirGap/StellaOps.AirGap.Importer/Reconciliation/EvidenceGraph.cs: missing ConfigureAwait(false)
- src/AirGap/StellaOps.AirGap.Importer/Reconciliation/EvidenceReconciler.cs: async method naming
- src/AirGap/StellaOps.AirGap.Importer/Reconciliation/Parsers/AttestationCollector.cs: async method naming
- src/AirGap/StellaOps.AirGap.Importer/Reconciliation/Parsers/CycloneDxParser.cs: async method naming
- src/AirGap/StellaOps.AirGap.Importer/Reconciliation/Parsers/CycloneDxParser.cs: missing ConfigureAwait(false)
- src/AirGap/StellaOps.AirGap.Importer/Reconciliation/Parsers/DsseAttestationParser.cs: async method naming
- src/AirGap/StellaOps.AirGap.Importer/Reconciliation/Parsers/DsseAttestationParser.cs: missing ConfigureAwait(false)
- src/AirGap/StellaOps.AirGap.Importer/Reconciliation/Parsers/SbomCollector.cs: async method naming
- src/AirGap/StellaOps.AirGap.Importer/Reconciliation/Parsers/SbomCollector.cs: missing ConfigureAwait(false)
- src/AirGap/StellaOps.AirGap.Importer/Reconciliation/Parsers/SbomParserFactory.cs: async method naming
- src/AirGap/StellaOps.AirGap.Importer/Reconciliation/Parsers/SbomParserFactory.cs: missing ConfigureAwait(false)
- src/AirGap/StellaOps.AirGap.Importer/Reconciliation/Parsers/SpdxParser.cs: async method naming
- src/AirGap/StellaOps.AirGap.Importer/Reconciliation/Parsers/SpdxParser.cs: missing ConfigureAwait(false)
- src/AirGap/StellaOps.AirGap.Importer/Validation/DsseVerifier.cs: blocking async usage
- src/AirGap/StellaOps.AirGap.Importer/Validation/RekorOfflineReceiptVerifier.cs: async method naming
- src/AirGap/StellaOps.AirGap.Importer/Validation/RuleBundleValidator.cs: async method naming
- src/AirGap/StellaOps.AirGap.Importer/Validation/RuleBundleValidator.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: 52
- Files with issues: 28
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/AirGap/StellaOps.AirGap.Importer/Policy/OfflineVerificationPolicy.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AirGap/StellaOps.AirGap.Importer/Policy/OfflineVerificationPolicyLoader.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/AirGap/StellaOps.AirGap.Importer/Quarantine/FileSystemQuarantineService.cs | FileLength>100; PrivateFieldNaming; UsingInsideNamespace | Move using directives outside namespace.; Rename private fields to _camelCase.; Split file to stay <= 100 lines. |
| src/AirGap/StellaOps.AirGap.Importer/Reconciliation/ArtifactIndex.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AirGap/StellaOps.AirGap.Importer/Reconciliation/EvidenceDirectoryDiscovery.cs | PrivateFieldNaming; UsingInsideNamespace | Move using directives outside namespace.; Rename private fields to _camelCase. |
| src/AirGap/StellaOps.AirGap.Importer/Reconciliation/EvidenceGraph.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/AirGap/StellaOps.AirGap.Importer/Reconciliation/EvidenceReconciler.cs | AsyncNaming; FileLength>100; PrivateFieldNaming | Rename async methods to end with Async.; Rename private fields to _camelCase.; Split file to stay <= 100 lines. |
| src/AirGap/StellaOps.AirGap.Importer/Reconciliation/JsonNormalizer.cs | FileLength>100; PrivateFieldNaming | Rename private fields to _camelCase.; Split file to stay <= 100 lines. |
| src/AirGap/StellaOps.AirGap.Importer/Reconciliation/SourcePrecedenceLattice.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AirGap/StellaOps.AirGap.Importer/Reconciliation/Parsers/AttestationCollector.cs | AsyncNaming; FileLength>100 | Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/AirGap/StellaOps.AirGap.Importer/Reconciliation/Parsers/CycloneDxParser.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/AirGap/StellaOps.AirGap.Importer/Reconciliation/Parsers/DsseAttestationParser.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/AirGap/StellaOps.AirGap.Importer/Reconciliation/Parsers/IAttestationParser.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AirGap/StellaOps.AirGap.Importer/Reconciliation/Parsers/ISbomParser.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AirGap/StellaOps.AirGap.Importer/Reconciliation/Parsers/OpenVexParser.cs | FileLength>100; UsingInsideNamespace | Move using directives outside namespace.; Split file to stay <= 100 lines. |
| src/AirGap/StellaOps.AirGap.Importer/Reconciliation/Parsers/SbomCollector.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/AirGap/StellaOps.AirGap.Importer/Reconciliation/Parsers/SbomNormalizer.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AirGap/StellaOps.AirGap.Importer/Reconciliation/Parsers/SbomParserFactory.cs | AsyncNaming; ConfigureAwaitMissing | Add ConfigureAwait(false) to awaited calls in library-like code.; Rename async methods to end with Async. |
| src/AirGap/StellaOps.AirGap.Importer/Reconciliation/Parsers/SpdxParser.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/AirGap/StellaOps.AirGap.Importer/Reconciliation/Signing/EvidenceGraphDsseSigner.cs | FileLength>100; PrivateFieldNaming; UsingInsideNamespace | Move using directives outside namespace.; Rename private fields to _camelCase.; Split file to stay <= 100 lines. |
| src/AirGap/StellaOps.AirGap.Importer/Telemetry/OfflineKitMetrics.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AirGap/StellaOps.AirGap.Importer/Validation/DsseVerifier.cs | BlockingAsync; FileLength>100 | Replace .Result/.Wait/GetAwaiter().GetResult() with await.; Split file to stay <= 100 lines. |
| src/AirGap/StellaOps.AirGap.Importer/Validation/ImportValidator.cs | FileLength>100; UsingInsideNamespace | Move using directives outside namespace.; Split file to stay <= 100 lines. |
| src/AirGap/StellaOps.AirGap.Importer/Validation/MerkleRootCalculator.cs | UsingInsideNamespace | Move using directives outside namespace. |
| src/AirGap/StellaOps.AirGap.Importer/Validation/ReferrerValidator.cs | FileLength>100; UsingInsideNamespace | Move using directives outside namespace.; Split file to stay <= 100 lines. |
| src/AirGap/StellaOps.AirGap.Importer/Validation/RekorOfflineReceiptVerifier.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/AirGap/StellaOps.AirGap.Importer/Validation/RuleBundleValidator.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/AirGap/StellaOps.AirGap.Importer/Versioning/BundleVersion.cs | FileLength>100 | Split file to stay <= 100 lines. |
## Testing Fullness Findings
- Status: FAIL
- Expected layers (heuristic): Unit
- Detected test projects: src/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/StellaOps.AirGap.Importer.Tests.csproj [Offline]
- 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.AirGap.Policy.Analyzers.Tests
## Project
- Path: src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy.Analyzers.Tests/StellaOps.AirGap.Policy.Analyzers.Tests.csproj
- Module: AirGap
- Kind: Library
- Audit date (UTC): 2026-01-30
- Files scanned: 8
- Files with issues: 8
- File-level report: docs/implplan/audits/csproj-standards/file-audit.csv
## Coding Standards Findings
- Status: FAIL
- Nullable: enable
- TreatWarningsAsErrors: inherited false
- Deterministic: inherited true
- 100-line rule violations: 2
- Namespace violations: 8
- Using directive violations: 0
- Naming violations (interfaces/fields/const/async): 0
- Service locator usage (BuildServiceProvider/GetService): 0
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy.Analyzers.Tests/HttpClientUsageAnalyzerTests.cs (132 lines)
- src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy.Analyzers.Tests/PolicyAnalyzerRoslynTests.cs (357 lines)
- Namespace issues:
- src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy.Analyzers.Tests/HttpClientUsageAnalyzerTests.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy.Analyzers.Tests/PolicyAnalyzerRoslynTests.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy.Analyzers.Tests/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy.Analyzers.Tests/obj/Debug/net10.0/SelfRegisteredExtensions.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy.Analyzers.Tests/obj/Debug/net10.0/StellaOps.AirGap.Policy.Analyzers.Tests.AssemblyInfo.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy.Analyzers.Tests/obj/Debug/net10.0/StellaOps.AirGap.Policy.Analyzers.Tests.GlobalUsings.g.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy.Analyzers.Tests/obj/Debug/net10.0/XunitAutoGeneratedEntryPoint.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy.Analyzers.Tests/obj/Release/net10.0/StellaOps.AirGap.Policy.Analyzers.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: 8
- Files with issues: 8
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy.Analyzers.Tests/HttpClientUsageAnalyzerTests.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy.Analyzers.Tests/PolicyAnalyzerRoslynTests.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy.Analyzers.Tests/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy.Analyzers.Tests/obj/Debug/net10.0/SelfRegisteredExtensions.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy.Analyzers.Tests/obj/Debug/net10.0/StellaOps.AirGap.Policy.Analyzers.Tests.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy.Analyzers.Tests/obj/Debug/net10.0/StellaOps.AirGap.Policy.Analyzers.Tests.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy.Analyzers.Tests/obj/Debug/net10.0/XunitAutoGeneratedEntryPoint.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy.Analyzers.Tests/obj/Release/net10.0/StellaOps.AirGap.Policy.Analyzers.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.AirGap.Policy.Analyzers.Tests
## Project
- Path: src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy.Analyzers.Tests/StellaOps.AirGap.Policy.Analyzers.Tests.csproj
- Module: AirGap
- 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: inherited false
- Deterministic: inherited true
- 100-line rule violations: 2
- 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/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy.Analyzers.Tests/HttpClientUsageAnalyzerTests.cs (132 lines)
- src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy.Analyzers.Tests/PolicyAnalyzerRoslynTests.cs (357 lines)
- Namespace issues:
- none
- Using directive issues:
- src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy.Analyzers.Tests/HttpClientUsageAnalyzerTests.cs: using directives inside namespace
- src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy.Analyzers.Tests/HttpClientUsageAnalyzerTests.cs: using directives not sorted
- src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy.Analyzers.Tests/PolicyAnalyzerRoslynTests.cs: using directives inside namespace
- src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy.Analyzers.Tests/PolicyAnalyzerRoslynTests.cs: using directives not sorted
- Naming issues:
- none
- Async issues:
- src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy.Analyzers.Tests/HttpClientUsageAnalyzerTests.cs: async method naming
- src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy.Analyzers.Tests/HttpClientUsageAnalyzerTests.cs: missing ConfigureAwait(false)
- src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy.Analyzers.Tests/PolicyAnalyzerRoslynTests.cs: async method naming
- src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy.Analyzers.Tests/PolicyAnalyzerRoslynTests.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/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy.Analyzers.Tests/HttpClientUsageAnalyzerTests.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/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy.Analyzers.Tests/PolicyAnalyzerRoslynTests.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,80 @@
# Audit - StellaOps.AirGap.Policy.Analyzers
## Project
- Path: src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy.Analyzers/StellaOps.AirGap.Policy.Analyzers.csproj
- Module: AirGap
- Kind: Library
- 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: 7
- Using directive violations: 0
- Naming violations (interfaces/fields/const/async): 0
- Service locator usage (BuildServiceProvider/GetService): 0
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy.Analyzers/HttpClientUsageAnalyzer.cs (107 lines)
- Namespace issues:
- src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy.Analyzers/HttpClientUsageAnalyzer.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy.Analyzers/obj/Debug/netstandard2.0/.NETStandard,Version=v2.0.AssemblyAttributes.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy.Analyzers/obj/Debug/netstandard2.0/StellaOps.AirGap.Policy.Analyzers.AssemblyInfo.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy.Analyzers/obj/Debug/netstandard2.0/StellaOps.AirGap.Policy.Analyzers.GlobalUsings.g.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy.Analyzers/obj/Release/netstandard2.0/.NETStandard,Version=v2.0.AssemblyAttributes.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy.Analyzers/obj/Release/netstandard2.0/StellaOps.AirGap.Policy.Analyzers.AssemblyInfo.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy.Analyzers/obj/Release/netstandard2.0/StellaOps.AirGap.Policy.Analyzers.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/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy.Analyzers/HttpClientUsageAnalyzer.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy.Analyzers/obj/Debug/netstandard2.0/.NETStandard,Version=v2.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy.Analyzers/obj/Debug/netstandard2.0/StellaOps.AirGap.Policy.Analyzers.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy.Analyzers/obj/Debug/netstandard2.0/StellaOps.AirGap.Policy.Analyzers.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy.Analyzers/obj/Release/netstandard2.0/.NETStandard,Version=v2.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy.Analyzers/obj/Release/netstandard2.0/StellaOps.AirGap.Policy.Analyzers.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy.Analyzers/obj/Release/netstandard2.0/StellaOps.AirGap.Policy.Analyzers.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
## Testing Fullness Findings
- Status: FAIL
- Expected layers (heuristic): Unit
- Detected test projects: src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy.Analyzers.Tests/StellaOps.AirGap.Policy.Analyzers.Tests.csproj [Offline]
- 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.AirGap.Policy.Analyzers
## Project
- Path: src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy.Analyzers/StellaOps.AirGap.Policy.Analyzers.csproj
- Module: AirGap
- Kind: Analyzer
- 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): 1
- Service locator usage (BuildServiceProvider/GetService): 0
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy.Analyzers/HttpClientUsageAnalyzer.cs (108 lines)
- Namespace issues:
- none
- Using directive issues:
- none
- Naming issues:
- src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy.Analyzers/HttpClientUsageAnalyzer.cs: private field naming
- Async issues:
- none
- Service locator matches:
- none
- Assembly.LoadFrom matches:
- none
### Fix Guidance
- Align interface/field/const naming to standards.
- 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/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy.Analyzers/HttpClientUsageAnalyzer.cs | FileLength>100; PrivateFieldNaming | Rename private fields to _camelCase.; Split file to stay <= 100 lines. |
## Testing Fullness Findings
- Status: FAIL
- Expected layers (heuristic): Unit
- Detected test projects: src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy.Analyzers.Tests/StellaOps.AirGap.Policy.Analyzers.Tests.csproj [Offline]
- 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.AirGap.Policy.Tests
## Project
- Path: src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy.Tests/StellaOps.AirGap.Policy.Tests.csproj
- Module: AirGap
- Kind: Library
- 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: inherited false
- Deterministic: inherited true
- 100-line rule violations: 1
- Namespace violations: 7
- Using directive violations: 0
- Naming violations (interfaces/fields/const/async): 0
- Service locator usage (BuildServiceProvider/GetService): 2
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy.Tests/EgressPolicyTests.cs (242 lines)
- Namespace issues:
- src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy.Tests/EgressPolicyTests.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy.Tests/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy.Tests/obj/Debug/net10.0/SelfRegisteredExtensions.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy.Tests/obj/Debug/net10.0/StellaOps.AirGap.Policy.Tests.AssemblyInfo.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy.Tests/obj/Debug/net10.0/StellaOps.AirGap.Policy.Tests.GlobalUsings.g.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy.Tests/obj/Debug/net10.0/XunitAutoGeneratedEntryPoint.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy.Tests/obj/Release/net10.0/StellaOps.AirGap.Policy.Tests.GlobalUsings.g.cs: missing namespace
- Using directive issues:
- none
- Naming issues:
- none
- Async issues:
- none
- Service locator matches:
- src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy.Tests/EgressPolicyTests.cs:155 using var provider = services.BuildServiceProvider();
- src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy.Tests/EgressPolicyTests.cs:184 using var provider = services.BuildServiceProvider();
- Assembly.LoadFrom matches:
- none
### Fix Guidance
- Normalize namespaces to file-scoped StellaOps.<Area>.
- Remove overrides that disable TreatWarningsAsErrors.
- Replace service locator usage with constructor injection.
- 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/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy.Tests/EgressPolicyTests.cs | FileLength>100; NamespaceMissing; ServiceLocator | Add file-scoped namespace: namespace StellaOps.<Area>;; Remove service locator usage; use constructor injection.; Split file to stay <= 100 lines. |
| src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy.Tests/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy.Tests/obj/Debug/net10.0/SelfRegisteredExtensions.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy.Tests/obj/Debug/net10.0/StellaOps.AirGap.Policy.Tests.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy.Tests/obj/Debug/net10.0/StellaOps.AirGap.Policy.Tests.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy.Tests/obj/Debug/net10.0/XunitAutoGeneratedEntryPoint.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy.Tests/obj/Release/net10.0/StellaOps.AirGap.Policy.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,73 @@
# Audit - StellaOps.AirGap.Policy.Tests
## Project
- Path: src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy.Tests/StellaOps.AirGap.Policy.Tests.csproj
- Module: AirGap
- 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): 0
- Service locator usage (BuildServiceProvider/GetService): 4
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy.Tests/EgressPolicyTests.cs (242 lines)
- Namespace issues:
- none
- Using directive issues:
- src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy.Tests/EgressPolicyTests.cs: using directives inside namespace
- src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy.Tests/EgressPolicyTests.cs: using directives not sorted
- Naming issues:
- none
- Async issues:
- none
- Service locator matches:
- src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy.Tests/EgressPolicyTests.cs:155 using var provider = services.BuildServiceProvider();
- src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy.Tests/EgressPolicyTests.cs:156 var policy = provider.GetRequiredService<IEgressPolicy>();
- src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy.Tests/EgressPolicyTests.cs:184 using var provider = services.BuildServiceProvider();
- src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy.Tests/EgressPolicyTests.cs:185 var policy = provider.GetRequiredService<IEgressPolicy>();
- Assembly.LoadFrom matches:
- none
### Fix Guidance
- Move and sort using directives (outside namespace).
- Remove overrides that disable TreatWarningsAsErrors.
- Replace service locator usage with constructor injection.
- 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/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy.Tests/EgressPolicyTests.cs | FileLength>100; ServiceLocator; UsingInsideNamespace; UsingNotSorted | Move using directives outside namespace.; Remove service locator usage; use constructor injection.; 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.AirGap.Policy
## Project
- Path: src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy.csproj
- Module: AirGap
- 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: 4
- 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/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy/AirGapEgressBlockedException.cs (101 lines)
- src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy/EgressPolicy.cs (244 lines)
- src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy/EgressPolicyServiceCollectionExtensions.cs (294 lines)
- src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy/EgressRule.cs (128 lines)
- Namespace issues:
- src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy/AirGapEgressBlockedException.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy/EgressDecision.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy/EgressHttpClientFactory.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy/EgressPolicy.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy/EgressPolicyMode.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy/EgressPolicyOptions.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy/EgressPolicyServiceCollectionExtensions.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy/EgressRequest.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy/EgressRule.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy/EgressTransport.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy/IEgressPolicy.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy/obj/Debug/net10.0/StellaOps.AirGap.Policy.AssemblyInfo.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy/obj/Debug/net10.0/StellaOps.AirGap.Policy.GlobalUsings.g.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy/obj/Release/net10.0/StellaOps.AirGap.Policy.AssemblyInfo.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy/obj/Release/net10.0/StellaOps.AirGap.Policy.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/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy/AirGapEgressBlockedException.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy/EgressDecision.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy/EgressHttpClientFactory.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy/EgressPolicy.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy/EgressPolicyMode.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy/EgressPolicyOptions.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy/EgressPolicyServiceCollectionExtensions.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy/EgressRequest.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy/EgressRule.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy/EgressTransport.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy/IEgressPolicy.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy/obj/Debug/net10.0/StellaOps.AirGap.Policy.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy/obj/Debug/net10.0/StellaOps.AirGap.Policy.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy/obj/Release/net10.0/StellaOps.AirGap.Policy.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy/obj/Release/net10.0/StellaOps.AirGap.Policy.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
## Testing Fullness Findings
- Status: PASS
- Expected layers (heuristic): Unit
- Detected test projects: src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy.Tests/StellaOps.AirGap.Policy.Tests.csproj [Offline]; src/TaskRunner/StellaOps.TaskRunner/StellaOps.TaskRunner.Tests/StellaOps.TaskRunner.Tests.csproj [Unit]; src/Telemetry/StellaOps.Telemetry.Core/StellaOps.Telemetry.Core.Tests/StellaOps.Telemetry.Core.Tests.csproj [Unit]
- Missing layers: none
### Manual checks required
- Observability contract tests for WebService/Worker.
- Intent tags for regulatory modules (Policy, Authority, Signer, Attestor, EvidenceLocker).
- Offline execution (tests must run without network access).
- Coverage matrix alignment (docs/technical/testing/TEST_COVERAGE_MATRIX.md).
### Fix Guidance
- None.

View File

@@ -0,0 +1,74 @@
# Audit - StellaOps.AirGap.Policy
## Project
- Path: src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy.csproj
- Module: AirGap
- 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: 4
- Namespace violations: 0
- Using directive violations: 0
- Naming violations (interfaces/fields/const/async): 1
- Service locator usage (BuildServiceProvider/GetService): 1
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy/AirGapEgressBlockedException.cs (101 lines)
- src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy/EgressPolicy.cs (245 lines)
- src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy/EgressPolicyServiceCollectionExtensions.cs (295 lines)
- src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy/EgressRule.cs (128 lines)
- Namespace issues:
- none
- Using directive issues:
- none
- Naming issues:
- none
- Async issues:
- src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy/EgressPolicy.cs: async method naming
- Service locator matches:
- src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy/EgressPolicyServiceCollectionExtensions.cs:38 var optionsMonitor = sp.GetRequiredService<IOptionsMonitor<EgressPolicyOptions>>();
- 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/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy/AirGapEgressBlockedException.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy/EgressPolicy.cs | AsyncNaming; FileLength>100 | Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy/EgressPolicyServiceCollectionExtensions.cs | FileLength>100; ServiceLocator | Remove service locator usage; use constructor injection.; Split file to stay <= 100 lines. |
| src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy/EgressRule.cs | FileLength>100 | Split file to stay <= 100 lines. |
## Testing Fullness Findings
- Status: PASS
- Expected layers (heuristic): Unit
- Detected test projects: src/AirGap/StellaOps.AirGap.Policy/StellaOps.AirGap.Policy.Tests/StellaOps.AirGap.Policy.Tests.csproj [Offline]; src/TaskRunner/StellaOps.TaskRunner/StellaOps.TaskRunner.Tests/StellaOps.TaskRunner.Tests.csproj [Unit]; src/Telemetry/StellaOps.Telemetry.Core/StellaOps.Telemetry.Core.Tests/StellaOps.Telemetry.Core.Tests.csproj [Unit]
- Missing layers: none
### Manual checks required
- Observability contract tests for WebService/Worker.
- Intent tags for regulatory modules (Policy, Authority, Signer, Attestor, EvidenceLocker).
- Offline execution (tests must run without network access).
- Coverage matrix alignment (docs/technical/testing/TEST_COVERAGE_MATRIX.md).
### Fix Guidance
- None.

View File

@@ -0,0 +1,138 @@
# Audit - StellaOps.AirGap.Time
## Project
- Path: src/AirGap/StellaOps.AirGap.Time/StellaOps.AirGap.Time.csproj
- Module: AirGap
- Kind: Library
- Audit date (UTC): 2026-01-30
- 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: explicit true
- Deterministic: inherited true
- 100-line rule violations: 3
- Namespace violations: 35
- 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/AirGap/StellaOps.AirGap.Time/Services/Rfc3161Verifier.cs (340 lines)
- src/AirGap/StellaOps.AirGap.Time/Services/RoughtimeVerifier.cs (431 lines)
- src/AirGap/StellaOps.AirGap.Time/Services/TimeAnchorPolicyService.cs (307 lines)
- Namespace issues:
- src/AirGap/StellaOps.AirGap.Time/Config/AirGapOptionsValidator.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Time/Controllers/TimeStatusController.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Time/Health/TimeAnchorHealthCheck.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Time/Hooks/StartupValidationExtensions.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Time/Models/AirGapOptions.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Time/Models/SetAnchorRequest.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Time/Models/StalenessBudget.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Time/Models/StalenessEvaluation.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Time/Models/TimeAnchor.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Time/Models/TimeStatus.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Time/Models/TimeStatusDto.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Time/Models/TimeTrustRoot.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Time/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Time/obj/Debug/net10.0/StellaOps.AirGap.Time.AssemblyInfo.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Time/obj/Debug/net10.0/StellaOps.AirGap.Time.GlobalUsings.g.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Time/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Time/obj/Release/net10.0/StellaOps.AirGap.Time.AssemblyInfo.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Time/obj/Release/net10.0/StellaOps.AirGap.Time.GlobalUsings.g.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Time/Parsing/TimeAnchorValidationResult.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Time/Parsing/TimeTokenFormat.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Time/Parsing/TimeTokenParser.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Time/Services/ITimeTokenVerifier.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Time/Services/Rfc3161Verifier.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Time/Services/RoughtimeVerifier.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Time/Services/SealedStartupValidator.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Time/Services/StalenessCalculator.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Time/Services/TimeAnchorLoader.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Time/Services/TimeAnchorPolicyService.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Time/Services/TimeStatusService.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Time/Services/TimeTelemetry.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Time/Services/TimeTokenVerificationOptions.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Time/Services/TimeVerificationService.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Time/Services/TrustRootProvider.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Time/Stores/InMemoryTimeAnchorStore.cs: missing namespace
- src/AirGap/StellaOps.AirGap.Time/Stores/ITimeAnchorStore.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: 36
- Files with issues: 35
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/AirGap/StellaOps.AirGap.Time/Config/AirGapOptionsValidator.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Time/Controllers/TimeStatusController.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Time/Health/TimeAnchorHealthCheck.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Time/Hooks/StartupValidationExtensions.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Time/Models/AirGapOptions.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Time/Models/SetAnchorRequest.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Time/Models/StalenessBudget.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Time/Models/StalenessEvaluation.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Time/Models/TimeAnchor.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Time/Models/TimeStatus.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Time/Models/TimeStatusDto.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Time/Models/TimeTrustRoot.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Time/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Time/obj/Debug/net10.0/StellaOps.AirGap.Time.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Time/obj/Debug/net10.0/StellaOps.AirGap.Time.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Time/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Time/obj/Release/net10.0/StellaOps.AirGap.Time.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Time/obj/Release/net10.0/StellaOps.AirGap.Time.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Time/Parsing/TimeAnchorValidationResult.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Time/Parsing/TimeTokenFormat.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Time/Parsing/TimeTokenParser.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Time/Services/ITimeTokenVerifier.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Time/Services/Rfc3161Verifier.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AirGap/StellaOps.AirGap.Time/Services/RoughtimeVerifier.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AirGap/StellaOps.AirGap.Time/Services/SealedStartupValidator.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Time/Services/StalenessCalculator.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Time/Services/TimeAnchorLoader.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Time/Services/TimeAnchorPolicyService.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AirGap/StellaOps.AirGap.Time/Services/TimeStatusService.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Time/Services/TimeTelemetry.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Time/Services/TimeTokenVerificationOptions.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Time/Services/TimeVerificationService.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Time/Services/TrustRootProvider.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Time/Stores/InMemoryTimeAnchorStore.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/StellaOps.AirGap.Time/Stores/ITimeAnchorStore.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
## Testing Fullness Findings
- Status: FAIL
- Expected layers (heuristic): Unit
- Detected test projects: src/AirGap/__Libraries/__Tests/StellaOps.AirGap.Bundle.Tests/StellaOps.AirGap.Bundle.Tests.csproj [Offline]; src/AirGap/__Tests/StellaOps.AirGap.Time.Tests/StellaOps.AirGap.Time.Tests.csproj [Offline]
- 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,99 @@
# Audit - StellaOps.AirGap.Time
## Project
- Path: src/AirGap/StellaOps.AirGap.Time/StellaOps.AirGap.Time.csproj
- Module: AirGap
- Kind: Library
- Audit date (UTC): 2026-01-31
- Files scanned: 30
- 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: 3
- Namespace violations: 0
- Using directive violations: 4
- Naming violations (interfaces/fields/const/async): 12
- Service locator usage (BuildServiceProvider/GetService): 4
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/AirGap/StellaOps.AirGap.Time/Services/Rfc3161Verifier.cs (341 lines)
- src/AirGap/StellaOps.AirGap.Time/Services/RoughtimeVerifier.cs (432 lines)
- src/AirGap/StellaOps.AirGap.Time/Services/TimeAnchorPolicyService.cs (307 lines)
- Namespace issues:
- none
- Using directive issues:
- src/AirGap/StellaOps.AirGap.Time/Hooks/StartupValidationExtensions.cs: using directives inside namespace
- src/AirGap/StellaOps.AirGap.Time/Services/Rfc3161Verifier.cs: using directives inside namespace
- src/AirGap/StellaOps.AirGap.Time/Services/RoughtimeVerifier.cs: using directives inside namespace
- src/AirGap/StellaOps.AirGap.Time/Services/TrustRootProvider.cs: using directives inside namespace
- Naming issues:
- src/AirGap/StellaOps.AirGap.Time/Services/Rfc3161Verifier.cs: private field naming
- src/AirGap/StellaOps.AirGap.Time/Services/TimeTelemetry.cs: private field naming
- Async issues:
- src/AirGap/StellaOps.AirGap.Time/Controllers/TimeStatusController.cs: async method naming
- src/AirGap/StellaOps.AirGap.Time/Controllers/TimeStatusController.cs: missing ConfigureAwait(false)
- src/AirGap/StellaOps.AirGap.Time/Health/TimeAnchorHealthCheck.cs: async method naming
- src/AirGap/StellaOps.AirGap.Time/Health/TimeAnchorHealthCheck.cs: missing ConfigureAwait(false)
- src/AirGap/StellaOps.AirGap.Time/Hooks/StartupValidationExtensions.cs: blocking async usage
- src/AirGap/StellaOps.AirGap.Time/Services/SealedStartupValidator.cs: async method naming
- src/AirGap/StellaOps.AirGap.Time/Services/SealedStartupValidator.cs: missing ConfigureAwait(false)
- src/AirGap/StellaOps.AirGap.Time/Services/TimeAnchorPolicyService.cs: async method naming
- src/AirGap/StellaOps.AirGap.Time/Services/TimeStatusService.cs: async method naming
- src/AirGap/StellaOps.AirGap.Time/Services/TimeStatusService.cs: missing ConfigureAwait(false)
- Service locator matches:
- src/AirGap/StellaOps.AirGap.Time/Program.cs:42 var opts = app.Services.GetRequiredService<IOptions<AirGapOptions>>().Value;
- src/AirGap/StellaOps.AirGap.Time/Program.cs:46 app.Services.GetRequiredService<ILogger<Program>>()
- src/AirGap/StellaOps.AirGap.Time/Hooks/StartupValidationExtensions.cs:18 var validator = scope.ServiceProvider.GetRequiredService<SealedStartupValidator>();
- src/AirGap/StellaOps.AirGap.Time/Hooks/StartupValidationExtensions.cs:19 var logger = scope.ServiceProvider.GetRequiredService<ILoggerFactory>().CreateLogger("AirGap.Time.Startup");
- 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: 30
- Files with issues: 11
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/AirGap/StellaOps.AirGap.Time/Program.cs | ServiceLocator | Remove service locator usage; use constructor injection. |
| src/AirGap/StellaOps.AirGap.Time/Controllers/TimeStatusController.cs | AsyncNaming; ConfigureAwaitMissing | Add ConfigureAwait(false) to awaited calls in library-like code.; Rename async methods to end with Async. |
| src/AirGap/StellaOps.AirGap.Time/Health/TimeAnchorHealthCheck.cs | AsyncNaming; ConfigureAwaitMissing | Add ConfigureAwait(false) to awaited calls in library-like code.; Rename async methods to end with Async. |
| src/AirGap/StellaOps.AirGap.Time/Hooks/StartupValidationExtensions.cs | BlockingAsync; ServiceLocator; UsingInsideNamespace | Move using directives outside namespace.; Remove service locator usage; use constructor injection.; Replace .Result/.Wait/GetAwaiter().GetResult() with await. |
| src/AirGap/StellaOps.AirGap.Time/Services/Rfc3161Verifier.cs | FileLength>100; PrivateFieldNaming; UsingInsideNamespace | Move using directives outside namespace.; Rename private fields to _camelCase.; Split file to stay <= 100 lines. |
| src/AirGap/StellaOps.AirGap.Time/Services/RoughtimeVerifier.cs | FileLength>100; UsingInsideNamespace | Move using directives outside namespace.; Split file to stay <= 100 lines. |
| src/AirGap/StellaOps.AirGap.Time/Services/SealedStartupValidator.cs | AsyncNaming; ConfigureAwaitMissing | Add ConfigureAwait(false) to awaited calls in library-like code.; Rename async methods to end with Async. |
| src/AirGap/StellaOps.AirGap.Time/Services/TimeAnchorPolicyService.cs | AsyncNaming; FileLength>100 | Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/AirGap/StellaOps.AirGap.Time/Services/TimeStatusService.cs | AsyncNaming; ConfigureAwaitMissing | Add ConfigureAwait(false) to awaited calls in library-like code.; Rename async methods to end with Async. |
| src/AirGap/StellaOps.AirGap.Time/Services/TimeTelemetry.cs | PrivateFieldNaming | Rename private fields to _camelCase. |
| src/AirGap/StellaOps.AirGap.Time/Services/TrustRootProvider.cs | UsingInsideNamespace | Move using directives outside namespace. |
## Testing Fullness Findings
- Status: FAIL
- Expected layers (heuristic): Unit
- Detected test projects: src/AirGap/__Libraries/__Tests/StellaOps.AirGap.Bundle.Tests/StellaOps.AirGap.Bundle.Tests.csproj [Offline]; src/AirGap/__Tests/StellaOps.AirGap.Time.Tests/StellaOps.AirGap.Time.Tests.csproj [Offline]
- 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,173 @@
# Audit - StellaOps.AirGap.Bundle
## Project
- Path: src/AirGap/__Libraries/StellaOps.AirGap.Bundle/StellaOps.AirGap.Bundle.csproj
- Module: AirGap
- Kind: Library
- Audit date (UTC): 2026-01-30
- Files scanned: 41
- Files with issues: 41
- 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: 26
- Namespace violations: 41
- 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/AirGap/__Libraries/StellaOps.AirGap.Bundle/Extractors/AdvisorySnapshotExtractor.cs (270 lines)
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Extractors/PolicySnapshotExtractor.cs (375 lines)
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Extractors/VexSnapshotExtractor.cs (296 lines)
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/FunctionMap/FunctionMapBundleIntegration.cs (240 lines)
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Models/BundleFormatV2.cs (267 lines)
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Models/BundleManifest.cs (271 lines)
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Models/KnowledgeSnapshotManifest.cs (167 lines)
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/Abstractions.cs (163 lines)
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/BundleBuilder.cs (640 lines)
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/ConcelierAdvisoryImportTarget.cs (270 lines)
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/CrlFetcher.cs (161 lines)
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/ExcititorVexImportTarget.cs (266 lines)
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/KnowledgeSnapshotImporter.cs (568 lines)
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/LocalRbacBundleExtensions.cs (180 lines)
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/OcspResponseFetcher.cs (139 lines)
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/PolicyRegistryImportTarget.cs (252 lines)
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/SnapshotBundleReader.cs (621 lines)
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/SnapshotBundleWriter.cs (602 lines)
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/SnapshotManifestSigner.cs (489 lines)
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/TimeAnchorService.cs (320 lines)
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/TrustProfileLoader.cs (112 lines)
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/TsaChainBundler.cs (272 lines)
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/TrustSnapshot/TrustSnapshotBuilder.cs (596 lines)
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/TrustSnapshot/TrustSnapshotImporter.cs (687 lines)
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/TrustSnapshot/TrustSnapshotManifest.cs (360 lines)
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Validation/BundleValidator.cs (225 lines)
- Namespace issues:
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Extractors/AdvisorySnapshotExtractor.cs: missing namespace
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Extractors/PolicySnapshotExtractor.cs: missing namespace
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Extractors/VexSnapshotExtractor.cs: missing namespace
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/FunctionMap/FunctionMapBundleIntegration.cs: missing namespace
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Models/BundleExportMode.cs: missing namespace
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Models/BundleFormatV2.cs: missing namespace
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Models/BundleManifest.cs: missing namespace
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Models/BundleSubject.cs: missing namespace
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Models/KnowledgeSnapshotManifest.cs: missing namespace
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Models/RekorProofEntry.cs: missing namespace
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Models/TimestampEntry.cs: missing namespace
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Models/TrustProfile.cs: missing namespace
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/obj/Debug/net10.0/StellaOps.AirGap.Bundle.AssemblyInfo.cs: missing namespace
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/obj/Debug/net10.0/StellaOps.AirGap.Bundle.GlobalUsings.g.cs: missing namespace
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/obj/Release/net10.0/StellaOps.AirGap.Bundle.GlobalUsings.g.cs: missing namespace
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Serialization/BundleManifestSerializer.cs: missing namespace
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Serialization/TimestampEntryJsonConverter.cs: missing namespace
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/Abstractions.cs: missing namespace
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/BundleBuilder.cs: missing namespace
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/BundleLoader.cs: missing namespace
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/ConcelierAdvisoryImportTarget.cs: missing namespace
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/CrlFetcher.cs: missing namespace
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/ExcititorVexImportTarget.cs: missing namespace
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/KnowledgeSnapshotImporter.cs: missing namespace
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/LocalRbacBundleExtensions.cs: missing namespace
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/OcspResponseFetcher.cs: missing namespace
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/PolicyRegistryImportTarget.cs: missing namespace
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/SnapshotBundleReader.cs: missing namespace
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/SnapshotBundleWriter.cs: missing namespace
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/SnapshotManifestSigner.cs: missing namespace
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/TimeAnchorService.cs: missing namespace
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/TrustProfileLoader.cs: missing namespace
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/TsaChainBundler.cs: missing namespace
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/TsaRevocationBlob.cs: missing namespace
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/TrustSnapshot/IGuidProvider.cs: missing namespace
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/TrustSnapshot/TrustSnapshotBuilder.cs: missing namespace
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/TrustSnapshot/TrustSnapshotImporter.cs: missing namespace
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/TrustSnapshot/TrustSnapshotManifest.cs: missing namespace
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Validation/BundleSizeValidator.cs: missing namespace
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Validation/BundleValidator.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: 41
- Files with issues: 41
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Extractors/AdvisorySnapshotExtractor.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Extractors/PolicySnapshotExtractor.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Extractors/VexSnapshotExtractor.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AirGap/__Libraries/StellaOps.AirGap.Bundle/FunctionMap/FunctionMapBundleIntegration.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Models/BundleExportMode.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Models/BundleFormatV2.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Models/BundleManifest.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Models/BundleSubject.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Models/KnowledgeSnapshotManifest.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Models/RekorProofEntry.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Models/TimestampEntry.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Models/TrustProfile.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/__Libraries/StellaOps.AirGap.Bundle/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/__Libraries/StellaOps.AirGap.Bundle/obj/Debug/net10.0/StellaOps.AirGap.Bundle.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/__Libraries/StellaOps.AirGap.Bundle/obj/Debug/net10.0/StellaOps.AirGap.Bundle.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/__Libraries/StellaOps.AirGap.Bundle/obj/Release/net10.0/StellaOps.AirGap.Bundle.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Serialization/BundleManifestSerializer.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Serialization/TimestampEntryJsonConverter.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/Abstractions.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/BundleBuilder.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/BundleLoader.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/ConcelierAdvisoryImportTarget.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/CrlFetcher.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/ExcititorVexImportTarget.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/KnowledgeSnapshotImporter.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/LocalRbacBundleExtensions.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/OcspResponseFetcher.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/PolicyRegistryImportTarget.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/SnapshotBundleReader.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/SnapshotBundleWriter.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/SnapshotManifestSigner.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/TimeAnchorService.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/TrustProfileLoader.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/TsaChainBundler.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/TsaRevocationBlob.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/__Libraries/StellaOps.AirGap.Bundle/TrustSnapshot/IGuidProvider.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/__Libraries/StellaOps.AirGap.Bundle/TrustSnapshot/TrustSnapshotBuilder.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AirGap/__Libraries/StellaOps.AirGap.Bundle/TrustSnapshot/TrustSnapshotImporter.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AirGap/__Libraries/StellaOps.AirGap.Bundle/TrustSnapshot/TrustSnapshotManifest.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Validation/BundleSizeValidator.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Validation/BundleValidator.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: src/AirGap/__Libraries/__Tests/StellaOps.AirGap.Bundle.Tests/StellaOps.AirGap.Bundle.Tests.csproj [Offline]
- 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,164 @@
# Audit - StellaOps.AirGap.Bundle
## Project
- Path: src/AirGap/__Libraries/StellaOps.AirGap.Bundle/StellaOps.AirGap.Bundle.csproj
- Module: AirGap
- Kind: Library
- Audit date (UTC): 2026-01-31
- Files scanned: 37
- Files with issues: 29
- 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: 26
- Namespace violations: 0
- Using directive violations: 5
- Naming violations (interfaces/fields/const/async): 39
- Service locator usage (BuildServiceProvider/GetService): 0
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Extractors/AdvisorySnapshotExtractor.cs (271 lines)
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Extractors/PolicySnapshotExtractor.cs (376 lines)
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Extractors/VexSnapshotExtractor.cs (297 lines)
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/FunctionMap/FunctionMapBundleIntegration.cs (240 lines)
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Models/BundleFormatV2.cs (267 lines)
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Models/BundleManifest.cs (271 lines)
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Models/KnowledgeSnapshotManifest.cs (167 lines)
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/Abstractions.cs (163 lines)
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/BundleBuilder.cs (641 lines)
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/ConcelierAdvisoryImportTarget.cs (271 lines)
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/CrlFetcher.cs (162 lines)
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/ExcititorVexImportTarget.cs (267 lines)
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/KnowledgeSnapshotImporter.cs (569 lines)
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/LocalRbacBundleExtensions.cs (181 lines)
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/OcspResponseFetcher.cs (140 lines)
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/PolicyRegistryImportTarget.cs (253 lines)
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/SnapshotBundleReader.cs (622 lines)
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/SnapshotBundleWriter.cs (603 lines)
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/SnapshotManifestSigner.cs (490 lines)
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/TimeAnchorService.cs (320 lines)
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/TrustProfileLoader.cs (113 lines)
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/TsaChainBundler.cs (272 lines)
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/TrustSnapshot/TrustSnapshotBuilder.cs (596 lines)
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/TrustSnapshot/TrustSnapshotImporter.cs (687 lines)
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/TrustSnapshot/TrustSnapshotManifest.cs (360 lines)
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Validation/BundleValidator.cs (226 lines)
- Namespace issues:
- none
- Using directive issues:
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Extractors/PolicySnapshotExtractor.cs: using directives inside namespace
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Serialization/TimestampEntryJsonConverter.cs: using directives inside namespace
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/CrlFetcher.cs: using directives inside namespace
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/OcspResponseFetcher.cs: using directives inside namespace
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/SnapshotManifestSigner.cs: using directives inside namespace
- Naming issues:
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Extractors/AdvisorySnapshotExtractor.cs: private field naming
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Extractors/PolicySnapshotExtractor.cs: private field naming
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Extractors/VexSnapshotExtractor.cs: private field naming
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Serialization/BundleManifestSerializer.cs: private field naming
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/ConcelierAdvisoryImportTarget.cs: private field naming
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/CrlFetcher.cs: private field naming
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/ExcititorVexImportTarget.cs: private field naming
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/KnowledgeSnapshotImporter.cs: private field naming
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/OcspResponseFetcher.cs: private field naming
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/PolicyRegistryImportTarget.cs: private field naming
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/SnapshotBundleReader.cs: private field naming
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/SnapshotBundleWriter.cs: private field naming
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/SnapshotManifestSigner.cs: private field naming
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/TimeAnchorService.cs: private field naming
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/TrustProfileLoader.cs: private field naming
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/TrustSnapshot/TrustSnapshotBuilder.cs: private field naming
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/TrustSnapshot/TrustSnapshotImporter.cs: private field naming
- Async issues:
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Extractors/AdvisorySnapshotExtractor.cs: missing ConfigureAwait(false)
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Extractors/PolicySnapshotExtractor.cs: async method naming
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Extractors/PolicySnapshotExtractor.cs: missing ConfigureAwait(false)
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Extractors/VexSnapshotExtractor.cs: missing ConfigureAwait(false)
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/BundleBuilder.cs: async method naming
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/BundleLoader.cs: async method naming
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/ConcelierAdvisoryImportTarget.cs: missing ConfigureAwait(false)
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/CrlFetcher.cs: async method naming
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/ExcititorVexImportTarget.cs: missing ConfigureAwait(false)
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/KnowledgeSnapshotImporter.cs: async method naming
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/KnowledgeSnapshotImporter.cs: missing ConfigureAwait(false)
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/OcspResponseFetcher.cs: async method naming
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/PolicyRegistryImportTarget.cs: missing ConfigureAwait(false)
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/SnapshotBundleReader.cs: async method naming
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/SnapshotBundleReader.cs: missing ConfigureAwait(false)
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/SnapshotBundleWriter.cs: async method naming
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/SnapshotBundleWriter.cs: missing ConfigureAwait(false)
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/SnapshotManifestSigner.cs: missing ConfigureAwait(false)
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/TimeAnchorService.cs: missing ConfigureAwait(false)
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/TrustSnapshot/TrustSnapshotBuilder.cs: missing ConfigureAwait(false)
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/TrustSnapshot/TrustSnapshotImporter.cs: async method naming
- src/AirGap/__Libraries/StellaOps.AirGap.Bundle/TrustSnapshot/TrustSnapshotImporter.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: 37
- Files with issues: 29
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Extractors/AdvisorySnapshotExtractor.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/AirGap/__Libraries/StellaOps.AirGap.Bundle/Extractors/PolicySnapshotExtractor.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/AirGap/__Libraries/StellaOps.AirGap.Bundle/Extractors/VexSnapshotExtractor.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/AirGap/__Libraries/StellaOps.AirGap.Bundle/FunctionMap/FunctionMapBundleIntegration.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Models/BundleFormatV2.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Models/BundleManifest.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Models/KnowledgeSnapshotManifest.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Serialization/BundleManifestSerializer.cs | PrivateFieldNaming | Rename private fields to _camelCase. |
| src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Serialization/TimestampEntryJsonConverter.cs | UsingInsideNamespace | Move using directives outside namespace. |
| src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/Abstractions.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/BundleBuilder.cs | AsyncNaming; FileLength>100 | Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/BundleLoader.cs | AsyncNaming | Rename async methods to end with Async. |
| src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/ConcelierAdvisoryImportTarget.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/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/CrlFetcher.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/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/ExcititorVexImportTarget.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/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/KnowledgeSnapshotImporter.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/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/LocalRbacBundleExtensions.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/OcspResponseFetcher.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/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/PolicyRegistryImportTarget.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/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/SnapshotBundleReader.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/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/SnapshotBundleWriter.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/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/SnapshotManifestSigner.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/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/TimeAnchorService.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/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/TrustProfileLoader.cs | FileLength>100; PrivateFieldNaming | Rename private fields to _camelCase.; Split file to stay <= 100 lines. |
| src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Services/TsaChainBundler.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AirGap/__Libraries/StellaOps.AirGap.Bundle/TrustSnapshot/TrustSnapshotBuilder.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/AirGap/__Libraries/StellaOps.AirGap.Bundle/TrustSnapshot/TrustSnapshotImporter.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/AirGap/__Libraries/StellaOps.AirGap.Bundle/TrustSnapshot/TrustSnapshotManifest.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AirGap/__Libraries/StellaOps.AirGap.Bundle/Validation/BundleValidator.cs | FileLength>100 | Split file to stay <= 100 lines. |
## Testing Fullness Findings
- Status: FAIL
- Expected layers (heuristic): Unit
- Detected test projects: src/AirGap/__Libraries/__Tests/StellaOps.AirGap.Bundle.Tests/StellaOps.AirGap.Bundle.Tests.csproj [Offline]
- 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,87 @@
# Audit - StellaOps.AirGap.Persistence
## Project
- Path: src/AirGap/__Libraries/StellaOps.AirGap.Persistence/StellaOps.AirGap.Persistence.csproj
- Module: AirGap
- Kind: Library
- Audit date (UTC): 2026-01-30
- 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: 2
- Namespace violations: 10
- 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/AirGap/__Libraries/StellaOps.AirGap.Persistence/Postgres/Repositories/PostgresAirGapStateStore.cs (342 lines)
- src/AirGap/__Libraries/StellaOps.AirGap.Persistence/Postgres/Repositories/PostgresBundleVersionStore.cs (362 lines)
- Namespace issues:
- src/AirGap/__Libraries/StellaOps.AirGap.Persistence/EfCore/Context/AirGapDbContext.cs: missing namespace
- src/AirGap/__Libraries/StellaOps.AirGap.Persistence/Extensions/AirGapPersistenceExtensions.cs: missing namespace
- src/AirGap/__Libraries/StellaOps.AirGap.Persistence/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/AirGap/__Libraries/StellaOps.AirGap.Persistence/obj/Debug/net10.0/StellaOps.AirGap.Persistence.AssemblyInfo.cs: missing namespace
- src/AirGap/__Libraries/StellaOps.AirGap.Persistence/obj/Debug/net10.0/StellaOps.AirGap.Persistence.GlobalUsings.g.cs: missing namespace
- src/AirGap/__Libraries/StellaOps.AirGap.Persistence/obj/Release/net10.0/StellaOps.AirGap.Persistence.GlobalUsings.g.cs: missing namespace
- src/AirGap/__Libraries/StellaOps.AirGap.Persistence/Postgres/AirGapDataSource.cs: missing namespace
- src/AirGap/__Libraries/StellaOps.AirGap.Persistence/Postgres/AirGapStartupMigrationHost.cs: missing namespace
- src/AirGap/__Libraries/StellaOps.AirGap.Persistence/Postgres/Repositories/PostgresAirGapStateStore.cs: missing namespace
- src/AirGap/__Libraries/StellaOps.AirGap.Persistence/Postgres/Repositories/PostgresBundleVersionStore.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: 10
- Files with issues: 10
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/AirGap/__Libraries/StellaOps.AirGap.Persistence/EfCore/Context/AirGapDbContext.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/__Libraries/StellaOps.AirGap.Persistence/Extensions/AirGapPersistenceExtensions.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/__Libraries/StellaOps.AirGap.Persistence/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/__Libraries/StellaOps.AirGap.Persistence/obj/Debug/net10.0/StellaOps.AirGap.Persistence.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/__Libraries/StellaOps.AirGap.Persistence/obj/Debug/net10.0/StellaOps.AirGap.Persistence.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/__Libraries/StellaOps.AirGap.Persistence/obj/Release/net10.0/StellaOps.AirGap.Persistence.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/__Libraries/StellaOps.AirGap.Persistence/Postgres/AirGapDataSource.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/__Libraries/StellaOps.AirGap.Persistence/Postgres/AirGapStartupMigrationHost.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/__Libraries/StellaOps.AirGap.Persistence/Postgres/Repositories/PostgresAirGapStateStore.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AirGap/__Libraries/StellaOps.AirGap.Persistence/Postgres/Repositories/PostgresBundleVersionStore.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/AirGap/__Tests/StellaOps.AirGap.Persistence.Tests/StellaOps.AirGap.Persistence.Tests.csproj [Offline]
- Missing layers: Integration, Unit
### Manual checks required
- Observability contract tests for WebService/Worker.
- Intent tags for regulatory modules (Policy, Authority, Signer, Attestor, EvidenceLocker).
- Offline execution (tests must run without network access).
- Coverage matrix alignment (docs/technical/testing/TEST_COVERAGE_MATRIX.md).
### Fix Guidance
- Add or expand test projects to cover missing layers.
- Ensure tests use deterministic fixtures and offline harnesses.

View File

@@ -0,0 +1,76 @@
# Audit - StellaOps.AirGap.Persistence
## Project
- Path: src/AirGap/__Libraries/StellaOps.AirGap.Persistence/StellaOps.AirGap.Persistence.csproj
- Module: AirGap
- 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): 2
- Service locator usage (BuildServiceProvider/GetService): 3
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/AirGap/__Libraries/StellaOps.AirGap.Persistence/Postgres/Repositories/PostgresAirGapStateStore.cs (343 lines)
- src/AirGap/__Libraries/StellaOps.AirGap.Persistence/Postgres/Repositories/PostgresBundleVersionStore.cs (362 lines)
- Namespace issues:
- none
- Using directive issues:
- src/AirGap/__Libraries/StellaOps.AirGap.Persistence/Postgres/Repositories/PostgresAirGapStateStore.cs: using directives inside namespace
- Naming issues:
- none
- Async issues:
- src/AirGap/__Libraries/StellaOps.AirGap.Persistence/Postgres/Repositories/PostgresAirGapStateStore.cs: async method naming
- src/AirGap/__Libraries/StellaOps.AirGap.Persistence/Postgres/Repositories/PostgresBundleVersionStore.cs: async method naming
- Service locator matches:
- src/AirGap/__Libraries/StellaOps.AirGap.Persistence/Extensions/AirGapPersistenceExtensions.cs:55 var options = serviceProvider.GetRequiredService<Microsoft.Extensions.Options.IOptions<PostgresOptions>>().Value;
- src/AirGap/__Libraries/StellaOps.AirGap.Persistence/Extensions/AirGapPersistenceExtensions.cs:61 var logger = serviceProvider.GetRequiredService<ILoggerFactory>()
- src/AirGap/__Libraries/StellaOps.AirGap.Persistence/Extensions/AirGapPersistenceExtensions.cs:63 var lifetime = serviceProvider.GetRequiredService<IHostApplicationLifetime>();
- 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: 3
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/AirGap/__Libraries/StellaOps.AirGap.Persistence/Extensions/AirGapPersistenceExtensions.cs | ServiceLocator | Remove service locator usage; use constructor injection. |
| src/AirGap/__Libraries/StellaOps.AirGap.Persistence/Postgres/Repositories/PostgresAirGapStateStore.cs | AsyncNaming; FileLength>100; UsingInsideNamespace | Move using directives outside namespace.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/AirGap/__Libraries/StellaOps.AirGap.Persistence/Postgres/Repositories/PostgresBundleVersionStore.cs | AsyncNaming; FileLength>100 | Rename async methods to end with Async.; Split file to stay <= 100 lines. |
## Testing Fullness Findings
- Status: FAIL
- Expected layers (heuristic): Integration, Unit
- Detected test projects: src/AirGap/__Tests/StellaOps.AirGap.Persistence.Tests/StellaOps.AirGap.Persistence.Tests.csproj [Offline]
- Missing layers: Integration, Unit
### Manual checks required
- Observability contract tests for WebService/Worker.
- Intent tags for regulatory modules (Policy, Authority, Signer, Attestor, EvidenceLocker).
- Offline execution (tests must run without network access).
- Coverage matrix alignment (docs/technical/testing/TEST_COVERAGE_MATRIX.md).
### Fix Guidance
- Add or expand test projects to cover missing layers.
- Ensure tests use deterministic fixtures and offline harnesses.

View File

@@ -0,0 +1,130 @@
# Audit - StellaOps.AirGap.Sync
## Project
- Path: src/AirGap/__Libraries/StellaOps.AirGap.Sync/StellaOps.AirGap.Sync.csproj
- Module: AirGap
- Kind: Library
- Audit date (UTC): 2026-01-30
- Files scanned: 26
- Files with issues: 26
- 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: 13
- Namespace violations: 26
- 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/AirGap/__Libraries/StellaOps.AirGap.Sync/AirGapSyncServiceCollectionExtensions.cs (154 lines)
- src/AirGap/__Libraries/StellaOps.AirGap.Sync/Services/AirGapBundleDsseSigner.cs (276 lines)
- src/AirGap/__Libraries/StellaOps.AirGap.Sync/Services/AirGapBundleExporter.cs (271 lines)
- src/AirGap/__Libraries/StellaOps.AirGap.Sync/Services/AirGapBundleImporter.cs (317 lines)
- src/AirGap/__Libraries/StellaOps.AirGap.Sync/Services/AirGapSyncService.cs (199 lines)
- src/AirGap/__Libraries/StellaOps.AirGap.Sync/Services/ConflictResolver.cs (115 lines)
- src/AirGap/__Libraries/StellaOps.AirGap.Sync/Services/HlcMergeService.cs (170 lines)
- src/AirGap/__Libraries/StellaOps.AirGap.Sync/Services/OfflineHlcManager.cs (173 lines)
- src/AirGap/__Libraries/StellaOps.AirGap.Sync/Stores/FileBasedOfflineJobLogStore.cs (247 lines)
- src/AirGap/__Libraries/StellaOps.AirGap.Sync/Telemetry/AirGapSyncMetrics.cs (162 lines)
- src/AirGap/__Libraries/StellaOps.AirGap.Sync/Transport/FileBasedJobSyncTransport.cs (223 lines)
- src/AirGap/__Libraries/StellaOps.AirGap.Sync/Transport/IJobSyncTransport.cs (124 lines)
- src/AirGap/__Libraries/StellaOps.AirGap.Sync/Transport/RouterJobSyncTransport.cs (273 lines)
- Namespace issues:
- src/AirGap/__Libraries/StellaOps.AirGap.Sync/AirGapSyncServiceCollectionExtensions.cs: missing namespace
- src/AirGap/__Libraries/StellaOps.AirGap.Sync/Models/AirGapBundle.cs: missing namespace
- src/AirGap/__Libraries/StellaOps.AirGap.Sync/Models/ConflictResolution.cs: missing namespace
- src/AirGap/__Libraries/StellaOps.AirGap.Sync/Models/MergeResult.cs: missing namespace
- src/AirGap/__Libraries/StellaOps.AirGap.Sync/Models/NodeJobLog.cs: missing namespace
- src/AirGap/__Libraries/StellaOps.AirGap.Sync/Models/OfflineJobLogEntry.cs: missing namespace
- src/AirGap/__Libraries/StellaOps.AirGap.Sync/Models/SyncResult.cs: missing namespace
- src/AirGap/__Libraries/StellaOps.AirGap.Sync/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/AirGap/__Libraries/StellaOps.AirGap.Sync/obj/Debug/net10.0/StellaOps.AirGap.Sync.AssemblyInfo.cs: missing namespace
- src/AirGap/__Libraries/StellaOps.AirGap.Sync/obj/Debug/net10.0/StellaOps.AirGap.Sync.GlobalUsings.g.cs: missing namespace
- src/AirGap/__Libraries/StellaOps.AirGap.Sync/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/AirGap/__Libraries/StellaOps.AirGap.Sync/obj/Release/net10.0/StellaOps.AirGap.Sync.AssemblyInfo.cs: missing namespace
- src/AirGap/__Libraries/StellaOps.AirGap.Sync/obj/Release/net10.0/StellaOps.AirGap.Sync.GlobalUsings.g.cs: missing namespace
- src/AirGap/__Libraries/StellaOps.AirGap.Sync/Services/AirGapBundleDsseSigner.cs: missing namespace
- src/AirGap/__Libraries/StellaOps.AirGap.Sync/Services/AirGapBundleExporter.cs: missing namespace
- src/AirGap/__Libraries/StellaOps.AirGap.Sync/Services/AirGapBundleImporter.cs: missing namespace
- src/AirGap/__Libraries/StellaOps.AirGap.Sync/Services/AirGapSyncService.cs: missing namespace
- src/AirGap/__Libraries/StellaOps.AirGap.Sync/Services/ConflictResolver.cs: missing namespace
- src/AirGap/__Libraries/StellaOps.AirGap.Sync/Services/HlcMergeService.cs: missing namespace
- src/AirGap/__Libraries/StellaOps.AirGap.Sync/Services/OfflineHlcManager.cs: missing namespace
- src/AirGap/__Libraries/StellaOps.AirGap.Sync/Stores/FileBasedOfflineJobLogStore.cs: missing namespace
- src/AirGap/__Libraries/StellaOps.AirGap.Sync/Stores/IOfflineJobLogStore.cs: missing namespace
- src/AirGap/__Libraries/StellaOps.AirGap.Sync/Telemetry/AirGapSyncMetrics.cs: missing namespace
- src/AirGap/__Libraries/StellaOps.AirGap.Sync/Transport/FileBasedJobSyncTransport.cs: missing namespace
- src/AirGap/__Libraries/StellaOps.AirGap.Sync/Transport/IJobSyncTransport.cs: missing namespace
- src/AirGap/__Libraries/StellaOps.AirGap.Sync/Transport/RouterJobSyncTransport.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: 26
- Files with issues: 26
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/AirGap/__Libraries/StellaOps.AirGap.Sync/AirGapSyncServiceCollectionExtensions.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AirGap/__Libraries/StellaOps.AirGap.Sync/Models/AirGapBundle.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/__Libraries/StellaOps.AirGap.Sync/Models/ConflictResolution.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/__Libraries/StellaOps.AirGap.Sync/Models/MergeResult.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/__Libraries/StellaOps.AirGap.Sync/Models/NodeJobLog.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/__Libraries/StellaOps.AirGap.Sync/Models/OfflineJobLogEntry.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/__Libraries/StellaOps.AirGap.Sync/Models/SyncResult.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/__Libraries/StellaOps.AirGap.Sync/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/__Libraries/StellaOps.AirGap.Sync/obj/Debug/net10.0/StellaOps.AirGap.Sync.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/__Libraries/StellaOps.AirGap.Sync/obj/Debug/net10.0/StellaOps.AirGap.Sync.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/__Libraries/StellaOps.AirGap.Sync/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/__Libraries/StellaOps.AirGap.Sync/obj/Release/net10.0/StellaOps.AirGap.Sync.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/__Libraries/StellaOps.AirGap.Sync/obj/Release/net10.0/StellaOps.AirGap.Sync.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/__Libraries/StellaOps.AirGap.Sync/Services/AirGapBundleDsseSigner.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AirGap/__Libraries/StellaOps.AirGap.Sync/Services/AirGapBundleExporter.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AirGap/__Libraries/StellaOps.AirGap.Sync/Services/AirGapBundleImporter.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AirGap/__Libraries/StellaOps.AirGap.Sync/Services/AirGapSyncService.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AirGap/__Libraries/StellaOps.AirGap.Sync/Services/ConflictResolver.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AirGap/__Libraries/StellaOps.AirGap.Sync/Services/HlcMergeService.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AirGap/__Libraries/StellaOps.AirGap.Sync/Services/OfflineHlcManager.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AirGap/__Libraries/StellaOps.AirGap.Sync/Stores/FileBasedOfflineJobLogStore.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AirGap/__Libraries/StellaOps.AirGap.Sync/Stores/IOfflineJobLogStore.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/AirGap/__Libraries/StellaOps.AirGap.Sync/Telemetry/AirGapSyncMetrics.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AirGap/__Libraries/StellaOps.AirGap.Sync/Transport/FileBasedJobSyncTransport.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AirGap/__Libraries/StellaOps.AirGap.Sync/Transport/IJobSyncTransport.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/AirGap/__Libraries/StellaOps.AirGap.Sync/Transport/RouterJobSyncTransport.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: src/AirGap/__Tests/StellaOps.AirGap.Sync.Tests/StellaOps.AirGap.Sync.Tests.csproj [Offline]
- 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,102 @@
# Audit - StellaOps.AirGap.Sync
## Project
- Path: src/AirGap/__Libraries/StellaOps.AirGap.Sync/StellaOps.AirGap.Sync.csproj
- Module: AirGap
- Kind: Library
- Audit date (UTC): 2026-01-31
- Files scanned: 20
- 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: 13
- Namespace violations: 0
- Using directive violations: 2
- Naming violations (interfaces/fields/const/async): 6
- Service locator usage (BuildServiceProvider/GetService): 3
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/AirGap/__Libraries/StellaOps.AirGap.Sync/AirGapSyncServiceCollectionExtensions.cs (154 lines)
- src/AirGap/__Libraries/StellaOps.AirGap.Sync/Services/AirGapBundleDsseSigner.cs (277 lines)
- src/AirGap/__Libraries/StellaOps.AirGap.Sync/Services/AirGapBundleExporter.cs (272 lines)
- src/AirGap/__Libraries/StellaOps.AirGap.Sync/Services/AirGapBundleImporter.cs (318 lines)
- src/AirGap/__Libraries/StellaOps.AirGap.Sync/Services/AirGapSyncService.cs (199 lines)
- src/AirGap/__Libraries/StellaOps.AirGap.Sync/Services/ConflictResolver.cs (115 lines)
- src/AirGap/__Libraries/StellaOps.AirGap.Sync/Services/HlcMergeService.cs (170 lines)
- src/AirGap/__Libraries/StellaOps.AirGap.Sync/Services/OfflineHlcManager.cs (174 lines)
- src/AirGap/__Libraries/StellaOps.AirGap.Sync/Stores/FileBasedOfflineJobLogStore.cs (248 lines)
- src/AirGap/__Libraries/StellaOps.AirGap.Sync/Telemetry/AirGapSyncMetrics.cs (163 lines)
- src/AirGap/__Libraries/StellaOps.AirGap.Sync/Transport/FileBasedJobSyncTransport.cs (224 lines)
- src/AirGap/__Libraries/StellaOps.AirGap.Sync/Transport/IJobSyncTransport.cs (124 lines)
- src/AirGap/__Libraries/StellaOps.AirGap.Sync/Transport/RouterJobSyncTransport.cs (274 lines)
- Namespace issues:
- none
- Using directive issues:
- src/AirGap/__Libraries/StellaOps.AirGap.Sync/Services/AirGapBundleDsseSigner.cs: using directives inside namespace
- src/AirGap/__Libraries/StellaOps.AirGap.Sync/Services/OfflineHlcManager.cs: using directives inside namespace
- Naming issues:
- src/AirGap/__Libraries/StellaOps.AirGap.Sync/Services/AirGapBundleExporter.cs: private field naming
- src/AirGap/__Libraries/StellaOps.AirGap.Sync/Services/AirGapBundleImporter.cs: private field naming
- src/AirGap/__Libraries/StellaOps.AirGap.Sync/Stores/FileBasedOfflineJobLogStore.cs: private field naming
- src/AirGap/__Libraries/StellaOps.AirGap.Sync/Telemetry/AirGapSyncMetrics.cs: private field naming
- Async issues:
- src/AirGap/__Libraries/StellaOps.AirGap.Sync/Services/OfflineHlcManager.cs: async method naming
- src/AirGap/__Libraries/StellaOps.AirGap.Sync/Stores/FileBasedOfflineJobLogStore.cs: async method naming
- Service locator matches:
- src/AirGap/__Libraries/StellaOps.AirGap.Sync/AirGapSyncServiceCollectionExtensions.cs:44 var timeProvider = sp.GetService<TimeProvider>() ?? TimeProvider.System;
- src/AirGap/__Libraries/StellaOps.AirGap.Sync/AirGapSyncServiceCollectionExtensions.cs:45 var stateStore = sp.GetRequiredService<IHlcStateStore>();
- src/AirGap/__Libraries/StellaOps.AirGap.Sync/AirGapSyncServiceCollectionExtensions.cs:46 var logger = sp.GetRequiredService<ILogger<HybridLogicalClock.HybridLogicalClock>>();
- 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: 20
- Files with issues: 13
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/AirGap/__Libraries/StellaOps.AirGap.Sync/AirGapSyncServiceCollectionExtensions.cs | FileLength>100; ServiceLocator | Remove service locator usage; use constructor injection.; Split file to stay <= 100 lines. |
| src/AirGap/__Libraries/StellaOps.AirGap.Sync/Services/AirGapBundleDsseSigner.cs | FileLength>100; UsingInsideNamespace | Move using directives outside namespace.; Split file to stay <= 100 lines. |
| src/AirGap/__Libraries/StellaOps.AirGap.Sync/Services/AirGapBundleExporter.cs | FileLength>100; PrivateFieldNaming | Rename private fields to _camelCase.; Split file to stay <= 100 lines. |
| src/AirGap/__Libraries/StellaOps.AirGap.Sync/Services/AirGapBundleImporter.cs | FileLength>100; PrivateFieldNaming | Rename private fields to _camelCase.; Split file to stay <= 100 lines. |
| src/AirGap/__Libraries/StellaOps.AirGap.Sync/Services/AirGapSyncService.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AirGap/__Libraries/StellaOps.AirGap.Sync/Services/ConflictResolver.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AirGap/__Libraries/StellaOps.AirGap.Sync/Services/HlcMergeService.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AirGap/__Libraries/StellaOps.AirGap.Sync/Services/OfflineHlcManager.cs | AsyncNaming; FileLength>100; UsingInsideNamespace | Move using directives outside namespace.; Rename async methods to end with Async.; Split file to stay <= 100 lines. |
| src/AirGap/__Libraries/StellaOps.AirGap.Sync/Stores/FileBasedOfflineJobLogStore.cs | AsyncNaming; FileLength>100; PrivateFieldNaming | Rename async methods to end with Async.; Rename private fields to _camelCase.; Split file to stay <= 100 lines. |
| src/AirGap/__Libraries/StellaOps.AirGap.Sync/Telemetry/AirGapSyncMetrics.cs | FileLength>100; PrivateFieldNaming | Rename private fields to _camelCase.; Split file to stay <= 100 lines. |
| src/AirGap/__Libraries/StellaOps.AirGap.Sync/Transport/FileBasedJobSyncTransport.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AirGap/__Libraries/StellaOps.AirGap.Sync/Transport/IJobSyncTransport.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AirGap/__Libraries/StellaOps.AirGap.Sync/Transport/RouterJobSyncTransport.cs | FileLength>100 | Split file to stay <= 100 lines. |
## Testing Fullness Findings
- Status: FAIL
- Expected layers (heuristic): Unit
- Detected test projects: src/AirGap/__Tests/StellaOps.AirGap.Sync.Tests/StellaOps.AirGap.Sync.Tests.csproj [Offline]
- 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,117 @@
# Audit - StellaOps.AirGap.Bundle.Tests
## Project
- Path: src/AirGap/__Libraries/__Tests/StellaOps.AirGap.Bundle.Tests/StellaOps.AirGap.Bundle.Tests.csproj
- Module: AirGap
- Kind: Test
- Audit date (UTC): 2026-01-31
- Files scanned: 13
- Files with issues: 11
- 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: 11
- Namespace violations: 0
- Using directive violations: 10
- Naming violations (interfaces/fields/const/async): 20
- Service locator usage (BuildServiceProvider/GetService): 0
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/AirGap/__Libraries/__Tests/StellaOps.AirGap.Bundle.Tests/AirGapCliToolTests.cs (361 lines)
- src/AirGap/__Libraries/__Tests/StellaOps.AirGap.Bundle.Tests/AirGapIntegrationTests.cs (396 lines)
- src/AirGap/__Libraries/__Tests/StellaOps.AirGap.Bundle.Tests/BundleDeterminismTests.cs (451 lines)
- src/AirGap/__Libraries/__Tests/StellaOps.AirGap.Bundle.Tests/BundleExportImportTests.cs (453 lines)
- src/AirGap/__Libraries/__Tests/StellaOps.AirGap.Bundle.Tests/BundleExportModeTests.cs (185 lines)
- src/AirGap/__Libraries/__Tests/StellaOps.AirGap.Bundle.Tests/BundleExportTests.cs (544 lines)
- src/AirGap/__Libraries/__Tests/StellaOps.AirGap.Bundle.Tests/BundleImportTests.cs (566 lines)
- src/AirGap/__Libraries/__Tests/StellaOps.AirGap.Bundle.Tests/BundleInlineArtifactSizeTests.cs (133 lines)
- src/AirGap/__Libraries/__Tests/StellaOps.AirGap.Bundle.Tests/BundleManifestTests.cs (323 lines)
- src/AirGap/__Libraries/__Tests/StellaOps.AirGap.Bundle.Tests/BundleTimestampOfflineVerificationTests.cs (227 lines)
- src/AirGap/__Libraries/__Tests/StellaOps.AirGap.Bundle.Tests/FunctionMapBundleIntegrationTests.cs (528 lines)
- Namespace issues:
- none
- Using directive issues:
- src/AirGap/__Libraries/__Tests/StellaOps.AirGap.Bundle.Tests/AirGapCliToolTests.cs: using directives not sorted
- src/AirGap/__Libraries/__Tests/StellaOps.AirGap.Bundle.Tests/AirGapIntegrationTests.cs: using directives not sorted
- src/AirGap/__Libraries/__Tests/StellaOps.AirGap.Bundle.Tests/BundleDeterminismTests.cs: using directives not sorted
- src/AirGap/__Libraries/__Tests/StellaOps.AirGap.Bundle.Tests/BundleExportImportTests.cs: using directives not sorted
- src/AirGap/__Libraries/__Tests/StellaOps.AirGap.Bundle.Tests/BundleExportTests.cs: using directives not sorted
- src/AirGap/__Libraries/__Tests/StellaOps.AirGap.Bundle.Tests/BundleImportTests.cs: using directives not sorted
- src/AirGap/__Libraries/__Tests/StellaOps.AirGap.Bundle.Tests/BundleManifestTests.cs: using directives not sorted
- src/AirGap/__Libraries/__Tests/StellaOps.AirGap.Bundle.Tests/BundleTimestampOfflineVerificationTests.cs: using directives inside namespace
- src/AirGap/__Libraries/__Tests/StellaOps.AirGap.Bundle.Tests/BundleTimestampOfflineVerificationTests.cs: using directives not sorted
- src/AirGap/__Libraries/__Tests/StellaOps.AirGap.Bundle.Tests/FunctionMapBundleIntegrationTests.cs: using directives not sorted
- Naming issues:
- none
- Async issues:
- src/AirGap/__Libraries/__Tests/StellaOps.AirGap.Bundle.Tests/AirGapIntegrationTests.cs: async method naming
- src/AirGap/__Libraries/__Tests/StellaOps.AirGap.Bundle.Tests/AirGapIntegrationTests.cs: missing ConfigureAwait(false)
- src/AirGap/__Libraries/__Tests/StellaOps.AirGap.Bundle.Tests/BundleDeterminismTests.cs: async method naming
- src/AirGap/__Libraries/__Tests/StellaOps.AirGap.Bundle.Tests/BundleDeterminismTests.cs: missing ConfigureAwait(false)
- src/AirGap/__Libraries/__Tests/StellaOps.AirGap.Bundle.Tests/BundleExportImportTests.cs: async method naming
- src/AirGap/__Libraries/__Tests/StellaOps.AirGap.Bundle.Tests/BundleExportImportTests.cs: missing ConfigureAwait(false)
- src/AirGap/__Libraries/__Tests/StellaOps.AirGap.Bundle.Tests/BundleExportModeTests.cs: async method naming
- src/AirGap/__Libraries/__Tests/StellaOps.AirGap.Bundle.Tests/BundleExportModeTests.cs: missing ConfigureAwait(false)
- src/AirGap/__Libraries/__Tests/StellaOps.AirGap.Bundle.Tests/BundleExportTests.cs: async method naming
- src/AirGap/__Libraries/__Tests/StellaOps.AirGap.Bundle.Tests/BundleExportTests.cs: missing ConfigureAwait(false)
- src/AirGap/__Libraries/__Tests/StellaOps.AirGap.Bundle.Tests/BundleImportTests.cs: async method naming
- src/AirGap/__Libraries/__Tests/StellaOps.AirGap.Bundle.Tests/BundleImportTests.cs: missing ConfigureAwait(false)
- src/AirGap/__Libraries/__Tests/StellaOps.AirGap.Bundle.Tests/BundleInlineArtifactSizeTests.cs: async method naming
- src/AirGap/__Libraries/__Tests/StellaOps.AirGap.Bundle.Tests/BundleInlineArtifactSizeTests.cs: missing ConfigureAwait(false)
- src/AirGap/__Libraries/__Tests/StellaOps.AirGap.Bundle.Tests/BundleManifestTests.cs: async method naming
- src/AirGap/__Libraries/__Tests/StellaOps.AirGap.Bundle.Tests/BundleManifestTests.cs: missing ConfigureAwait(false)
- src/AirGap/__Libraries/__Tests/StellaOps.AirGap.Bundle.Tests/BundleTimestampOfflineVerificationTests.cs: async method naming
- src/AirGap/__Libraries/__Tests/StellaOps.AirGap.Bundle.Tests/BundleTimestampOfflineVerificationTests.cs: missing ConfigureAwait(false)
- src/AirGap/__Libraries/__Tests/StellaOps.AirGap.Bundle.Tests/FunctionMapBundleIntegrationTests.cs: async method naming
- src/AirGap/__Libraries/__Tests/StellaOps.AirGap.Bundle.Tests/FunctionMapBundleIntegrationTests.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: 13
- Files with issues: 11
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/AirGap/__Libraries/__Tests/StellaOps.AirGap.Bundle.Tests/AirGapCliToolTests.cs | FileLength>100; UsingNotSorted | Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/AirGap/__Libraries/__Tests/StellaOps.AirGap.Bundle.Tests/AirGapIntegrationTests.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/AirGap/__Libraries/__Tests/StellaOps.AirGap.Bundle.Tests/BundleDeterminismTests.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/AirGap/__Libraries/__Tests/StellaOps.AirGap.Bundle.Tests/BundleExportImportTests.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/AirGap/__Libraries/__Tests/StellaOps.AirGap.Bundle.Tests/BundleExportModeTests.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/AirGap/__Libraries/__Tests/StellaOps.AirGap.Bundle.Tests/BundleExportTests.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/AirGap/__Libraries/__Tests/StellaOps.AirGap.Bundle.Tests/BundleImportTests.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/AirGap/__Libraries/__Tests/StellaOps.AirGap.Bundle.Tests/BundleInlineArtifactSizeTests.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/AirGap/__Libraries/__Tests/StellaOps.AirGap.Bundle.Tests/BundleManifestTests.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/AirGap/__Libraries/__Tests/StellaOps.AirGap.Bundle.Tests/BundleTimestampOfflineVerificationTests.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/AirGap/__Libraries/__Tests/StellaOps.AirGap.Bundle.Tests/FunctionMapBundleIntegrationTests.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,98 @@
# Audit - StellaOps.AirGap.Controller.Tests
## Project
- Path: src/AirGap/__Tests/StellaOps.AirGap.Controller.Tests/StellaOps.AirGap.Controller.Tests.csproj
- Module: AirGap
- Kind: Test
- 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: inherited false
- Deterministic: inherited true
- 100-line rule violations: 4
- Namespace violations: 0
- Using directive violations: 8
- Naming violations (interfaces/fields/const/async): 15
- Service locator usage (BuildServiceProvider/GetService): 0
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/AirGap/__Tests/StellaOps.AirGap.Controller.Tests/AirGapEndpointTests.cs (112 lines)
- src/AirGap/__Tests/StellaOps.AirGap.Controller.Tests/AirGapStartupDiagnosticsHostedServiceTests.cs (173 lines)
- src/AirGap/__Tests/StellaOps.AirGap.Controller.Tests/AirGapStateServiceTests.cs (146 lines)
- src/AirGap/__Tests/StellaOps.AirGap.Controller.Tests/InMemoryAirGapStateStoreTests.cs (154 lines)
- Namespace issues:
- none
- Using directive issues:
- src/AirGap/__Tests/StellaOps.AirGap.Controller.Tests/AirGapEndpointTests.cs: using directives inside namespace
- src/AirGap/__Tests/StellaOps.AirGap.Controller.Tests/AirGapEndpointTests.cs: using directives not sorted
- src/AirGap/__Tests/StellaOps.AirGap.Controller.Tests/AirGapStartupDiagnosticsHostedServiceTests.cs: using directives inside namespace
- src/AirGap/__Tests/StellaOps.AirGap.Controller.Tests/AirGapStartupDiagnosticsHostedServiceTests.cs: using directives not sorted
- src/AirGap/__Tests/StellaOps.AirGap.Controller.Tests/AirGapStateServiceTests.cs: using directives not sorted
- src/AirGap/__Tests/StellaOps.AirGap.Controller.Tests/AirGapTelemetryTests.cs: using directives not sorted
- src/AirGap/__Tests/StellaOps.AirGap.Controller.Tests/InMemoryAirGapStateStoreTests.cs: using directives not sorted
- src/AirGap/__Tests/StellaOps.AirGap.Controller.Tests/ReplayVerificationServiceTests.cs: using directives not sorted
- Naming issues:
- src/AirGap/__Tests/StellaOps.AirGap.Controller.Tests/AirGapStartupDiagnosticsHostedServiceTests.cs: private field naming
- src/AirGap/__Tests/StellaOps.AirGap.Controller.Tests/AirGapStateServiceTests.cs: private field naming
- src/AirGap/__Tests/StellaOps.AirGap.Controller.Tests/AirGapTelemetryTests.cs: private field naming
- src/AirGap/__Tests/StellaOps.AirGap.Controller.Tests/InMemoryAirGapStateStoreTests.cs: private field naming
- src/AirGap/__Tests/StellaOps.AirGap.Controller.Tests/ReplayVerificationServiceTests.cs: private field naming
- Async issues:
- src/AirGap/__Tests/StellaOps.AirGap.Controller.Tests/AirGapEndpointTests.cs: async method naming
- src/AirGap/__Tests/StellaOps.AirGap.Controller.Tests/AirGapEndpointTests.cs: missing ConfigureAwait(false)
- src/AirGap/__Tests/StellaOps.AirGap.Controller.Tests/AirGapStartupDiagnosticsHostedServiceTests.cs: async method naming
- src/AirGap/__Tests/StellaOps.AirGap.Controller.Tests/AirGapStartupDiagnosticsHostedServiceTests.cs: missing ConfigureAwait(false)
- src/AirGap/__Tests/StellaOps.AirGap.Controller.Tests/AirGapStateServiceTests.cs: async method naming
- src/AirGap/__Tests/StellaOps.AirGap.Controller.Tests/AirGapStateServiceTests.cs: missing ConfigureAwait(false)
- src/AirGap/__Tests/StellaOps.AirGap.Controller.Tests/InMemoryAirGapStateStoreTests.cs: async method naming
- src/AirGap/__Tests/StellaOps.AirGap.Controller.Tests/InMemoryAirGapStateStoreTests.cs: missing ConfigureAwait(false)
- src/AirGap/__Tests/StellaOps.AirGap.Controller.Tests/ReplayVerificationServiceTests.cs: async method naming
- src/AirGap/__Tests/StellaOps.AirGap.Controller.Tests/ReplayVerificationServiceTests.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: 6
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/AirGap/__Tests/StellaOps.AirGap.Controller.Tests/AirGapEndpointTests.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/AirGap/__Tests/StellaOps.AirGap.Controller.Tests/AirGapStartupDiagnosticsHostedServiceTests.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/AirGap/__Tests/StellaOps.AirGap.Controller.Tests/AirGapStateServiceTests.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/AirGap/__Tests/StellaOps.AirGap.Controller.Tests/AirGapTelemetryTests.cs | PrivateFieldNaming; UsingNotSorted | Rename private fields to _camelCase.; Sort using directives alphabetically. |
| src/AirGap/__Tests/StellaOps.AirGap.Controller.Tests/InMemoryAirGapStateStoreTests.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/AirGap/__Tests/StellaOps.AirGap.Controller.Tests/ReplayVerificationServiceTests.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. |
## 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,149 @@
# Audit - StellaOps.AirGap.Importer.Tests
## Project
- Path: src/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/StellaOps.AirGap.Importer.Tests.csproj
- Module: AirGap
- Kind: Test
- Audit date (UTC): 2026-01-31
- Files scanned: 28
- Files with issues: 19
- 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: 15
- Namespace violations: 0
- Using directive violations: 22
- Naming violations (interfaces/fields/const/async): 28
- Service locator usage (BuildServiceProvider/GetService): 0
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/AirGapControllerContractTests.cs (382 lines)
- src/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/ImportValidatorTests.cs (488 lines)
- src/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/OfflineKitMetricsTests.cs (121 lines)
- src/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/Quarantine/FileSystemQuarantineServiceTests.cs (156 lines)
- src/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/Reconciliation/CycloneDxParserTests.cs (137 lines)
- src/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/Reconciliation/DsseAttestationParserTests.cs (142 lines)
- src/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/Reconciliation/EvidenceReconcilerVexTests.cs (149 lines)
- src/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/Reconciliation/SbomNormalizerVolatileFieldsTests.cs (425 lines)
- src/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/Reconciliation/SourcePrecedenceLatticePropertyTests.cs (454 lines)
- src/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/Reconciliation/SpdxParserTests.cs (150 lines)
- src/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/Validation/ImportValidatorIntegrationTests.cs (189 lines)
- src/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/Validation/ReferrerValidatorTests.cs (600 lines)
- src/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/Validation/RekorOfflineReceiptVerifierTests.cs (166 lines)
- src/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/Validation/RuleBundleValidatorTests.cs (413 lines)
- src/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/Versioning/VersionMonotonicityCheckerTests.cs (158 lines)
- Namespace issues:
- none
- Using directive issues:
- src/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/AirGapControllerContractTests.cs: using directives inside namespace
- src/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/AirGapControllerContractTests.cs: using directives not sorted
- src/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/DsseVerifierTests.cs: using directives inside namespace
- src/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/DsseVerifierTests.cs: using directives not sorted
- src/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/ImportValidatorTests.cs: using directives inside namespace
- src/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/ImportValidatorTests.cs: using directives not sorted
- src/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/OfflineKitMetricsTests.cs: using directives inside namespace
- src/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/OfflineKitMetricsTests.cs: using directives not sorted
- src/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/Quarantine/FileSystemQuarantineServiceTests.cs: using directives not sorted
- src/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/Reconciliation/DsseAttestationParserTests.cs: using directives inside namespace
- src/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/Reconciliation/EvidenceDirectoryDiscoveryTests.cs: using directives inside namespace
- src/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/Reconciliation/EvidenceDirectoryDiscoveryTests.cs: using directives not sorted
- src/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/Reconciliation/EvidenceReconcilerDsseSigningTests.cs: using directives inside namespace
- src/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/Reconciliation/EvidenceReconcilerDsseSigningTests.cs: using directives not sorted
- src/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/Reconciliation/EvidenceReconcilerVexTests.cs: using directives inside namespace
- src/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/Reconciliation/EvidenceReconcilerVexTests.cs: using directives not sorted
- src/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/Reconciliation/SbomNormalizerVolatileFieldsTests.cs: using directives not sorted
- src/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/Validation/ImportValidatorIntegrationTests.cs: using directives inside namespace
- src/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/Validation/ImportValidatorIntegrationTests.cs: using directives not sorted
- src/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/Validation/RekorOfflineReceiptVerifierTests.cs: using directives inside namespace
- src/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/Validation/RekorOfflineReceiptVerifierTests.cs: using directives not sorted
- src/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/Validation/RuleBundleValidatorTests.cs: using directives not sorted
- Naming issues:
- src/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/Reconciliation/CycloneDxParserTests.cs: private field naming
- src/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/Reconciliation/DsseAttestationParserTests.cs: private field naming
- src/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/Reconciliation/SourcePrecedenceLatticePropertyTests.cs: private field naming
- src/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/Reconciliation/SpdxParserTests.cs: private field naming
- Async issues:
- src/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/ImportValidatorTests.cs: async method naming
- src/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/ImportValidatorTests.cs: missing ConfigureAwait(false)
- src/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/InMemoryBundleRepositoriesTests.cs: async method naming
- src/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/InMemoryBundleRepositoriesTests.cs: missing ConfigureAwait(false)
- src/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/Quarantine/FileSystemQuarantineServiceTests.cs: async method naming
- src/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/Quarantine/FileSystemQuarantineServiceTests.cs: missing ConfigureAwait(false)
- src/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/Reconciliation/CycloneDxParserTests.cs: async method naming
- src/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/Reconciliation/CycloneDxParserTests.cs: missing ConfigureAwait(false)
- src/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/Reconciliation/DsseAttestationParserTests.cs: async method naming
- src/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/Reconciliation/DsseAttestationParserTests.cs: missing ConfigureAwait(false)
- src/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/Reconciliation/EvidenceReconcilerDsseSigningTests.cs: async method naming
- src/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/Reconciliation/EvidenceReconcilerDsseSigningTests.cs: missing ConfigureAwait(false)
- src/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/Reconciliation/EvidenceReconcilerVexTests.cs: async method naming
- src/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/Reconciliation/EvidenceReconcilerVexTests.cs: missing ConfigureAwait(false)
- src/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/Reconciliation/SpdxParserTests.cs: async method naming
- src/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/Reconciliation/SpdxParserTests.cs: missing ConfigureAwait(false)
- src/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/Validation/ImportValidatorIntegrationTests.cs: async method naming
- src/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/Validation/ImportValidatorIntegrationTests.cs: missing ConfigureAwait(false)
- src/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/Validation/RekorOfflineReceiptVerifierTests.cs: async method naming
- src/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/Validation/RekorOfflineReceiptVerifierTests.cs: missing ConfigureAwait(false)
- src/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/Validation/RuleBundleValidatorTests.cs: async method naming
- src/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/Validation/RuleBundleValidatorTests.cs: missing ConfigureAwait(false)
- src/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/Versioning/VersionMonotonicityCheckerTests.cs: async method naming
- src/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/Versioning/VersionMonotonicityCheckerTests.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: 28
- Files with issues: 19
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/AirGapControllerContractTests.cs | FileLength>100; UsingInsideNamespace; UsingNotSorted | Move using directives outside namespace.; Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/DsseVerifierTests.cs | UsingInsideNamespace; UsingNotSorted | Move using directives outside namespace.; Sort using directives alphabetically. |
| src/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/ImportValidatorTests.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/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/InMemoryBundleRepositoriesTests.cs | AsyncNaming; ConfigureAwaitMissing | Add ConfigureAwait(false) to awaited calls in library-like code.; Rename async methods to end with Async. |
| src/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/OfflineKitMetricsTests.cs | FileLength>100; UsingInsideNamespace; UsingNotSorted | Move using directives outside namespace.; Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/Quarantine/FileSystemQuarantineServiceTests.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/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/Reconciliation/CycloneDxParserTests.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/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/Reconciliation/DsseAttestationParserTests.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/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/Reconciliation/EvidenceDirectoryDiscoveryTests.cs | UsingInsideNamespace; UsingNotSorted | Move using directives outside namespace.; Sort using directives alphabetically. |
| src/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/Reconciliation/EvidenceReconcilerDsseSigningTests.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/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/Reconciliation/EvidenceReconcilerVexTests.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/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/Reconciliation/SbomNormalizerVolatileFieldsTests.cs | FileLength>100; UsingNotSorted | Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/Reconciliation/SourcePrecedenceLatticePropertyTests.cs | FileLength>100; PrivateFieldNaming | Rename private fields to _camelCase.; Split file to stay <= 100 lines. |
| src/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/Reconciliation/SpdxParserTests.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/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/Validation/ImportValidatorIntegrationTests.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/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/Validation/ReferrerValidatorTests.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/Validation/RekorOfflineReceiptVerifierTests.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/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/Validation/RuleBundleValidatorTests.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/AirGap/__Tests/StellaOps.AirGap.Importer.Tests/Versioning/VersionMonotonicityCheckerTests.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,78 @@
# Audit - StellaOps.AirGap.Persistence.Tests
## Project
- Path: src/AirGap/__Tests/StellaOps.AirGap.Persistence.Tests/StellaOps.AirGap.Persistence.Tests.csproj
- Module: AirGap
- 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): 5
- Service locator usage (BuildServiceProvider/GetService): 0
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/AirGap/__Tests/StellaOps.AirGap.Persistence.Tests/AirGapPostgresFixture.cs (128 lines)
- src/AirGap/__Tests/StellaOps.AirGap.Persistence.Tests/AirGapStorageIntegrationTests.cs (343 lines)
- src/AirGap/__Tests/StellaOps.AirGap.Persistence.Tests/PostgresAirGapStateStoreTests.cs (176 lines)
- Namespace issues:
- none
- Using directive issues:
- src/AirGap/__Tests/StellaOps.AirGap.Persistence.Tests/AirGapPostgresFixture.cs: using directives not sorted
- src/AirGap/__Tests/StellaOps.AirGap.Persistence.Tests/PostgresAirGapStateStoreTests.cs: using directives not sorted
- Naming issues:
- none
- Async issues:
- src/AirGap/__Tests/StellaOps.AirGap.Persistence.Tests/AirGapPostgresFixture.cs: async method naming
- src/AirGap/__Tests/StellaOps.AirGap.Persistence.Tests/AirGapStorageIntegrationTests.cs: async method naming
- src/AirGap/__Tests/StellaOps.AirGap.Persistence.Tests/AirGapStorageIntegrationTests.cs: missing ConfigureAwait(false)
- src/AirGap/__Tests/StellaOps.AirGap.Persistence.Tests/PostgresAirGapStateStoreTests.cs: async method naming
- src/AirGap/__Tests/StellaOps.AirGap.Persistence.Tests/PostgresAirGapStateStoreTests.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/AirGap/__Tests/StellaOps.AirGap.Persistence.Tests/AirGapPostgresFixture.cs | AsyncNaming; FileLength>100; UsingNotSorted | Rename async methods to end with Async.; Sort using directives alphabetically.; Split file to stay <= 100 lines. |
| src/AirGap/__Tests/StellaOps.AirGap.Persistence.Tests/AirGapStorageIntegrationTests.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/AirGap/__Tests/StellaOps.AirGap.Persistence.Tests/PostgresAirGapStateStoreTests.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,77 @@
# Audit - StellaOps.AirGap.Sync.Tests
## Project
- Path: src/AirGap/__Tests/StellaOps.AirGap.Sync.Tests/StellaOps.AirGap.Sync.Tests.csproj
- Module: AirGap
- 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: 3
- Namespace violations: 0
- Using directive violations: 1
- Naming violations (interfaces/fields/const/async): 5
- Service locator usage (BuildServiceProvider/GetService): 0
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/AirGap/__Tests/StellaOps.AirGap.Sync.Tests/AirGapBundleDsseSignerTests.cs (243 lines)
- src/AirGap/__Tests/StellaOps.AirGap.Sync.Tests/ConflictResolverTests.cs (343 lines)
- src/AirGap/__Tests/StellaOps.AirGap.Sync.Tests/HlcMergeServiceTests.cs (452 lines)
- Namespace issues:
- none
- Using directive issues:
- src/AirGap/__Tests/StellaOps.AirGap.Sync.Tests/AirGapBundleDsseSignerTests.cs: using directives not sorted
- Naming issues:
- src/AirGap/__Tests/StellaOps.AirGap.Sync.Tests/AirGapBundleDsseSignerTests.cs: private field naming
- Async issues:
- src/AirGap/__Tests/StellaOps.AirGap.Sync.Tests/AirGapBundleDsseSignerTests.cs: async method naming
- src/AirGap/__Tests/StellaOps.AirGap.Sync.Tests/AirGapBundleDsseSignerTests.cs: missing ConfigureAwait(false)
- src/AirGap/__Tests/StellaOps.AirGap.Sync.Tests/HlcMergeServiceTests.cs: async method naming
- src/AirGap/__Tests/StellaOps.AirGap.Sync.Tests/HlcMergeServiceTests.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/AirGap/__Tests/StellaOps.AirGap.Sync.Tests/AirGapBundleDsseSignerTests.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/AirGap/__Tests/StellaOps.AirGap.Sync.Tests/ConflictResolverTests.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AirGap/__Tests/StellaOps.AirGap.Sync.Tests/HlcMergeServiceTests.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,79 @@
# Audit - StellaOps.AirGap.Time.Tests
## Project
- Path: src/AirGap/__Tests/StellaOps.AirGap.Time.Tests/StellaOps.AirGap.Time.Tests.csproj
- Module: AirGap
- Kind: Test
- Audit date (UTC): 2026-01-31
- Files scanned: 14
- 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: 3
- 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/AirGap/__Tests/StellaOps.AirGap.Time.Tests/Rfc3161VerifierTests.cs (102 lines)
- src/AirGap/__Tests/StellaOps.AirGap.Time.Tests/RoughtimeVerifierTests.cs (159 lines)
- src/AirGap/__Tests/StellaOps.AirGap.Time.Tests/TimeAnchorPolicyServiceTests.cs (274 lines)
- Namespace issues:
- none
- Using directive issues:
- none
- Naming issues:
- none
- Async issues:
- src/AirGap/__Tests/StellaOps.AirGap.Time.Tests/SealedStartupValidatorTests.cs: async method naming
- src/AirGap/__Tests/StellaOps.AirGap.Time.Tests/SealedStartupValidatorTests.cs: missing ConfigureAwait(false)
- src/AirGap/__Tests/StellaOps.AirGap.Time.Tests/TimeAnchorPolicyServiceTests.cs: async method naming
- src/AirGap/__Tests/StellaOps.AirGap.Time.Tests/TimeAnchorPolicyServiceTests.cs: missing ConfigureAwait(false)
- src/AirGap/__Tests/StellaOps.AirGap.Time.Tests/TimeStatusServiceTests.cs: async method naming
- src/AirGap/__Tests/StellaOps.AirGap.Time.Tests/TimeStatusServiceTests.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: 14
- Files with issues: 5
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/AirGap/__Tests/StellaOps.AirGap.Time.Tests/Rfc3161VerifierTests.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AirGap/__Tests/StellaOps.AirGap.Time.Tests/RoughtimeVerifierTests.cs | FileLength>100 | Split file to stay <= 100 lines. |
| src/AirGap/__Tests/StellaOps.AirGap.Time.Tests/SealedStartupValidatorTests.cs | AsyncNaming; ConfigureAwaitMissing | Add ConfigureAwait(false) to awaited calls in library-like code.; Rename async methods to end with Async. |
| src/AirGap/__Tests/StellaOps.AirGap.Time.Tests/TimeAnchorPolicyServiceTests.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/AirGap/__Tests/StellaOps.AirGap.Time.Tests/TimeStatusServiceTests.cs | AsyncNaming; ConfigureAwaitMissing | Add ConfigureAwait(false) to awaited calls in library-like code.; Rename async methods to end with Async. |
## 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,79 @@
# Audit - StellaOps.Aoc.Analyzers
## Project
- Path: src/Aoc/__Analyzers/StellaOps.Aoc.Analyzers/StellaOps.Aoc.Analyzers.csproj
- Module: Aoc
- Kind: Analyzer
- 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: 7
- Using directive violations: 0
- Naming violations (interfaces/fields/const/async): 0
- Service locator usage (BuildServiceProvider/GetService): 0
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Aoc/__Analyzers/StellaOps.Aoc.Analyzers/AocForbiddenFieldAnalyzer.cs (632 lines)
- Namespace issues:
- src/Aoc/__Analyzers/StellaOps.Aoc.Analyzers/AocForbiddenFieldAnalyzer.cs: missing namespace
- src/Aoc/__Analyzers/StellaOps.Aoc.Analyzers/obj/Debug/netstandard2.0/.NETStandard,Version=v2.0.AssemblyAttributes.cs: missing namespace
- src/Aoc/__Analyzers/StellaOps.Aoc.Analyzers/obj/Debug/netstandard2.0/StellaOps.Aoc.Analyzers.AssemblyInfo.cs: missing namespace
- src/Aoc/__Analyzers/StellaOps.Aoc.Analyzers/obj/Debug/netstandard2.0/StellaOps.Aoc.Analyzers.GlobalUsings.g.cs: missing namespace
- src/Aoc/__Analyzers/StellaOps.Aoc.Analyzers/obj/Release/netstandard2.0/.NETStandard,Version=v2.0.AssemblyAttributes.cs: missing namespace
- src/Aoc/__Analyzers/StellaOps.Aoc.Analyzers/obj/Release/netstandard2.0/StellaOps.Aoc.Analyzers.AssemblyInfo.cs: missing namespace
- src/Aoc/__Analyzers/StellaOps.Aoc.Analyzers/obj/Release/netstandard2.0/StellaOps.Aoc.Analyzers.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/Aoc/__Analyzers/StellaOps.Aoc.Analyzers/AocForbiddenFieldAnalyzer.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Aoc/__Analyzers/StellaOps.Aoc.Analyzers/obj/Debug/netstandard2.0/.NETStandard,Version=v2.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Aoc/__Analyzers/StellaOps.Aoc.Analyzers/obj/Debug/netstandard2.0/StellaOps.Aoc.Analyzers.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Aoc/__Analyzers/StellaOps.Aoc.Analyzers/obj/Debug/netstandard2.0/StellaOps.Aoc.Analyzers.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Aoc/__Analyzers/StellaOps.Aoc.Analyzers/obj/Release/netstandard2.0/.NETStandard,Version=v2.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Aoc/__Analyzers/StellaOps.Aoc.Analyzers/obj/Release/netstandard2.0/StellaOps.Aoc.Analyzers.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Aoc/__Analyzers/StellaOps.Aoc.Analyzers/obj/Release/netstandard2.0/StellaOps.Aoc.Analyzers.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
## Testing Fullness Findings
- Status: PASS
- Expected layers (heuristic): Unit
- Detected test projects: src/Aoc/__Tests/StellaOps.Aoc.Analyzers.Tests/StellaOps.Aoc.Analyzers.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,67 @@
# Audit - StellaOps.Aoc.Analyzers
## Project
- Path: src/Aoc/__Analyzers/StellaOps.Aoc.Analyzers/StellaOps.Aoc.Analyzers.csproj
- Module: Aoc
- Kind: Analyzer
- 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): 1
- Service locator usage (BuildServiceProvider/GetService): 0
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Aoc/__Analyzers/StellaOps.Aoc.Analyzers/AocForbiddenFieldAnalyzer.cs (633 lines)
- Namespace issues:
- none
- Using directive issues:
- none
- Naming issues:
- src/Aoc/__Analyzers/StellaOps.Aoc.Analyzers/AocForbiddenFieldAnalyzer.cs: private field naming
- Async issues:
- none
- Service locator matches:
- none
- Assembly.LoadFrom matches:
- none
### Fix Guidance
- Align interface/field/const naming to standards.
- 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/Aoc/__Analyzers/StellaOps.Aoc.Analyzers/AocForbiddenFieldAnalyzer.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/Aoc/__Tests/StellaOps.Aoc.Analyzers.Tests/StellaOps.Aoc.Analyzers.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,83 @@
# Audit - StellaOps.Aoc.AspNetCore
## Project
- Path: src/Aoc/__Libraries/StellaOps.Aoc.AspNetCore/StellaOps.Aoc.AspNetCore.csproj
- Module: Aoc
- 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: 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/Aoc/__Libraries/StellaOps.Aoc.AspNetCore/Routing/AocGuardEndpointFilter.cs (143 lines)
- Namespace issues:
- src/Aoc/__Libraries/StellaOps.Aoc.AspNetCore/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/Aoc/__Libraries/StellaOps.Aoc.AspNetCore/obj/Debug/net10.0/StellaOps.Aoc.AspNetCore.AssemblyInfo.cs: missing namespace
- src/Aoc/__Libraries/StellaOps.Aoc.AspNetCore/obj/Debug/net10.0/StellaOps.Aoc.AspNetCore.GlobalUsings.g.cs: missing namespace
- src/Aoc/__Libraries/StellaOps.Aoc.AspNetCore/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/Aoc/__Libraries/StellaOps.Aoc.AspNetCore/obj/Release/net10.0/StellaOps.Aoc.AspNetCore.AssemblyInfo.cs: missing namespace
- src/Aoc/__Libraries/StellaOps.Aoc.AspNetCore/obj/Release/net10.0/StellaOps.Aoc.AspNetCore.GlobalUsings.g.cs: missing namespace
- src/Aoc/__Libraries/StellaOps.Aoc.AspNetCore/Results/AocHttpResults.cs: missing namespace
- src/Aoc/__Libraries/StellaOps.Aoc.AspNetCore/Routing/AocGuardEndpointFilter.cs: missing namespace
- src/Aoc/__Libraries/StellaOps.Aoc.AspNetCore/Routing/AocGuardEndpointFilterExtensions.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/Aoc/__Libraries/StellaOps.Aoc.AspNetCore/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Aoc/__Libraries/StellaOps.Aoc.AspNetCore/obj/Debug/net10.0/StellaOps.Aoc.AspNetCore.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Aoc/__Libraries/StellaOps.Aoc.AspNetCore/obj/Debug/net10.0/StellaOps.Aoc.AspNetCore.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Aoc/__Libraries/StellaOps.Aoc.AspNetCore/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Aoc/__Libraries/StellaOps.Aoc.AspNetCore/obj/Release/net10.0/StellaOps.Aoc.AspNetCore.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Aoc/__Libraries/StellaOps.Aoc.AspNetCore/obj/Release/net10.0/StellaOps.Aoc.AspNetCore.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Aoc/__Libraries/StellaOps.Aoc.AspNetCore/Results/AocHttpResults.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Aoc/__Libraries/StellaOps.Aoc.AspNetCore/Routing/AocGuardEndpointFilter.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Aoc/__Libraries/StellaOps.Aoc.AspNetCore/Routing/AocGuardEndpointFilterExtensions.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
## Testing Fullness Findings
- Status: PASS
- Expected layers (heuristic): Unit
- Detected test projects: src/Aoc/__Tests/StellaOps.Aoc.AspNetCore.Tests/StellaOps.Aoc.AspNetCore.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.Aoc.AspNetCore
## Project
- Path: src/Aoc/__Libraries/StellaOps.Aoc.AspNetCore/StellaOps.Aoc.AspNetCore.csproj
- Module: Aoc
- Kind: Library
- Audit date (UTC): 2026-01-31
- Files scanned: 3
- 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): 1
- Service locator usage (BuildServiceProvider/GetService): 5
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Aoc/__Libraries/StellaOps.Aoc.AspNetCore/Routing/AocGuardEndpointFilter.cs (144 lines)
- Namespace issues:
- none
- Using directive issues:
- src/Aoc/__Libraries/StellaOps.Aoc.AspNetCore/Routing/AocGuardEndpointFilter.cs: using directives inside namespace
- Naming issues:
- none
- Async issues:
- src/Aoc/__Libraries/StellaOps.Aoc.AspNetCore/Routing/AocGuardEndpointFilter.cs: async method naming
- Service locator matches:
- src/Aoc/__Libraries/StellaOps.Aoc.AspNetCore/Routing/AocGuardEndpointFilter.cs:42 var logger = context.HttpContext.RequestServices.GetService<ILogger<AocGuardEndpointFilter<TRequest>>>();
- src/Aoc/__Libraries/StellaOps.Aoc.AspNetCore/Routing/AocGuardEndpointFilter.cs:57 var logger = context.HttpContext.RequestServices.GetService<ILogger<AocGuardEndpointFilter<TRequest>>>();
- src/Aoc/__Libraries/StellaOps.Aoc.AspNetCore/Routing/AocGuardEndpointFilter.cs:65 var guard = context.HttpContext.RequestServices.GetRequiredService<IAocGuard>();
- src/Aoc/__Libraries/StellaOps.Aoc.AspNetCore/Routing/AocGuardEndpointFilter.cs:85 var logger = context.HttpContext.RequestServices.GetService<ILogger<AocGuardEndpointFilter<TRequest>>>();
- src/Aoc/__Libraries/StellaOps.Aoc.AspNetCore/Routing/AocGuardEndpointFilter.cs:104 var options = services.GetService<IOptions<AocGuardOptions>>();
- 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: 3
- Files with issues: 1
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Aoc/__Libraries/StellaOps.Aoc.AspNetCore/Routing/AocGuardEndpointFilter.cs | AsyncNaming; FileLength>100; ServiceLocator; UsingInsideNamespace | Move using directives outside namespace.; Remove service locator usage; use constructor injection.; 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/Aoc/__Tests/StellaOps.Aoc.AspNetCore.Tests/StellaOps.Aoc.AspNetCore.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,97 @@
# Audit - StellaOps.Aoc
## Project
- Path: src/Aoc/__Libraries/StellaOps.Aoc/StellaOps.Aoc.csproj
- Module: Aoc
- 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: 1
- 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/Aoc/__Libraries/StellaOps.Aoc/AocWriteGuard.cs (194 lines)
- Namespace issues:
- src/Aoc/__Libraries/StellaOps.Aoc/AocError.cs: missing namespace
- src/Aoc/__Libraries/StellaOps.Aoc/AocForbiddenKeys.cs: missing namespace
- src/Aoc/__Libraries/StellaOps.Aoc/AocGuardException.cs: missing namespace
- src/Aoc/__Libraries/StellaOps.Aoc/AocGuardExtensions.cs: missing namespace
- src/Aoc/__Libraries/StellaOps.Aoc/AocGuardOptions.cs: missing namespace
- src/Aoc/__Libraries/StellaOps.Aoc/AocGuardResult.cs: missing namespace
- src/Aoc/__Libraries/StellaOps.Aoc/AocViolation.cs: missing namespace
- src/Aoc/__Libraries/StellaOps.Aoc/AocViolationCode.cs: missing namespace
- src/Aoc/__Libraries/StellaOps.Aoc/AocWriteGuard.cs: missing namespace
- src/Aoc/__Libraries/StellaOps.Aoc/ServiceCollectionExtensions.cs: missing namespace
- src/Aoc/__Libraries/StellaOps.Aoc/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/Aoc/__Libraries/StellaOps.Aoc/obj/Debug/net10.0/StellaOps.Aoc.AssemblyInfo.cs: missing namespace
- src/Aoc/__Libraries/StellaOps.Aoc/obj/Debug/net10.0/StellaOps.Aoc.GlobalUsings.g.cs: missing namespace
- src/Aoc/__Libraries/StellaOps.Aoc/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs: missing namespace
- src/Aoc/__Libraries/StellaOps.Aoc/obj/Release/net10.0/StellaOps.Aoc.AssemblyInfo.cs: missing namespace
- src/Aoc/__Libraries/StellaOps.Aoc/obj/Release/net10.0/StellaOps.Aoc.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: 16
- Files with issues: 16
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Aoc/__Libraries/StellaOps.Aoc/AocError.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Aoc/__Libraries/StellaOps.Aoc/AocForbiddenKeys.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Aoc/__Libraries/StellaOps.Aoc/AocGuardException.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Aoc/__Libraries/StellaOps.Aoc/AocGuardExtensions.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Aoc/__Libraries/StellaOps.Aoc/AocGuardOptions.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Aoc/__Libraries/StellaOps.Aoc/AocGuardResult.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Aoc/__Libraries/StellaOps.Aoc/AocViolation.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Aoc/__Libraries/StellaOps.Aoc/AocViolationCode.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Aoc/__Libraries/StellaOps.Aoc/AocWriteGuard.cs | FileLength>100; NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>;; Split file to stay <= 100 lines. |
| src/Aoc/__Libraries/StellaOps.Aoc/ServiceCollectionExtensions.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Aoc/__Libraries/StellaOps.Aoc/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Aoc/__Libraries/StellaOps.Aoc/obj/Debug/net10.0/StellaOps.Aoc.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Aoc/__Libraries/StellaOps.Aoc/obj/Debug/net10.0/StellaOps.Aoc.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Aoc/__Libraries/StellaOps.Aoc/obj/Release/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Aoc/__Libraries/StellaOps.Aoc/obj/Release/net10.0/StellaOps.Aoc.AssemblyInfo.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
| src/Aoc/__Libraries/StellaOps.Aoc/obj/Release/net10.0/StellaOps.Aoc.GlobalUsings.g.cs | NamespaceMissing | Add file-scoped namespace: namespace StellaOps.<Area>; |
## Testing Fullness Findings
- Status: PASS
- Expected layers (heuristic): Unit
- Detected test projects: src/Aoc/__Tests/StellaOps.Aoc.Tests/StellaOps.Aoc.Tests.csproj [Unit]; src/Concelier/__Tests/StellaOps.Concelier.Core.Tests/StellaOps.Concelier.Core.Tests.csproj [Unit]; src/Excititor/__Tests/StellaOps.Excititor.Core.Tests/StellaOps.Excititor.Core.Tests.csproj [Unit]; src/Excititor/__Tests/StellaOps.Excititor.WebService.Tests/StellaOps.Excititor.WebService.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,72 @@
# Audit - StellaOps.Aoc
## Project
- Path: src/Aoc/__Libraries/StellaOps.Aoc/StellaOps.Aoc.csproj
- Module: Aoc
- Kind: Library
- Audit date (UTC): 2026-01-31
- Files scanned: 10
- 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: 1
- 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/Aoc/__Libraries/StellaOps.Aoc/AocWriteGuard.cs (194 lines)
- Namespace issues:
- none
- Using directive issues:
- none
- Naming issues:
- src/Aoc/__Libraries/StellaOps.Aoc/AocForbiddenKeys.cs: private field naming
- src/Aoc/__Libraries/StellaOps.Aoc/AocGuardOptions.cs: private field naming
- Async issues:
- src/Aoc/__Libraries/StellaOps.Aoc/AocError.cs: blocking async usage
- 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: 10
- Files with issues: 4
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Aoc/__Libraries/StellaOps.Aoc/AocError.cs | BlockingAsync | Replace .Result/.Wait/GetAwaiter().GetResult() with await. |
| src/Aoc/__Libraries/StellaOps.Aoc/AocForbiddenKeys.cs | PrivateFieldNaming | Rename private fields to _camelCase. |
| src/Aoc/__Libraries/StellaOps.Aoc/AocGuardOptions.cs | PrivateFieldNaming | Rename private fields to _camelCase. |
| src/Aoc/__Libraries/StellaOps.Aoc/AocWriteGuard.cs | FileLength>100 | Split file to stay <= 100 lines. |
## Testing Fullness Findings
- Status: PASS
- Expected layers (heuristic): Unit
- Detected test projects: src/Aoc/__Tests/StellaOps.Aoc.Tests/StellaOps.Aoc.Tests.csproj [Unit]; src/Concelier/__Tests/StellaOps.Concelier.Core.Tests/StellaOps.Concelier.Core.Tests.csproj [Unit]; src/Excititor/__Tests/StellaOps.Excititor.Core.Tests/StellaOps.Excititor.Core.Tests.csproj [Unit]; src/Excititor/__Tests/StellaOps.Excititor.WebService.Tests/StellaOps.Excititor.WebService.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,71 @@
# Audit - StellaOps.Aoc.Analyzers.Tests
## Project
- Path: src/Aoc/__Tests/StellaOps.Aoc.Analyzers.Tests/StellaOps.Aoc.Analyzers.Tests.csproj
- Module: Aoc
- 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): 2
- Service locator usage (BuildServiceProvider/GetService): 0
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Aoc/__Tests/StellaOps.Aoc.Analyzers.Tests/AocForbiddenFieldAnalyzerTests.cs (472 lines)
- Namespace issues:
- none
- Using directive issues:
- src/Aoc/__Tests/StellaOps.Aoc.Analyzers.Tests/AocForbiddenFieldAnalyzerTests.cs: using directives inside namespace
- src/Aoc/__Tests/StellaOps.Aoc.Analyzers.Tests/AocForbiddenFieldAnalyzerTests.cs: using directives not sorted
- Naming issues:
- none
- Async issues:
- src/Aoc/__Tests/StellaOps.Aoc.Analyzers.Tests/AocForbiddenFieldAnalyzerTests.cs: async method naming
- src/Aoc/__Tests/StellaOps.Aoc.Analyzers.Tests/AocForbiddenFieldAnalyzerTests.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: 1
- Files with issues: 1
- See docs/implplan/audits/csproj-standards/file-audit.csv for full per-file status.
| File | Issues | Fix guidance |
| --- | --- | --- |
| src/Aoc/__Tests/StellaOps.Aoc.Analyzers.Tests/AocForbiddenFieldAnalyzerTests.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,81 @@
# Audit - StellaOps.Aoc.AspNetCore.Tests
## Project
- Path: src/Aoc/__Tests/StellaOps.Aoc.AspNetCore.Tests/StellaOps.Aoc.AspNetCore.Tests.csproj
- Module: Aoc
- 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: 6
- Naming violations (interfaces/fields/const/async): 4
- Service locator usage (BuildServiceProvider/GetService): 2
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Aoc/__Tests/StellaOps.Aoc.AspNetCore.Tests/AocGuardEndpointFilterTests.cs (139 lines)
- Namespace issues:
- none
- Using directive issues:
- src/Aoc/__Tests/StellaOps.Aoc.AspNetCore.Tests/AocGuardEndpointFilterExtensionsTests.cs: using directives inside namespace
- src/Aoc/__Tests/StellaOps.Aoc.AspNetCore.Tests/AocGuardEndpointFilterExtensionsTests.cs: using directives not sorted
- src/Aoc/__Tests/StellaOps.Aoc.AspNetCore.Tests/AocGuardEndpointFilterTests.cs: using directives inside namespace
- src/Aoc/__Tests/StellaOps.Aoc.AspNetCore.Tests/AocGuardEndpointFilterTests.cs: using directives not sorted
- src/Aoc/__Tests/StellaOps.Aoc.AspNetCore.Tests/AocHttpResultsTests.cs: using directives inside namespace
- src/Aoc/__Tests/StellaOps.Aoc.AspNetCore.Tests/AocHttpResultsTests.cs: using directives not sorted
- Naming issues:
- none
- Async issues:
- src/Aoc/__Tests/StellaOps.Aoc.AspNetCore.Tests/AocGuardEndpointFilterTests.cs: async method naming
- src/Aoc/__Tests/StellaOps.Aoc.AspNetCore.Tests/AocGuardEndpointFilterTests.cs: missing ConfigureAwait(false)
- src/Aoc/__Tests/StellaOps.Aoc.AspNetCore.Tests/AocHttpResultsTests.cs: async method naming
- src/Aoc/__Tests/StellaOps.Aoc.AspNetCore.Tests/AocHttpResultsTests.cs: missing ConfigureAwait(false)
- Service locator matches:
- src/Aoc/__Tests/StellaOps.Aoc.AspNetCore.Tests/AocGuardEndpointFilterTests.cs:83 var provider = services.BuildServiceProvider();
- src/Aoc/__Tests/StellaOps.Aoc.AspNetCore.Tests/AocHttpResultsTests.cs:32 context.RequestServices = services.BuildServiceProvider();
- 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.
- 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/Aoc/__Tests/StellaOps.Aoc.AspNetCore.Tests/AocGuardEndpointFilterExtensionsTests.cs | UsingInsideNamespace; UsingNotSorted | Move using directives outside namespace.; Sort using directives alphabetically. |
| src/Aoc/__Tests/StellaOps.Aoc.AspNetCore.Tests/AocGuardEndpointFilterTests.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/Aoc/__Tests/StellaOps.Aoc.AspNetCore.Tests/AocHttpResultsTests.cs | AsyncNaming; ConfigureAwaitMissing; 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. |
## 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.Aoc.Tests
## Project
- Path: src/Aoc/__Tests/StellaOps.Aoc.Tests/StellaOps.Aoc.Tests.csproj
- Module: Aoc
- Kind: Test
- 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 false
- Deterministic: inherited true
- 100-line rule violations: 1
- Namespace violations: 0
- Using directive violations: 3
- Naming violations (interfaces/fields/const/async): 1
- Service locator usage (BuildServiceProvider/GetService): 0
- Assembly.LoadFrom usage: 0
### Details
- 100-line files:
- src/Aoc/__Tests/StellaOps.Aoc.Tests/AocWriteGuardTests.cs (212 lines)
- Namespace issues:
- none
- Using directive issues:
- src/Aoc/__Tests/StellaOps.Aoc.Tests/AocErrorTests.cs: using directives not sorted
- src/Aoc/__Tests/StellaOps.Aoc.Tests/AocWriteGuardTests.cs: using directives inside namespace
- src/Aoc/__Tests/StellaOps.Aoc.Tests/AocWriteGuardTests.cs: using directives not sorted
- Naming issues:
- src/Aoc/__Tests/StellaOps.Aoc.Tests/AocWriteGuardTests.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).
- Remove overrides that disable TreatWarningsAsErrors.
- 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/Aoc/__Tests/StellaOps.Aoc.Tests/AocErrorTests.cs | UsingNotSorted | Sort using directives alphabetically. |
| src/Aoc/__Tests/StellaOps.Aoc.Tests/AocWriteGuardTests.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,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.

Some files were not shown because too many files have changed in this diff Show More