{
  "schema": "Nexamas.UI.ExceptionHandlingManifest/1.0",
  "purpose": "Repo-wide exception/logging/silencer source contract. Runtime/product sources may only absorb failures through MASExceptionSilencer, rethrow transaction failures, return explicit error/fallback results, or route diagnostic writes through allowlisted diagnostic sinks.",
  "sourceRoots": [
    "MASSystem",
    "Component",
    "My Project"
  ],
  "allowedDirectDiagnosticWriteFiles": [
    "MASSystem/Core/ArchitectureSystem/Diagnostics/MASExceptionSilencer.vb",
    "MASSystem/Core/ArchitectureSystem/Diagnostics/MASRuntimeFaultChannel.vb",
    "MASSystem/Core/ArchitectureSystem/Diagnostics/MASFrameDiagnostics.vb",
    "MASSystem/Core/ArchitectureSystem/Provider/MASArchitectureProviderDiscoveryDiagnostics.vb",
    "MASSystem/Core/Framework/Controls/Core/ControlsLayer.vb"
  ],
  "deniedExecutablePatterns": [
    {
      "id": "direct-debug-writeline",
      "pattern": "(?<![A-Za-z0-9_.])Debug\\s*\\.\\s*WriteLine\\s*\\("
    },
    {
      "id": "direct-trace-writeline",
      "pattern": "(?<![A-Za-z0-9_.])(?:Trace|Global\\.System\\.Diagnostics\\.Trace)\\s*\\.\\s*WriteLine\\s*\\("
    }
  ],
  "catchOutcomePatterns": [
    {
      "id": "central-silencer",
      "pattern": "MASExceptionSilencer\\.Swallow[A-Za-z]*\\s*\\("
    },
    {
      "id": "virtualization-consumer-fault-boundary",
      "pattern": "MASVirtualizationConsumerFaultBoundary\\.Swallow(?:RenderFallback|InputBoundary|Recoverable)\\s*\\("
    },
    {
      "id": "transaction-rethrow",
      "pattern": "\\bThrow\\b"
    },
    {
      "id": "explicit-return-result-or-fallback",
      "pattern": "\\bReturn\\b"
    },
    {
      "id": "finding-or-diagnostic-collection",
      "pattern": "\\.(?:Add|AppendLine|AddIssue|Warning|Failure|Error)\\s*\\("
    },
    {
      "id": "known-diagnostic-helper",
      "pattern": "\\b(?:AddError|AddLifecycleFailure|ReportRenderFailure|Show[A-Za-z0-9_]*Error|SetUnavailableState|RecordReflectionTypeLoadFailure|Handle[A-Za-z0-9_]*Failure|SetStatusBanner|UpdateReviewQueueStory)\\s*\\("
    },
    {
      "id": "loop-continues-after-classification",
      "pattern": "\\bContinue\\s+(?:For|Do|While)\\b"
    },
    {
      "id": "explicit-state-assignment",
      "pattern": "\\b[A-Za-z0-9_]*(?:Failure|Error|Exception|Canceled|caught|threw|hadFailure|strictModeThrew)\\s*="
    },
    {
      "id": "async-cancellation-metric",
      "pattern": "MASPerformanceSystem\\.RecordAsyncLoadCancelled\\s*\\("
    },
    {
      "id": "diagnostics-failure-channel",
      "pattern": "\\b(?:RecordReleaseDiagnosticWriteFailure|PublishDiagnosticsFailure)\\s*\\("
    }
  ],
  "coverageMode": "compiled-vb-source-roots",
  "compiledProject": "Nexamas.UI.vbproj",
  "strictCompiledCoverage": true,
  "allowlistDocumentationRequired": true,
  "requiredProofAssets": [
    "docs/quality-proof/repo-wide-exception-handling-scan.md",
    "eng/tests/Run-NexamasUITestSuite.ps1",
    "eng/ci/Invoke-NexamasUICommercialGate.ps1",
    "eng/tests/Nexamas.UI.QualityManifest.json"
  ],
  "allowedDirectDiagnosticWriteAllowlist": [
    {
      "file": "MASSystem/Core/ArchitectureSystem/Diagnostics/MASExceptionSilencer.vb",
      "owner": "diagnostics-core",
      "allowedWriteKinds": [
        "Debug.WriteLine",
        "Trace.WriteLine"
      ],
      "reason": "Central silencer owns last-resort diagnostic writes and immediately mirrors write failures into MASRuntimeFaultChannel.",
      "routingContract": "All fallback or boundary failures must enter MASExceptionSilencer first; logging failures publish diagnostics-failure records."
    },
    {
      "file": "MASSystem/Core/ArchitectureSystem/Diagnostics/MASRuntimeFaultChannel.vb",
      "owner": "diagnostics-core",
      "allowedWriteKinds": [
        "Debug.WriteLine",
        "Trace.WriteLine"
      ],
      "reason": "Runtime fault channel owns retained diagnostic records and guarded subscriber failure reporting.",
      "routingContract": "Records must be retained in the official runtime fault channel and subscriber failures must not recurse."
    },
    {
      "file": "MASSystem/Core/ArchitectureSystem/Diagnostics/MASFrameDiagnostics.vb",
      "owner": "diagnostics-core",
      "allowedWriteKinds": [
        "Debug.WriteLine",
        "Trace.WriteLine"
      ],
      "reason": "Frame diagnostics is a low-level diagnostic sink for frame timing/render evidence, not a product fallback path.",
      "routingContract": "Only frame diagnostics evidence is allowed; application/runtime failures must use MASExceptionSilencer."
    },
    {
      "file": "MASSystem/Core/ArchitectureSystem/Provider/MASArchitectureProviderDiscoveryDiagnostics.vb",
      "owner": "diagnostics-core",
      "allowedWriteKinds": [
        "Debug.WriteLine",
        "Trace.WriteLine"
      ],
      "reason": "Architecture provider discovery diagnostics records reflection/discovery problems during controlled startup probing.",
      "routingContract": "Only architecture provider discovery diagnostics are allowed; runtime failures must use MASExceptionSilencer."
    },
    {
      "file": "MASSystem/Core/Framework/Controls/Core/ControlsLayer.vb",
      "owner": "controls-layer-core",
      "allowedWriteKinds": [
        "Debug.WriteLine",
        "Trace.WriteLine"
      ],
      "reason": "ControlsLayer exposes scalability diagnostic detail for ownership/lifecycle proof; it is not a general logging bypass.",
      "routingContract": "Only ControlsLayer scalability proof diagnostics are allowed; runtime failures must use MASExceptionSilencer."
    }
  ]
}
